{ "info": { "author": "Piotr Karkut", "author_email": "karkucik@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development" ], "description": "# haps [![PyPI](https://badge.fury.io/py/haps.svg)](https://pypi.python.org/pypi/haps/) [![Build Status](https://travis-ci.org/ekiro/haps.svg?branch=master)](https://travis-ci.org/ekiro/haps)\nHaps [\u010e\u2021aps] is a simple DI library, with IoC container included. It is written in pure Python with no external dependencies.\n\nLook how easy it is to use:\n\n```python\nfrom haps import Container as IoC, Inject, inject\n\n# import interfaces\nfrom my_application.core import IDatabase, IUserService\n\n\nclass MyApp:\n db: IDatabase = Inject() # dependency as a property\n\n @inject # or passed to the constructor\n def __init__(self, user_service: IUserService) -> None:\n self.user_service = user_service\n\nIoC.autodiscover('my_application') # find all interfaces and implementations\n\nif __name__ == '__main__':\n app = MyApp()\n assert isinstance(app.db, IDatabase)\n assert isinstance(app.user_service, IUserService)\n```\n\n# Installation\n\n pip install haps\n\n# Documentation\n\nSee https://haps.readthedocs.io/en/latest/\n\n# Usage examples\n\nSee https://github.com/ekiro/haps/tree/master/samples\n\n# Testing\n\nInstall `requirements.test.txt` and run `py.test` in main directory.\n\n# Changelog\n\n\n## 1.1.1 (2018-07-27)\n- Fix bug with optional arguments for functions decorated with :code:`@inject`\n\n## 1.1.0 (2018-07-26)\n- Add configuration module\n- Add application class and runner\n- Add profiles\n- Minor fixes\n\n## 1.0.5 (2018-07-12)\n- `@egg` decorator can be used without function invocation\n\n## 1.0.4 (2018-06-30)\n- Add support for python 3.7\n- Fix autodiscover sample\n\n## 1.0.0 (2018-06-15)\n- First stable release\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ekiro/haps", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "haps", "package_url": "https://pypi.org/project/haps/", "platform": "any", "project_url": "https://pypi.org/project/haps/", "project_urls": { "Homepage": "https://github.com/ekiro/haps" }, "release_url": "https://pypi.org/project/haps/1.1.1/", "requires_dist": null, "requires_python": "", "summary": "Simple DI Library", "version": "1.1.1" }, "last_serial": 4107811, "releases": { "1.0.3": [ { "comment_text": "", "digests": { "md5": "e942679c7a0c43671cc9d2261a824f59", "sha256": "ffca1e14a515e06b5f0768c370c6c484084a6c99c02b0163fe2670bb7c9d10c5" }, "downloads": -1, "filename": "haps-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e942679c7a0c43671cc9d2261a824f59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17499, "upload_time": "2018-06-15T10:17:19", "url": "https://files.pythonhosted.org/packages/c2/64/089963b2aa91e1eb857eee57a3c70ffaf477e02cbca96f55c7f2101066fb/haps-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75984cde9026a759c10e7f11af417fd6", "sha256": "8828f13773fbca1f5efb83a12324d6efc528f061b5282783a6db10b0e9993e57" }, "downloads": -1, "filename": "haps-1.0.3.tar.gz", "has_sig": false, "md5_digest": "75984cde9026a759c10e7f11af417fd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7549, "upload_time": "2018-06-15T10:17:20", "url": "https://files.pythonhosted.org/packages/aa/fb/c93607895b8d851e9b76a8911c1a4c9e890f83b8f44db2d6dff39d12c77c/haps-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "77f2ec322379549c85b0cf4e06c1f267", "sha256": "d3b46335bbc464b693cef8b495c509162575b923b892b0f21fd09aa7b8b333fc" }, "downloads": -1, "filename": "haps-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "77f2ec322379549c85b0cf4e06c1f267", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17475, "upload_time": "2018-06-30T10:31:35", "url": "https://files.pythonhosted.org/packages/6f/61/7fd45989c3e1ca18e27e0b5c22a591d6f889e6e0ae257c0c7e3bee973fb1/haps-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2567795bbcffe20e7629036da7349b91", "sha256": "69593f446d88cd3f9dabe82cc357b0b3a9563c2512e1e7024070f5fbe48ad392" }, "downloads": -1, "filename": "haps-1.0.4.tar.gz", "has_sig": false, "md5_digest": "2567795bbcffe20e7629036da7349b91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7463, "upload_time": "2018-06-30T10:31:36", "url": "https://files.pythonhosted.org/packages/63/d1/6a412dd4a5a8b764758c70c076474063bab55fa0c4f1c7058134a79015de/haps-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "496cb34a8ab1bd7375c206950a17dc95", "sha256": "35b2fdc23360aa2af7c2ed622ac952a15ec60b2f7467833969f4728ed7a64368" }, "downloads": -1, "filename": "haps-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "496cb34a8ab1bd7375c206950a17dc95", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17584, "upload_time": "2018-07-12T09:27:31", "url": "https://files.pythonhosted.org/packages/2d/7d/6c7b65986a5c7ace75173fdf5f82a8e048c9e2909daa012085b2766d6179/haps-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed75397d611ae881cbb7c433e05d23db", "sha256": "990a3c26510258a70ea9ee0eb7f8f6f8c27cf6bc6011f54dcdb928072262bd38" }, "downloads": -1, "filename": "haps-1.0.5.tar.gz", "has_sig": false, "md5_digest": "ed75397d611ae881cbb7c433e05d23db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7682, "upload_time": "2018-07-12T09:27:32", "url": "https://files.pythonhosted.org/packages/7d/b2/29913157895f7a63fb4d47f4e7ebd23f8cf3384797f916ae7101c62af647/haps-1.0.5.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "b49e4a572d0edfedd36d53f79e6ec46e", "sha256": "53e37aeb97a4d99d5c13267bf1573de0d5584312c9d0f678ddd67423f8cbce89" }, "downloads": -1, "filename": "haps-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b49e4a572d0edfedd36d53f79e6ec46e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17326, "upload_time": "2018-07-27T08:18:10", "url": "https://files.pythonhosted.org/packages/44/98/44a3a7373179c2e9ba93aca2801a6ddcf17dc8d154ab820effbb4d043fa5/haps-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "44f2e02ca4aa6c9d29cd1af7b2b3732f", "sha256": "742e2ad2ab0e338c42883abe342e512e5286d0270f7500b2a1726d645d6d55d5" }, "downloads": -1, "filename": "haps-1.1.0.tar.gz", "has_sig": false, "md5_digest": "44f2e02ca4aa6c9d29cd1af7b2b3732f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9978, "upload_time": "2018-07-27T08:18:12", "url": "https://files.pythonhosted.org/packages/84/2c/3418b89687fa595eba64f1aa6910b9a1a68733247ffd0c36139a8e46f38d/haps-1.1.0.tar.gz" } ], "1.1.0rc1": [ { "comment_text": "", "digests": { "md5": "b7a9a9bdb33fd37860ed5f6a3574a887", "sha256": "0c52e61ccfcbff1c492cd5951b12fb3a797d70ebeee87f7c65eb86994d2bc151" }, "downloads": -1, "filename": "haps-1.1.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "b7a9a9bdb33fd37860ed5f6a3574a887", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16500, "upload_time": "2018-07-26T19:16:07", "url": "https://files.pythonhosted.org/packages/9b/a5/f7307f58ffce9eccf743b770a471b3e3a2f40ddabf2289caf0319ce6821e/haps-1.1.0rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d0537a5ab49addebe7240001dece3e92", "sha256": "472f4fc9b7ca5bb145ad250a601a7e1e5c23a819afb6886779319cf5a1988c70" }, "downloads": -1, "filename": "haps-1.1.0rc1.tar.gz", "has_sig": false, "md5_digest": "d0537a5ab49addebe7240001dece3e92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9306, "upload_time": "2018-07-26T19:16:09", "url": "https://files.pythonhosted.org/packages/1e/22/3691860bf7c7d796fdbb33de9b4f7e80c47bd28115e53b47f77a7b7f0917/haps-1.1.0rc1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "36280532c27eea78c671ff2b2d978af4", "sha256": "4f6437c4f06efb55ba7732fb8b2619bd90eb05898f1c54cb2cb2c1b25b775ec5" }, "downloads": -1, "filename": "haps-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "36280532c27eea78c671ff2b2d978af4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17477, "upload_time": "2018-07-27T08:39:39", "url": "https://files.pythonhosted.org/packages/b6/63/674ab82f1dd9c846b5420054a08fc86f33bb541395471e5268205ed2530f/haps-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe27ba16944e20d744e607354988855f", "sha256": "70572fd68a4df723aceab5705a202353eca55528a42071678a7e60b3e90b9e99" }, "downloads": -1, "filename": "haps-1.1.1.tar.gz", "has_sig": false, "md5_digest": "fe27ba16944e20d744e607354988855f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10053, "upload_time": "2018-07-27T08:39:40", "url": "https://files.pythonhosted.org/packages/16/1f/6aeb894b0bea96b407f5144189615c3a483df72c00dbed52e182c7bca8d4/haps-1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "36280532c27eea78c671ff2b2d978af4", "sha256": "4f6437c4f06efb55ba7732fb8b2619bd90eb05898f1c54cb2cb2c1b25b775ec5" }, "downloads": -1, "filename": "haps-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "36280532c27eea78c671ff2b2d978af4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17477, "upload_time": "2018-07-27T08:39:39", "url": "https://files.pythonhosted.org/packages/b6/63/674ab82f1dd9c846b5420054a08fc86f33bb541395471e5268205ed2530f/haps-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe27ba16944e20d744e607354988855f", "sha256": "70572fd68a4df723aceab5705a202353eca55528a42071678a7e60b3e90b9e99" }, "downloads": -1, "filename": "haps-1.1.1.tar.gz", "has_sig": false, "md5_digest": "fe27ba16944e20d744e607354988855f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10053, "upload_time": "2018-07-27T08:39:40", "url": "https://files.pythonhosted.org/packages/16/1f/6aeb894b0bea96b407f5144189615c3a483df72c00dbed52e182c7bca8d4/haps-1.1.1.tar.gz" } ] }