a lib for working with data
Project description
betterdata by gmanka
library for working with data. Features: automatic writing to disk when new data is added to an object, quick export to yml
navigation
installation^
pip install betterdata
usage^
from betterdata import Data
df = Data(
data = {
'key1': 'val1',
'key2': 'val2',
},
file_path = 'data.yml'
)
after running this code it will automatically create file data.yml
key1: val1
key2: val2
if file already exists, then it will be overwritten
reading^
if you will not specify data
argument, then data will be read from disk
from betterdata import Data
df = Data(
file_path = 'data.yml'
)
print(df)
# {'key1': 'val1', 'key2': 'val2'}
if file does not exists then dict will be empty
from betterdata import Data
from pathlib import Path
Path('data.yml').unlink()
data = Data(
file_path = 'data.yml'
)
print(data)
# {}
autosaves^
if you put something in the dictionary then it will also automatically written to disk
from betterdata import Data
data = Data(
file_path = 'data.yml'
)
print(data)
# {}
print(Path('data.yml').exists())
# False
data['key1'] = 'val1'
data['key2'] = 'val2'
print(data)
# {'key1': 'val1', 'key2': 'val2'}
print(open('data.yml', 'r').read())
# key1: val1
# key2: val2
manual saves^
if you editing list in a dict then it will not automatically saved, but you can save it manually
from betterdata import Data
from pathlib import Path
Path('data.yml').unlink(missing_ok=True)
data = Data(
file_path = 'data.yml'
)
print(data)
# {}
print(Path('data.yml').exists())
# False
data['list'] = [1, 2, 3]
print(data)
# {'list': [1, 2, 3]}
print(open('data.yml', 'r').read())
# list:
# - 1
# - 2
# - 3
data['list'].append('some very important data')
print(data)
# {'list': [1, 2, 3, 'some very important data']}
print(open('data.yml', 'r').read())
# list:
# - 1
# - 2
# - 3
# as you can see, appended data was not written on disk, so you can write it manually
data.to_file()
print(open('data.yml', 'r').read())
# list:
# - 1
# - 2
# - 3
# - some very important data
some syntax sugar^
from betterdata import Data
data = Data(
{
'key1': 'val1',
'key2': 'val2',
}
)
print(data)
# {'key1': 'val1', 'key2': 'val2'}
print(data['key1'])
# val1
print(data.key1)
# val1
print(data.to_str())
# key1: val1
# key2: val2
print('key2' in data)
# True
print('key3' in data)
# False
print(data['key3'])
# None
print(data.key3)
# AttributeError: 'Data' object has no attribute 'key3'
interactive input^
from betterdata import Data
data = Data()
data.interactive_input('key1')
it will interactively ask user to input value for key1
args:
item: str
# key name
digits_to_int: bool = True
# convert digits from str to int
kill_app_on_exit: bool = True
# kill app if user select exit
button
break_if_exist: bool = True
# skip interactive input if key already in dict
sel: Sel = yes_no
# you can specify Sel object from easyselect lib which will be used to confirm the value
text = None
# change text which will be printed on the screen
license^
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
File details
Details for the file betterdata-23.0.2.tar.gz
.
File metadata
- Download URL: betterdata-23.0.2.tar.gz
- Upload date:
- Size: 180.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 100a5110ac1d3bf0c149dfb71d8be31cf15c4b34e76513873968628d236b4846 |
|
MD5 | 52f330d7a12755ea80b3a438310ac78c |
|
BLAKE2b-256 | 4dd4c03a8da70c6b17d88022c3790a73ada24b76ba09ffe4ad989a3d328a8a6d |
File details
Details for the file betterdata-23.0.2-py3-none-any.whl
.
File metadata
- Download URL: betterdata-23.0.2-py3-none-any.whl
- Upload date:
- Size: 3.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47df2da14bcd7e66200db788b23fe5f7ebfbd80b6259b73021cdf080b0c8b749 |
|
MD5 | ece7208b8a410a62c6b999e74a2902a9 |
|
BLAKE2b-256 | 628fd94f3c7cf7140df58f13b0fe29354ecf1b285d66344d619b47bb7656ecf0 |