-
Project description
miniconfig
making configuration phase, in your application. (Tiny version of almost pyramid's configurator object)
# yourapp/__init__.py
from miniconfig import ConfiguratorCore
class Configurator(ConfiguratorCore):
def make_app(self):
self.commit()
return App(self.settings)
class App:
def __init__(self, settings):
self.settings = settings
yourapp/pluginA.py
class A:
pass
def includeme(config):
config.settings["A"] = A()
yourapp/pluginB.py
class B:
pass
def includeme(config):
config.include(".pluginA")
config.settings["B"] = B()
application user
from yourapp import Configurator
config = Configurator()
config.include("yourapp.pluginB")
app = config.make_app()
print(app.settings.keys()) # dict_keys(['A', 'B'])
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))
discriminator = (hello, name)
config.action(discriminator, 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")
discriminator = id(object()) # xxx
config.action(discriminator, register)
yourapp
config = Configurator()
config.add_directive("hello", "foo.bar:hello")
config.hello()
config.commit() # hai
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Close
Hashes for miniconfig-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bd93e7fd661210fb4c5ece4130f069ed0decd3f0ea0ed51f6a8ff7b975a1ef5 |
|
MD5 | 6b80fc552a345b75905268b9bddd0c6f |
|
BLAKE2b-256 | b76f47a2226899b3c9be5bd6b746f33c151f25cc62bfdc514aa0914879527769 |