Skip to main content

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

  1. project_name : str -> required
  2. project_id: str -> optional, default = project_name
  3. version: str -> optional, default = 0.0.1
  4. conf_name: str -> optional, default = config (filename of config file)
  5. conf_ext: str -> optional, default = .json (file extension for config file)
  6. verbose: bool -> optional, default = False (for verbose logging, needs more work)
  7. 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

  1. Atomically writing configs to prevent corruptions due to runtime errors or system crashes.
  2. A better validation system for config values. Right now it only makes sure it does not try to store a function.
  3. 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


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 details)

Uploaded Source

Built Distribution

py_appconfig-0.1.2-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file py-appconfig-0.1.2.tar.gz.

File metadata

  • Download URL: py-appconfig-0.1.2.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for py-appconfig-0.1.2.tar.gz
Algorithm Hash digest
SHA256 af5910b39f6f6aba4648e7fcd24a621109334338c760d4fba517002d72bdf6c7
MD5 bbee0b657a5646b769c2bb76d7c6ce81
BLAKE2b-256 53c009de193015cdb8a9a2d042c1758601ede0bc593c41f1c443cea672b8f7d0

See more details on using hashes here.

File details

Details for the file py_appconfig-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: py_appconfig-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for py_appconfig-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1f07517d5e8b704f0e8eb13eb0a954eb9e4f4cbc927605ace63dcf053fa9ffb4
MD5 3b7a698d0af2b5eb6133fb3196c7d070
BLAKE2b-256 384d93ca6b66a1a6479a2f79119c8a89272b3044d8ae4e401f44644616d42364

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page