{ "info": { "author": "Ian Laird", "author_email": "irlaird@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5" ], "description": "# pyioc3\n\nA fast and simple IOC Container for Python.\n\n# About\n\npyioc3 is a fast and simple inversion of control (ioc) container\nfor python. An IoC container uses class constructor (or in this case\n__init__ method parameters) to build and inject dependencies. pyioc3 \ntakes advantage of python's type hint annotations to make injection\nflexible and easy to use.\n\n# Motivation\n\nI Love python. I also love OOP. I wanted better OOP in python. So i built\nthis to help enforce SOLID and make my programs better.\n\n# Goals\n\nSimple. Simple. Simple. Python is already flexible. An IOC container\nis something that you could whip up to suite your needs in an\nafternoon. Or you could install pyioc3 instead.\n\n# Quick Start\n\nInstall the package\n\n```bash\npip install --user pyioc3\n```\n\nMake an ioc.py\n\n```python\nfrom pyioc3 import StaticContainerBuilder\nfrom .ducks import Duck, RubberDucky\nfrom .quacks import QuackBehavior, Squeak\n\nioc_builder = StaticContainerBuilder()\n\nioc_builder.bind(\n annotation=QuackBehavior,\n implementation=Squeak)\nioc_builder.bind(\n annotation=Duck,\n implementation=RubberDucky)\n\nioc = ioc_builder.build()\n__all__ = [\"ioc\"];\n```\n\nUse the container\n\n```python\nfrom ioc import ioc\nfrom .ducks import Duck\n\nduck: Duck = ioc.get(Duck)\nduck.quack()\n```\n\n# What More\n- Look at the examples.\n- Feel free to contribute.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/en0/pyioc", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyioc3", "package_url": "https://pypi.org/project/pyioc3/", "platform": "", "project_url": "https://pypi.org/project/pyioc3/", "project_urls": { "Homepage": "https://github.com/en0/pyioc" }, "release_url": "https://pypi.org/project/pyioc3/1.1/", "requires_dist": null, "requires_python": "", "summary": "Python IOC Container", "version": "1.1" }, "last_serial": 5527538, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "9bf81fae99bd966141ce0e204da3a2dd", "sha256": "1b4dbd58c8170a82b20b5c5647a32236fcb860dc02be38bbcb1d7486f341cf08" }, "downloads": -1, "filename": "pyioc3-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9bf81fae99bd966141ce0e204da3a2dd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6760, "upload_time": "2019-07-12T05:01:57", "url": "https://files.pythonhosted.org/packages/7b/af/4a82383712255cb2a01ee893ce96fa8973d7f047a1dd7a129509630aed7a/pyioc3-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa042905e49e5e75b2ddfbb63f2a8f88", "sha256": "622d4fb6c29ed792ed6a9d67d6e9b39e2c7718a28abb8fbf3a7d7efd4e7a1f11" }, "downloads": -1, "filename": "pyioc3-1.0.tar.gz", "has_sig": false, "md5_digest": "fa042905e49e5e75b2ddfbb63f2a8f88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4229, "upload_time": "2019-07-12T05:01:58", "url": "https://files.pythonhosted.org/packages/ce/42/16640edebe15548dea6cdebf302fbdb69cb745ed8b38253518491d35246f/pyioc3-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "8f83099f8fad0a0575cecb508f99fee4", "sha256": "4f449431648bcf9b6846e1bbed99531de30a9ff900aeb98f49e4a0df53812d56" }, "downloads": -1, "filename": "pyioc3-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8f83099f8fad0a0575cecb508f99fee4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7019, "upload_time": "2019-07-13T18:16:38", "url": "https://files.pythonhosted.org/packages/11/85/5c2b74d76eb50a54705532a2704ebda324c1a7d6b7de3fb85e558d3f55e8/pyioc3-1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3538d51ee9f22612108b9bb76030157", "sha256": "d1e73ed26e32e9ab3fb4899581d0156c8aa72acbcb10a6b52e41a222095ca549" }, "downloads": -1, "filename": "pyioc3-1.1.tar.gz", "has_sig": false, "md5_digest": "f3538d51ee9f22612108b9bb76030157", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4506, "upload_time": "2019-07-13T18:16:40", "url": "https://files.pythonhosted.org/packages/e0/c8/6c47f901bf4563f2256c9291c87edf17f1f5e53c6e899d63cd386746356c/pyioc3-1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8f83099f8fad0a0575cecb508f99fee4", "sha256": "4f449431648bcf9b6846e1bbed99531de30a9ff900aeb98f49e4a0df53812d56" }, "downloads": -1, "filename": "pyioc3-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8f83099f8fad0a0575cecb508f99fee4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7019, "upload_time": "2019-07-13T18:16:38", "url": "https://files.pythonhosted.org/packages/11/85/5c2b74d76eb50a54705532a2704ebda324c1a7d6b7de3fb85e558d3f55e8/pyioc3-1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3538d51ee9f22612108b9bb76030157", "sha256": "d1e73ed26e32e9ab3fb4899581d0156c8aa72acbcb10a6b52e41a222095ca549" }, "downloads": -1, "filename": "pyioc3-1.1.tar.gz", "has_sig": false, "md5_digest": "f3538d51ee9f22612108b9bb76030157", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4506, "upload_time": "2019-07-13T18:16:40", "url": "https://files.pythonhosted.org/packages/e0/c8/6c47f901bf4563f2256c9291c87edf17f1f5e53c6e899d63cd386746356c/pyioc3-1.1.tar.gz" } ] }