Metadata-Version: 1.2
Name: uiclasses
Version: 2.2.1
Summary: Data-Modeling for User Interfaces
Home-page: https://github.com/NewStore-oss/uiclasses
Author: NewStore GmbH
Author-email: opensource+pypi@newstore.com
Maintainer: Gabriel Falcão
Maintainer-email: gabriel@nacaolivre.org
License: UNKNOWN
Project-URL: Documentation, https://uiclasses.readthedocs.io/en/latest/
Project-URL: Source Code, https://github.com/NewStore-oss/uiclasses
Project-URL: Issue Tracker, https://github.com/NewStore-oss/uiclasses/issues
Project-URL: Test Coverage, https://codecov.io/gh/NewStore-oss/uiclasses
Description: UIClasses - Data-Modeling for User Interfaces
        ##############################################
        
        
        .. image:: https://img.shields.io/pypi/dm/uiclasses
           :target: https://pypi.org/project/uiclasses
        
        .. image:: https://img.shields.io/codecov/c/github/NewStore-oss/uiclasses
           :target: https://codecov.io/gh/NewStore-oss/uiclasses
        
        .. image:: https://img.shields.io/github/workflow/status/NewStore-oss/uiclasses/python-3.6?label=python%203.6
           :target: https://github.com/NewStore-oss/uiclasses/actions
        
        .. image:: https://img.shields.io/github/workflow/status/NewStore-oss/uiclasses/python-3.7?label=python%203.7
           :target: https://github.com/NewStore-oss/uiclasses/actions
        
        .. image:: https://img.shields.io/readthedocs/uiclasses
           :target: https://uiclasses.readthedocs.io/
        
        .. image:: https://img.shields.io/github/license/NewStore-oss/uiclasses?label=Github%20License
           :target: https://github.com/NewStore-oss/uiclasses/blob/master/LICENSE
        
        .. image:: https://img.shields.io/pypi/v/uiclasses
           :target: https://pypi.org/project/uiclasses
        
        .. image:: https://img.shields.io/pypi/l/uiclasses?label=PyPi%20License
           :target: https://pypi.org/project/uiclasses
        
        .. image:: https://img.shields.io/pypi/format/uiclasses
           :target: https://pypi.org/project/uiclasses
        
        .. image:: https://img.shields.io/pypi/status/uiclasses
           :target: https://pypi.org/project/uiclasses
        
        .. image:: https://img.shields.io/pypi/pyversions/uiclasses
           :target: https://pypi.org/project/uiclasses
        
        .. image:: https://img.shields.io/pypi/implementation/uiclasses
           :target: https://pypi.org/project/uiclasses
        
        .. image:: https://img.shields.io/snyk/vulnerabilities/github/NewStore-oss/uiclasses
           :target: https://github.com/NewStore-oss/uiclasses/network/alerts
        
        .. image:: https://img.shields.io/github/v/tag/NewStore-oss/uiclasses
           :target: https://github.com/NewStore-oss/uiclasses/releases
        
        - Powered by `Python 3 Data Classes <https://docs.python.org/3/library/dataclasses.html>`_.
        - 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
        ============
        
        
        .. code:: bash
        
           pip install uiclasses
        
        
        Basic Usage
        ===========
        
        .. code:: python
        
           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())
        
        
        .. image:: https://github.com/NewStore-oss/uiclasses/raw/master/docs/source/_static/screenshot-blog-list-pretty-table.png
        
        
        .. code:: python
        
           print(published.format_robust_table())
        
        .. image:: https://github.com/NewStore-oss/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
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Environment :: MacOS X
Classifier: Environment :: Handhelds/PDA's
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.6
