Skip to main content
https://img.shields.io/pypi/dm/uiclasses https://img.shields.io/codecov/c/github/gabrielfalcao/uiclasses https://github.com/gabrielfalcao/uiclasses/actions/workflows/main.yml/badge.svg 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

Download files

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

Source Distribution

uiclasses-3.0.0.tar.gz (17.2 kB view details)

Uploaded Source

File details

Details for the file uiclasses-3.0.0.tar.gz.

File metadata

  • Download URL: uiclasses-3.0.0.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for uiclasses-3.0.0.tar.gz
Algorithm Hash digest
SHA256 78567a63e491c8d18c60310a8e47404a966be6c723c03f48e1b9b48814a8a0d6
MD5 ed86d4a21dc68fd5354c5eeb835c3a60
BLAKE2b-256 b793c1400221f33224f8d5081a5a58ad523a5c8688fedba689297eaa9c2bf352

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

3.0.0 This release

1 file

2.4.0

1 file

2.3.2

1 file

2.3.1

1 file

2.3.0

1 file

2.2.1

1 file

2.2.0

1 file

2.1.0

1 file

2.0.3

1 file

2.0.2

1 file

2.0.1

1 file

2.0.0

1 file

1.1.1

1 file

1.1.0

1 file

1.0.4

1 file

1.0.3

1 file

1.0.0

1 file

0.0.4

1 file

0.0.3

1 file

0.0.2

1 file

0.0.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page