Skip to main content

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


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)

Uploaded Source

Built Distribution

rundb-0.6-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

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

Hashes for rundb-0.6.tar.gz
Algorithm Hash digest
SHA256 1b510e6e842ff06ba3fe43050f1b82a3472861dcc484289f193b3a63610aedea
MD5 cd9d28a8ebf1ad6b3c420d2ce2ca683e
BLAKE2b-256 1873efd40d463d4ba6358da193d43d30150faeef6df43d638f1eddd83e58c71a

See more details on using hashes here.

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

Hashes for rundb-0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d034e8e3ebe26e4857ea93fe916bb8e2adf7f977817cde39119a49731e41fac0
MD5 0790f084add28d13073d1fdc12b5b61c
BLAKE2b-256 5c1a596af2d0040e3907ffa096804ef3089fff44d6e96400c5d23c2aeda9df68

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page