AnyBlok documentation¶
AnyBlok is a Python framework allowing to create highly dynamic and modular applications on top of the SQLAlchemy ORM. Applications are made of “bloks” that can be installed, extended, replaced, upgraded or uninstalled.
Bloks can provide SQL Models, Column types, Fields, Mixins, SQL views, or even plain Python code unrelated to the database, and all of these can be dynamically customized, modified, or extended without strong dependencies between them, just by adding new bloks.
Bloks are declared (made available) through dedicated setuptools entry points, and are explicitely installed in the database, which provides the needed dynamicity for multi-tenant scenarios: a given AnyBlok process can connect to several databases, and execute different sets of code on each of them, according to their installed bloks. Installing bloks could, e.g., be done through some HTTP interface (not provided by AnyBlok itself).
That being said, Anyblok’s scope of usage is by no means limited to multi-tenant applications. The flexibility and extendability it provides can be enjoyed even when working on a single database.
AnyBlok is released under the terms of the Mozilla Public License version 2.
- Front Matter
- Basic usage
- Advanced topics
- MEMENTO
- AnyBlok framework internals
- anyblok module
- anyblok.declarations module
- anyblok.model module
- anyblok.model.plugins module
- anyblok.mapper module
- anyblok.config module
- anyblok.logging module
- anyblok.imp module
- anyblok.environment module
- anyblok.blok module
- anyblok.registry module
- anyblok.migration module
- anyblok.field module
- anyblok.column module
- anyblok.relationship module
- anyblok._graphviz module
- anyblok.scripts module
- anyblok.tests.testcase module
- Builtin Bloks
- CHANGELOG
- 0.19.1 (2018-06-07)
- 0.19.0 (2018-05-29)
- 0.18.0 (2018-05-22)
- 0.17.4 (2018-05-16)
- 0.17.3 (2018-05-16)
- 0.17.2 (2018-02-27)
- 0.17.1 (2018-02-24)
- 0.17.0 (2018-02-23)
- 0.16.2 (2018-02-12)
- 0.16.1 (2018-01-29)
- 0.16.0 (2018-01-25)
- 0.15.0 (2018-01-17)
- 0.14.0 (2018-01-15)
- 0.13.0 (2018-01-09)
- 0.12.2 (2018-01-04)
- 0.12.1 (2017-12-23)
- 0.12.0 (2017-12-23)
- 0.11.1 (2017-11-28)
- 0.11.0 (2017-11-20)
- 0.10.1 (2017-11-14)
- 0.10.0 (2017-11-14)
- 0.9.10 (2017-09-23)
- 0.9.9 (2017-09-19)
- 0.9.8 (2017-09-19)
- 0.9.7 (2017-07-03)
- 0.9.6 (2017-07-03)
- 0.9.5 (2016-12-05)
- 0.9.4 (2016-10-27)
- 0.9.3 (2016-10-12)
- 0.9.2 (2016-10-12)
- 0.9.1 (2016-10-3)
- 0.9.0 (2016-07-11)
- 0.8.5 (2016-06-20)
- 0.8.4 (2016-06-14)
- 0.8.3 (2016-04-18)
- 0.8.2 (2016-04-06)
- 0.8.1 (2016-03-15)
- 0.8.0 (2016-02-05)
- 0.7.2 (2016-01-14)
- 0.7.1 (2016-01-08)
- 0.7.0 (2016-01-07)
- 0.6.0 (2016-01-07)
- 0.5.2 (2015-09-28)
- 0.5.1 (2015-08-29)
- 0.5.0 (2015-08-28)
- 0.4.1 (2015-07-22)
- 0.4.0 (2015-06-21)
- 0.3.5 (2015-05-10)
- 0.3.4 (2015-05-10)
- 0.3.3 (2015-05-04)
- 0.3.2 (2015-05-04)
- 0.3.1 (2015-05-04)
- 0.3.0 (2015-05-03)
- 0.2.12 (2015-04-29)
- 0.2.11 (2015-04-26)
- 0.2.10 (2015-04-26)
- 0.2.9 (2015-04-18)
- 0.2.8 (2015-04-16)
- 0.2.7 (2015-04-15)
- 0.2.6 (2015-04-11)
- 0.2.5 (2015-03-23)
- 0.2.3 (2015-03-23)
- 0.2.2 (2015-03-15)
- 0.2.0 (2015-02-13)
- 0.1.3 (2015-02-03)
- 0.1.2 (2015-02-02)
- 0.1.1 (2015-01-23)
- 0.1.0 (2015-01-23)
- ROADMAP
- Mozilla Public License Version 2.0
- 1. Definitions
- 2. License Grants and Conditions
- 3. Responsibilities
- 4. Inability to Comply Due to Statute or Regulation
- 5. Termination
- 6. Disclaimer of Warranty
- 7. Limitation of Liability
- 8. Litigation
- 9. Miscellaneous
- 10. Versions of the License
- Exhibit A - Source Code Form License Notice
- Exhibit B - “Incompatible With Secondary Licenses” Notice