- Updated
PyYAML
to5.1
for security fixes.
- Added
Number
(andNullableNumber
) type for floats that store as integers when possible.
- Fixed the
List
converter to accept tuples as lists.
- Implemented
match
utility (credit: @astronouth7303). - Including file contents in parse exceptions.
- Added sync parameter
auto_resolve
to clean up file conflicts automatically.
- Removed warnings about calling save/load unnecessarily.
- Now allowing keyword arguments to be passed to class construction via
create
andfind
utilities. - Now adding additional attributes from
__init__
onAttributeDictionary
.- NOTE: For this feature to work,
__init__
must not use positional arguments.
- NOTE: For this feature to work,
- DEPRECIATION: Renamed
ModelMixin.new
toModelMixin.create
.
- Optimized the formatting of empty lists to create consistent diffs.
- Added
ModelMixin
to add ORM methods to mapped classes.
- Updated base class to hide
pytest
traceback in wrapped methods.
- Added
data
property toMapper
as a hook for other serialization libraries.
- Fixed handling of mutation methods on
list
anddict
.
- Initial stable release.
- Now invoking
__init__
inDictionary
converters to run custom validations.
- Replaced all utility functions with ORM-like tools.
- Removed the ability to check for existing files in
sync()
. - Renamed and consolidated custom exceptions.
- Renamed sync parameter
auto=True
toauto_save=True
. - Renamed sync parameter
strict=True
toauto_track=False
. - Added sync parameter
auto_create
to defer file creation to ORM functions.
- Now preserving order of
attr
decorators onDictionary
converters.
- Updated
String
to fetchtrue
andfalse
as strings.
- Now preserving order of
attr
decorators. - Now limiting
attr
decorator to a single argument. - Added
List.of_type()
factory to create lists with less boilerplate.
- Fixed handling of
None
inNullableString
.
- Added preliminary support for JSON serialization. (credit: @pr0xmeh)
- Renamed
yorm.converters
toyorm.types
. - Now maintaining the signature on mapped objects.
- Disabled attribute inference unless
strict=False
. - Fixed formatting of
String
to only use quotes if absolutely necessary.
- Renamed
yorm.base
toyorm.bases
. - Stopped creating files on instantiation when
auto=False
. - Now automatically storing on fetch after initial store.
- Fixed attribute loss in non-
dict
when conversion todict
. - Now automatically adding missing attributes to mapped objects.
- Moved all converters into the
yorm.converters
package. - Renamed
container
tocontainers
. - Renamed
Converter
toConvertible
for mutable types - Added a new
Converter
class for immutable types - Removed the context manager in mapped objects.
- Fixed automatic mapping of nested attributes.
- Fixed object overwrite when calling
utilities.update
.
- Fixed infinite recursion with properties that rely on other mapped attributes.
- Updated mapped objects to only read from the filesystem if there are changes.
- Renamed
store
tosync_object
. - Renamed
store_instances
tosync_instances
. - Renamed
map_attr
toattr
. - Added
sync
to callsync_object
orsync_instances
as needed. - Added
update_object
andupdate_file
to force synchronization. - Added
update
to callupdate_object
and/orupdate_file
as needed.
- Container types now extend their builtin type.
- Added
None<Type>
extended types withNone
as a default. - Added
AttributeDictionary
with keys available as attributes. - Added
SortedList
that sorts when dumped.
- Allowing
map_attr
andstore
to be used together. - Allowing
Dictionary
containers to be used as attributes. - Fixed method resolution order for modified classes.
- Added a
yorm.settings.fake
option to bypass the filesystem.
- Fixed typos in examples.
- Initial release.