is a Simple, FileBase and Document Oriented database
Project description
Introduction
PantherDB is a Simple, FileBase and Document Oriented database that you can use it in your projects.
Features:
- Document Oriented
- Easy to use
- Written in pure Python +3.11 based on standard type hints
- Handle Database Encryption
Usage
Database:
-
Create a database:
db: PantherDB = PantherDB('database.pantherdb')
-
Create an encrypted database:
from cryptography.fernet import Fernet key = Fernet.generate_key() # Should be static (You should not generate new key on every run) db: PantherDB = PantherDB('database.pantherdb', secret_key=key)
-
Access to a collection:
user_collection: PantherCollection = db.collection('User')
-
Delete a collection:
db.collection('User').drop()
Create:
-
Insert document:
user: PantherDocument = db.collection('User').insert_one(first_name='Ali', last_name='Rn')
Get:
-
Find first document:
user: PantherDocument = db.collection('User').find_one(first_name='Ali', last_name='Rn')
or
user: PantherDocument = db.collection('User').find_one()
-
Find documents:
user: PantherDocument = db.collection('User').find(last_name='Rn')
-
All documents:
users: list[PantherDocument] = db.collection('User').all()
-
Count documents:
users_count: int = db.collection('User').count(first_name='Ali')
Update:
-
Update documents:
user: PantherDocument = db.collection('User').get(first_name='Ali', last_name='Rn') user.update(name='Saba')
-
Find and Update one:
_filter = {'first_name': 'Ali', 'last_name': 'Rn'} is_updated: bool = db.collection('User').update_one(_filter, first_name='Saba')
-
Filter and Update many:
_filter = {'first_name': 'Ali'} updated_count: int = db.collection('User').update_many(_filter, first_name='Saba')
Delete:
-
Delete documents:
user: PantherDocument = db.collection('User').first(first_name='Ali', last_name='Rn') user.delete()
-
Filter and Delete documents:
is_deleted: bool = db.collection('User').delete_one(first_name='Ali', last_name='Rn')
-
Filter and Delete many:
deleted_count: int = db.collection('User').delete_many(last_name='Rn')
TODO:
[x] Add Encryption [ ] Add B+ tree
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
pantherdb-1.2.2.tar.gz
(4.3 kB
view hashes)
Built Distribution
Close
Hashes for pantherdb-1.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d982ab7a96a1d4dad2260938772090fd7b96f49b3d5710b238fb3f6df955ea97 |
|
MD5 | b9b4cfd8e0acc38ed01ec1a57e153b1a |
|
BLAKE2b-256 | b5e51b31a4d9a5c2b3e88bf197eb484b4c5d16d19cf3140749c527d0d033c431 |