Skip to main content

A set of tools which enhances ORMs written in Python with more features

Project description

https://badge.fury.io/py/architect.svg https://img.shields.io/pypi/dm/architect.svg https://img.shields.io/travis/maxtepkeev/architect/master.svg https://img.shields.io/coveralls/maxtepkeev/architect/master.svg

Architect is a set of tools which enhances ORMs written in Python with more features and simplifies different database related complex tasks.

Features

Dependencies

Architect has no required external dependencies except for the ORM it will be used with.

Installation

To install Architect, simply:

$ pip install architect

or:

$ easy_install architect

Documentation

Documentation is available at http://architect.readthedocs.org.

Contacts and Support

I will be glad to get your feedback, pull requests, issues, whatever. Feel free to contact me for any questions.

Donations and Sponsorship

If you like this project and want to support it you have 3 options:

  1. Just give this project a star at the GitHub repository.

  2. You can express your gratitude via Gratipay.

  3. Become a sponsor. Contact me via tepkeev at gmail dot com if you are interested in becoming a sponsor and we will discuss the terms and conditions.

Changelog

0.5.3 (2015-11-08)

  • Added: Tests are now built-in into source package distributed via PyPI

  • Fixed: Django: Issue #21 (Unable to partition a model with non-lazy translations)

0.5.2 (2015-07-31)

  • Fixed: PostgreSQL: Issue #14 (Error when trying to save a record into a table if partitioned column value had special characters inside, using string_firstchars and string_lastchars partition subtypes)

  • Fixed: PostgreSQL: Issue #11 (Error when trying to save a record into a table that was partitioned by a column that can be NULL, now if a column, that was used for partitioning, has NULL value it will be inserted into a special partition with _null postfix)

  • Fixed: SQLObject: Error when trying to partition a model with a field that has a default attribute set to some value

0.5.1 (2015-06-08)

  • Fixed: Issue #13 (MySQL support was broken in v0.5.0 released to PyPI)

0.5.0 (2015-05-08)

  • Added: Django: Support for multiple databases (Issue #9)

  • Added: Support for custom features, see docs for details

  • Changed: dsn partition option renamed to db to cover more use cases

  • Changed: DsnParseError exception renamed to OptionValueError to cover more use cases

  • Fixed: Django: Error when trying to partition a model with Django <= 1.5 in debug mode

  • Fixed: “No module named modulename.py” error when trying to specify model’s module with .py extension at the end in partition command

0.4.0 (2015-04-18)

  • Added: wheel support

  • Added: SQLObject ORM support

  • Added: PostgreSQL: New integer (thanks to Nikolay Yarovoy), string_firstchars (thanks to Dmitry Brytkov) and string_lastchars range partition subtypes, see docs for details

  • Changed: range partition option renamed to constraint to better suit new partition subtypes

  • Changed: PostgreSQL: Triggers refactoring and speedups, don’t forget to rerun partition command to apply new refactored triggers to the database

  • Fixed: architect.uninstall decorator wasn’t able to restore modified model methods under Python 3

0.3.0 (2015-04-05)

  • Added: Documentation rewritten from scratch

  • Added: Introduced completely new API (almost 80% of Architect code was rewritten from scratch). All functionality is now provided by an architect.install decorator which dynamically injects requested feature, e.g. partition, into a model under the architect namespace, e.g. model.architect.partition. No more mixins, inheritance and nested classes with settings that pollute model’s namespace. More information is available in the docs

  • Added: New operation feature which provide an abstraction layer to execute raw SQL statements which will work with any supported ORM, see docs

  • Fixed: Issue #8 (cannot import name string_literal error with PonyORM and PyMySQL if pymysql.install_as_MySQLdb() was used)

  • Fixed: Issue #7 (SQLite dummy backend was completely broken)

  • Fixed: Issue #4 (autocommit cannot be used inside a transaction error with Django if a model was used inside with transaction.atomic() block)

  • Fixed: Issue #2 (partition command was unable to find module with models to partition)

  • Fixed: Issue #1 (relation already exists error when trying to insert data into non-existent partition simultaneously from several queries) (thanks to Daniel Kontsek)

0.2.0 (2014-07-19)

  • Added: MySQL range partitioning support

0.1.0 (2014-07-13)

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

architect-0.5.3.tar.gz (28.2 kB view details)

Uploaded Source

Built Distribution

architect-0.5.3-py2.py3-none-any.whl (31.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file architect-0.5.3.tar.gz.

File metadata

  • Download URL: architect-0.5.3.tar.gz
  • Upload date:
  • Size: 28.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for architect-0.5.3.tar.gz
Algorithm Hash digest
SHA256 7d12b7b31f1839a7d50acf9ce2b67a7a889741d82a7820f5fe8e2b8110b7fa93
MD5 d412115c01b3555f6b4ddaf62e14e454
BLAKE2b-256 ff05bc42c07ad6421f091422403798b9ec375c65004a562fe02136efbb5d7ce0

See more details on using hashes here.

File details

Details for the file architect-0.5.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for architect-0.5.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d783bdde17a54a325f7c4438f9d80b91f354b80498a84f26ca79f59590061215
MD5 6473f3f0ebf2476b741f906b5015d548
BLAKE2b-256 91c8d5dc7015f661ad3c6699dabbe3d877bd74fc7755d2134b3e545aabc54c95

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