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
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 |