Deprecated
Advanced tools
| # For most projects, this workflow file will not need changing; you simply need | ||
| # to commit it to your repository. | ||
| # | ||
| # You may wish to alter this file to override the set of languages analyzed, | ||
| # or to provide custom queries or build logic. | ||
| # | ||
| # ******** NOTE ******** | ||
| # We have attempted to detect the languages in your repository. Please check | ||
| # the `language` matrix defined below to confirm you have the correct set of | ||
| # supported CodeQL languages. | ||
| # | ||
| name: "CodeQL" | ||
| on: | ||
| push: | ||
| branches: [ master ] | ||
| pull_request: | ||
| # The branches below must be a subset of the branches above | ||
| branches: [ master ] | ||
| schedule: | ||
| - cron: '22 8 * * 1' | ||
| jobs: | ||
| analyze: | ||
| name: Analyze | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| actions: read | ||
| contents: read | ||
| security-events: write | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| language: [ 'python' ] | ||
| # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] | ||
| # Learn more: | ||
| # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v2 | ||
| # Initializes the CodeQL tools for scanning. | ||
| - name: Initialize CodeQL | ||
| uses: github/codeql-action/init@v1 | ||
| with: | ||
| languages: ${{ matrix.language }} | ||
| # If you wish to specify custom queries, you can do so here or in a config file. | ||
| # By default, queries listed here will override any specified in a config file. | ||
| # Prefix the list here with "+" to use these queries and those in the config file. | ||
| # queries: ./path/to/local/query, your-org/your-repo/queries@main | ||
| # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). | ||
| # If this step fails, then you should remove it and run the build manually (see below) | ||
| - name: Autobuild | ||
| uses: github/codeql-action/autobuild@v1 | ||
| # ℹ️ Command-line programs to run using the OS shell. | ||
| # 📚 https://git.io/JvXDl | ||
| # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines | ||
| # and modify them (or add more) to build your code if your project | ||
| # uses a compiled language | ||
| #- run: | | ||
| # make bootstrap | ||
| # make release | ||
| - name: Perform CodeQL Analysis | ||
| uses: github/codeql-action/analyze@v1 |
+1
-1
| [bumpversion] | ||
| current_version = 1.2.12 | ||
| current_version = 1.2.13 | ||
| commit = True | ||
@@ -4,0 +4,0 @@ tag = False |
+9
-9
| # What Python version is installed where: | ||
| # http://www.appveyor.com/docs/installed-software#python | ||
| version: 1.2.13.{build} | ||
| environment: | ||
@@ -40,18 +42,16 @@ matrix: | ||
| - "git config --system http.sslcainfo \"C:\\Program Files\\Git\\mingw64\\ssl\\certs\\ca-bundle.crt\"" | ||
| - "%PYTHON%/python -V" | ||
| - "%PYTHON%/python -c \"import struct;print(8 * struct.calcsize(\'P\'))\"" | ||
| - "%PYTHON%\\python.exe -V" | ||
| - "%PYTHON%\\python.exe -c \"import struct;print(8 * struct.calcsize(\'P\'))\"" | ||
| install: | ||
| - "%PYTHON%/Scripts/easy_install -U pip" | ||
| - "%PYTHON%/Scripts/pip install -U setuptools" | ||
| - "%PYTHON%/Scripts/pip install tox" | ||
| - "%PYTHON%/Scripts/pip install wheel" | ||
| - "%PYTHON%\\python.exe -m pip install wheel" | ||
| - "%PYTHON%\\python.exe -m pip install tox" | ||
| build: off # Not a C# project, build stuff at the test step instead. | ||
| build: false # Not a C# project, build stuff at the test step instead. | ||
| test_script: | ||
| - "%PYTHON%/Scripts/tox -e %TOX_ENV%" | ||
| - "%PYTHON%\\Scripts\\tox.exe -e %TOX_ENV%" | ||
| after_test: | ||
| - "%PYTHON%/python setup.py --command-packages wheel bdist_wheel" | ||
| - "%PYTHON%\\python.exe setup.py --command-packages wheel bdist_wheel" | ||
| - ps: "ls dist" | ||
@@ -58,0 +58,0 @@ |
+30
-2
@@ -21,3 +21,3 @@ ========= | ||
| v1.2.12 (2020-03-13) | ||
| v1.2.13 (2021-09-05) | ||
| ==================== | ||
@@ -30,2 +30,30 @@ | ||
| - Fix #45: Change the signature of the :func:`~deprecated.sphinx.deprecated` decorator to reflect | ||
| the valid use cases. | ||
| - Fix #48: Fix ``versionadded`` and ``versionchanged`` decorators: do not return a decorator factory, | ||
| but a Wrapt adapter. | ||
| Other | ||
| ----- | ||
| - Fix configuration for AppVeyor: simplify the test scripts and set the version format to match the current version. | ||
| - Change configuration for Tox: | ||
| + change the requirements for ``pip`` to "pip >= 9.0.3, < 21" (Python 2.7, 3.4 and 3.5). | ||
| + install ``typing`` when building on Python 3.4 (required by Pytest->Attrs). | ||
| + run unit tests on Wrapt 1.13 (release candidate). | ||
| - Migrating project to `travis-ci.com <https://travis-ci.com/github/tantale/deprecated>`_. | ||
| v1.2.12 (2021-03-13) | ||
| ==================== | ||
| Bug fix release | ||
| Fix | ||
| --- | ||
| - Avoid "Explicit markup ends without a blank line" when the decorated function has no docstring. | ||
@@ -405,3 +433,3 @@ | ||
| - Improve `Travis <https://travis-ci.org/>`_ configuration file (compatibility from Python 2.6 to 3.7-dev, and PyPy). | ||
| - Improve `Travis <https://travis-ci.com/>`_ configuration file (compatibility from Python 2.6 to 3.7-dev, and PyPy). | ||
| - Add `AppVeyor <https://www.appveyor.com/docs/>`_ configuration file. | ||
@@ -408,0 +436,0 @@ - Add `Tox <https://tox.readthedocs.io/en/latest/>`_ configuration file. |
+143
-140
| Metadata-Version: 2.1 | ||
| Name: Deprecated | ||
| Version: 1.2.12 | ||
| Version: 1.2.13 | ||
| Summary: Python @deprecated decorator to deprecate old python classes, functions or methods. | ||
@@ -12,141 +12,2 @@ Home-page: https://github.com/tantale/deprecated | ||
| Project-URL: Bug Tracker, https://github.com/tantale/deprecated/issues | ||
| Description: | ||
| Deprecated Library | ||
| ------------------ | ||
| Deprecated is Easy to Use | ||
| ````````````````````````` | ||
| If you need to mark a function or a method as deprecated, | ||
| you can use the ``@deprecated`` decorator: | ||
| Save in a hello.py: | ||
| .. code:: python | ||
| from deprecated import deprecated | ||
| @deprecated(version='1.2.1', reason="You should use another function") | ||
| def some_old_function(x, y): | ||
| return x + y | ||
| class SomeClass(object): | ||
| @deprecated(version='1.3.0', reason="This method is deprecated") | ||
| def some_old_method(self, x, y): | ||
| return x + y | ||
| some_old_function(12, 34) | ||
| obj = SomeClass() | ||
| obj.some_old_method(5, 8) | ||
| And Easy to Setup | ||
| ````````````````` | ||
| And run it: | ||
| .. code:: bash | ||
| $ pip install Deprecated | ||
| $ python hello.py | ||
| hello.py:15: DeprecationWarning: Call to deprecated function (or staticmethod) some_old_function. | ||
| (You should use another function) -- Deprecated since version 1.2.0. | ||
| some_old_function(12, 34) | ||
| hello.py:17: DeprecationWarning: Call to deprecated method some_old_method. | ||
| (This method is deprecated) -- Deprecated since version 1.3.0. | ||
| obj.some_old_method(5, 8) | ||
| You can document your code | ||
| `````````````````````````` | ||
| Have you ever wonder how to document that some functions, classes, methods, etc. are deprecated? | ||
| This is now possible with the integrated Sphinx directives: | ||
| For instance, in hello_sphinx.py: | ||
| .. code:: python | ||
| from deprecated.sphinx import deprecated | ||
| from deprecated.sphinx import versionadded | ||
| from deprecated.sphinx import versionchanged | ||
| @versionadded(version='1.0', reason="This function is new") | ||
| def function_one(): | ||
| '''This is the function one''' | ||
| @versionchanged(version='1.0', reason="This function is modified") | ||
| def function_two(): | ||
| '''This is the function two''' | ||
| @deprecated(version='1.0', reason="This function will be removed soon") | ||
| def function_three(): | ||
| '''This is the function three''' | ||
| function_one() | ||
| function_two() | ||
| function_three() # warns | ||
| help(function_one) | ||
| help(function_two) | ||
| help(function_three) | ||
| The result it immediate | ||
| ``````````````````````` | ||
| Run it: | ||
| .. code:: bash | ||
| $ python hello_sphinx.py | ||
| hello_sphinx.py:23: DeprecationWarning: Call to deprecated function (or staticmethod) function_three. | ||
| (This function will be removed soon) -- Deprecated since version 1.0. | ||
| function_three() # warns | ||
| Help on function function_one in module __main__: | ||
| function_one() | ||
| This is the function one | ||
| .. versionadded:: 1.0 | ||
| This function is new | ||
| Help on function function_two in module __main__: | ||
| function_two() | ||
| This is the function two | ||
| .. versionchanged:: 1.0 | ||
| This function is modified | ||
| Help on function function_three in module __main__: | ||
| function_three() | ||
| This is the function three | ||
| .. deprecated:: 1.0 | ||
| This function will be removed soon | ||
| Links | ||
| ````` | ||
| * `Python package index (PyPi) <https://pypi.python.org/pypi/deprecated>`_ | ||
| * `GitHub website <https://github.com/tantale/deprecated>`_ | ||
| * `Read The Docs <https://readthedocs.org/projects/deprecated>`_ | ||
| * `EBook on Lulu.com <http://www.lulu.com/commerce/index.php?fBuyContent=21305117>`_ | ||
| * `StackOverFlow Q&A <https://stackoverflow.com/a/40301488/1513933>`_ | ||
| * `Development version | ||
| <https://github.com/tantale/deprecated/zipball/master#egg=Deprecated-dev>`_ | ||
| Keywords: deprecate,deprecated,deprecation,warning,warn,decorator | ||
@@ -173,1 +34,143 @@ Platform: any | ||
| Provides-Extra: dev | ||
| License-File: LICENSE.rst | ||
| Deprecated Library | ||
| ------------------ | ||
| Deprecated is Easy to Use | ||
| ````````````````````````` | ||
| If you need to mark a function or a method as deprecated, | ||
| you can use the ``@deprecated`` decorator: | ||
| Save in a hello.py: | ||
| .. code:: python | ||
| from deprecated import deprecated | ||
| @deprecated(version='1.2.1', reason="You should use another function") | ||
| def some_old_function(x, y): | ||
| return x + y | ||
| class SomeClass(object): | ||
| @deprecated(version='1.3.0', reason="This method is deprecated") | ||
| def some_old_method(self, x, y): | ||
| return x + y | ||
| some_old_function(12, 34) | ||
| obj = SomeClass() | ||
| obj.some_old_method(5, 8) | ||
| And Easy to Setup | ||
| ````````````````` | ||
| And run it: | ||
| .. code:: bash | ||
| $ pip install Deprecated | ||
| $ python hello.py | ||
| hello.py:15: DeprecationWarning: Call to deprecated function (or staticmethod) some_old_function. | ||
| (You should use another function) -- Deprecated since version 1.2.0. | ||
| some_old_function(12, 34) | ||
| hello.py:17: DeprecationWarning: Call to deprecated method some_old_method. | ||
| (This method is deprecated) -- Deprecated since version 1.3.0. | ||
| obj.some_old_method(5, 8) | ||
| You can document your code | ||
| `````````````````````````` | ||
| Have you ever wonder how to document that some functions, classes, methods, etc. are deprecated? | ||
| This is now possible with the integrated Sphinx directives: | ||
| For instance, in hello_sphinx.py: | ||
| .. code:: python | ||
| from deprecated.sphinx import deprecated | ||
| from deprecated.sphinx import versionadded | ||
| from deprecated.sphinx import versionchanged | ||
| @versionadded(version='1.0', reason="This function is new") | ||
| def function_one(): | ||
| '''This is the function one''' | ||
| @versionchanged(version='1.0', reason="This function is modified") | ||
| def function_two(): | ||
| '''This is the function two''' | ||
| @deprecated(version='1.0', reason="This function will be removed soon") | ||
| def function_three(): | ||
| '''This is the function three''' | ||
| function_one() | ||
| function_two() | ||
| function_three() # warns | ||
| help(function_one) | ||
| help(function_two) | ||
| help(function_three) | ||
| The result it immediate | ||
| ``````````````````````` | ||
| Run it: | ||
| .. code:: bash | ||
| $ python hello_sphinx.py | ||
| hello_sphinx.py:23: DeprecationWarning: Call to deprecated function (or staticmethod) function_three. | ||
| (This function will be removed soon) -- Deprecated since version 1.0. | ||
| function_three() # warns | ||
| Help on function function_one in module __main__: | ||
| function_one() | ||
| This is the function one | ||
| .. versionadded:: 1.0 | ||
| This function is new | ||
| Help on function function_two in module __main__: | ||
| function_two() | ||
| This is the function two | ||
| .. versionchanged:: 1.0 | ||
| This function is modified | ||
| Help on function function_three in module __main__: | ||
| function_three() | ||
| This is the function three | ||
| .. deprecated:: 1.0 | ||
| This function will be removed soon | ||
| Links | ||
| ````` | ||
| * `Python package index (PyPi) <https://pypi.python.org/pypi/deprecated>`_ | ||
| * `GitHub website <https://github.com/tantale/deprecated>`_ | ||
| * `Read The Docs <https://readthedocs.org/projects/deprecated>`_ | ||
| * `EBook on Lulu.com <http://www.lulu.com/commerce/index.php?fBuyContent=21305117>`_ | ||
| * `StackOverFlow Q&A <https://stackoverflow.com/a/40301488/1513933>`_ | ||
| * `Development version | ||
| <https://github.com/tantale/deprecated/zipball/master#egg=Deprecated-dev>`_ | ||
@@ -20,2 +20,3 @@ .bumpversion.cfg | ||
| .github/PULL_REQUEST_TEMPLATE.md | ||
| .github/workflows/codeql-analysis.yml | ||
| .github/workflows/python-package.yml | ||
@@ -22,0 +23,0 @@ Deprecated.egg-info/PKG-INFO |
@@ -10,7 +10,7 @@ # -*- coding: utf-8 -*- | ||
| __version__ = "1.2.12" | ||
| __version__ = "1.2.13" | ||
| __author__ = u"Laurent LAPORTE <tantale.solutions@gmail.com>" | ||
| __date__ = "2020-03-13" | ||
| __date__ = "2021-09-05" | ||
| __credits__ = "(c) Laurent LAPORTE" | ||
| from deprecated.classic import deprecated |
+18
-23
@@ -186,11 +186,5 @@ # coding: utf-8 | ||
| ) | ||
| return adapter | ||
| # noinspection PyUnusedLocal | ||
| @wrapt.decorator(adapter=adapter) | ||
| def wrapper(wrapped, instance, args, kwargs): | ||
| return wrapped(*args, **kwargs) | ||
| return wrapper | ||
| def versionchanged(reason="", version="", line_length=70): | ||
@@ -222,12 +216,6 @@ """ | ||
| ) | ||
| return adapter | ||
| # noinspection PyUnusedLocal | ||
| @wrapt.decorator(adapter=adapter) | ||
| def wrapper(wrapped, instance, args, kwargs): | ||
| return wrapped(*args, **kwargs) | ||
| return wrapper | ||
| def deprecated(*args, **kwargs): | ||
| def deprecated(reason="", version="", line_length=70, **kwargs): | ||
| """ | ||
@@ -238,8 +226,6 @@ This decorator can be used to insert a "deprecated" directive | ||
| Keyword arguments can be: | ||
| - "reason": | ||
| :param str reason: | ||
| Reason message which documents the deprecation in your library (can be omitted). | ||
| - "version": | ||
| :param str version: | ||
| Version of your project which deprecates this feature. | ||
@@ -249,2 +235,8 @@ If you follow the `Semantic Versioning <https://semver.org/>`_, | ||
| :type line_length: int | ||
| :param line_length: | ||
| Max line length of the directive text. If non nul, a long text is wrapped in several lines. | ||
| Keyword arguments can be: | ||
| - "action": | ||
@@ -260,9 +252,12 @@ A warning filter used to activate or not the deprecation warning. | ||
| - "line_length": | ||
| Max line length of the directive text. If non nul, a long text is wrapped in several lines. | ||
| :return: a decorator used to deprecate a function. | ||
| :return: the decorated function. | ||
| .. versionchanged:: 1.2.13 | ||
| Change the signature of the decorator to reflect the valid use cases. | ||
| """ | ||
| directive = kwargs.pop('directive', 'deprecated') | ||
| adapter_cls = kwargs.pop('adapter_cls', SphinxAdapter) | ||
| return _classic_deprecated(*args, directive=directive, adapter_cls=adapter_cls, **kwargs) | ||
| kwargs["reason"] = reason | ||
| kwargs["version"] = version | ||
| kwargs["line_length"] = line_length | ||
| return _classic_deprecated(directive=directive, adapter_cls=adapter_cls, **kwargs) |
@@ -64,3 +64,3 @@ #!/usr/bin/env python3 | ||
| # The full version, including alpha/beta/rc tags. | ||
| release = "1.2.12" | ||
| release = "1.2.13" | ||
| # The short X.Y version. | ||
@@ -67,0 +67,0 @@ version = release.rpartition('.')[0] |
+143
-140
| Metadata-Version: 2.1 | ||
| Name: Deprecated | ||
| Version: 1.2.12 | ||
| Version: 1.2.13 | ||
| Summary: Python @deprecated decorator to deprecate old python classes, functions or methods. | ||
@@ -12,141 +12,2 @@ Home-page: https://github.com/tantale/deprecated | ||
| Project-URL: Bug Tracker, https://github.com/tantale/deprecated/issues | ||
| Description: | ||
| Deprecated Library | ||
| ------------------ | ||
| Deprecated is Easy to Use | ||
| ````````````````````````` | ||
| If you need to mark a function or a method as deprecated, | ||
| you can use the ``@deprecated`` decorator: | ||
| Save in a hello.py: | ||
| .. code:: python | ||
| from deprecated import deprecated | ||
| @deprecated(version='1.2.1', reason="You should use another function") | ||
| def some_old_function(x, y): | ||
| return x + y | ||
| class SomeClass(object): | ||
| @deprecated(version='1.3.0', reason="This method is deprecated") | ||
| def some_old_method(self, x, y): | ||
| return x + y | ||
| some_old_function(12, 34) | ||
| obj = SomeClass() | ||
| obj.some_old_method(5, 8) | ||
| And Easy to Setup | ||
| ````````````````` | ||
| And run it: | ||
| .. code:: bash | ||
| $ pip install Deprecated | ||
| $ python hello.py | ||
| hello.py:15: DeprecationWarning: Call to deprecated function (or staticmethod) some_old_function. | ||
| (You should use another function) -- Deprecated since version 1.2.0. | ||
| some_old_function(12, 34) | ||
| hello.py:17: DeprecationWarning: Call to deprecated method some_old_method. | ||
| (This method is deprecated) -- Deprecated since version 1.3.0. | ||
| obj.some_old_method(5, 8) | ||
| You can document your code | ||
| `````````````````````````` | ||
| Have you ever wonder how to document that some functions, classes, methods, etc. are deprecated? | ||
| This is now possible with the integrated Sphinx directives: | ||
| For instance, in hello_sphinx.py: | ||
| .. code:: python | ||
| from deprecated.sphinx import deprecated | ||
| from deprecated.sphinx import versionadded | ||
| from deprecated.sphinx import versionchanged | ||
| @versionadded(version='1.0', reason="This function is new") | ||
| def function_one(): | ||
| '''This is the function one''' | ||
| @versionchanged(version='1.0', reason="This function is modified") | ||
| def function_two(): | ||
| '''This is the function two''' | ||
| @deprecated(version='1.0', reason="This function will be removed soon") | ||
| def function_three(): | ||
| '''This is the function three''' | ||
| function_one() | ||
| function_two() | ||
| function_three() # warns | ||
| help(function_one) | ||
| help(function_two) | ||
| help(function_three) | ||
| The result it immediate | ||
| ``````````````````````` | ||
| Run it: | ||
| .. code:: bash | ||
| $ python hello_sphinx.py | ||
| hello_sphinx.py:23: DeprecationWarning: Call to deprecated function (or staticmethod) function_three. | ||
| (This function will be removed soon) -- Deprecated since version 1.0. | ||
| function_three() # warns | ||
| Help on function function_one in module __main__: | ||
| function_one() | ||
| This is the function one | ||
| .. versionadded:: 1.0 | ||
| This function is new | ||
| Help on function function_two in module __main__: | ||
| function_two() | ||
| This is the function two | ||
| .. versionchanged:: 1.0 | ||
| This function is modified | ||
| Help on function function_three in module __main__: | ||
| function_three() | ||
| This is the function three | ||
| .. deprecated:: 1.0 | ||
| This function will be removed soon | ||
| Links | ||
| ````` | ||
| * `Python package index (PyPi) <https://pypi.python.org/pypi/deprecated>`_ | ||
| * `GitHub website <https://github.com/tantale/deprecated>`_ | ||
| * `Read The Docs <https://readthedocs.org/projects/deprecated>`_ | ||
| * `EBook on Lulu.com <http://www.lulu.com/commerce/index.php?fBuyContent=21305117>`_ | ||
| * `StackOverFlow Q&A <https://stackoverflow.com/a/40301488/1513933>`_ | ||
| * `Development version | ||
| <https://github.com/tantale/deprecated/zipball/master#egg=Deprecated-dev>`_ | ||
| Keywords: deprecate,deprecated,deprecation,warning,warn,decorator | ||
@@ -173,1 +34,143 @@ Platform: any | ||
| Provides-Extra: dev | ||
| License-File: LICENSE.rst | ||
| Deprecated Library | ||
| ------------------ | ||
| Deprecated is Easy to Use | ||
| ````````````````````````` | ||
| If you need to mark a function or a method as deprecated, | ||
| you can use the ``@deprecated`` decorator: | ||
| Save in a hello.py: | ||
| .. code:: python | ||
| from deprecated import deprecated | ||
| @deprecated(version='1.2.1', reason="You should use another function") | ||
| def some_old_function(x, y): | ||
| return x + y | ||
| class SomeClass(object): | ||
| @deprecated(version='1.3.0', reason="This method is deprecated") | ||
| def some_old_method(self, x, y): | ||
| return x + y | ||
| some_old_function(12, 34) | ||
| obj = SomeClass() | ||
| obj.some_old_method(5, 8) | ||
| And Easy to Setup | ||
| ````````````````` | ||
| And run it: | ||
| .. code:: bash | ||
| $ pip install Deprecated | ||
| $ python hello.py | ||
| hello.py:15: DeprecationWarning: Call to deprecated function (or staticmethod) some_old_function. | ||
| (You should use another function) -- Deprecated since version 1.2.0. | ||
| some_old_function(12, 34) | ||
| hello.py:17: DeprecationWarning: Call to deprecated method some_old_method. | ||
| (This method is deprecated) -- Deprecated since version 1.3.0. | ||
| obj.some_old_method(5, 8) | ||
| You can document your code | ||
| `````````````````````````` | ||
| Have you ever wonder how to document that some functions, classes, methods, etc. are deprecated? | ||
| This is now possible with the integrated Sphinx directives: | ||
| For instance, in hello_sphinx.py: | ||
| .. code:: python | ||
| from deprecated.sphinx import deprecated | ||
| from deprecated.sphinx import versionadded | ||
| from deprecated.sphinx import versionchanged | ||
| @versionadded(version='1.0', reason="This function is new") | ||
| def function_one(): | ||
| '''This is the function one''' | ||
| @versionchanged(version='1.0', reason="This function is modified") | ||
| def function_two(): | ||
| '''This is the function two''' | ||
| @deprecated(version='1.0', reason="This function will be removed soon") | ||
| def function_three(): | ||
| '''This is the function three''' | ||
| function_one() | ||
| function_two() | ||
| function_three() # warns | ||
| help(function_one) | ||
| help(function_two) | ||
| help(function_three) | ||
| The result it immediate | ||
| ``````````````````````` | ||
| Run it: | ||
| .. code:: bash | ||
| $ python hello_sphinx.py | ||
| hello_sphinx.py:23: DeprecationWarning: Call to deprecated function (or staticmethod) function_three. | ||
| (This function will be removed soon) -- Deprecated since version 1.0. | ||
| function_three() # warns | ||
| Help on function function_one in module __main__: | ||
| function_one() | ||
| This is the function one | ||
| .. versionadded:: 1.0 | ||
| This function is new | ||
| Help on function function_two in module __main__: | ||
| function_two() | ||
| This is the function two | ||
| .. versionchanged:: 1.0 | ||
| This function is modified | ||
| Help on function function_three in module __main__: | ||
| function_three() | ||
| This is the function three | ||
| .. deprecated:: 1.0 | ||
| This function will be removed soon | ||
| Links | ||
| ````` | ||
| * `Python package index (PyPi) <https://pypi.python.org/pypi/deprecated>`_ | ||
| * `GitHub website <https://github.com/tantale/deprecated>`_ | ||
| * `Read The Docs <https://readthedocs.org/projects/deprecated>`_ | ||
| * `EBook on Lulu.com <http://www.lulu.com/commerce/index.php?fBuyContent=21305117>`_ | ||
| * `StackOverFlow Q&A <https://stackoverflow.com/a/40301488/1513933>`_ | ||
| * `Development version | ||
| <https://github.com/tantale/deprecated/zipball/master#egg=Deprecated-dev>`_ | ||
+1
-1
@@ -5,3 +5,3 @@ # Deprecated Decorator | ||
| [](https://travis-ci.org/tantale/deprecated) | ||
| [](https://travis-ci.com/tantale/deprecated) | ||
| [](https://ci.appveyor.com/project/tantale/deprecated) | ||
@@ -8,0 +8,0 @@ [](https://coveralls.io/github/tantale/deprecated?branch=master) |
+2
-5
@@ -11,8 +11,5 @@ [bdist_wheel] | ||
| [build_sphinx] | ||
| source-dir = docs/source | ||
| build-dir = dist/docs | ||
| source_dir = docs/source | ||
| build_dir = dist/docs | ||
| [upload_docs] | ||
| upload-dir = dist/docs/html | ||
| [egg_info] | ||
@@ -19,0 +16,0 @@ tag_build = |
+1
-1
@@ -146,3 +146,3 @@ #!/usr/bin/env python | ||
| name='Deprecated', | ||
| version='1.2.12', | ||
| version='1.2.13', | ||
| url='https://github.com/tantale/deprecated', | ||
@@ -149,0 +149,0 @@ project_urls={ |
@@ -85,1 +85,66 @@ # coding: utf-8 | ||
| assert issubclass(MySubClass, MyBaseClass) | ||
| @pytest.mark.skipif( | ||
| sys.version_info < (3, 3), reason="Classes should have mutable docstrings -- resolved in python 3.3" | ||
| ) | ||
| def test_isinstance_versionadded(): | ||
| # https://github.com/tantale/deprecated/issues/48 | ||
| @deprecated.sphinx.versionadded(version="X.Y", reason="some reason") | ||
| class VersionAddedCls: | ||
| pass | ||
| @deprecated.sphinx.versionadded(version="X.Y", reason="some reason") | ||
| class VersionAddedChildCls(VersionAddedCls): | ||
| pass | ||
| instance = VersionAddedChildCls() | ||
| assert isinstance(instance, VersionAddedChildCls) | ||
| assert isinstance(instance, VersionAddedCls) | ||
| @pytest.mark.skipif( | ||
| sys.version_info < (3, 3), reason="Classes should have mutable docstrings -- resolved in python 3.3" | ||
| ) | ||
| def test_isinstance_versionchanged(): | ||
| @deprecated.sphinx.versionchanged(version="X.Y", reason="some reason") | ||
| class VersionChangedCls: | ||
| pass | ||
| @deprecated.sphinx.versionchanged(version="X.Y", reason="some reason") | ||
| class VersionChangedChildCls(VersionChangedCls): | ||
| pass | ||
| instance = VersionChangedChildCls() | ||
| assert isinstance(instance, VersionChangedChildCls) | ||
| assert isinstance(instance, VersionChangedCls) | ||
| @pytest.mark.skipif( | ||
| sys.version_info < (3, 3), reason="Classes should have mutable docstrings -- resolved in python 3.3" | ||
| ) | ||
| def test_isinstance_deprecated(): | ||
| @deprecated.sphinx.deprecated(version="X.Y", reason="some reason") | ||
| class DeprecatedCls: | ||
| pass | ||
| @deprecated.sphinx.deprecated(version="Y.Z", reason="some reason") | ||
| class DeprecatedChildCls(DeprecatedCls): | ||
| pass | ||
| instance = DeprecatedChildCls() | ||
| assert isinstance(instance, DeprecatedChildCls) | ||
| assert isinstance(instance, DeprecatedCls) | ||
| @pytest.mark.skipif( | ||
| sys.version_info < (3, 3), reason="Classes should have mutable docstrings -- resolved in python 3.3" | ||
| ) | ||
| def test_isinstance_versionadded_versionchanged(): | ||
| @deprecated.sphinx.versionadded(version="X.Y") | ||
| @deprecated.sphinx.versionchanged(version="X.Y.Z") | ||
| class AddedChangedCls: | ||
| pass | ||
| instance = AddedChangedCls() | ||
| assert isinstance(instance, AddedChangedCls) |
@@ -306,3 +306,6 @@ # coding: utf-8 | ||
| try: | ||
| deprecated.sphinx.deprecated(5) | ||
| @deprecated.sphinx.deprecated(version="4.5.6", reason=5) | ||
| def foo(): | ||
| pass | ||
| assert False, "TypeError not raised" | ||
@@ -309,0 +312,0 @@ except TypeError: |
+4
-2
@@ -14,3 +14,3 @@ # Tox configuration file | ||
| envlist = | ||
| py{27,34,35,36,37,38,39,310}-wrapt{1.10,1.11,1.12} | ||
| py{27,34,35,36,37,38,39,310}-wrapt{1.10,1.11,1.12,1.13} | ||
| pypy, pypy3 | ||
@@ -22,6 +22,7 @@ docs | ||
| deps = | ||
| py27,py34,py35: pip >= 9.0.3, < 19.2 | ||
| py27,py34,py35: pip >= 9.0.3, < 21 | ||
| py27,py34: PyTest < 5 | ||
| py35,py36,py37,py38,py39,pypy,pypy3: PyTest | ||
| py27,py34: PyTest-Cov < 2.6 | ||
| py34: typing # required by pytest->attrs | ||
| py35,py36,py37,py38,py39,py310,pypy,pypy3: PyTest-Cov | ||
@@ -31,2 +32,3 @@ wrapt1.10: wrapt ~= 1.10.0 | ||
| wrapt1.12: wrapt ~= 1.12.0 | ||
| wrapt1.13: wrapt == 1.13.0rc3 | ||
| coverage < 5 | ||
@@ -33,0 +35,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
3118770
0.11%72
1.41%1983
2.59%