{ "info": { "author": "@orsinium", "author_email": "master_fess@mail.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development", "Topic :: Software Development :: Interpreters", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Pre-processors", "Topic :: Software Development :: Testing", "Topic :: Software Development :: Testing :: Mocking", "Topic :: System :: Logging" ], "description": "# Advice\n\n[Aspect-oriented programming](https://en.wikipedia.org/wiki/Aspect-oriented_programming)\n\n## Usage\n\n```python\nimport advice\n\n\ndef multiply(context):\n print(context.args)\n print(context.kwargs)\n yield\n context.result *= 100\n\n\nadvice.register(\n handler=multiply,\n modules=advice.match(equals='math'),\n targets=advice.match(regexp='(sin|cos)')\n)\n```\n\nOk, let's check:\n\n```python\nIn [2]: import math\n\nIn [3]: math.cos(0)\n(0,)\n{}\nOut[3]: 100.0\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/orsinium/advice", "keywords": "aspect oriented programming advice joinpoint patching import decorators logging testing extension", "license": "", "maintainer": "", "maintainer_email": "", "name": "advice", "package_url": "https://pypi.org/project/advice/", "platform": "", "project_url": "https://pypi.org/project/advice/", "project_urls": { "Homepage": "https://github.com/orsinium/advice" }, "release_url": "https://pypi.org/project/advice/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "Aspect-oriented programming", "version": "0.1.0" }, "last_serial": 4179646, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "54d9c5e336a8544cf161161c39a99104", "sha256": "034ba1b4828fd60e0b6bf48fc6dafd76d15162da2ceb962865dbb1ed84794e5e" }, "downloads": -1, "filename": "advice-0.1.0.tar.gz", "has_sig": false, "md5_digest": "54d9c5e336a8544cf161161c39a99104", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3995, "upload_time": "2018-08-17T10:11:02", "url": "https://files.pythonhosted.org/packages/3e/1d/34f2af428082f75340dbc7e4d3eb35a65c1291d2c8117a5f1ea7ab0cda33/advice-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "54d9c5e336a8544cf161161c39a99104", "sha256": "034ba1b4828fd60e0b6bf48fc6dafd76d15162da2ceb962865dbb1ed84794e5e" }, "downloads": -1, "filename": "advice-0.1.0.tar.gz", "has_sig": false, "md5_digest": "54d9c5e336a8544cf161161c39a99104", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3995, "upload_time": "2018-08-17T10:11:02", "url": "https://files.pythonhosted.org/packages/3e/1d/34f2af428082f75340dbc7e4d3eb35a65c1291d2c8117a5f1ea7ab0cda33/advice-0.1.0.tar.gz" } ] }