Two way configurations mapping helper for Python.
Project description
📄⇄🛠 Two way configurations mapping helper for Python.
Get Started
from biconfigs import Biconfigs
configs = Biconfigs('configs.json')
# Simply change the dict, and it will automatically save the changes to file.
configs['options'] = {'debug': True,
'username': 'Anthony',
'list': [] }
# Access with simple 'x.y.z' style
configs.options.list.append('example')
Content of file configs.json after execution:
{
"options": {
"debug": true,
"list": [
"example"
],
"username": "Anthony"
}
}
Install
pip install git+https://github.com/antfu/biconfigs.git
Dependencies
No dependencies required 🎉 Tested on Python 2.6, 2.7, 3.3, 3.4, 3.5, pypy, pypy3
Documentation
High frequency update
Normally, Biconfigs will write the changes to file immediately. But sometime you may want to update values frequently, which will result in a IO bottleneck. So you can use ``with`` statement to prevent auto saving for a while.
with configs:
for i in range(1000):
configs['some_key'] = i
# This statement will execute saving process only one time when exiting "with" scope
When to save
Save when: Item create, item delete, list reorder, value change, get_set, etc. NOT sav ing when: Item access, assignment but not changed, etc.
# All the following single statement will cause saving
configs['item'] = 'value'
configs['options'] = {}
configs.options['list'] = []
configs.options.list.append('example')
configs.options['list'] = []
configs.options.clear()
value2 = configs.get_set('item2', 45)
# All the following single statement will NOT cause saving
value = configs.item
configs['item'] = 'value' # The value of 'item' is not changed
value3 = configs.get('item_not_exists', 'default_value')
Get or set
Biconfigs provides a special function get_set for dict. get_set acts just like dict.get(key, default) but it will save the default value to dict if the key is not exists.
License
MIT
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 biconfigs-0.0.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd39d2c5e5fe0e58a3f3130b2cf7b4529ce17401518cae7e7801f63b289728c3 |
|
MD5 | 3802603f255de311a005176ec5ada510 |
|
BLAKE2b-256 | 58b0287583bf25535e65f147f4fafb37fce2e755714b5aef96b6aaad6557dbf4 |