Metadata-Version: 2.0
Name: miniconfig
Version: 0.1.3
Summary: configurator
Home-page: https://github.com/podhmo/miniconfig
Author: podhmo
Author-email: ababjam61@gmail.com
License: mit
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Dist: setuptools
Provides-Extra: docs
Provides-Extra: testing
Requires-Dist: pytest; extra == 'testing'

miniconfig
========================================

making configuration phase, in your application.
(Tiny version of almost pyramid's configurator object)

::

    # yourapplication.py
    from miniconfig import ConfiguratorCore

    class Configurator(ConfiguratorCore):
        def make_app(self):
            self.commit()
            return App(self.settings)


pluginA ::

    # yourapplication/pluginA.py

    def includeme(config):
        config.settings["A"] = PluginA()

pluginB ::

    # yourapplication/pluginB.py

    def includeme(config):
        config.include(".pluginA")
        config.settings["B"] = PluginB()


application user ::

    from yourapplication import Configurator
    config = Configurator()
    config.include("yourapplication.pluginB")
    app = config.make_app()


Adding directives
---------------------------------------

directive means that action of configurator.

how to define and use directive ::

    def hello(config, name):
        def register():
            assert config.settings["foo"] == "foo"
            print("hello: {}".format(name))
        config.action(register)


    config = Configurator(settings={"foo": "foo"})
    config.add_directive("hello", hello)
    config.hello("foo")

it is also supported that to define directives by dotted name::

    ## foo/bar.py
    def hello(config):
        def register():
            print("hai")
        config.action(register)

    ## yourapplication
    config = Configurator()
    config.add_directive("hello", "foo.bar:hello")
    config.hello()
    config.commit() # hai






