Refinement Release 1.1.1
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. #20 - Enhanced
String
field capabilities to include stripping and case conversion. #33 - Shared
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.)