- Re-add python 3.9 support
- Drop deadline warning in dev.deprecated
- allow strict="skip" for jsanitize
- zopen changes: forbid implicit binary/text mode, signature change, default UTF-8 encoding in text mode, drop .z support after one-year. (@DanielYang59)
- Add support for extended JSON to MontyDecoder (@esoteric-ephemera)
- Fix jsanitize when recursive_msonable=True (@Andrew-S-Rosen)
- Fix custom dict overriding in collections (@DanielYang59)
- Lazily import torch/pydantic in json module, speedup from monty.json import by 10x (@DanielYang59)
- Fix missing monty.os package. (@eamanu)
- Fix zpath when passing pathlib.Path (@janosh)
- Fix line ending in reverse_readfile/readline in Windows (@DanielYang59)
- Add missing functools.wraps decorator to deprecated decorator and handle dataclass properly (@DanielYang59)
- Add pint Quantity support to JSON (@rkingsbury)
- Make cached_class decorated classes picklable (@janosh)
- deprecated decorator allow replacement as string (@DanielYang59)
- Fix (de)serialization datetime with timezone information (@DanielYang59)
- Fix serious regression introduced in list_strings (@gmatteo)
- Extend dev.deprecated to decorate classes and improve message (@DanielYang59)
- Reimplemented support for pickle in MSONAble. (@matthewcarbone)
- Revert changes to json.py for now.
- Misc bug fixes for jsanitize (@Andrew-S-Rosen).
- Fix MSONable.REDIRECT when module name changed (@janosh)
- Add native support for enums in jsanitize (@FabiPi3)
- Make jsanitize(recursive_msonable=True) respect duck typing (@Andrew-S-Rosen)
- Add optional arg target_dir in compress_file and decompress_file to allow specify target path (@DanielYang59)
- Add MontyEncoder/MontyDecoder support for pathlib.Path (@Andrew-S-Rosen)
- Add an optional arg deadline to dev.deprecated to raise warning after deadline (@DanielYang59)
- Bug fix for symlinks when using copy_r (@Andrew-S-Rosen)
- Bug fix for Enum subclasses with custom as_dict, from_dict (@jmmshn)
- Fix import of optional libraries.
- Lazy import of optional libraries to speed up startup.
- Improved pydantic2 support (@munrojm).
- Support pathlib.Path in shutil (@Andrew-S-Rosen).
- Pydantic2 support (@munrojm).
- Bug fix for decompress_file() to maintain backwards compatibility (@janosh)
- Return path to decompressed file from decompress_file() (@janosh)
- @deprecated change default category from FutureWarning to DeprecationWarning
- Improved Pytorch tensor support for MontyEncoder/Decoder.
- Bug fix to avoid torch dependency.
- Pytorch tensor support for MontyEncoder/Decoder.
-* Fix for datetime support in jsanitize (@Andrew-S-Rosen).
- Support for DataClasses in MontyEncoder, MontyDecoder and MSONable.
-* Fall back on json if orjson is not present. (@munrojm)
-* Allow recursive MSON in jsanitize (@Andrew-S-Rosen)
- Option to use orjson for faster decoding. (@munrojm)
-* Fix ruamel.yaml backwards compatibility.
-* Fix decoding of dictionaries (@Andrew-S-Rosen).
- Formal support for py3.10
-* Adds support for lzma/xz format in zopen (@zhubonan).
-* Support serialization for Pandas DataFrames (@mkhorton).
- Support the specification of
fmt
keyword arg in monty.serialization loadfn and dumpfn.
-* Expanded support for built-in functions, numpy types, etc. in MSON serialization (@utf).
- Drop py3.5 support.
- pydantic support (@shyamd)
- UUID serialization support (@utf)
- Allow specification of warning category in deprecated wrapper.
- USe FutureWarning in the monty.dev.deprecated wrapper instead.
- Add support for complex dtypes in MSONable numpy arrays. (@fracci)
- Improvements to MSONAble to support Varidac Args (@shyamd).
- Bug fixes for Windows.
- Py3 only version.
- MSONable now supports Enum types. (@mkhorton)
- Revert py27 incompatible fmt spec for loadfn and dumpfn for now. This is a much less common use case.
- Checking for extension type in loadfn and dumpfn now relies on ".json", ".yaml" or ".mpk". Further, now ".yml" and ".yaml" are both recognized as YAML files. (@clegaspi)
- A fmt kwarg is now supported in loadfn and dumpfn to specify the format explicitly. (@clegaspi)
- Bug fix for invert MSON caused by
@version
.
- Support for nested MSONAble objects with MontyEncoder and dumpfn. (@davidwaroquiers)
- Add @version to MSONAble. (@mkhorton)
- Support for Path object in zopen.
- Bug fix for io.reverse_readfile to ensure txt or binary string.
- monty.shutil.remove which allows symlinks removal. Also improved monty.tempfile.ScratchDir cleanup. (@shyamd)
- Bug fix for reverse_readfile for bz2 files (Alex Urban)
- Misc bug fixes (tempdir on Windows)
- Use CLoader and CDumper by default for speed.
- Ruamel.yaml is now used as the default YAML parser and dumper.
- Now ScratchDir functions as it should by replacing the original directory.
- Minor update for inspect deprecation.
- Allow private variable names (with leading underscores) to be auto-detected in default MSONable.
- Favor use of inspect.signature in MSONAble.
- Fix monty decoding of bson only if bson is present.
- Minor update.
- bson.objectid.ObjectId support for MontyEncoder and MontyDecoder.
- Improved default as and from_dict.
- Minor bug fixes.
- Support for bson fields in jsanitize.
- Fasetr gzip.
- Update gcd for deprecated fractions.gcd in py >= 3.5. Try math.gcd by default first.
- A new collections.tree object, which allows nested defaultdicts.
- Added support for msgpack serialization in monty.serialization.dumpfn, loadfn and monty.msgpack.default and object_hook.
- Added timeout function. Useful to limit function calls that take too long.
- New backwards incompatible MSONable implementation that inspects init args to create a default dict representation for objects.
- New jsanitize method to convert objects supporting the MSONable protocol to json serializable dicts.
- New frozendict and MongoDict (allows for Javascript like access of nested dicts) classes (Matteo).
- New Command class in subprocess which allows commands to be run in separate thread with timeout (Matteo).
- More fixes for reverse read of gzipped files ofr Py3k.
- Fix reverse read file for gzipped files.
- Added a reverse_readfile method in monty.io, which is faster than reverse_readline for large files.
- Provide way to specify Dumper and Loader in monty.serialization.
- Better handling of unicode.
- More robust handling of numpy arrays and datetime objects in json.
- Refactor NotOverwritableDict to Namespace (Matteo).
- Addition of many help functions in string, itertools, etc. (Matteo).
- NullFile and NullStream in monty.design_patterns (Matteo).
- FileLock in monty.io (Matteo)
- Minor efficiency improvement.
- Add unicode2str and str2unicode in monty.string.
- Completely rewritten zopen which supports the "rt" keyword of Python 3 even when used in Python 2.
- monty.string now has a marquee method which centers a string (contributed by Matteo).
- Monty now supports only Python >= 3.3 as well as Python 2.7. Python 3.2 support is now dropped.
- Refactor lazy_property to be in functools module.
- Additional dev decorators lazy and logging functions.
- Improve numpy array serialization with MontyEncoder.
- Minor bug fix for module load in Py3k.
- Remove deprecated json.loadf methods.
- Add MSONable protocol for json/yaml based serialization.
- deprecated now supports an additonal message.
- :class:
monty.tempfile.ScratchDir
now checks for existence of root directory. If root path does not exist, will function as simple pass through. Makes it a lot more robust to bad mounting of scratch directories.
- Added backport of functools.lru_cache.
- Specialized json encoders / decoders with support for numpy arrays and objects supporting a to_dict() protocol used in pymatgen.
- Proper support for libyaml auto-detect in yaml support.
- Refactor serialization tools to shorten method names.
- Added serialization module that supports both json and yaml. The latter requires pyyaml.
- Added get_ncpus method in dev. (G. Matteo).
- Add a Fabric-inspired cd context manager in monty.os.
- Refactor ScratchDir context manager to monty.tempfile.
- Add string module, which provides a function to remove non-ascii characters. More to be added.
- ScratchDir now supports non-copying of files to and from current directory, and this is the default (different from prior releases).
- Yet more improvements to copy_r to prevent recursive infinite loops in copying.
- Added the useful monty.shutil.compress_file, compress_dir, decompress_file and decompress_dir methods.
- Much more robust copy_r in shutil.
- Bug fix for 0.1.3.
- Added zpath method to return zipped paths.
- Minor release to update description.
- Ensure Python 3+ compatibility.
- Travis testing implemented.
- First official alpha release with unittests and docs.
- Added several decorators and utilities.
- Initial version.