{ "info": { "author": "UNKNOWN", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python", "Programming Language :: Python :: Implementation :: CPython" ], "description": "configless\n========================================\n\nconfigless is tiny small configurator, inspired by pyramid's configurator.\nbut this is silly not comprehensive.\n\nhow to use\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nyou can develop foo function, so IHasFoo interface.\nand you are providing two variants of foo function.\n(my.foo and your.foo are these)\n\n.. code:: python\n\n ## definition\n from zope.interface import Interface, implementer\n from configless.interfaces import IPlugin\n\n class IHasFoo(Interface):\n def foo():\n pass\n\n @implementer(IHasFoo, IPlugin)\n class MyFoo(object):\n @classmethod\n def create_from_setting(cls, settings):\n return cls()\n\n def foo(self):\n return \"my\"\n\n @implementer(IHasFoo)\n class YourFoo(object):\n @classmethod\n def create_from_setting(cls, settings):\n return cls()\n\n def foo(self):\n return \"your\"\n\n\n ## using\n from configless import Configurator\n config = Configrator()\n\n ## install many plugins about `foo`\n config.add_plugin(\"my.foo\", MyFoo, categoryname=\"foo\")\n config.add_plugin(\"your.foo\", YourFoo, categoryname=\"foo\")\n\n ## activate my.foo plugin, then, my.foo is used by plugin about `foo`.\n result = config.activate_plugin(\"my.foo\")\n\n ## so, configurator has function about result\n config.foo.foo() # => \"my\"\n\nsummary\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nyou can provides 'foo' function\n\n- define plugin\n- install plugin -- via config.add_plugin(..)\n- activate plugin -- via config.activate_plugin(..)", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": "", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "configless", "package_url": "https://pypi.org/project/configless/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/configless/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/configless/0.1/", "requires_dist": null, "requires_python": null, "summary": "configurator", "version": "0.1" }, "last_serial": 1084012, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "bce3df5ea51c48f9777ed51ca82bdeaa", "sha256": "b83924df2cc0b56f424e8ac874007cff85bac44a2d37c3d8305218b967bfecbf" }, "downloads": -1, "filename": "configless-0.1.tar.gz", "has_sig": false, "md5_digest": "bce3df5ea51c48f9777ed51ca82bdeaa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4878, "upload_time": "2014-05-07T11:52:54", "url": "https://files.pythonhosted.org/packages/40/9c/035a2aa118a5272ec295d5a49bb146487af262c246848a7ed75178996e08/configless-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bce3df5ea51c48f9777ed51ca82bdeaa", "sha256": "b83924df2cc0b56f424e8ac874007cff85bac44a2d37c3d8305218b967bfecbf" }, "downloads": -1, "filename": "configless-0.1.tar.gz", "has_sig": false, "md5_digest": "bce3df5ea51c48f9777ed51ca82bdeaa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4878, "upload_time": "2014-05-07T11:52:54", "url": "https://files.pythonhosted.org/packages/40/9c/035a2aa118a5272ec295d5a49bb146487af262c246848a7ed75178996e08/configless-0.1.tar.gz" } ] }