History

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. #47
  • 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; 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. Use wait instead.
Field types now available:
  • Link for the storage of URI values such as HTTP URLs, mailto:, tel:, etc. #45 #39
  • Mapping field to automatically perform read-only translation of a keyed list of embedded documents into a dictionary. #46
  • Set field will utilize a true set 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. #48
  • Date fields are now timezone aware if pytz is installed, and able to intelligently utilize the server-local timezone if tzlocal is installed. (Or just utilize Marrow Mongo's tz installation flag.) #51
  • PluginReference 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
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 an ObjectId 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 and Embed 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 and Embed. As multi-kind support was not fully implemented, this should not disrupt much.
New fields, including:
  • Decimal#23
  • Period — Storage of dates rounded (floor) to their nearest period.
  • Markdown — Rich storage of Markdown textual content. #34
  • Path — Store a PurePosixPath as a string. #35
Traits are new, see #26, including:
  • Collection — Isolating collection management semantics from the core Document class.
  • Derived — Isolating subclass management and loading from the core Document class.
  • 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 Document 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.)
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. 815a74a
  • Removed our own compat module; schema already has a sufficient one.
  • Allow for Reference fields to cache data they reference. #8
  • Array & Embed dereferencing + Alias pseudo-field support. #12
    • Ability to dereference Array and Embed 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 and Embed now persist their typecasting within __data__, to preserve changes to nested values. (This is generally safe, however do not utilize PluginReference 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 on Ops.
    • 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'.
2016-11-21 Turmiel
  • Initial release of basic field mapping functionality.
Last modified 5yr ago