From 733129363624799f43749b0d68671589f02d2a22 Mon Sep 17 00:00:00 2001 From: Hugo Date: Thu, 31 Jan 2019 22:39:17 +0200 Subject: [PATCH 1/5] Add python_requires to help pip --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 970a3468..39df9bb8 100644 --- a/setup.py +++ b/setup.py @@ -18,6 +18,7 @@ scripts=['bin/jp.py'], packages=find_packages(exclude=['tests']), license='MIT', + python_requires='>=2.6, !=3.0.*, !=3.1.*, !=3.2.*', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', From 86798fad483ccef63d0e5fea2e8f86568e46b94f Mon Sep 17 00:00:00 2001 From: Hugo Date: Thu, 31 Jan 2019 22:48:33 +0200 Subject: [PATCH 2/5] Warn if using an EOL Python --- jmespath/__init__.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/jmespath/__init__.py b/jmespath/__init__.py index 96bfa351..13839214 100644 --- a/jmespath/__init__.py +++ b/jmespath/__init__.py @@ -1,9 +1,19 @@ +import warnings +import sys from jmespath import parser from jmespath.visitor import Options __version__ = '0.9.3' +if sys.version_info[:2] <= (2, 6) or ((3, 0) <= sys.version_info[:2] <= (3, 3)): + python_ver = '.'.join(str(x) for x in sys.version_info[:3]) + + warnings.warn('You are using Python {0}, which will no longer be supported in ' + 'JMESPath 1.0'.format(python_ver), + DeprecationWarning) + + def compile(expression): return parser.Parser().parse(expression) From 4bd372416e0c253e971e8d6a6c24972ab72cc310 Mon Sep 17 00:00:00 2001 From: Hugo Date: Thu, 31 Jan 2019 22:50:42 +0200 Subject: [PATCH 3/5] Document 2.6 and 3.3 deprecation --- CHANGELOG.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c9d1eb4e..5c0bdeae 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,9 @@ +0.9.4 +===== + +* Python 2.6 and 3.3 have reached end-of-life and have been deprecated. + They will be dropped in JMESPath 1.0. + 0.9.3 ===== From 3dc3bb6ce455de79955c470d60b5d945fe04dff8 Mon Sep 17 00:00:00 2001 From: Hugo Date: Thu, 31 Jan 2019 22:56:29 +0200 Subject: [PATCH 4/5] Warn when installing --- setup.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 39df9bb8..de37abe2 100644 --- a/setup.py +++ b/setup.py @@ -1,12 +1,20 @@ #!/usr/bin/env python -import os -import sys import io +import sys +import warnings from setuptools import setup, find_packages +if sys.version_info[:2] <= (2, 6) or ((3, 0) <= sys.version_info[:2] <= (3, 3)): + python_ver = '.'.join(str(x) for x in sys.version_info[:3]) + + warnings.warn('You are using Python {0}, which will no longer be supported in ' + 'JMESPath 1.0'.format(python_ver), + DeprecationWarning) + + setup( name='jmespath', version='0.9.3', From 87b7303bae18489a90dab42737131a95fd85018e Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 24 Feb 2019 21:55:45 +0200 Subject: [PATCH 5/5] Start with PendingDeprecationWarning, we can then document the deprecation process in docs before starting to deprecate --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index de37abe2..e46bfe6c 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ warnings.warn('You are using Python {0}, which will no longer be supported in ' 'JMESPath 1.0'.format(python_ver), - DeprecationWarning) + PendingDeprecationWarning) setup(