{ "info": { "author": "Matthias Bussonnier", "author_email": "bussonniermatthias@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License" ], "description": "Reaper\n======\n\nA simple module that turns DeprecationWarning into errors when your\nlibrary version or requirements change\n\nIt is notoriously difficult to keep track of deprecated function and\nclean dead code regularly release after release. In particular, when\nmarking a function as deprecated, it is common to forgot mentioning the\ntimeline of deprecation.\n\nThis forces you to actually pass a simple specification of when the\ndeprecation should happen, and dead code be removed.\n\nUse case\n--------\n\nDeprecate component of your own library.\n\nLet's say the current version of reaper have bad API, I intend to remove\nfor 0.5, but want to keep around for the time being. I can use the\nfollowing:\n\n.. code:: python\n\n\n from reaper import deprecate\n\n @deprecate(\"reaper\", \">=0.5.0\")\n def throw_warnings(predicate, category, version, message):\n \"\"\"\n This is too hard to use !\n \"\"\"\n pass\n\nThis will show a ``DeprecationWarning`` to user calling the function in\nany version from 0.1.x to 0.4.x, and raise a ``DeprecationException`` to\nany user using 0.5.0-dev, or above.\n\nFuture Plans\n------------\n\n- Allow to raise early on Continuous Integration system to catch using\n deprecated API early in development process, and still allowing you\n to use code locally.\n\n- Ability to do the same base on time/date\n\n- versions which is not a decorator/ context manager\n\n- ability to mark version of dependency supported, and warn/raise when\n the minimal dependency list change:\n\n.. code:: python\n\n\n if deprecate(`tornado`, `<=4.3.1`):\n #do stuff\n else:\n # do other stuff\n\nThe first branch (or actually the predicate) should warn/raise as soon\nas something like ``tornado>=4.4`` appears in requirements.txt, that\nsome dead code has been found.", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Carreau/reaper", "keywords": null, "license": null, "maintainer": null, "maintainer_email": null, "name": "reaper", "package_url": "https://pypi.org/project/reaper/", "platform": null, "project_url": "https://pypi.org/project/reaper/", "project_urls": { "Homepage": "https://github.com/Carreau/reaper" }, "release_url": "https://pypi.org/project/reaper/0.0.1/", "requires_dist": [ "semver", "traitlets" ], "requires_python": null, "summary": "Reaper", "version": "0.0.1" }, "last_serial": 1812517, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "0271555b1f75f49245661aed8a069e62", "sha256": "f6de4d55ed5a9569023266382c7f8389957c547ee219ea98c4f255022090023c" }, "downloads": -1, "filename": "reaper-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0271555b1f75f49245661aed8a069e62", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8382, "upload_time": "2015-11-12T03:50:18", "url": "https://files.pythonhosted.org/packages/2f/9f/c36d68eacdb7a8fc460d1731151c03484c41060117cf30b017ffcc73da5a/reaper-0.0.1-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0271555b1f75f49245661aed8a069e62", "sha256": "f6de4d55ed5a9569023266382c7f8389957c547ee219ea98c4f255022090023c" }, "downloads": -1, "filename": "reaper-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0271555b1f75f49245661aed8a069e62", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8382, "upload_time": "2015-11-12T03:50:18", "url": "https://files.pythonhosted.org/packages/2f/9f/c36d68eacdb7a8fc460d1731151c03484c41060117cf30b017ffcc73da5a/reaper-0.0.1-py2.py3-none-any.whl" } ] }