{ "info": { "author": "alfred82santa", "author_email": "alfred82santa@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "|travis-master| |coverall-master| |docs-master|\n\n.. |travis-master| image:: https://travis-ci.org/alfred82santa/dirty-loader.svg?branch=master\n :target: https://travis-ci.org/alfred82santa/dirty-loader\n\n.. |coverall-master| image:: https://coveralls.io/repos/alfred82santa/dirty-loader/badge.png?branch=master\n :target: https://coveralls.io/r/alfred82santa/dirty-loader?branch=master\n\n.. |docs-master| image:: https://readthedocs.org/projects/dirty-loader/badge/?version=latest\n :target: https://readthedocs.org/projects/dirty-loader/?badge=latest\n :alt: Documentation Status\n\ndirty-loader\n============\n\nEasy to use loader library.\n\n---------\nChangelog\n---------\n\nVersion 0.2.2\n-------------\n\n- Simplified code.\n- Added BaseFactory methods to load items from list or dictionaries.\n\nVersion 0.2.1\n-------------\n\n- Three types of instance definition allowed: string, structured and structure simplified.\n\n\nVersion 0.2.0\n-------------\n\n- Custom factories for classes.\n- Default factories for logging package.\n\nVersion 0.1.0\n-------------\n\n* Some refactors.\n* New function ``import_class``.\n\n\n-----------\nInstalation\n-----------\n\n.. code-block:: bash\n\n $ pip install dirty-loader\n\n-------------\nDocumentation\n-------------\n\nhttp://dirty-loader.readthedocs.io\n\n------------\nMain loaders\n------------\n\nLoader\n------\n\nWith Loader you could register sorted python modules. When you ask for a class\nit will try to load it for each module until it find one.\n\n**Example**:\n\n.. code-block:: python\n\n from dirty_loader import Loader\n\n loader = Loader()\n loader.register_module('tests.fake.namespace1')\n loader.register_module('tests.fake.namespace2')\n loader.register_module('tests.fake.namespace3')\n\n klass = loader.load_class('FakeClass1')\n\n from tests.fake.namespace1 import FakeClass1\n assert klass == FakeClass1\n\n # klass is tests.fake.namespace1.FakeClass1 because it exists in first module registered.\n # Also, you could get an instance of class using factory\n obj = loader.factory('FakeClass1', var1='a', var2=2)\n\n # You could load classes from packages inside modules registered\n klass = loader.load_class('subnamespace.FakeClass1')\n from tests.fake.namespace3.subnamespace import FakeClass1 as SubFakeClass1\n assert klass == SubFakeClass1\n # klass is tests.fake.namespace3.subnamespace.FakeClass1 because it exists in first module registered.\n\n\n\nLoaderReversed\n--------------\n\nIt works in same way of Loader but it revers the sort when try to load a class.\n\n**Example**:\n\n.. code-block:: python\n\n from dirty_loader import LoaderReversed\n\n loader = LoaderReversed()\n loader.register_module('tests.fake.namespace1')\n loader.register_module('tests.fake.namespace2')\n\n klass = loader.load_class('FakeClass1')\n\n from tests.fake.namespace2 import FakeClass1\n assert klass == FakeClass1\n\n # klass is tests.fake.namespace2.FakeClass1 because it exists in last module registered.\n\n\nLoaderNamespace\n---------------\n\nWith LoaderNamespace you could register sorted namespaces. When you ask for a class\nit will try to load it for each namespace until it find one. Each namespace has a python\nmodule associated. You could use the regular Loader way to load a class or you could\nspecify the namespace you would like to use.\n\n**Example**:\n\n.. code-block:: python\n\n from dirty_loader import LoaderNamespace\n\n loader = LoaderNamespace()\n loader.register_namespace('fake1', 'tests.fake.namespace1')\n loader.register_namespace('fake2', 'tests.fake.namespace2')\n\n from tests.fake.namespace1 import FakeClass1, FakeClass2, FakeClass3\n\n klass = loader.load_class('FakeClass1')\n\n from tests.fake.namespace1 import FakeClass1\n assert klass == FakeClass1\n # klass is tests.fake.namespace1.FakeClass1 because it exists in last module registered.\n\n # Also, you could get a class from specific namespace\n\n klass = loader.load_class('FakeClass1', namespace='fake2)\n\n from tests.fake.namespace2 import FakeClass1\n assert klass == FakeClass1\n # klass is tests.fake.namespace2.FakeClass1 because you specified it.\n\n # Namespace could be specified in string class, too\n klass = loader.load_class('fake2:FakeClass1')\n\n assert klass == FakeClass1\n # klass is tests.fake.namespace2.FakeClass1 because you specified it.\n\n\nLoaderNamespaceReversed\n-----------------------\n\nIt works in same way of LoaderNamespace but it revers the sort when try to load a class.\n\n\nLoaderCached\n------------\n\nA version of Loader with cache.\n\n\nLoaderReversedCached\n--------------------\n\nA version of LoaderReversed with cache.\n\n\nLoaderNamespaceCached\n---------------------\n\nA version of LoaderNamespace with cache.\n\n\nLoaderNamespaceReversedCached\n-----------------------------\n\nA version of LoaderNamespaceReversed with cache.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/alfred82santa/dirty-loader", "keywords": "", "license": "LGPLv2.1", "maintainer": "", "maintainer_email": "", "name": "dirty-loader", "package_url": "https://pypi.org/project/dirty-loader/", "platform": "", "project_url": "https://pypi.org/project/dirty-loader/", "project_urls": { "Homepage": "https://github.com/alfred82santa/dirty-loader" }, "release_url": "https://pypi.org/project/dirty-loader/0.2.2/", "requires_dist": null, "requires_python": "", "summary": "Dirty loader for python 3", "version": "0.2.2" }, "last_serial": 2391552, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "e28d1f778e174d25b7b9603355f31343", "sha256": "983a120febcf373e5f09f4da2afabc3cbd1ba3158023e8d7275b0eee77ca8c7b" }, "downloads": -1, "filename": "dirty-loader-0.0.1.tar.gz", "has_sig": false, "md5_digest": "e28d1f778e174d25b7b9603355f31343", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3518, "upload_time": "2014-08-12T16:30:11", "url": "https://files.pythonhosted.org/packages/88/bd/3af0b9a2c110453579112ed6bc8a748d3eada872d27f33560f35a8d47067/dirty-loader-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "e58d074569861973a414ce9d37865084", "sha256": "744a8a8722240abc878d7c9af3c88fe988e77a4b60efa5c14ea5ae1c3a0551fa" }, "downloads": -1, "filename": "dirty-loader-0.0.2.tar.gz", "has_sig": false, "md5_digest": "e58d074569861973a414ce9d37865084", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4437, "upload_time": "2014-10-29T13:19:59", "url": "https://files.pythonhosted.org/packages/0b/f5/db3e775a74b8fa1ff5bc5db7a32080826f8ac20a0f42b7a40bc967c214c0/dirty-loader-0.0.2.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "215ac6789b1d799763278237fa883622", "sha256": "70a8e36425435b8f9825e6743d5a70f7e0daf0593bfacf8169d40e80c0d8ef6e" }, "downloads": -1, "filename": "dirty-loader-0.1.0.tar.gz", "has_sig": false, "md5_digest": "215ac6789b1d799763278237fa883622", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4623, "upload_time": "2016-04-25T23:46:18", "url": "https://files.pythonhosted.org/packages/bc/c2/02f3434068ac68a1aa0984702c6efab37b85349dcd6c78a9afc4f7dcc1dd/dirty-loader-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0a12fba9dbc5dbf44889a14872d43811", "sha256": "bfae6f3c6ee89656874ec7e01691f2279a64a2cfb5404a4fcd072d4efec0b521" }, "downloads": -1, "filename": "dirty-loader-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0a12fba9dbc5dbf44889a14872d43811", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5508, "upload_time": "2016-06-04T12:22:35", "url": "https://files.pythonhosted.org/packages/a0/85/3e93d323a461657dce45fd4423247eee2024d5f1b637134876e8a48a1f77/dirty-loader-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "a68479685b58bd6f510cca200a7e6715", "sha256": "26dc933c7ca523578fdb877aa52ec91d34c85cf535960e36808939ac216296e8" }, "downloads": -1, "filename": "dirty-loader-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a68479685b58bd6f510cca200a7e6715", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5603, "upload_time": "2016-06-10T06:15:27", "url": "https://files.pythonhosted.org/packages/b5/4f/3d67993ae2d457b5078b8f677c69a4d7862a5026ba30fe16265f9f17849a/dirty-loader-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "07e1b420f3230f8bf455079adbf777f8", "sha256": "088bbea7e3f8e9046b3ef3917fd71cc250f0d87c23040418fa5c384ee79d0753" }, "downloads": -1, "filename": "dirty-loader-0.2.2.tar.gz", "has_sig": false, "md5_digest": "07e1b420f3230f8bf455079adbf777f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5725, "upload_time": "2016-10-10T18:34:23", "url": "https://files.pythonhosted.org/packages/49/ca/a4d0b9f501119d564c2cf44051fd10564507f7d35663931cdb7bae4d3e30/dirty-loader-0.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "07e1b420f3230f8bf455079adbf777f8", "sha256": "088bbea7e3f8e9046b3ef3917fd71cc250f0d87c23040418fa5c384ee79d0753" }, "downloads": -1, "filename": "dirty-loader-0.2.2.tar.gz", "has_sig": false, "md5_digest": "07e1b420f3230f8bf455079adbf777f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5725, "upload_time": "2016-10-10T18:34:23", "url": "https://files.pythonhosted.org/packages/49/ca/a4d0b9f501119d564c2cf44051fd10564507f7d35663931cdb7bae4d3e30/dirty-loader-0.2.2.tar.gz" } ] }