The Marrow Mongo Document Mapper
  • Introduction
  • Installation
  • Contributing
  • Guide
    • Introduction
    • Modelling
    • Management
    • Interaction
    • Fields
    • Indexes
    • Trait Mix-Ins
    • Plugin Namespaces
  • Reference
    • Decimal
    • Field
    • Index
    • Fields
      • Alias
      • Array
      • Binary
      • Boolean
      • Date
      • Double
      • Embed
      • Integer
      • Link
      • Long
      • Mapping
      • Markdown
      • Number
      • ObjectId
      • Path
      • Period
      • Plugin
      • Reference
      • Regex
      • Set
      • String
      • TTL
      • Timestamp
    • Parametric
      • F (Filter)
      • P (Project)
      • S (Sort)
      • U (Update)
    • Query
      • Ops
      • Q
    • Traits
      • Collection
      • Derived
      • Expires
      • Heirarchical
      • Identified
      • Localized
      • Lockable
      • Published
      • Stateful
      • Queryable
    • Utilities
      • Capped Collections
      • Geospatial
      • Logging
  • End Matter
    • Colophon
    • License
    • History
Powered by GitBook
On this page
  • 1.1.2 Enhancement Release
  • 1.1.1 Refinement Release
  • 1.1.0 Feature Release
  • 1.0.0 Initial Release

Was this helpful?

Edit on Git
  1. End Matter

History

PreviousLicense

Last updated 6 years ago

Was this helpful?

1.1.2

2017-09-13 Noaphiel

General corrections and changes:

  • Array field could not be filtered as not-equal.

  • The new Lockable trait implements mutex lock behaviour at the document level.

  • 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.

  • Mapping field to automatically perform read-only translation of a keyed list of embedded documents into a dictionary.

  • Set field will utilize a true set instance Python-side.

Field enhancements:

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.

  • Corrected $regex generation.

  • Collation support.

  • 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:

  • Period — Storage of dates rounded (floor) to their nearest period.

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.

  • Added missing project metadata.

  • Updated installation documentation. 81e7702

  • Remove dependency on pytz. 815a74a

  • Removed our own compat module; schema already has a sufficient one.

    • 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.)

    • 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.

    • Addition of ~ inversion / $not support on Ops.

    • Split Ops types.

    • Ensure Document uses odict.

    • 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

    • 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.

Fields may now be excluded from positional instantiation.

Fields may now be adapted / mutated to specialize when inheriting without complete replacement.

Alias fields may now trigger deprecation warnings if requested.

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.)

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.

1.1.1

Correction of ABC participation (and missing shallow copy method) for Pypy use of query fragments.

Passing an existing document (with _id key) to an ObjectId field will utilize the ID provided therein.

Enhanced String field capabilities to include stripping and case conversion.

Decimal —

Markdown — Rich storage of Markdown textual content.

Path — Store a PurePosixPath as a string.

1.1.0

Improve overall code health.

Allow for Reference fields to cache data they reference.

Array & Embed dereferencing + Alias pseudo-field support.

Allow for fields to be combined, not just query documents.

Parameterized filter, sort, projection and updates.

GeoJSON and geographic querying support.

Ability to perform certain collection-level operations.

1.0.0

Enhancement Release
#43
#47
#45
#39
#46
#28
#38
#48
#51
#49
Refinement Release
#32
#20
#33
#23
#34
#35
Feature Release
#14
#8
#12
#11
#4
#6
#17
Initial Release