History
1.1.2 Enhancement Release
2017-09-13 Noaphiel
General corrections and changes:
Array field could not be filtered as not-equal. #43
The new
Lockabletrait implements mutex lock behaviour at the document level. #47Package build and automated testing adjustments including expanded build matrixes, Bandit exclusions, and multiple MongoDB versions.
Dead code removal.
Adaption to future reserved word use;
awaitwill be reserved in Python 3.7+.Corrections for certain edge cases involving casting of
Nonevalues.
Backwards incompatible changes:
Due to the reservedness of
awaitmentioned above, its use will raise an error. Usewaitinstead.
Field types now available:
Mappingfield to automatically perform read-only translation of a keyed list of embedded documents into a dictionary. #46Setfield will utilize a truesetinstance Python-side.
Field enhancements:
Fields may now be excluded from positional instantiation. #28
Fields may now be adapted / mutated to specialize when inheriting without complete replacement. #38
Aliasfields may now trigger deprecation warnings if requested. #48Datefields are now timezone aware ifpytzis installed, and able to intelligently utilize the server-local timezone iftzlocalis installed. (Or just utilize Marrow Mongo'stzinstallation flag.) #51PluginReferencecan now perform simple search and replace in Python import references, allowing for mapping of old import paths to new ones during code refactoring. #49
1.1.1 Refinement Release
2017-05-17 Mirthra
Please note that due to Pypi stupidity, version 1.1.1.1 there is actually 1.1.1.
New or updated in this release:
Removal of diagnostic information and updated testing/commit configurations, improving commit performance and bumping Pypy3 versions.
Correction of ABC participation (and missing shallow copy method) for Pypy use of query fragments. #32
Corrected
$regexgeneration.Collation support.
Passing an existing document (with
_idkey) to anObjectIdfield will utilize the ID provided therein. #20Enhanced
Stringfield capabilities to include stripping and case conversion. #33Shared
utcnowhelper function.Improved documentation coverage.
Improved generalized programers' representations.
Improved query fragment merging.
Corrected Reference field behaviours.
Dead code removal.
Updated
ArrayandEmbedfield default value handling to reduce boilerplate.
Potentially backwards-incompatible changes:
Simplification to only support a single referenced kind in complex fields such as
ArrayandEmbed. As multi-kind support was not fully implemented, this should not disrupt much.
New fields, including:
Decimal— #23Period— Storage of dates rounded (floor) to their nearest period.Markdown— Rich storage of Markdown textual content. #34Path— Store a PurePosixPath as a string. #35
Traits are new, see #26, including:
Collection— Isolating collection management semantics from the coreDocumentclass.Derived— Isolating subclass management and loading from the coreDocumentclass.Expires— Automated inclusion ofTTL(time-to-live) field and index definitions, including expiry check on load.Identified— Isolation of primary key management from coreDocumentclass.Localized— Management of contained localizable top-level document content.Published— Management of publication/retraction and dedicated creation/modification times.Queryable— Encapsulation of collection-level record management. (Not an Active Record pattern.)
1.1.0 Feature Release
2016-11-27 Oranir
Add Landscape.io integration.
Improve overall code health. #14
Added missing project metadata.
Updated installation documentation. 81e7702
Remove dependency on
pytz. 815a74aRemoved our own
compatmodule; schema already has a sufficient one.Allow for
Referencefields to cache data they reference. #8Array&Embeddereferencing +Aliaspseudo-field support. #12Ability to dereference
ArrayandEmbedsubfield values when querying through class attribute access.Added
Aliaspseudo-field to allow the creation of shortcuts for value retrieval and assignment (via instance attribute access) and querying (through class attribute access).ArrayandEmbednow persist their typecasting within__data__, to preserve changes to nested values. (This is generally safe, however do not utilizePluginReferenceas an embeddable kind.)
Allow for fields to be combined, not just query documents. #11
Field references (
Qinstances generated through class-based attribute access of fields) may now be combined to save time in queries involving multiple fields being compared against the same value.
Parameterized filter, sort, projection and updates. #4
Addition of
~inversion /$notsupport onOps.Split
Opstypes.Ensure Document uses
odict.
GeoJSON and geographic querying support. #6
Added Document types:
GeoJSONGeoJSONCoordPointLineStringPolygonMultiPointMultiLineStringMultiPolygonGeometryCollection
Added field query operators:
nearintersectswithin
Added parametric filter operators:
nearwithinwithin_boxwithin_polygonwithin_centerwithin_sphereintersects
Ability to perform certain collection-level operations. #17
Added Document class methods:
create_collectionget_collectioncreate_indexes
Added the following Document class attributes to control collection settings:
__collection__- the name of the collection to use__read_preference__- default ReadPreference__read_concern__- default ReadConcern__write_concern__- default WriteConcern__capped__- the size, in bytes, to allocate as a capped collection__capped_count__- additionally limit the number of records__engine__- override storage engine options__validate__- one of 'off' (the default), 'strict', or 'moderate'.
1.0.0 Initial Release
2016-11-21 Turmiel
Initial release of basic field mapping functionality.
Last updated
Was this helpful?