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

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)