{ "info": { "author": "Gary M. Josack", "author_email": "gary@byoteki.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "annex\n=====\n\nSummary\n~~~~~~~\n\nAnnex provides assistance with developing plugin-based tools.\n\nWith Annex you can load and reload plugins from various python modules\nwithout the requirement that they exist on the PYTHONPATH.\n\nExample Usage\n~~~~~~~~~~~~~\n\nIn your project you would define a base class from which all plugins for\nproject would subclass.\n\nbase\\_plugin.py\n'''''''''''''''\n\n::\n\n class BaseTestPlugin(object):\n def run(self, *args, **kwargs):\n raise NotImplementedError()\n\nexample\\_plugin.py\n''''''''''''''''''\n\n::\n\n from base_plugin import BaseTestPlugin\n\n class PrinterPlugin(BaseTestPlugin):\n def run(self, *args, **kwargs):\n print args, kwargs\n\nfoo.py\n''''''\n\n::\n\n from base_plugin import BaseTestPlugin\n from annex import Annex\n\n plugins = Annex(BaseTestPlugin, [\"/path/to/plugins\"])\n\n for plugin in plugins:\n plugin.run(\"foo\", bar=\"baz\")\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/gmjosack/annex/archive/master.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gmjosack/annex", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "annex", "package_url": "https://pypi.org/project/annex/", "platform": "", "project_url": "https://pypi.org/project/annex/", "project_urls": { "Download": "https://github.com/gmjosack/annex/archive/master.tar.gz", "Homepage": "https://github.com/gmjosack/annex" }, "release_url": "https://pypi.org/project/annex/0.5.0/", "requires_dist": null, "requires_python": "", "summary": "A Simple Plugin System for Python", "version": "0.5.0" }, "last_serial": 5114823, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "1cf27a01ed43d655a261b9396181a65b", "sha256": "20a2903fa3830a01a51d6358f5b276a53ed5697d1c9042f45e7cbed5cd8605ed" }, "downloads": -1, "filename": "annex-0.1.tar.gz", "has_sig": false, "md5_digest": "1cf27a01ed43d655a261b9396181a65b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3731, "upload_time": "2013-10-11T17:21:29", "url": "https://files.pythonhosted.org/packages/b9/da/d55d73e6463f3e47cb1192a38518faa7d914902c8ef02ca19a6aab386a19/annex-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "335f83ecb9c4a2ffaabfe4b48f9d080b", "sha256": "549772b333413ac0bbdf5a54569f093e1e1be40f7a13657fc78472ec40cf62f3" }, "downloads": -1, "filename": "annex-0.2.tar.gz", "has_sig": false, "md5_digest": "335f83ecb9c4a2ffaabfe4b48f9d080b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3843, "upload_time": "2013-10-14T18:39:48", "url": "https://files.pythonhosted.org/packages/26/5a/c57b206849e1e58cbc25d9b8a70b8f0c5f6b8a4212d7ae0379e852e3e8e5/annex-0.2.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "37854187d815a56853f1149dc8b97639", "sha256": "83cb35d42ffc3448baad86742b421f6285911bbb9ea07929c7011b84cf954a91" }, "downloads": -1, "filename": "annex-0.3.1.tar.gz", "has_sig": false, "md5_digest": "37854187d815a56853f1149dc8b97639", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3869, "upload_time": "2014-07-16T20:50:12", "url": "https://files.pythonhosted.org/packages/93/cc/51817fdc34824b114bd56055edf5c19184cd7107e49ae19ca33105ea75e9/annex-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "a03ef93e7e55d372d080873f868a36e4", "sha256": "c9d96008fd4891f339b7de11271899d95519516f5509aef27150e1d07961688b" }, "downloads": -1, "filename": "annex-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a03ef93e7e55d372d080873f868a36e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4021, "upload_time": "2016-02-26T02:07:21", "url": "https://files.pythonhosted.org/packages/63/7f/b92c1c58ad7d39dd2ccab58eef475b980987bce48d7f549c27e052df52fa/annex-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "10091a97f1176d5bb056a4c036a62081", "sha256": "2b89c89ecef0911dd1bc52ce582c2b7b26b8621f4db3cc58df39e652b9636e8b" }, "downloads": -1, "filename": "annex-0.5.0.tar.gz", "has_sig": false, "md5_digest": "10091a97f1176d5bb056a4c036a62081", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4267, "upload_time": "2019-04-08T18:09:39", "url": "https://files.pythonhosted.org/packages/c4/03/6c73f4e91312abbec5efab91ad91483fb23613d1c50d436cc2c320f7bf42/annex-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "10091a97f1176d5bb056a4c036a62081", "sha256": "2b89c89ecef0911dd1bc52ce582c2b7b26b8621f4db3cc58df39e652b9636e8b" }, "downloads": -1, "filename": "annex-0.5.0.tar.gz", "has_sig": false, "md5_digest": "10091a97f1176d5bb056a4c036a62081", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4267, "upload_time": "2019-04-08T18:09:39", "url": "https://files.pythonhosted.org/packages/c4/03/6c73f4e91312abbec5efab91ad91483fb23613d1c50d436cc2c320f7bf42/annex-0.5.0.tar.gz" } ] }