{ "info": { "author": "Mark Harfouche", "author_email": "mark.harfouche@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Deprecation Factory\n\n[![pypi](https://img.shields.io/pypi/v/deprecation_factory.svg)](https://pypi.python.org/pypi/deprecation_factory)\n[![Travis](https://img.shields.io/travis/hmaarrfk/deprecation_factory.svg)](https://travis-ci.org/hmaarrfk/deprecation_factory)\n[![Docs](https://readthedocs.org/projects/deprecation-factory/badge/?version=latest)](https://deprecation-factory.readthedocs.io/en/latest/?badge=latest)\n\n\nPython3 deprecation factory. Automatically write boilerplate code for many kinds\nof deperecations through python decorators.\n\n\n * Free software: [BSD license](LICENSE)\n * [Documentation](https://deprecation-factory.readthedocs.io)\n\n\n## Motivations\nBreaking things is important! Breaking other's things is just mean!\n\nThe goal of deprecations is to warn other library writers that their code is\nabout to break so you can keep making agressive changes to your own.\n\nOften when you want to deprecate a feature, you end up following a procedure\nsimilar to\n\n 1. Make the useful modification to your code.\n 2. Decide on when the old behaviour should be switched over.\n 3. Add warnings INSIDE your function to warn users.\n 4. Change the function signature to something non-sensical to detect the\n default behaviour.\n 5. Add messages in the documentation (numpydoc compatible)\n\nFinally, when the behaviour is official depreprecated, you need to do all these\nchanges again.\n\n 6. Remove the warnings.\n 7. Remove the documentation messages.\n 8. Remove the old behaviour.\n 9. Change the function signature back to something useful.\n\nThe goal of this library is to allow you to shortcut steps 3-9. You shouldn't\nhave to revisit the deprecation long after you completed implementing your new\nfeatures. You write your code how it is **supposed to look**, this library,\nmakes ensures your users have enough time to update their code.\n\nThis library\n\n * Modifies function signatures so to ensure correctness for the current\n version. This should help with autocompletions.\n * Adds a warning section to the docstrings. An attempt is made to properly\n indent the docstring.\n * Point the user to **their** line of code, so that they know where\n to make make the appropriate modification.\n * Leaving deprecators in place after the desired threshold results in a noop.\n This means that you can be lazy about ripping them out of code.\n Deprecations should not have to be blockers for your development.\n * If numpydoc > 0.7 is installed, the \"Warns\" sections are combined into\n a single section allowing you to chain deprecators.\n\n## Installation\n\nWhile you can depend on this, I strongly recommend you version the files you\nneed in your project as the API is highly likely to change and break your code.\n\n## Current deprecators\n\n * Deprecator for change of default values in `kwargs`. Handles `kwargs`\n passed as positional arguments too!\n * Transitionning to keyword only arguments.\n\n## Future deprecators\n\n * `kwarg` renaming\n * Swapping the order of positional arguments\n * Making an old `kwarg` a manditory positional `arg`\n * Feature requests are welcome!\n\n## Development Lead\n\n * Mark Harfouche\n\n## Contributors\n\nCould be you!\n\n\n### How to contribute\nReady to contribute? We use the standard github contribution model.\nscikit-image has a great\n[writeup](http://scikit-image.org/docs/dev/contribute.html) on how to setup\nyour environment. Adapt it for our environment.\n\n##### Cookiecutter\n\nThis package was created with\n[Cookiecutter](https://github.com/audreyr/cookiecutter) and the\n[audreyr/cookiecutter-pypackage](https://github.com/audreyr/cookiecutter-pypackage)\nproject template.\n\n\n# History\n\n## 0.2.2 (2018.08.13)\n\n* Check for numpydoc 0.7\n* Fix a typo in the docstring message\n\n## 0.2.2 (2018.08.12)\n\n* API change. change_default_parameter now takes a dictionary for the\n old_kwargs so that parameter names don't conflict\n\n## 0.2.1 (2018.08.12)\n\n* Merge with other numpydocs so that documentation in Sphinx doesn't crash\n\n## 0.2.0 (2018.08.11)\n\n* Provide a deprecator for changing the number of keyword only arguments.\n\n## 0.1.1 (2018.08.09)\n\n* Deprecated arguments appear in order for Python 3.5 as well.\n\n## 0.1.0 (2018.08.09)\n\n* New deprecator for changing the default value of `kwards`. Handles arguments\n passed as positional argumnets too.\n\n## 0.0.1 (2018-07-29)\n\n* First release on PyPi\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/hmaarrfk/deprecation_factory", "keywords": "deprecation_factory", "license": "BSD license", "maintainer": "", "maintainer_email": "", "name": "deprecation-factory", "package_url": "https://pypi.org/project/deprecation-factory/", "platform": "", "project_url": "https://pypi.org/project/deprecation-factory/", "project_urls": { "Homepage": "https://github.com/hmaarrfk/deprecation_factory" }, "release_url": "https://pypi.org/project/deprecation-factory/0.2.4/", "requires_dist": null, "requires_python": "", "summary": "Python deprecation factory ensuring useful warnings and docstrings for different deprecations.", "version": "0.2.4" }, "last_serial": 4166110, "releases": { "0.1.4": [ { "comment_text": "", "digests": { "md5": "778f11c030941cd1fc1a4ba10354966c", "sha256": "c66766191d1d3938d16db924b10f59ef129f7e01cc66ba402d8371f66b5af4a1" }, "downloads": -1, "filename": "deprecation_factory-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "778f11c030941cd1fc1a4ba10354966c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8205, "upload_time": "2018-08-10T03:31:23", "url": "https://files.pythonhosted.org/packages/37/cf/0f22eba4806d802210795c859b4cb667f9fcc7066067798bd020de03158e/deprecation_factory-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f19575df76e517b6683d14b4e8298dc0", "sha256": "8bfa75fc5e9d914ca5346c0d3027997fdf89aaaec1509dc75877c834f738e39f" }, "downloads": -1, "filename": "deprecation_factory-0.1.4.tar.gz", "has_sig": false, "md5_digest": "f19575df76e517b6683d14b4e8298dc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28059, "upload_time": "2018-08-10T03:31:24", "url": "https://files.pythonhosted.org/packages/e9/af/75e13fa43a09777c4a120720b97070c1761a5bbeeac25a9cbd2798019d9a/deprecation_factory-0.1.4.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "4f045881a8825fcd55fcd0a4d3dcc9e7", "sha256": "4c33113865a6e674e823b50388326bd48d3c694bd657e0df916e6aa277b7be5b" }, "downloads": -1, "filename": "deprecation_factory-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4f045881a8825fcd55fcd0a4d3dcc9e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9336, "upload_time": "2018-08-12T00:33:39", "url": "https://files.pythonhosted.org/packages/ba/d4/ead070d49bbc3d501129c91ea9c38d5412910d14831e03fc7e6bb7e1d349/deprecation_factory-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "91a266711fd94bd187c338f105be7689", "sha256": "03db6abf8dbc6b1a5ce79c3190bccdd21d15dca335f4cd6e2c8fc7e90b1d38a0" }, "downloads": -1, "filename": "deprecation_factory-0.2.0.tar.gz", "has_sig": false, "md5_digest": "91a266711fd94bd187c338f105be7689", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29300, "upload_time": "2018-08-12T00:33:41", "url": "https://files.pythonhosted.org/packages/d8/b2/c8541a5ec1da1193d2519a2a0a5418126e78e8a431bc1ca9e2ae4ca8e751/deprecation_factory-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "59755b8863274179a1e319c4409c8df0", "sha256": "015a4029c46e47dd684f69c76f14ccd913cabb110ebaf2237a7daae631b5f6d8" }, "downloads": -1, "filename": "deprecation_factory-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "59755b8863274179a1e319c4409c8df0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17068, "upload_time": "2018-08-13T02:02:11", "url": "https://files.pythonhosted.org/packages/03/9d/61d28de8d2c2cf2c89a7d9811d0abf65aa537dddd2d56087732c0dd804b7/deprecation_factory-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d90f5d53b3dc6f0b47a3bb4c5c4ee90", "sha256": "b73988875ed151b8f7695cabb7510ebd6b2b2669e2383a5ecd2b64703b8c4912" }, "downloads": -1, "filename": "deprecation_factory-0.2.1.tar.gz", "has_sig": false, "md5_digest": "0d90f5d53b3dc6f0b47a3bb4c5c4ee90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32926, "upload_time": "2018-08-13T02:02:12", "url": "https://files.pythonhosted.org/packages/e2/2f/e01e3e1f144b2926c065cbf5dbf7b8378a9eee2ed0e1fc4a63a0a3cfc4d1/deprecation_factory-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "250be76267e0e97812bb6ad870ec14e0", "sha256": "90b7239326e4ab6e066c10916dc0fb69a8ba49f07d950a19be9db4b931ee1b0e" }, "downloads": -1, "filename": "deprecation_factory-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "250be76267e0e97812bb6ad870ec14e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17627, "upload_time": "2018-08-13T02:45:05", "url": "https://files.pythonhosted.org/packages/0f/00/71507687bdb264d65bd717d65fee9432d7411bce3ccd2469a3f9c538ae7c/deprecation_factory-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae4fd43dfd28764bf26287278e1ff1d0", "sha256": "73b4b81f7f62f708959b33185d29e0ccb353c83e8b8f5d1b72008417b363f7cb" }, "downloads": -1, "filename": "deprecation_factory-0.2.2.tar.gz", "has_sig": false, "md5_digest": "ae4fd43dfd28764bf26287278e1ff1d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33423, "upload_time": "2018-08-13T02:45:06", "url": "https://files.pythonhosted.org/packages/75/f2/9fbf13e1eaf3efa274c7775925606ce6e0f7a36ff37adbdacb54b689849a/deprecation_factory-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "4db4ac0dd8c3608fd4f2d2d4c0234b88", "sha256": "a1785c0db8d6b4f13029dd87170aeb90647b4149fc44c0e98894b38573bbcebb" }, "downloads": -1, "filename": "deprecation_factory-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4db4ac0dd8c3608fd4f2d2d4c0234b88", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17958, "upload_time": "2018-08-13T15:01:06", "url": "https://files.pythonhosted.org/packages/7e/9e/762d3de1dcfa7ecba3d83cc916d12300f911d07347abf9d6ca1feb32a875/deprecation_factory-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a65f66e69222247d36cf018a64d4427", "sha256": "9b72f08061cdf78a58a5f1dabb1b96000162f7bffaf0dd6c2f961e81d1190544" }, "downloads": -1, "filename": "deprecation_factory-0.2.3.tar.gz", "has_sig": false, "md5_digest": "5a65f66e69222247d36cf018a64d4427", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33880, "upload_time": "2018-08-13T15:01:08", "url": "https://files.pythonhosted.org/packages/36/b4/e7a5fbabf366b3577cd1dc2fa5cab0f7673b97121125d1fb8a1c80a7106a/deprecation_factory-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "e427fa5d9cb850c823a3754831ff3451", "sha256": "0f51cc9db29e23dda53f4d09fdf7b64d34578e38483c68f27da6f78ab5e1ee37" }, "downloads": -1, "filename": "deprecation_factory-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "e427fa5d9cb850c823a3754831ff3451", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17959, "upload_time": "2018-08-13T16:21:47", "url": "https://files.pythonhosted.org/packages/c6/33/1424305412901bd1cbc82d214a5cc8d81b3e6ddeccfd08214489a40270d0/deprecation_factory-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "313042ceff35a5a231600196022d6320", "sha256": "2fe8a2d9d867391e8a7e792e5eaebadb5c8939cdb3083efb0a84cc9ffdee95e4" }, "downloads": -1, "filename": "deprecation_factory-0.2.4.tar.gz", "has_sig": false, "md5_digest": "313042ceff35a5a231600196022d6320", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33888, "upload_time": "2018-08-13T16:21:48", "url": "https://files.pythonhosted.org/packages/dc/13/e9574e769d1342e6326b5bba90991a4ec2eff23bb63e6f3167d4fbacf2c7/deprecation_factory-0.2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e427fa5d9cb850c823a3754831ff3451", "sha256": "0f51cc9db29e23dda53f4d09fdf7b64d34578e38483c68f27da6f78ab5e1ee37" }, "downloads": -1, "filename": "deprecation_factory-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "e427fa5d9cb850c823a3754831ff3451", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17959, "upload_time": "2018-08-13T16:21:47", "url": "https://files.pythonhosted.org/packages/c6/33/1424305412901bd1cbc82d214a5cc8d81b3e6ddeccfd08214489a40270d0/deprecation_factory-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "313042ceff35a5a231600196022d6320", "sha256": "2fe8a2d9d867391e8a7e792e5eaebadb5c8939cdb3083efb0a84cc9ffdee95e4" }, "downloads": -1, "filename": "deprecation_factory-0.2.4.tar.gz", "has_sig": false, "md5_digest": "313042ceff35a5a231600196022d6320", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33888, "upload_time": "2018-08-13T16:21:48", "url": "https://files.pythonhosted.org/packages/dc/13/e9574e769d1342e6326b5bba90991a4ec2eff23bb63e6f3167d4fbacf2c7/deprecation_factory-0.2.4.tar.gz" } ] }