General corrections and changes:
- Package 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
Backwards incompatible changes:
- Due to the reservedness of
awaitmentioned above, its use will raise an error. Use
Field types now available:
Datefields are now timezone aware if
pytzis installed, and able to intelligently utilize the server-local timezone if
tzlocalis installed. (Or just utilize Marrow Mongo's
tzinstallation flag.) #51
Please note that due to Pypi stupidity, version
22.214.171.124there is actually
New or updated in this release:
- Removal of diagnostic information and updated testing/commit configurations, improving commit performance and bumping Pypy3 versions.
- Collation support.
- Improved documentation coverage.
- Improved generalized programers' representations.
- Improved query fragment merging.
- Corrected Reference field behaviours.
- Dead code removal.
Embedfield default value handling to reduce boilerplate.
Potentially backwards-incompatible changes:
- Simplification to only support a single referenced kind in complex fields such as
Embed. As multi-kind support was not fully implemented, this should not disrupt much.
New fields, including:
Traits are new, see #26, including:
Collection— Isolating collection management semantics from the core
Derived— Isolating subclass management and loading from the core
Expires— Automated inclusion of
TTL(time-to-live) field and index definitions, including expiry check on load.
Identified— Isolation of primary key management from core
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.)
- Add Landscape.io integration.
- Added missing project metadata.
- Updated installation documentation. 81e7702
- Remove dependency on
- Removed our own
compatmodule; schema already has a sufficient one.
Aliaspseudo-field support. #12
- Ability to dereference
Embedsubfield values when querying through class attribute access.
Aliaspseudo-field to allow the creation of shortcuts for value retrieval and assignment (via instance attribute access) and querying (through class attribute access).
Embednow persist their typecasting within
__data__, to preserve changes to nested values. (This is generally safe, however do not utilize
PluginReferenceas 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.
- GeoJSON and geographic querying support. #6
- Added Document types:
- Added field query operators:
- Added parametric filter operators:
- Ability to perform certain collection-level operations. #17
- Added Document class methods:
- 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'.
- Initial release of basic field mapping functionality.