Metadata-Version: 2.1
Name: strictus
Version: 1.0.1
Summary: Strictus (a rewrite of Strictus Dictus)
Home-page: https://github.com/jbasko/strictus
Author: Jazeps Basko
Author-email: jazeps.basko@gmail.com
Maintainer: Jazeps Basko
Maintainer-email: jazeps.basko@gmail.com
License: MIT
Keywords: nested schema dictionary attribute attrdict type hinting typing annotations
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.7.0
Description-Content-Type: text/markdown

# strictus

A much tested rewrite of [strictus-dictus][1] ([github repo][2]) which does not extend `dict`.

### Installation

```bash
pip install strictus
```

### Usage

```python
from typing import List

from strictus.core import strictus, strictus_field


class Item(strictus):
    id: str
    name: str


class ItemList(strictus):
    items: List[Item] = strictus_field(default_factory=list)


item_list = ItemList({"items": [{"id": 1, "name": "first"}]})
print(item_list.items[0].name)  # prints "first"
print(item_list.to_dict())  # prints "{'items': [{'id': '1', 'name': 'first'}]}"

```

[1]: https://pypi.org/project/strictus-dictus/
[2]: https://github.com/jbasko/strictus-dictus


