Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

iommi is a high level framework built on django

Project description

https://travis-ci.org/TriOptima/iommi.svg?branch=master https://codecov.io/gh/TriOptima/iommi/branch/master/graph/badge.svg https://repl.it/badge/github/boxed/iommi-repl.it

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

We use hammett for tests, so pip install hammett then run hammett.

There’s a make test-live target for running tests interactively. You first need to pip install watchdog pyyaml argh.

For running the full tests on all supported environments: install tox then make test-all.

License

BSD

Documentation

https://docs.iommi.rocks

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for iommi, version 2.2.0
Filename, size File type Python version Upload date Hashes
Filename, size iommi-2.2.0.tar.gz (86.2 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page