very simple model framework
Project description
As the name says, this is a very simple model framework. It can be used for data validation and (de-)serialization.
Installation
Install with pip:
$ pip install --user simple_model
Usage
Examples:
>>> from simple_model import Model, Attribute >>> class Data(Model): ... name = Attribute(str) ... some_value = Attribute(str, nullable=True) ... another_value = Attribute(int, fallback=0) >>> Data(name = 'test', some_value = None, another_value = 12).__attributes__() { 'name': 'test', 'some_value': None, 'another_value': 12 } >>> Data(name = 'test', _allow_missing=True).__attributes__() { 'name': 'test', 'some_value': None, 'another_value': 0 } >>> Data(name = 'test', unknown_value = True, _allow_missing=True, _allow_unknown=True).__attributes__() { 'name': 'test', 'some_value': None, 'another_value': 0 } >>> init_dict = {'name': 'test', 'some_value': 'val', 'another_value': 3} >>> Data(**init_dict) { 'name': 'test', 'some_value': 'val', 'another_value': 3 }
Initializing with unknown or missing attributes while not specifying to allow them will result in a TypeError.
The default behaviour for missing/unknown attributes can be changed:
>>> class Data(Model): ... __allow_unknown__ = True ... __allow_missing__ = True
Serialization can be achieved easily, for example:
>>> import json >>> def serialize(model): ... return json.dumps(model.__attributes__()) >>> def deserialize(string): ... return Data(**json.loads(string))
Tests
To run the tests use tox:
$ tox
Or run py.test manually (not recommended, needs simple_module installed):
$ py.test .
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
simple_model-0.0.4.tar.gz
(2.8 kB
view details)
File details
Details for the file simple_model-0.0.4.tar.gz
.
File metadata
- Download URL: simple_model-0.0.4.tar.gz
- Upload date:
- Size: 2.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3678f7e6689a19e474dcdd851cf9b0a440ae829fd62d06c3d28b07b0a10761e7 |
|
MD5 | a62a0755e74fff66bf06764b801003a7 |
|
BLAKE2b-256 | fe2f2753ef13f22e6bf3a75d799739694f349208e6834effc2d4cd563e41de9a |