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.5.tar.gz (116.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iommi-2.8.5-py2.py3-none-any.whl (204.9 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: iommi-2.8.5.tar.gz
  • Upload date:
  • Size: 116.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for iommi-2.8.5.tar.gz
Algorithm Hash digest
SHA256 aef3e2b0fadf5669bc520ba50076e6905de6aea58526df3a7a67a51697ce7e07
MD5 a4b50f91ef4eb7074d94ef57cbf66855
BLAKE2b-256 14f353f5e11702dcbbbc894fddf81c82f27c15467549fd4c1a36a2e535ed9057

See more details on using hashes here.

File details

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

File metadata

  • Download URL: iommi-2.8.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 204.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for iommi-2.8.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4d83e196711395a067ab613cdf39b071de71ffd6872858c77e827ebcb6553157
MD5 3a7667f7720927d4ac00dec2496a19b1
BLAKE2b-256 257756c6922e0f7a7cefd199b98ad700bcb48e71c3f4d9d64b2020341f212c82

See more details on using hashes here.

Supported by

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