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.

Files for rundb, version 0.6
Filename, size File type Python version Upload date Hashes
Filename, size rundb-0.6-py3-none-any.whl (20.4 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size rundb-0.6.tar.gz (6.3 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page