A set of tools which enhances ORMs written in Python with more features
Project description
Architect is a set of tools which enhances ORMs written in Python with more features and simplifies different database related complex tasks.
Features
Supported ORMs
Django >= 1.4
Peewee >= 2.2.0
Pony >= 0.5.0
SQLAlchemy >= 0.8.0
SQLObject >= 1.5.0
Supported DBs
PostgreSQL >= 8.0
MySQL >= 5.5
Supports Python 2.6 - 3.5
Extensively documented
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:
Copyright and License
Architect is licensed under Apache 2.0 license. Check the LICENSE for details.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d12b7b31f1839a7d50acf9ce2b67a7a889741d82a7820f5fe8e2b8110b7fa93 |
|
MD5 | d412115c01b3555f6b4ddaf62e14e454 |
|
BLAKE2b-256 | ff05bc42c07ad6421f091422403798b9ec375c65004a562fe02136efbb5d7ce0 |
File details
Details for the file architect-0.5.3-py2.py3-none-any.whl
.
File metadata
- Download URL: architect-0.5.3-py2.py3-none-any.whl
- Upload date:
- Size: 31.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d783bdde17a54a325f7c4438f9d80b91f354b80498a84f26ca79f59590061215 |
|
MD5 | 6473f3f0ebf2476b741f906b5015d548 |
|
BLAKE2b-256 | 91c8d5dc7015f661ad3c6699dabbe3d877bd74fc7755d2134b3e545aabc54c95 |