Moonlight is a lightweight JSON-database for Python.
Project description
Moonlight
Moonlight is a lightweight JSON-database for Python.
Installing database library
pip install Moonlight
Class
Moonlight - database management class
Has the following set of methods:
0. async push()
1. async all()
2. async get()
3. async update()
5. async delete()
6. async drop()
Creating database
You just need to create an instance of the Moonlight-class, passing the path to the JSON file as an argument.
For example,
from Moonlight import Moonlight
database: Moonlight = Moonlight('../databases/database.json')
Arguments
- filename - path to database .json-file
- primary_key - primary key name (default: 'id')
- show_messages - tuple of messages that will be output during operation (default: ('warning', 'error'))
- 'success'
- 'warning'
- 'error'
Methods
Method examples will be given using the database variable we set.
Quick Methods
-
0. Moonlight.push
-
1. Moonlight.all
-
2. Moonlight.get
-
3. Moonlight.update
-
5. Moonlight.delete
-
6. Moonlight.drop
push()
Adds an object with the given fields to the database
Arguments:
- data_to_push (dict[str, any]) - the key-value dictionary to be added to the database
Returns id (int).
identifier: int = await database.push(
{
'name' : 'Bertram Gilfoyle',
'job' : 'Pied Piper Inc.',
'occupation' : 'Vice President Of Architecture'
}
)
print(identifier)
# output >> 22104564398807
# ^^^^^^^^^^^^^^
# ID is 14-digit integer
all()
Get all objects from the database
Returns all_objects (list[dict[str, any]])
data: list[dict[str, any]] = await database.all()
print(data)
# output >>
# [
# {
# 'id': 22104564398807,
# 'name': 'Bertram Gilfoyle',
# 'job': 'Pied Piper Inc.',
# 'occupation': 'Vice President Of Architecture'
# }
# ]
get()
Get object/s from the database by query
Arguments
- query (dict[str, any]) - the key-value dictionary to find in database
Returns object/s (list[dict[str, any]]).
data: list[dict[str, any]] = await database.get({
'job' : 'Pied Piper Inc.'
})
print(data)
# output >>
# [
# {
# 'id': 22104564398807,
# 'name': 'Bertram Gilfoyle',
# 'job': 'Pied Piper Inc.',
# 'occupation': 'Vice President Of Architecture'
# }
# ]
update()
Update object in the database
Arguments
- data_to_update (dict[str, any]) - the key-value dictionary to change in object in database (primary_key in
data_to_update
required!)
Returns id (int).
await database.update(
{
'id' : 22104564398807,
'occupation' : 'Network engineer'
}
)
# changed to >>
# [
# {
# 'id': 22104564398807,
# 'name': 'Bertram Gilfoyle',
# 'job': 'Pied Piper Inc.',
# 'occupation': 'Network engineer'
# }
# ]
delete()
Remove object from the database
Arguments
- id (14-digit int) - identifier of element
Returns object (dict[str, any])
await database.delete(22104564398807)
# database file changed to >>
# {
# "data": []
# }
#
# will returned >>
# {
# 'id': 22104564398807,
# 'name': 'Bertram Gilfoyle',
# 'job': 'Pied Piper Inc.',
# 'occupation': 'Network engineer'
# }
drop()
Removes all database data
await database.drop()
# database-file writes >>
# {
# "data": []
# }
Author
_ _ _ _ _
__| | ___| || | ___ _ _| | |_
/ _` |/ _ \ || |_ / _ \| | | | | __|
| (_| | __/__ _| (_) | |_| | | |_
\__,_|\___| |_| \___/ \__,_|_|\__|
Thank you a lot!
How to reach me
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
Built Distribution
Hashes for MoonlightDB-1.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68f6399f4049e4b8b1cfab8197ff53a302e74017093d633aac3cd9f0c8ad1a1f |
|
MD5 | a371ae8a87a2371d9e5d200850ed8e08 |
|
BLAKE2b-256 | ce3a50ee89526a5e2a47ac7977c0070648976532383c8b45fa279168dd1d3150 |