The main contribution of MTools is to allow object oriented programming in Mathematica in a very natural way .
The package also contains:
- Generic classes for manipulating trees of objects and displaying them
- Automatic interface generation for displaying and editing objects
- Functions for doing asynchronous evaluation easily using parallel kernels (MSync)
- Tools for accessing Couchbase, serializing and deserializing objects.
You can find usage examples on the Wolfram Community site and in the answer to "Once more on object orientation..." question on Mathematica Stack Exchange.
More examples will be added in the MTools.nb notebook located in the MTools package.
-
Download the latest released MTools.zip file.
-
Extract the downloaded
MTools.zip
file to any directory which is on the Mathematica$Path
, e.g. to one obtained by evaluatingFileNameJoin[{$UserBaseDirectory,"Applications"}]
. -
To load the package evaluate:
Needs["MTools`"]
This package requires Mathematica 10 and above, as it makes extensive use of Association.
If you find any bugs or have feature requests please create an issue on GitHub.
Feel free to fork and send pull requests.
All contributions are welcome!
This package is released under The MIT License.
I used as template the README of the ClasslessObjects project.
I used the following contributions posted by people on Mathematica StackExchange for some functions in the Utils.m package:
- Date Picker by R. M.
- Frozen Pane Grid by Mike Honeychurch
- Observer Pattern by Leonid Shifrin
- A tricky evaluation issue solved by ybeltukov
Releases of this package will be numbered using Semantic Versioning guidelines.