cfgsaver
Python library to save and fetch configuration data in a standard/conventional path and format.
Installation
pip install cfgsaver
Usage
Import the cfgsaver module to save/read configuration values in your source files:
from cfgsaver import cfgsaver
def save_config():
# saves configuration data to ~/.config/<your_package>/cfg.json
# unless cfgpath parameter is overridden:
config = {'name': 'Prahlad',
'language': 'Python',
'framework': 'Flask'
}
cfgsaver.save('<your_package>', config)
def get_config():
# gets configuration data from ~/.config/<your_package>/cfg.json
# unless cfgpath parameter is overridden:
config = cfgsaver.get("<your_package>") #returns None if config file doesn't exist
In case you want to ship some default configuration data packaged with your app, then read the below instructions carefully:
Ensure to include the path to your cfg.json in MANIFEST.in as follows (you'll have to copy this file from ~/.config/<your_package> to your source directory for packaging purpose):
include <your_package>/cfg.json
Override the PostInstall class in your setup.py like this in order to save your config file to the user's machine after installation:
from setuptools import setup, find_packages
from setuptools.command.install import install
import shutil
class PostInstallCommand(install):
"""Post-installation for installation mode."""
def run(self):
install.run(self)
fpath = os.path.join(self.install_lib, your_package)
fpath = os.path.join(fpath, "cfg.json")
tpath = os.path.join(os.path.expanduser("~"), ".config/<your_package>/cfg.json")
if not os.path.isdir(tpath):
os.makedirs(tpath)
shutil.move(fpath, tpath)
s = setup(
name = "your_package",
packages=find_packages(),
..
..
..
cmdclass={
'install': PostInstallCommand,
},
)
Attribution
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file cfgsaver-1.0.4.tar.gz.
File metadata
- Download URL: cfgsaver-1.0.4.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d12de211624be818e4596a08cd2d448098e9e8bf9500bb9f974b17f9267c4c48
|
|
| MD5 |
a830b52c730d2529e48e5ad82e522f94
|
|
| BLAKE2b-256 |
6761daf64653e81eee5aa282b937b3f83e22b5845eef2ca77546f4ec0128e34c
|