Data-Modeling for User Interfaces


License
MIT
Install
pip install uiclasses==3.0.0

Documentation

UIClasses - Data-Modeling for User Interfaces

https://img.shields.io/pypi/dm/uiclasses https://img.shields.io/codecov/c/github/gabrielfalcao/uiclasses https://img.shields.io/readthedocs/uiclasses https://img.shields.io/github/license/gabrielfalcao/uiclasses?label=Github%20License https://img.shields.io/pypi/v/uiclasses https://img.shields.io/pypi/l/uiclasses?label=PyPi%20License https://img.shields.io/pypi/format/uiclasses https://img.shields.io/pypi/status/uiclasses https://img.shields.io/pypi/pyversions/uiclasses https://img.shields.io/pypi/implementation/uiclasses https://img.shields.io/snyk/vulnerabilities/github/gabrielfalcao/uiclasses https://img.shields.io/github/v/tag/gabrielfalcao/uiclasses
  • Powered by Python 3 Data Classes.
  • Objects optimized for user interfaces.
  • Methods to traverse nested dicts, convert to and from json
  • ModelList and ModelSet collections for robust manipulation of collections of models.
  • No I/O happens in models.
  • Collections can be easily cached to leverage responsive user interfaces.

Installation

pip install uiclasses

Basic Usage

from uiclasses import Model


class BlogPost(Model):
    id: int
    title: str
    body: str


post1 = BlogPost({"id": 1, "title": "title 1", "body": "body 1", "wimsical_extra_field": "lala land"})
post2 = BlogPost(id=2, title="title 2", body="body 2", extradata='stored but invisible')

published = BlogPost.List([post1, post2])

print(published.format_pretty_table())

https://github.com/gabrielfalcao/uiclasses/raw/master/docs/source/_static/screenshot-blog-list-pretty-table.png

print(published.format_robust_table())

https://github.com/gabrielfalcao/uiclasses/raw/master/docs/source/_static/screenshot-blog-list-robust-table.png

Notes:

  • This is not designed to be fast, when adding data to models their types might cast and validated, which is costly. - filtering collections by string values cause glob match