diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 7b03507..88ae95d 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,16 +1,12 @@ [bumpversion] -current_version = 1.2.14 +current_version = 1.2.15 commit = True tag = False message = Prepare next version {new_version} (unreleased) [bumpversion:file:setup.py] -search = version='{current_version}' -replace = version='{new_version}' - -[bumpversion:file:appveyor.yml] -search = version: {current_version} -replace = version: {new_version} +search = version="{current_version}" +replace = version="{new_version}" [bumpversion:file:deprecated/__init__.py] search = __version__ = "{current_version}" diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index ee09607..e735b5d 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -55,7 +55,7 @@ further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at [Tantale Solutions](mailto:tantale.solutions@gmail.com). All +reported by contacting the project team at [Laurent LAPORTE](mailto:laurent.laporte.pro@gmail.com). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. diff --git a/.gitignore b/.gitignore index 36d92b2..5111624 100644 --- a/.gitignore +++ b/.gitignore @@ -1,160 +1,4 @@ - -# Created by https://www.gitignore.io/api/intellij,linux,osx,pycharm,python - -### Intellij ### -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff: -.idea/ -.idea/workspace.xml -.idea/tasks.xml -.idea/dictionaries -.idea/vcs.xml -.idea/jsLibraryMappings.xml - -# Sensitive or high-churn files: -.idea/dataSources.ids -.idea/dataSources.xml -.idea/dataSources.local.xml -.idea/sqlDataSources.xml -.idea/dynamic.xml -.idea/uiDesigner.xml - -# Gradle: -.idea/gradle.xml -.idea/libraries - -# Mongo Explorer plugin: -.idea/mongoSettings.xml - -## File-based project format: -*.iws - -## Plugin-specific files: - -# IntelliJ -/out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties - -### Intellij Patch ### -# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 - -# *.iml -# modules.xml -# .idea/misc.xml -# *.ipr - - -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - - -### OSX ### -*.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - - -### PyCharm ### -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff: -.idea/workspace.xml -.idea/tasks.xml -.idea/dictionaries -.idea/vcs.xml -.idea/jsLibraryMappings.xml - -# Sensitive or high-churn files: -.idea/dataSources.ids -.idea/dataSources.xml -.idea/dataSources.local.xml -.idea/sqlDataSources.xml -.idea/dynamic.xml -.idea/uiDesigner.xml - -# Gradle: -.idea/gradle.xml -.idea/libraries - -# Mongo Explorer plugin: -.idea/mongoSettings.xml - -## File-based project format: -*.iws - -## Plugin-specific files: - -# IntelliJ -/out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties - -### PyCharm Patch ### -# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 - -# *.iml -# modules.xml -# .idea/misc.xml -# *.ipr - - -### Python ### +### Python template # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] @@ -165,7 +9,6 @@ __pycache__/ # Distribution / packaging .Python -env/ build/ develop-eggs/ dist/ @@ -177,14 +20,18 @@ lib64/ parts/ sdist/ var/ +wheels/ +share/python-wheels/ *.egg-info/ .installed.cfg *.egg +MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest +*.spec # Installer logs pip-log.txt @@ -193,13 +40,17 @@ pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ +.nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml -*,cover +*.cover +*.py,cover .hypothesis/ +.pytest_cache/ +cover/ # Translations *.mo @@ -208,6 +59,8 @@ coverage.xml # Django stuff: *.log local_settings.py +db.sqlite3 +db.sqlite3-journal # Flask stuff: instance/ @@ -220,27 +73,91 @@ instance/ docs/_build/ # PyBuilder +.pybuilder/ target/ -# IPython Notebook +# Jupyter Notebook .ipynb_checkpoints -# pyenv -.python-version +# IPython +profile_default/ +ipython_config.py -# celery beat schedule file +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff celerybeat-schedule +celerybeat.pid -# dotenv -.env +# SageMath parsed files +*.sage.py -# virtualenv +# Environments +.env +.venv +env/ venv/ ENV/ +env.bak/ +venv.bak/ # Spyder project settings .spyderproject +.spyproject # Rope project settings .ropeproject -.pytest_cache/ + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +.idea/ diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2d859d9..f266b90 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -18,7 +18,7 @@ and this project adheres to `Semantic Versioning Attrs). + run unit tests on Wrapt 1.13 (release candidate). -- Migrating project to `travis-ci.com `_. +- Migrating project to `travis-ci.com `_. v1.2.12 (2021-03-13) @@ -168,7 +168,7 @@ Bug fix release Fix --- -- Fix #20: Set the :func:`warnings.warn` stacklevel to 2 if the Python implementation is `PyPy `_. +- Fix #20: Set the :func:`warnings.warn` stacklevel to 2 if the Python implementation is `PyPy `_. - Fix packit configuration: use ``dist-git-branch: fedora-all``. @@ -471,7 +471,7 @@ Added Other ----- -- Improve `Travis `_ configuration file (compatibility from Python 2.6 to 3.7-dev, and PyPy). +- Improve `Travis `_ configuration file (compatibility from Python 2.6 to 3.7-dev, and PyPy). - Add `AppVeyor `_ configuration file. - Add `Tox `_ configuration file. - Add `BumpVersion `_ configuration file. diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 302d872..bc18a68 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -55,8 +55,8 @@ First time setup - Add the main repository as a remote to update later:: - git remote add tantale https://github.com/tantale/deprecated.git - git fetch tantale + git remote add upstream https://github.com/laurent-laporte-pro/deprecated.git + git fetch upstream - Create a virtualenv:: @@ -72,7 +72,7 @@ First time setup .. _latest version of git: https://git-scm.com/downloads .. _username: https://help.github.com/articles/setting-your-username-in-git/ .. _email: https://help.github.com/articles/setting-your-commit-email-address-in-git/ -.. _Fork: https://github.com/tantale/deprecated#fork-destination-box +.. _Fork: https://github.com/laurent-laporte-pro/deprecated#fork-destination-box .. _Clone: https://help.github.com/articles/fork-a-repo/#step-2-create-a-local-clone-of-your-fork Start coding diff --git a/README.md b/README.md index 98911df..f351926 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@ Python ``@deprecated`` decorator to deprecate old python classes, functions or methods. -[![license](https://img.shields.io/badge/license-MIT-blue?logo=opensourceinitiative&logoColor=white)](https://raw.githubusercontent.com/tantale/deprecated/master/LICENSE.rst) -[![GitHub release](https://img.shields.io/github/v/release/tantale/deprecated?logo=github&logoColor=white)](https://github.com/tantale/deprecated/releases/latest) +[![license](https://img.shields.io/badge/license-MIT-blue?logo=opensourceinitiative&logoColor=white)](https://raw.githubusercontent.com/laurent-laporte-pro/deprecated/master/LICENSE.rst) +[![GitHub release](https://img.shields.io/github/v/release/laurent-laporte-pro/deprecated?logo=github&logoColor=white)](https://github.com/laurent-laporte-pro/deprecated/releases/latest) [![PyPI](https://img.shields.io/pypi/v/deprecated?logo=pypi&logoColor=white)](https://pypi.org/project/Deprecated/) -[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/tantale/deprecated/python-package.yml?logo=github&logoColor=white)](https://github.com/tantale/deprecated/actions/workflows/python-package.yml) -[![Coveralls branch](https://img.shields.io/coverallsCoverage/github/tantale/deprecated?logo=coveralls&logoColor=white)](https://coveralls.io/github/tantale/deprecated?branch=master) +[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/laurent-laporte-pro/deprecated/python-package.yml?logo=github&logoColor=white)](https://github.com/laurent-laporte-pro/deprecated/actions/workflows/python-package.yml) +[![Coveralls branch](https://img.shields.io/coverallsCoverage/github/laurent-laporte-pro/deprecated?logo=coveralls&logoColor=white)](https://coveralls.io/github/laurent-laporte-pro/deprecated?branch=master) [![Read the Docs (version)](https://img.shields.io/readthedocs/deprecated/latest?logo=readthedocs&logoColor=white) ](http://deprecated.readthedocs.io/en/latest/?badge=latest) @@ -62,7 +62,7 @@ def some_old_function(x, y): The authors of this library are: [Marcos CARDOSO](https://github.com/vrcmarcos), and -[Laurent LAPORTE](https://github.com/tantale). +[Laurent LAPORTE](https://github.com/laurent-laporte-pro). The original code was made in [this StackOverflow post](https://stackoverflow.com/questions/2536307) by [Leandro REGUEIRO](https://stackoverflow.com/users/1336250/leandro-regueiro), diff --git a/deprecated/__init__.py b/deprecated/__init__.py index 827e626..f0677b6 100644 --- a/deprecated/__init__.py +++ b/deprecated/__init__.py @@ -7,9 +7,9 @@ """ -__version__ = "1.2.14" -__author__ = u"Laurent LAPORTE " -__date__ = "2023-05-27" +__version__ = "1.2.15" +__author__ = u"Laurent LAPORTE " +__date__ = "2024-11-15" __credits__ = "(c) Laurent LAPORTE" from deprecated.classic import deprecated diff --git a/deprecated/sphinx.py b/deprecated/sphinx.py index 70ef050..90435c6 100644 --- a/deprecated/sphinx.py +++ b/deprecated/sphinx.py @@ -93,7 +93,7 @@ def __init__( Add the *extra_stacklevel* parameter. """ if not version: - # https://github.com/tantale/deprecated/issues/40 + # https://github.com/laurent-laporte-pro/deprecated/issues/40 raise ValueError("'version' argument is required in Sphinx directives") self.directive = directive self.line_length = line_length diff --git a/docs/source/conf.py b/docs/source/conf.py index 4181894..bed3b95 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -61,7 +61,7 @@ # built documents. # # The full version, including alpha/beta/rc tags. -release = "1.2.14" +release = "1.2.15" # The short X.Y version. version = release.rpartition('.')[0] diff --git a/docs/source/installation.rst b/docs/source/installation.rst index 99c7b65..bf110e5 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -127,7 +127,7 @@ update the code from the master branch: .. code-block:: sh - pip install -U https://github.com/tantale/deprecated/archive/master.tar.gz + pip install -U https://github.com/laurent-laporte-pro/deprecated/archive/master.tar.gz .. _install-install-virtualenv: diff --git a/docs/source/introduction.rst b/docs/source/introduction.rst index 347117c..1a0ba36 100644 --- a/docs/source/introduction.rst +++ b/docs/source/introduction.rst @@ -4,7 +4,7 @@ Introduction What "Deprecated" Means ----------------------- -.. _Deprecated Library: https://pypi.python.org/pypi/deprecated +.. _Deprecated Library: https://pypi.org/project/Deprecated/ A function or class is deprecated when it is considered as it is no longer important. It is so unimportant, in fact, that you should no longer use it, since it has been superseded and may cease to exist in the future. diff --git a/docs/source/tutorial.rst b/docs/source/tutorial.rst index 00fb237..903f220 100644 --- a/docs/source/tutorial.rst +++ b/docs/source/tutorial.rst @@ -127,7 +127,7 @@ Controlling warnings -------------------- .. _Python warning control: https://docs.python.org/3/library/warnings.html -.. _-W: https://docs.python.org/3/using/cmdline.html#cmdoption-w +.. _-W: https://docs.python.org/3/using/cmdline.html#cmdoption-W .. _PYTHONWARNINGS: https://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNINGS Warnings are emitted using the `Python warning control`_. By default, Python installs several warning filters, diff --git a/docs/source/white_paper.rst b/docs/source/white_paper.rst index 7e937fb..a582c58 100644 --- a/docs/source/white_paper.rst +++ b/docs/source/white_paper.rst @@ -13,7 +13,7 @@ The Python Standard Library --------------------------- :Library: Python_ -:GitHub: `python/cpython `_. +:GitHub: `python/cpython `_. :Version: v3.8.dev An example of function deprecation can be found in the :mod:`urllib` module (:file:`Lib/urllib/parse.py`): @@ -122,7 +122,7 @@ The Flask Library ----------------- :Library: Flask_ -:GitHub: `pallets/flask `_. +:GitHub: `pallets/flask `_. :Version: v1.1.dev In the source code of Flask, we find only few deprecations: in the :mod:`~flask.app` (:file:`flask/app.py`) @@ -196,7 +196,7 @@ The Django Library ------------------ :Library: Django -:GitHub: `django/django `_. +:GitHub: `django/django `_. :Version: v3.0.dev The `Django`_ Library defines several categories for deprecation in the module :mod:`django.utils.deprecation`: @@ -283,7 +283,7 @@ The lxml Library ---------------- :Library: lxml_ -:GitHub: `lxml/lxml `_. +:GitHub: `lxml/lxml `_. :Version: v4.3.2.dev The lxml_ Library is developed in Cython, not Python. But, it is a similar language. diff --git a/python-deprecated.spec b/python-deprecated.spec index 67ff150..4cc56be 100644 --- a/python-deprecated.spec +++ b/python-deprecated.spec @@ -2,11 +2,11 @@ %global pkgname deprecated Name: python-%{pkgname} -Version: 1.2.14 +Version: 1.2.15 Release: 1%{?dist} Summary: Python decorator to deprecate old python classes, functions or methods License: MIT -URL: https://github.com/tantale/%{pkgname} +URL: https://github.com/laurent-laporte-pro/%{pkgname} Source0: %{pypi_source} BuildArch: noarch diff --git a/setup.py b/setup.py index 5c8cd90..f58e9b8 100755 --- a/setup.py +++ b/setup.py @@ -130,70 +130,71 @@ def function_three(): Links ````` -* `Python package index (PyPi) `_ -* `GitHub website `_ +* `Python package index (PyPi) `_ +* `GitHub website `_ * `Read The Docs `_ * `EBook on Lulu.com `_ * `StackOverFlow Q&A `_ * `Development version - `_ + `_ """ + from setuptools import setup setup( - name='Deprecated', - version='1.2.14', - url='https://github.com/tantale/deprecated', + name="Deprecated", + version="1.2.15", + url="https://github.com/laurent-laporte-pro/deprecated", project_urls={ "Documentation": "https://deprecated.readthedocs.io/en/latest/", - "Source": "https://github.com/tantale/deprecated", - "Bug Tracker": "https://github.com/tantale/deprecated/issues", + "Source": "https://github.com/laurent-laporte-pro/deprecated", + "Bug Tracker": "https://github.com/laurent-laporte-pro/deprecated/issues", }, - license='MIT', - author='Laurent LAPORTE', # since v1.1.0 - author_email='tantale.solutions@gmail.com', - description='Python @deprecated decorator to deprecate old python classes, functions or methods.', + license="MIT", + author="Laurent LAPORTE", # since v1.1.0 + author_email="laurent.laporte.pro@gmail.com", + description="Python @deprecated decorator to deprecate old python classes, functions or methods.", long_description=__doc__, long_description_content_type="text/x-rst", - keywords='deprecate,deprecated,deprecation,warning,warn,decorator', - packages=['deprecated'], - install_requires=['wrapt < 2, >= 1.10'], + keywords="deprecate,deprecated,deprecation,warning,warn,decorator", + packages=["deprecated"], + install_requires=["wrapt < 2, >= 1.10"], zip_safe=False, include_package_data=True, - platforms='any', + platforms="any", classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Environment :: Web Environment', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: MIT License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - 'Programming Language :: Python :: 3.12', - 'Topic :: Software Development :: Libraries :: Python Modules', + "Development Status :: 5 - Production/Stable", + "Environment :: Web Environment", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Software Development :: Libraries :: Python Modules", ], extras_require={ - 'dev': [ - 'tox', - 'PyTest', - 'PyTest-Cov', - 'bump2version < 1', - 'sphinx < 2', + "dev": [ + "tox", + "PyTest", + "PyTest-Cov", + "bump2version < 1", + "sphinx < 2", # jinja2 3.0.3 was the last version to have contextfunction that sphinx 1.x needs - 'jinja2~=3.0.3', - 'setuptools; python_version>="3.12"', + "jinja2~=3.0.3", + "setuptools; python_version>='3.12'", ] }, - python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*', + python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", ) diff --git a/tests/test_sphinx_class.py b/tests/test_sphinx_class.py index 6a2f3c2..b40b1cf 100644 --- a/tests/test_sphinx_class.py +++ b/tests/test_sphinx_class.py @@ -88,7 +88,7 @@ class MySubClass(MyBaseClass): 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 + # https://github.com/laurent-laporte-pro/deprecated/issues/48 @deprecated.sphinx.versionadded(version="X.Y", reason="some reason") class VersionAddedCls: pass