Module to save and fetch configuration data in a standard path and format.
Project description
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 empty dict if config file doesn't exist
While Packaging, ensure to include the full path to your ~/.config/<your_package> in MANIFEST.in
as follows (depending on your OS):
include /home/<username>/.config/<your_package>/cfg.json #linux
include /c/users/<username>/.config/<your_package>/cfg.json #Windows
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)
## setup function:
setup(
name = "your_package",
packages=find_packages(),
..
..
..
cmdclass={
'install': PostInstallCommand,
},
)
Attribution
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
cfgsaver-1.0.1.tar.gz
(3.5 kB
view hashes)