Skip to main content

Autogenerate Colander schemas based on SQLAlchemy models.

Project description

ColanderAlchemy

https://travis-ci.org/stefanofontanelli/ColanderAlchemy.png?branch=master https://readthedocs.org/projects/colanderalchemy/badge/

ColanderAlchemy helps you to auto-generate Colander schemas that are based on SQLAlchemy mapped classes.

Such Colander schemas can be used with libraries like Deform and helps remove the need for duplication of schema definitions.

Documentation

Latest documentation is at: Read The Docs.

Installation

Using pip command:

pip install ColanderAlchemy

License

ColanderAlchemy is distributed under the MIT license.

Development version

Fork the development version on GitHub.

The branch ‘0.1’ contains the old version of ColanderAlchemy: 0.1x The branch ‘master’ contains the new version of ColanderAlchemy: 0.3x

Support

Please use Github Issue System for support requests (bug report, feature requests, other kind of help requests).

Follow me on Twitter @stefontanelli to receive notifications about new releases.

Change Log

0.3.4 (2020-03-03)

  • no functional changes; updates to tests and supported versions

0.3.3 (2015-07-20)

  • Allow recursive schema creation (PR #81). [Ademan, offlinehacker]

  • Allow includes, excludes and overrides to be specified in __colanderalchemy_config__ and applied to the SchemaNode. [davidjb]

  • Clarify documentation for quickstart. [davidjb]

0.3.2.post1 (2015-03-11)

  • Only apply declaratively defined settings to the outer Sequence when mapping an SQLAlchemy relationship. Previously, overrides were applied to both the Sequence and Mapping nodes, leading to unexpected behaviour. [davidjb]

  • The order in which fields are added are now properly maintained (issue #45) [uralbash]

  • Added ability to override fields on their own (PR #69, #70) [uralbash]

  • Allow setting ColanderAlchemy options in sqlalchemy type. [pieterproigia]

  • Make it possible to set the unknown colander.Mapping option using __colanderalchemy_config__ (PR #78) [elemoine]

0.3.1 (2014-03-19)

  • maintain the order of SQLAlchemy object attributes in the Colander schema [tisdall]

  • use Colander defaults wherever explicit settings are not given [tisdall]

  • added tests for confirming documentation examples [tisdall]

  • added fix and test for issue #35 (thrown exception on encountering synonym() ) [tisdall]

  • made changes to accommodate SQLAlchemy >= 0.9a [tisdall]

  • allows “children” override (issue #44) [tisdall]

  • no longer call callable SQLAlchemy defaults to fill in colander default values (issue #43) [tisdall]

  • fixed some minor issues with colander default and missing values to ensure transitive relationships (such as dictify/objectify) [tisdall]

  • require colander 1.0b1 or greater to support colander.drop (issue #52) [tisdall]

0.3 (2013-11-04)

  • Add objectify function on SQLAlchemySchemaNode – use this to recreate SQLAlchemy object instances from the configured mappers. This new method is the opposite of dictify. [davidjb]

  • Colander’s DateTime now defaults to using a naive datetime when no timezone is provided, similar to SQLAlchemy. [tisdall]

  • fixed defaults for SchemaNode.default and SchemaNode.missing [tisdall]

0.2 (2013-05-16)

  • No changes.

0.2a1 (2012-04-09)

  • Ensure relationship mapped schemas have a name. This ensures correct usage with Deform.

  • Ensure missing schema node information correctly maps to SQLAlchemy structures.

  • Map missing information for “required” relationships based upon the join condition. This can be further customised by given relationships setting missing=colander.required within their respective configurations.

  • Read Colander node init settings for a mapped class using the __colanderalchemy__ attribute. This allows for full customisation of the resulting colander.Mapping SchemaNode.

  • Allow non-SQLAlchemy schema nodes within SQLAlchemySchemaNode. Previously, the dictify method would throw an AttributeError.

  • Fix setup.py for python 3k

0.1b7 (Unreleased)

  • Ensure relationships are mapped recursively and adhere to ColanderAlchemy settings for mappings.

  • Remove dictify method in SQLAlchemyMapping.

0.1b6 (2012-10-17)

  • Fix minor bugs.

0.1b5 (2012-09-19)

  • Fix bug in MappingRegistry.__init__: pkeys is a list of property keys instead of column name

  • Add support to specify schema node ordering.

0.1b4 (2012-08-06)

  • Fix bug related to ‘ca_include=False’.

  • Change tests to cover that bug.

0.1b3 (2012-08-02)

  • Fix issue related to mapped class inheritance.

  • Fix minor bugs.

0.1b2 (2012-06-14)

  • Added support to use ColanderAlchemy declaratively.

0.1b (2012-05-19)

  • Added SQLAlchemyMapping.dictify method.

  • Updated tests with checks needed to test SQLAlchemyMapping.dictify.

0.1.0a2 (unreleased)

  • Mentioned supported Python versions in trove classifiers.

  • Updated tests to run with current colander versions.

  • Made compatible with Python 3.2.

0.1.0a (2012-03-24)

  • Initial public release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ColanderAlchemy-0.3.4.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

ColanderAlchemy-0.3.4-py2.py3-none-any.whl (12.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file ColanderAlchemy-0.3.4.tar.gz.

File metadata

  • Download URL: ColanderAlchemy-0.3.4.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.5

File hashes

Hashes for ColanderAlchemy-0.3.4.tar.gz
Algorithm Hash digest
SHA256 740d435e6a97c483e3ce0196a36e02e35be99b0174e09554dd7c6a019963dc00
MD5 595ec444ad43549963b5cfdd25448b6a
BLAKE2b-256 cb6b21c34465df8ebacd875f4fb8ae407870bd5b357b90122275aff34f353b78

See more details on using hashes here.

File details

Details for the file ColanderAlchemy-0.3.4-py2.py3-none-any.whl.

File metadata

  • Download URL: ColanderAlchemy-0.3.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.5

File hashes

Hashes for ColanderAlchemy-0.3.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 abebdbe091d1ff8b30a6ab2a8dc744ba73fddd5f5fb0e60a67038c2165add456
MD5 ff10718522a111ef771630a2664c10bf
BLAKE2b-256 6d001f9f81cece2effa018795d7d81f9ac21c131876b1f91bb06d4bd047a4730

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page