Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Insultingly simple configuration for Python 2.7 applications.

Project description

|Build Status| |Coverage Status|


lazyconf is an insultingly simple tool for configuring python


- Python 2.7


The basic idea is that you run ``lazyconf configure`` in your
**project** directory:


lazyconf configure

Follow the onscreen instructions to do the initial configuration. This
does the following:

- Creates a ``.lazy/`` directory inside the current directory.
- Generates a schema file (``.lazy/lazy.schema.json``), and a data file
- Creates a ``.gitignore`` file inside ``.lazy/`` so that your
configured settings (which may contain sensitive information) are
never committed to git.

You are then safe to commit the .lazy folder to git, which will not
contain any sensitive information. The next thing to do is update your
schema file with all of the settings that you want to include in your

Schema Files

The schema file located in ``.lazy/lazy.schema.json`` is the way
lazyconf knows which questions to ask you, and what kind of answers to
expect. 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" : {
"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"


All options to configure are held within sections. A section is a JSON
object where the key is the name of the section. In the above example,
there are two sections: ``example_section`` and

Optional Sections

To make a section optional, include a key/value pair inside the section
with the key ``"_enabled"``, and a default boolean value. This will let
the user skip over that section if it is not necessary to be configured.


``"_internal"`` is a JSON object that contains the following two JSON

- ``"labels"``: This object consists of key/value pairs which define
labels to show the user running the configuration. For example, if
you had a section called ``db``, and a string in that section called
``user``, you would use ``"db.user" : "Database User"`` to assign the
label '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 a
list of predetermined values. For example, if you had a section
called ``db``, and a string in that section called ``engine``, you
could use the following object to allow the user to select from a
list of values relating to the database engine you might happen to be


"db.engine": {
"postgres": "django.db.backends.postgresql_psycopg2",
"mysql": "django.db.backends.mysql"


``"_internal"`` and ``"_enabled"`` are keywords and should not be used
as option names.

Using the data

To use the configuration generated by lazyconf, you can either use the
command line tool ``lazyconf``, i.e.


lazyconf get -k db.user

Or, you can include it in a Python file, and use the 'load' function to
load any existing configuration:


>>> import lazyconf
>>> l = lazyconf.Lazyconf().load()
>>> l.get('db.engine')

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')

|Bitdeli badge|

.. |Build Status| image::
.. |Coverage Status| image::
.. |Bitdeli badge| image::

Project details

Download files

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

Files for lazyconf, version 0.5.5
Filename, size File type Python version Upload date Hashes
Filename, size lazyconf-0.5.5.tar.gz (14.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page