Pesky configuration defaults interface
Project description
pesky-defaults is a small library for querying platform, distribution, and package defaults using a uniform interface.
The following default keys are made accessible and their values set according to the detected platform:
PREFIX
BIN_DIR
SBIN_DIR
LIB_DIR
LIBEXEC_DIR
SYSCONF_DIR
LOCALSTATE_DIR
RUN_DIR
DATA_DIR
A setuptools command is also provided (‘pesky_default’) so that project defaults can be specified, potentially overriding platform or distribution defaults.
Basic Usage
To use pesky-defaults, simply instantiate a new Defaults object and invoke the query methods ‘get’ or ‘getorelse’:
from pesky.defaults import Defaults defaults = Defaults() print defaults.get('PREFIX') # displays /usr on a linux platform
The Defaults class implements the collections.Mapping interface, so you can use the familiar mapping methods as well:
print defaults['LIB_DIR'] # displays /usr/lib on a linux platform
Project Defaults
If you specify a project name when instantiating the Defaults object, then all defaults from the project metadata will be loaded as well:
from pesky.defaults import Defaults defaults = Defaults('my-project') # the project name as given to setuptools
This is all well and good, but how do the project defaults get set in the first place? This is where the ‘pesky_default’ setuptools command comes into play. By invoking the ‘pesky_default’ setuptools command, the .egg-info file called ‘pesky_defaults.json’ is manipulated. Once all project defaults are set as desired, the ‘install’ setuptools command can be invoked, which will perform the standard setuptools install routine and copy all egg-info files into place. For example:
$ cd my-project/ $ python ./setup.py pesky_default --command set --key foo --value bar $ python ./setup.py install
This snippet enters the source tree of the fictional project ‘my-project’, adds the project default ‘foo’, giving it the value ‘bar’, then installs the project (with the updated project defaults). The application code can then retrieve the ‘foo’ default:
from pesky.defaults import Defaults defaults = Defaults('my-project') # the project name as given to setuptools print defaults.get('foo') # displays bar
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
File details
Details for the file pesky-defaults-0.0.2.tar.gz
.
File metadata
- Download URL: pesky-defaults-0.0.2.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a16f0b463cfbe8255db645280ca1fde41098740b1d5fecedb4302d3d564a5530 |
|
MD5 | e32a727b48796d36261ed9e764f36604 |
|
BLAKE2b-256 | 2addde4b50f08f7c919a7770f096a654c00e4b1893a8cbc07481f9d1d4eabee4 |