Banco de dados local com JSON — zero dependencias, 100% stdlib, thread-safe
Project description
Pybase
Base para criacao de bancos de dados locais com JSON. Zero dependencias, 100% stdlib. Operacoes de escrita atomicas, thread-safe.
Instalacao
pip install pybasedb-json
Uso
from pybase import Database, Query
db = Database("./data", "mydb", "minha-senha").open("minha-senha")
users = db.collection("users")
users.add({"id": "a1", "name": "marcos", "age": 25})
users.add_many([
{"id": "a2", "name": "ana", "age": 30},
{"id": "a3", "name": "marcos", "age": 40},
])
print(len(users)) # 3
print(users.count(name="marcos")) # 2
for doc in users:
print(doc["name"]) # marcos, ana, marcos
doc = users.get("a1") # por id
print(doc) # {"id": "a1", "name": "marcos", "age": 25}
q = Query(users)
print(q.find(name="marcos")) # [doc_a1, doc_a3]
print(q.sort("age", reverse=True).limit(1).find()) # [doc_a3]
print(q.find_one(name="ana")) # {"id": "a2", ...}
print(q.exists(name="joao")) # False
users.actualize({"age": 26}, name="marcos")
users.rem(id="a3")
users.drop() # limpa colecao
# db.drop("minha-senha") # deleta banco inteiro
Estrutura
Pybase/
pybase/
__init__.py # exports: Database, Collection, Query, PybaseError, ...
database.py # Database: gerencia diretorio de tabelas JSON
collections.py # Collection: CRUD atomico com lock por colecao
query.py # Query: find/find_one/exists + sort/limit/offset
exceptions.py # PybaseError > DatabaseError, CollectionError
utils.py # Utils: sha256 encode
pyproject.toml
Documentacao
Veja docs/ com referencia completa de cada metodo.
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
pybasedb_json-0.2.0.tar.gz
(4.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pybasedb_json-0.2.0.tar.gz.
File metadata
- Download URL: pybasedb_json-0.2.0.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4eb7d0f59a4974035f207a45ee7dc8eaaf01b9d99e275d4fe6c3939169873ed0
|
|
| MD5 |
ab9aa8b6a40ddeaef17609e17ae01329
|
|
| BLAKE2b-256 |
ed43d8768c56854de792d67e1ec426fbbc17ecada153af5825653b75f7cdd843
|
File details
Details for the file pybasedb_json-0.2.0-py3-none-any.whl.
File metadata
- Download URL: pybasedb_json-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b867e2b4da9d4a84501d52e6c4eebe26a7623a4925565b17c4ed3b26b5b1622
|
|
| MD5 |
2c57dc5858a87fa560247c0b57d23f7d
|
|
| BLAKE2b-256 |
2c3317384859d71083730a470b9447fd90ec6b23f27478f24b656f294f5e58ae
|