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
Lockable
trait 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;
await
will be reserved in Python 3.7+.Corrections for certain edge cases involving casting of
None
values.
Backwards incompatible changes:
Due to the reservedness of
await
mentioned above, its use will raise an error. Usewait
instead.
Field types now available:
Mapping
field to automatically perform read-only translation of a keyed list of embedded documents into a dictionary. #46Set
field will utilize a trueset
instance 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
Alias
fields may now trigger deprecation warnings if requested. #48Date
fields are now timezone aware ifpytz
is installed, and able to intelligently utilize the server-local timezone iftzlocal
is installed. (Or just utilize Marrow Mongo'stz
installation flag.) #51PluginReference
can 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
$regex
generation.Collation support.
Passing an existing document (with
_id
key) to anObjectId
field will utilize the ID provided therein. #20Enhanced
String
field capabilities to include stripping and case conversion. #33Shared
utcnow
helper function.Improved documentation coverage.
Improved generalized programers' representations.
Improved query fragment merging.
Corrected Reference field behaviours.
Dead code removal.
Updated
Array
andEmbed
field default value handling to reduce boilerplate.
Potentially backwards-incompatible changes:
Simplification to only support a single referenced kind in complex fields such as
Array
andEmbed
. 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 coreDocument
class.Derived
— Isolating subclass management and loading from the coreDocument
class.Expires
— Automated inclusion ofTTL
(time-to-live) field and index definitions, including expiry check on load.Identified
— Isolation of primary key management from coreDocument
class.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
compat
module; schema already has a sufficient one.Allow for
Reference
fields to cache data they reference. #8Array
&Embed
dereferencing +Alias
pseudo-field support. #12Ability to dereference
Array
andEmbed
subfield values when querying through class attribute access.Added
Alias
pseudo-field to allow the creation of shortcuts for value retrieval and assignment (via instance attribute access) and querying (through class attribute access).Array
andEmbed
now persist their typecasting within__data__
, to preserve changes to nested values. (This is generally safe, however do not utilizePluginReference
as an embeddable kind.)
Allow for fields to be combined, not just query documents. #11
Field references (
Q
instances 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 /$not
support onOps
.Split
Ops
types.Ensure Document uses
odict
.
GeoJSON and geographic querying support. #6
Added Document types:
GeoJSON
GeoJSONCoord
Point
LineString
Polygon
MultiPoint
MultiLineString
MultiPolygon
GeometryCollection
Added field query operators:
near
intersects
within
Added parametric filter operators:
near
within
within_box
within_polygon
within_center
within_sphere
intersects
Ability to perform certain collection-level operations. #17
Added Document class methods:
create_collection
get_collection
create_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