Simple and lightweight document oriented database
Project description
LemonDB
Development Status: Beta
Simple ang lightweight document oriented database written in pure Python 3
(3.9)
Examples
Data insertion Example:
from lemondb import LemonDB
db = LemonDB('db')
db.insert({'name': 'John Doe'})
Query Example
LemonDB.Search
can accept 3 types of parameters:
- Standard
Query
class - Regular Expression
- Lambda Functions
from lemondb import LemonDB
from lemondb import Query
db = LemonDB('db')
db.insert_many([
{'name': 'John Doe'},
{'name': 'Elizabeth Doe'}
])
data = db.search(query.name == 'John Doe')
print(data)
# Output: John Doe
#: Using lambda
data = db.search(lambda x: x['name'] == 'John Doe')
print(data)
# Output: John Doe
#: Using regular expression
data = db.search(
query='^J(.*?)e$' #: Match when the first string is J and endswith e
)
print(data)
# Output: John Doe
Encrypted LemonDB
You can use Sidle Encryption within the LemonDB. Just use the SidleMiddleware
and SidlePlugin
from lemondb import LemonDB
from lemondb.middleware import SidleMiddleware
from lemondb.plugin import SidlePlugin
db = LemonDB(
name = 'sidle_db',
middleware_cls = SidleMiddleware(password='password123'),
plugin_cls = SidlePlugin
)
db.insert({'name': 'John Doe'})
Creating Middlewares & Plugins
By creating middleware, you need to use the base class lemondb.middleware.base.BaseMiddleware
. The BaseMiddleware
class handle all operation like read, write and delete. While plugins handle the initializing of the
database operation and it is called whenever the LemonDB
instance is initialized.
Just make sure to create a class based on the BaseClasses and inherit all functions, if the methods/functions are not
inherited properly, it will throw an NotImplementedError
.
Finally,you can call your custom middleware or plugin using the plugin_cls
and middleware_cls
parameter for the
database. The default value is JsonMiddleware
and LemonPlugin
. Here is the example
from lemondb import LemonDB
from middleware import CustomMiddleware
from plugin import CustomPlugin
db = LemonDB(
name='db.json',
middleware_cls=CustomMiddleware,
plugin_cls=CustomPlugin
)
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
File details
Details for the file lemondb-0.0.3b0.tar.gz
.
File metadata
- Download URL: lemondb-0.0.3b0.tar.gz
- Upload date:
- Size: 17.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d18cbfb9b60afa00a886254fa9175892cc4c4f280ae06cbee69b8680b350dfc2 |
|
MD5 | c96410c4c1b5125fe941dc05f9851cf2 |
|
BLAKE2b-256 | 4dcd0fbe49346b891ff70219360d7484933f7562f6cf9330f61b5caccabd998a |