Persistent configuration storage for python applications
Project description
py-AppConfig
Persistent configuration storage for python applications. Based on similar npm
modules,
because of the lack of a python
package that does something similar.
Note: This package is still under development. Core functions work just fine, and as intended. But a few QOL features need to be worked in.
Installation
# still in testing, pip package coming soon
pip install py-appconfig
# for now, package is active and working on TestPyPI
pip install -i https://test.pypi.org/simple/ py-appconfig
Usage
from appconfig import AppConfig
config = AppConfig(project_name="myProject", defaults={'a': 10, 'b': 'this is a b'})
config_values = {
'number': 1234,
'string': 'some random string'
}
for item in config_values:
config.set(item, config_values[item])
print(config.get_all())
print(config.get('number'))
print(config.get('string'))
# reset and delete config values
config.reset('a')
config.reset_all()
config.delete('string')
Option/args during init
project_name
:str
-> requiredproject_id
:str
-> optional, default =project_name
version
:str
-> optional, default =0.0.1
conf_name
:str
-> optional, default =config
(filename of config file)conf_ext
:str
-> optional, default =.json
(file extension for config file)verbose
:bool
-> optional, default =False
(for verbose logging, needs more work)defaults
:dict
-> optional, no default value, can be used to set project default settings
Note: 2 and 3 not necessary, but may be used later for project config identification and things like version migration
Module functions
from appconfig import AppConfig
config = AppConfig(project_name="myProject")
config.set('key', 'value')
config.get('key')
config.get_all()
To-do
- Atomically writing configs to prevent corruptions due to runtime errors or system crashes.
- A better validation system for config values. Right now it only makes sure it does not try to store a function.
- Type annotations. (partially done)
Related
Loosely based on the same basic concept as some npm
packages commonly used with javascript applications.
License
MIT Copyright (c) 2019-2021 Anuj Datar
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
py-appconfig-0.1.2.tar.gz
(5.4 kB
view hashes)
Built Distribution
Close
Hashes for py_appconfig-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f07517d5e8b704f0e8eb13eb0a954eb9e4f4cbc927605ace63dcf053fa9ffb4 |
|
MD5 | 3b7a698d0af2b5eb6133fb3196c7d070 |
|
BLAKE2b-256 | 384d93ca6b66a1a6479a2f79119c8a89272b3044d8ae4e401f44644616d42364 |