Metadata-Version: 2.1
Name: dumbee
Version: 0.2.2
Summary: A dumb database, not for production
Home-page: https://github.com/dschenck/dumbee
Author: David Schenck
Author-email: david.schenck@outlook.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: jsonschema
Requires-Dist: pydantic

# dumbee

Pretend it's a database

## Installation

```
pip install dumbee
```

## Getting started

```python
import dumbee

# create an Engine
db = dumbee.Engine(
    driver=dumbee.drivers.Filesystem("./data", extensions=[(".", "json")]),
    middlewares=dumbee.Pipeline(
        [
            dumbee.ext.logging.Logger(),
            dumbee.ext.jsonschema.Validator(
                {
                    "schema": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "age":{
                                "type":"number"
                            }
                        },
                        "required":["name"]
                    },
                    "paths":[
                        "./users/[A-Za-z]+$"
                    ]
                }
            ),
            dumbee.ext.json.Serializer(),
        ]
    ),
)

# write and read back a record
me = (
    db
    .collections["users"]
    .get("me")
    .write({"name":"David", "age":32})
    .read()
)

# nested collection
repos = (
    db
    .collections["users"]
    .get("me")
    .collections["repositories"]
    .get("OSS")
    .write(["easychart","easytree","doubledate","dumbee"])
    .read()
)
```
