Metadata-Version: 1.0
Name: pesky-defaults
Version: 0.0.2
Summary: Pesky configuration defaults interface
Home-page: https://github.com/msfrank/pesky-defaults
Author: Michael Frank
Author-email: syntaxockey@gmail.com
License: UNKNOWN
Description: pesky-defaults
        ==============
        
        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
        
        
        
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
