You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
363 lines
7.3 KiB
363 lines
7.3 KiB
Metadata-Version: 2.1
|
|
Name: pysondb-v2
|
|
Version: 2.0.0
|
|
Summary: A Simple, Lightweight, Efficent JSON based database for Python.
|
|
Home-page: https://github.com/pysonDB/pysonDB-v2
|
|
Author: Adwaith Rajesh
|
|
Author-email: adwaithrajesh3180@gmail.com
|
|
License: MIT
|
|
Platform: UNKNOWN
|
|
Classifier: License :: OSI Approved :: MIT License
|
|
Classifier: Programming Language :: Python :: 3
|
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
Classifier: Programming Language :: Python :: 3.7
|
|
Classifier: Programming Language :: Python :: 3.8
|
|
Classifier: Programming Language :: Python :: 3.9
|
|
Classifier: Programming Language :: Python :: 3.10
|
|
Requires-Python: >=3.7.0
|
|
Description-Content-Type: text/markdown
|
|
License-File: LICENSE
|
|
Provides-Extra: all
|
|
Requires-Dist: ujson (==5.2.0) ; extra == 'all'
|
|
Requires-Dist: prettytable (==3.3.0) ; extra == 'all'
|
|
Provides-Extra: pretttytable
|
|
Requires-Dist: prettytable (==3.3.0) ; extra == 'pretttytable'
|
|
Provides-Extra: ujson
|
|
Requires-Dist: ujson (==5.2.0) ; extra == 'ujson'
|
|
|
|
## PysonDB-V2
|
|
|
|
## The new DB schema
|
|
|
|
```json
|
|
|
|
{
|
|
"version": 2,
|
|
"keys" ["a", "b", "c"],
|
|
"data": {
|
|
"384753047545745": {
|
|
"a": 1,
|
|
"b": "something",
|
|
"c": true
|
|
}
|
|
}
|
|
}
|
|
|
|
```
|
|
|
|
## quick walk through of all the methods
|
|
|
|
```python
|
|
from pysondb import PysonDB
|
|
|
|
|
|
db = PysonDB('test.json')
|
|
```
|
|
|
|
```python
|
|
!cat test.json
|
|
```
|
|
|
|
{
|
|
"version": 2,
|
|
"keys": [],
|
|
"data": {}
|
|
}
|
|
|
|
### add
|
|
|
|
```python
|
|
id = db.add({
|
|
'name': 'adwaith',
|
|
'age': 4,
|
|
'knows_python': True
|
|
})
|
|
print(id)
|
|
```
|
|
|
|
231541323453553701
|
|
|
|
```python
|
|
!cat test.json
|
|
```
|
|
|
|
{
|
|
"version": 2,
|
|
"keys": [
|
|
"age",
|
|
"knows_python",
|
|
"name"
|
|
],
|
|
"data": {
|
|
"231541323453553701": {
|
|
"name": "adwaith",
|
|
"age": 4,
|
|
"knows_python": true
|
|
}
|
|
}
|
|
}
|
|
|
|
## add_many
|
|
|
|
```python
|
|
added_values = db.add_many([
|
|
{
|
|
'name': 'fredy',
|
|
'age': 19,
|
|
'knows_python': True
|
|
},
|
|
{
|
|
'name': 'kenny',
|
|
'age': 19,
|
|
'knows_python': False
|
|
}
|
|
])
|
|
print(added_values)
|
|
```
|
|
|
|
None
|
|
|
|
```python
|
|
added_values = db.add_many([
|
|
{
|
|
'name': 'mathew',
|
|
'age': 22,
|
|
'knows_python': False
|
|
},
|
|
{
|
|
'name': 'abi',
|
|
'age': 19,
|
|
'knows_python': True
|
|
}
|
|
], json_response=True)
|
|
print(added_values)
|
|
```
|
|
|
|
{'330993934764646664': {'name': 'mathew', 'age': 22, 'knows_python': False}, '131457970736078364': {'name': 'abi', 'age': 19, 'knows_python': True}}
|
|
|
|
```python
|
|
!cat test.json
|
|
```
|
|
|
|
{
|
|
"version": 2,
|
|
"keys": [
|
|
"age",
|
|
"knows_python",
|
|
"name"
|
|
],
|
|
"data": {
|
|
"231541323453553701": {
|
|
"name": "adwaith",
|
|
"age": 4,
|
|
"knows_python": true
|
|
},
|
|
"263597723557497291": {
|
|
"name": "fredy",
|
|
"age": 19,
|
|
"knows_python": true
|
|
},
|
|
"299482429835276227": {
|
|
"name": "kenny",
|
|
"age": 19,
|
|
"knows_python": false
|
|
},
|
|
"330993934764646664": {
|
|
"name": "mathew",
|
|
"age": 22,
|
|
"knows_python": false
|
|
},
|
|
"131457970736078364": {
|
|
"name": "abi",
|
|
"age": 19,
|
|
"knows_python": true
|
|
}
|
|
}
|
|
}
|
|
|
|
## get_by_id
|
|
|
|
```python
|
|
print(db.get_by_id('263597723557497291'))
|
|
```
|
|
|
|
{'name': 'fredy', 'age': 19, 'knows_python': True}
|
|
|
|
## get_by_query
|
|
|
|
```python
|
|
def age_divisible_by_2(data):
|
|
if data['age'] % 2 == 0:
|
|
return True
|
|
|
|
print(db.get_by_query(query=age_divisible_by_2))
|
|
```
|
|
|
|
{'231541323453553701': {'name': 'adwaith', 'age': 4, 'knows_python': True}, '330993934764646664': {'name': 'mathew', 'age': 22, 'knows_python': False}}
|
|
|
|
## get_all
|
|
|
|
```python
|
|
print(db.get_all())
|
|
```
|
|
|
|
{'231541323453553701': {'name': 'adwaith', 'age': 4, 'knows_python': True}, '263597723557497291': {'name': 'fredy', 'age': 19, 'knows_python': True}, '299482429835276227': {'name': 'kenny', 'age': 19, 'knows_python': False}, '330993934764646664': {'name': 'mathew', 'age': 22, 'knows_python': False}, '131457970736078364': {'name': 'abi', 'age': 19, 'knows_python': True}}
|
|
|
|
## update_by_id
|
|
|
|
```python
|
|
updated_data = db.update_by_id('231541323453553701', {
|
|
'age': 18
|
|
})
|
|
print(updated_data)
|
|
```
|
|
|
|
{'name': 'adwaith', 'age': 18, 'knows_python': True}
|
|
|
|
## update_by_query
|
|
|
|
```python
|
|
updated_ids = db.update_by_query(
|
|
query=lambda x: x['name'] == 'abi',
|
|
new_data={'knows_python': False}
|
|
)
|
|
print(updated_ids)
|
|
```
|
|
|
|
['131457970736078364']
|
|
|
|
```python
|
|
!cat test.json
|
|
```
|
|
|
|
{
|
|
"version": 2,
|
|
"keys": [
|
|
"age",
|
|
"knows_python",
|
|
"name"
|
|
],
|
|
"data": {
|
|
"231541323453553701": {
|
|
"name": "adwaith",
|
|
"age": 18,
|
|
"knows_python": true
|
|
},
|
|
"263597723557497291": {
|
|
"name": "fredy",
|
|
"age": 19,
|
|
"knows_python": true
|
|
},
|
|
"299482429835276227": {
|
|
"name": "kenny",
|
|
"age": 19,
|
|
"knows_python": false
|
|
},
|
|
"330993934764646664": {
|
|
"name": "mathew",
|
|
"age": 22,
|
|
"knows_python": false
|
|
},
|
|
"131457970736078364": {
|
|
"name": "abi",
|
|
"age": 19,
|
|
"knows_python": false
|
|
}
|
|
}
|
|
}
|
|
|
|
## delete_by_id
|
|
|
|
```python
|
|
db.delete_by_id('131457970736078364') # delete abi
|
|
```
|
|
|
|
```python
|
|
!cat test.json
|
|
```
|
|
|
|
{
|
|
"version": 2,
|
|
"keys": [
|
|
"age",
|
|
"knows_python",
|
|
"name"
|
|
],
|
|
"data": {
|
|
"231541323453553701": {
|
|
"name": "adwaith",
|
|
"age": 18,
|
|
"knows_python": true
|
|
},
|
|
"263597723557497291": {
|
|
"name": "fredy",
|
|
"age": 19,
|
|
"knows_python": true
|
|
},
|
|
"299482429835276227": {
|
|
"name": "kenny",
|
|
"age": 19,
|
|
"knows_python": false
|
|
},
|
|
"330993934764646664": {
|
|
"name": "mathew",
|
|
"age": 22,
|
|
"knows_python": false
|
|
}
|
|
}
|
|
}
|
|
|
|
## delete_by_query
|
|
|
|
```python
|
|
ids = db.delete_by_query(lambda x: x['knows_python'] is False)
|
|
print(ids)
|
|
```
|
|
|
|
['299482429835276227', '330993934764646664']
|
|
|
|
```python
|
|
!cat test.json
|
|
```
|
|
|
|
{
|
|
"version": 2,
|
|
"keys": [
|
|
"age",
|
|
"knows_python",
|
|
"name"
|
|
],
|
|
"data": {
|
|
"231541323453553701": {
|
|
"name": "adwaith",
|
|
"age": 18,
|
|
"knows_python": true
|
|
},
|
|
"263597723557497291": {
|
|
"name": "fredy",
|
|
"age": 19,
|
|
"knows_python": true
|
|
}
|
|
}
|
|
}
|
|
|
|
## purge
|
|
|
|
```python
|
|
db.purge()
|
|
```
|
|
|
|
```python
|
|
!cat test.json
|
|
```
|
|
|
|
{
|
|
"version": 2,
|
|
"keys": [],
|
|
"data": {}
|
|
}
|
|
|
|
For more docs click [here](https://github.com/pysonDB/pysonDB-v2/tree/master/docs)
|
|
|
|
|