Package: lazyconf
|Build Status| |Coverage Status|lazyconf========lazyconf is an insultingly simple tool for configuring pythonapplications.Dependencies-------------  Python 2.7Usage-----The basic idea is that you run ``lazyconf configure`` in your**project** directory:::lazyconf configureFollow the onscreen instructions to do the initial configuration. Thisdoes the following:-  Creates a ``.lazy/`` directory inside the current directory.-  Generates a schema file (``.lazy/lazy.schema.json``), and a data file(``.lazy/lazy.json``).-  Creates a ``.gitignore`` file inside ``.lazy/`` so that yourconfigured settings (which may contain sensitive information) arenever committed to git.You are then safe to commit the .lazy folder to git, which will notcontain any sensitive information. The next thing to do is update yourschema file with all of the settings that you want to include in yourconfiguration.Schema Files------------The schema file located in ``.lazy/lazy.schema.json`` is the waylazyconf knows which questions to ask you, and what kind of answers toexpect. The schema file follows the following format:::```{"example_section" : {"example_option" : "","string_with_default" : "default","example_int" : 5,"example_bool" : false,"example_select" : ""},"example_optional_section" : {"_enabled":false,"optional_option" : "foobar"},"_internal": {"labels": {"example_section" : "Example Section Label","example_section.example_int" : "Example suboption label"}"selects": {"example_section.exmple_select" : {"option1" : "value1","option2" : "value2","option3" : "value3"}}}}```Sections~~~~~~~~All options to configure are held within sections. A section is a JSONobject where the key is the name of the section. In the above example,there are two sections: ``example_section`` and``example_optional_section``.Optional Sections^^^^^^^^^^^^^^^^^To make a section optional, include a key/value pair inside the sectionwith the key ``"_enabled"``, and a default boolean value. This will letthe user skip over that section if it is not necessary to be configured.``"_internal"``~~~~~~~~~~~~~~~``"_internal"`` is a JSON object that contains the following two JSONobjects:-  ``"labels"``: This object consists of key/value pairs which definelabels to show the user running the configuration. For example, ifyou had a section called ``db``, and a string in that section called``user``, you would use ``"db.user" : "Database User"`` to assign thelabel 'Database User' to that string.-  ``"selects"``: This object consists of several objects which define'selects', i.e. a way for the user to only be able to choose from alist of predetermined values. For example, if you had a sectioncalled ``db``, and a string in that section called ``engine``, youcould use the following object to allow the user to select from alist of values relating to the database engine you might happen to beusing:::"db.engine": {"postgres": "django.db.backends.postgresql_psycopg2","mysql": "django.db.backends.mysql"}Keywords~~~~~~~~``"_internal"`` and ``"_enabled"`` are keywords and should not be usedas option names.Using the data--------------To use the configuration generated by lazyconf, you can either use thecommand line tool ``lazyconf``, i.e.::lazyconf get -k db.user>fareedOr, you can include it in a Python file, and use the 'load' function toload any existing configuration:::>>> import lazyconf>>> l = lazyconf.Lazyconf().load()>>> l.get('db.engine')'django.db.backends.postgresql_psycopg2'If the python file loading lazyconf is not in the same folder as``.lazy/``, you can point it at ``.lazy/`` manually:::>>> import lazyconf>>> l = lazyconf.Lazyconf().load('home/fareed/.lazy/')>>> l.get('db.engine')'django.db.backends.postgresql_psycopg2'|Bitdeli badge|.. |Build Status| image:: https://travis-ci.org/fmd/lazyconf.png?branch=master:target: https://travis-ci.org/fmd/lazyconf.. |Coverage Status| image:: https://coveralls.io/repos/fmd/lazyconf/badge.png?branch=master:target: https://coveralls.io/r/fmd/lazyconf?branch=master.. |Bitdeli badge| image:: https://d2weczhvl823v0.cloudfront.net/fmd/lazyconf/trend.png:target: