Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pesky-defaults-0.0.2.tar.gz (5.6 kB view details)

Uploaded Source

File details

Details for the file pesky-defaults-0.0.2.tar.gz.

File metadata

File hashes

Hashes for pesky-defaults-0.0.2.tar.gz
Algorithm Hash digest
SHA256 a16f0b463cfbe8255db645280ca1fde41098740b1d5fecedb4302d3d564a5530
MD5 e32a727b48796d36261ed9e764f36604
BLAKE2b-256 2addde4b50f08f7c919a7770f096a654c00e4b1893a8cbc07481f9d1d4eabee4

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