Apply constraints before inserting and updating TinyDB records.
Project description
tinydb-constraint
Apply constraints before inserting and updating TinyDB records.
Installation
Method 1:
$ pip install tinydb-constraint
Method 2:
- Clone the project from GitHub
- Get poetry and
poetry install tinydb-constraint --path PATH/TO/TINYDB/CONSTRAINT
Usage
>>> from tinydb import TinyDB
>>> from tinydb_constraint import ConstraintTable
>>> from datetime import datetime
>>> TinyDB.table_class = ConstraintTable
>>> db = TinyDB('db.json')
>>> db.set_schema({
... 'record_id': int,
... 'modified': datetime
... })
>>> db.schema
{
'record_id': Constraint(type_=int, unique=False, not_null=False),
'modified': Constraint(type_=datetime.datetime, unique=False, not_null=False)
}
Note
I haven't modified the serialization yet, so datetime
type will actually produce datetime.isoformat()
, and to set datetime
, you have to pass a dateutil.parser.parse()
-parsable string.
Advanced usage
Database schema is also settable via Constraint
object.
>>> from tinydb_constraint import Constraint
>>> db.set_schema({
... 'user_id': Constraint(type_=int, unique=True, not_null=True)
... })
If you want to disable certain string sanitization features, like stripping spaces or checking if string can be converted to datetime, this can be done by setting environmental variables.
TINYDB_SANITIZE=0
TINYDB_DATETIME=0
Plan
- Add ForeignKey constraints.
Related projects
- tinydb-viewer - View records generated from TinyDB and alike (e.g. list of dictionaries.)
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
Built Distribution
File details
Details for the file tinydb-constraint-0.1.8.1.tar.gz
.
File metadata
- Download URL: tinydb-constraint-0.1.8.1.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.11.5 CPython/3.7.0 Darwin/17.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb12ba9c7cf9bc6852e0efce1dc1a9c2aeee07f50c61ac40cb00f88077d94caf |
|
MD5 | 35dd8432b9034dd7b1d1d4afd403a96a |
|
BLAKE2b-256 | 55c531039dae1c1def437a1b0422e837b6fd99e42aef241074a0e1bd51ab9e32 |
File details
Details for the file tinydb_constraint-0.1.8.1-py2.py3-none-any.whl
.
File metadata
- Download URL: tinydb_constraint-0.1.8.1-py2.py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.11.5 CPython/3.7.0 Darwin/17.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8672925ab93f453597ad7db877ff61d311a386ba73b939b966b6b3af1e825119 |
|
MD5 | 9335a2020ca216f76176d69ed9185124 |
|
BLAKE2b-256 | e2696990be9abc1ef0f6e703239fc1077bb7247aaaee463873beebb230ec8230 |