Skip to main content

Module to save and fetch configuration data in a standard path and format.

Project description

pypi python implementation

license last-commit

donate follow

cfgsaver

project logo

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

Icons made by Smashicons from www.flaticon.com is licensed by CC 3.0 BY

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.3.tar.gz (3.8 kB view hashes)

Uploaded Source

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