{ "info": { "author": "\u00c9ttore Leandro Tognoli", "author_email": "ettore.leandro.tognoli@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3" ], "description": "=====\nPyCDI\n=====\n\n.. image:: https://travis-ci.org/ettoreleandrotognoli/python-cdi.svg?branch=master\n :target: https://travis-ci.org/ettoreleandrotognoli/python-cdi\n\n.. image:: https://codecov.io/gh/ettoreleandrotognoli/python-cdi/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/ettoreleandrotognoli/python-cdi\n\n.. image:: https://badge.fury.io/py/pycdi.svg\n :target: https://badge.fury.io/py/pycdi\n\n.. image:: https://img.shields.io/pypi/dm/pycdi.svg\n :target: https://pypi.python.org/pypi/pycdi#downloads\n \n.. image:: https://api.codeclimate.com/v1/badges/b17d7c12edab60606f4c/maintainability\n :target: https://codeclimate.com/github/ettoreleandrotognoli/python-cdi/maintainability\n :alt: Maintainability\n \n.. image:: https://api.codeclimate.com/v1/badges/b17d7c12edab60606f4c/test_coverage\n :target: https://codeclimate.com/github/ettoreleandrotognoli/python-cdi/test_coverage\n :alt: Test Coverage\n\n.. image:: https://www.codefactor.io/repository/github/ettoreleandrotognoli/python-cdi/badge\n :target: https://www.codefactor.io/repository/github/ettoreleandrotognoli/python-cdi\n :alt: CodeFactor\n\nA simple Python CDI ( Code Dependency Injection) Library.\n\nSee the `code of conduct `_.\n\nInstall\n-------\n\nInstall stable pycdi\n\n.. code-block:: shell\n\n pip install pycdi\n\nInstall latest pycdi\n\n.. code-block:: shell\n\n pip install git+https://github.com/ettoreleandrotognoli/python-cdi\n \nUsage\n-----\n\nPython2 & Python3\n~~~~~~~~~~~~~~~~~\n\nYou can see more examples in the examples folder (examples/common).\n\n.. code-block:: python\n\n import logging\n from logging import Logger\n \n from pycdi import Inject, Singleton, Producer\n from pycdi.shortcuts import call\n \n \n @Producer(str, _context='app_name')\n def get_app_name():\n return 'PyCDI'\n \n \n @Singleton(produce_type=Logger)\n @Inject(app_name=str, _context='app_name')\n def get_logger(app_name):\n return logging.getLogger(app_name)\n \n \n @Inject(name=(str, 'app_name'), logger=Logger)\n def main(name, logger):\n logger.info('I\\'m starting...')\n print('Hello World!!!\\nI\\'m a example of %s' % name)\n logger.debug('I\\'m finishing...')\n \n \n call(main)\n\n\nPython 3\n~~~~~~~~\n\nWith Python 3 is possible define the types of injections with the type hints.\n\nYou can see more examples in the examples folder( examples/py3/ ).\n\n\n.. code-block:: python\n\n import logging\n from logging import Logger\n \n from pycdi import Inject, Singleton, Producer\n from pycdi.shortcuts import call\n \n \n @Producer(_context='app_name')\n def get_app_name() -> str:\n return 'PyCDI'\n \n \n @Singleton()\n @Inject(logger_name='app_name')\n def get_logger(logger_name: str) -> Logger:\n return logging.getLogger(logger_name)\n \n \n @Inject(name='app_name')\n def main(name: str, logger: Logger):\n logger.info('I\\'m starting...')\n print('Hello World!!!\\nI\\'m a example of %s' % name)\n logger.debug('I\\'m finishing...')\n \n \n call(main)", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/ettoreleandrotognoli/python-cdi/tree/0.1.2/", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ettoreleandrotognoli/python-cdi", "keywords": "cdi,di,code dependency injection,dependency injection", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "pycdi", "package_url": "https://pypi.org/project/pycdi/", "platform": "", "project_url": "https://pypi.org/project/pycdi/", "project_urls": { "Download": "https://github.com/ettoreleandrotognoli/python-cdi/tree/0.1.2/", "Homepage": "https://github.com/ettoreleandrotognoli/python-cdi" }, "release_url": "https://pypi.org/project/pycdi/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "Python Code Dependency Injection", "version": "0.1.2" }, "last_serial": 4867754, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "b3e88a0511bcdd139a85254f440816f8", "sha256": "19997ddd31c00c7a227a41833df1f0552b87d2c8ae112b81db9964ff9c5275f4" }, "downloads": -1, "filename": "pycdi-0.0.0.tar.gz", "has_sig": false, "md5_digest": "b3e88a0511bcdd139a85254f440816f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3073, "upload_time": "2017-01-24T04:39:04", "url": "https://files.pythonhosted.org/packages/2c/16/b2709ea472e6de988860d8118060fc64ad2248b079610d29d744b5566e84/pycdi-0.0.0.tar.gz" } ], "0.0.1": [ { "comment_text": "", "digests": { "md5": "41791de2e627e2f5050a2570a9d31d5f", "sha256": "ca46d033c993ede6142de59ea0b3b4f0086d05edbe8469b1ba0e83ff3de7ba5d" }, "downloads": -1, "filename": "pycdi-0.0.1.tar.gz", "has_sig": false, "md5_digest": "41791de2e627e2f5050a2570a9d31d5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4486, "upload_time": "2017-01-27T01:22:17", "url": "https://files.pythonhosted.org/packages/70/19/a3e82048fc1c81103873211b21578aeb35bf7e90c673bd6868c5a3843a1b/pycdi-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "b417f0c645e683a8d28f7d3e12242eea", "sha256": "d25fa1744be7ccc6ab6fcd2b3e787e46c8c46048987c439361f02cef14ee5f07" }, "downloads": -1, "filename": "pycdi-0.0.2.tar.gz", "has_sig": false, "md5_digest": "b417f0c645e683a8d28f7d3e12242eea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7428, "upload_time": "2017-02-02T18:18:53", "url": "https://files.pythonhosted.org/packages/8c/89/1a625e65390c0dee8a71d496a45ab695c0e53e18af693bfa750ebef0e2fb/pycdi-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "86dc197584ab826aeecf03744ed152bb", "sha256": "b4c0ac041650cc4f99b734425fbcaa0d182d60625d4e10b1a429582747383fc7" }, "downloads": -1, "filename": "pycdi-0.0.3.tar.gz", "has_sig": false, "md5_digest": "86dc197584ab826aeecf03744ed152bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7745, "upload_time": "2017-02-14T11:03:25", "url": "https://files.pythonhosted.org/packages/2f/57/7c234f3277e095be6573d784096e68fb0527d9eb7f8ebb400feb639b2d2e/pycdi-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "f13143ab58894e660768c333b85ce709", "sha256": "19d1cdf0f8759645a79288a1d0bff216424b048fb9a494b99237928840effa7a" }, "downloads": -1, "filename": "pycdi-0.0.4.tar.gz", "has_sig": false, "md5_digest": "f13143ab58894e660768c333b85ce709", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7313, "upload_time": "2017-06-19T17:06:50", "url": "https://files.pythonhosted.org/packages/14/0e/21e838744c32214ab43cba3bcd05c79d563777037907dfb4a70540b53165/pycdi-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "f45dcc478b9b674d26d3b5916a1c5ced", "sha256": "2073816b08f6ddaf9e0540a8cd4ab7feeec6fe7ef6f1866da77610d2c4d56397" }, "downloads": -1, "filename": "pycdi-0.0.5.tar.gz", "has_sig": false, "md5_digest": "f45dcc478b9b674d26d3b5916a1c5ced", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8680, "upload_time": "2017-10-25T15:27:43", "url": "https://files.pythonhosted.org/packages/4d/0e/07cc50c50e1411d6e3930f64723f8146fb18feab0ff00710cd0a09cdcbd0/pycdi-0.0.5.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "cc6bc5148c479bc8a454fcee98bd65e2", "sha256": "9445548bebc8b52671a14f7948943d1ee89ccb7479e896944431a42924af79f2" }, "downloads": -1, "filename": "pycdi-0.1.0.tar.gz", "has_sig": false, "md5_digest": "cc6bc5148c479bc8a454fcee98bd65e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9248, "upload_time": "2018-04-24T15:05:05", "url": "https://files.pythonhosted.org/packages/17/72/6b73d76c610172f8de011e1628b5209584e7a0a8843b4497169f178833a5/pycdi-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "eff9edc5a9e23527136aadc129bf8472", "sha256": "9d79d7e69535e2e2606d788e34c15df95652d48fe55da2156083b1467a67970d" }, "downloads": -1, "filename": "pycdi-0.1.1.tar.gz", "has_sig": false, "md5_digest": "eff9edc5a9e23527136aadc129bf8472", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9423, "upload_time": "2018-04-25T15:16:26", "url": "https://files.pythonhosted.org/packages/e4/53/d4d7f976389838b54b70688a549bbcffddd6823cd9378d0dc6f03c31cf98/pycdi-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "bb331851f33abc4335b8fd62484d8d04", "sha256": "7213d607ae1e8a76d252ef3c86a99eca7f5e3c32c58fd8a3bc0bffbccde41f06" }, "downloads": -1, "filename": "pycdi-0.1.2.tar.gz", "has_sig": false, "md5_digest": "bb331851f33abc4335b8fd62484d8d04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10261, "upload_time": "2019-02-26T02:13:30", "url": "https://files.pythonhosted.org/packages/cb/33/f4570940290e273790f70c47b4918a73a496842a633b9e584241678e6b4a/pycdi-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bb331851f33abc4335b8fd62484d8d04", "sha256": "7213d607ae1e8a76d252ef3c86a99eca7f5e3c32c58fd8a3bc0bffbccde41f06" }, "downloads": -1, "filename": "pycdi-0.1.2.tar.gz", "has_sig": false, "md5_digest": "bb331851f33abc4335b8fd62484d8d04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10261, "upload_time": "2019-02-26T02:13:30", "url": "https://files.pythonhosted.org/packages/cb/33/f4570940290e273790f70c47b4918a73a496842a633b9e584241678e6b4a/pycdi-0.1.2.tar.gz" } ] }