A pseudo NoSQL database
Project description
RunDB
RunDb is not exactly a database. It is similar to
TinyDB <https://tinydb.readthedocs.io/en/stable/>
__ on storing files
as json.
The main point of this library is to help the user on storing and loading data.
Philosophy
- NoSql with tools to simulate relational
- Table are all fully loaded when declared
- Query are done using python
- Data are dict, they all have a unique key as a string
Quick Overview
.. code:: python
import RunDB
from pathlib import Path
from RunDB.tools.serialization import call_kwargs
# Path to DB folder
db_path = Path("testRunDB")
# Create the Database instance
db = RunDB.Database(db_path)
# Get or Create User table, specifying the key as login (default is "id")
# The key is used to find, if not explicitly given, the database id
User = db.table("user", key="login")
# Same for Group table
Group = db.table(
"group",
key="name",
one2many={"users": "user"}
)
# Create User 1
u1 = User.append({"login": "paul"}) # With values
# without values,
u2 = User["Matthieu"]
u3 = User["Thomas"]
u1.age = 18
u2.age = 20
u3.age = 18
res = User.filter(lambda user: user.age == 20)
list(User.records())
test= Group["test"]
test.users.append(u1)
adminGroup = Group.append({
"name": "admin", # as the table key is "name", name will be poped
})
db["test"]["new"] = {"name": "new data"} # Quick insert
# Check if record has attribute age
"age" in u1 # True
# Get a dict
data = dict(u1.items())
db.dump_all()
Nb: Database are simply Group of Table, We can register Tables from
somewhere else or simply use a Table without Database object
Future
------
- improve relational
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
rundb-0.6.tar.gz
(6.3 kB
view details)
Built Distribution
rundb-0.6-py3-none-any.whl
(20.4 kB
view details)
File details
Details for the file rundb-0.6.tar.gz
.
File metadata
- Download URL: rundb-0.6.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b510e6e842ff06ba3fe43050f1b82a3472861dcc484289f193b3a63610aedea |
|
MD5 | cd9d28a8ebf1ad6b3c420d2ce2ca683e |
|
BLAKE2b-256 | 1873efd40d463d4ba6358da193d43d30150faeef6df43d638f1eddd83e58c71a |
File details
Details for the file rundb-0.6-py3-none-any.whl
.
File metadata
- Download URL: rundb-0.6-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d034e8e3ebe26e4857ea93fe916bb8e2adf7f977817cde39119a49731e41fac0 |
|
MD5 | 0790f084add28d13073d1fdc12b5b61c |
|
BLAKE2b-256 | 5c1a596af2d0040e3907ffa096804ef3089fff44d6e96400c5d23c2aeda9df68 |