Skip to main content

iommi is a high level framework built on django

Project description

https://github.com/TriOptima/iommi/workflows/tests/badge.svg https://codecov.io/gh/TriOptima/iommi/branch/master/graph/badge.svg https://repl.it/badge/github/boxed/iommi-repl.it https://img.shields.io/discord/773470009795018763

iommi is a Django-based framework that magically create pages, forms and tables with advanced out-of-the-box functionality based on your applications models - without sacrificing flexibility and control.

Major features:

  • A system to project django model definitions into more high level definitions

  • Forms: view models, data validation, and parsing

  • Queries: filtering lists/query sets

  • Tables: view models for lists/query sets, html tables, and CSV reports

  • Pages: compose pages from parts like forms, tables and html fragments

All the components are written with the same philosophy of:

  • Everything has a name

  • Traversing a namespace is done with __ when . can’t be used in normal python syntax

  • Callables for advanced usage, values for the simple cases

  • Late binding

  • Declarative/programmatic hybrid API

  • Prepackaged commonly used patterns (that can still be customized!)

  • Single point customization with no boilerplate

  • Escape hatches included

See philosophy for explanations of all these.

Example:

class IndexPage(Page):
    title = html.h1('Supernaut')
    welcome_text = 'This is a discography of the best acts in music!'

    artists = Table(auto__model=Artist, page_size=5)
    albums = Table(
        auto__model=Album,
        page_size=5,
    )
    tracks = Table(auto__model=Album, page_size=5)


urlpatterns = [
    path('', IndexPage().as_view()),
]

This creates a page with three separate tables, a header and some text:

docs/README-screenshot.png

For more examples, see the examples project.

Usage

See usage.

Running tests

You need to have tox installed then:

make venv
source env/bin/activate
make test
make test-docs

License

BSD

Documentation

https://docs.iommi.rocks

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

iommi-2.8.6.tar.gz (117.1 kB view details)

Uploaded Source

Built Distribution

iommi-2.8.6-py2.py3-none-any.whl (206.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file iommi-2.8.6.tar.gz.

File metadata

  • Download URL: iommi-2.8.6.tar.gz
  • Upload date:
  • Size: 117.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.6

File hashes

Hashes for iommi-2.8.6.tar.gz
Algorithm Hash digest
SHA256 4eda628e123f7cbd284b65499a65e7c79ed8b7d684d05d9eeca6c214aceed256
MD5 d18d2e50efabedcc97a5e7712c1027a0
BLAKE2b-256 ba70a7517bb72f5e27b73aeceb5bcb2d43a01ad66412e918bdca3cec553aba9a

See more details on using hashes here.

Provenance

File details

Details for the file iommi-2.8.6-py2.py3-none-any.whl.

File metadata

  • Download URL: iommi-2.8.6-py2.py3-none-any.whl
  • Upload date:
  • Size: 206.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.6

File hashes

Hashes for iommi-2.8.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d2fa89b540a008ef6f2b00bff1147aa2861dde649a157de38c71ea86826a6d78
MD5 53e2b4d6ca8eca8b77e0c326c5448be4
BLAKE2b-256 a20a04e67e5f1ac0a654924ae3525682406a18c8e45e593dad84435b5b3eb895

See more details on using hashes here.

Provenance

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