From a892887b04c9fa2e774492d33d9a8878b449977a Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Thu, 27 Feb 2020 02:04:03 +0100 Subject: [PATCH] Remove Python 3.4 support --- .travis.yml | 10 +--------- CHANGELOG.rst | 4 +++- README.rst | 2 +- appveyor.yml | 12 ------------ docs/docs/features.rst | 2 +- jedi/_compatibility.py | 2 +- jedi/api/classes.py | 2 +- jedi/api/environment.py | 2 +- jedi/inference/compiled/access.py | 16 ---------------- jedi/inference/star_args.py | 2 +- jedi/inference/utils.py | 2 +- setup.py | 7 +++---- test/completion/arrays.py | 2 +- test/completion/generators.py | 2 +- test/completion/pep0484_basic.py | 2 +- test/completion/pep0484_typing.py | 4 ++-- test/completion/pytest.py | 2 +- test/completion/stdlib.py | 2 +- test/completion/stubs.py | 2 +- test/examples/buildout_project/bin/app | 2 +- .../__init__.cpython-34m.so | Bin 16493 -> 0 bytes .../__init__.cpython-38-x86_64-linux-gnu.so | Bin 0 -> 17328 bytes test/run.py | 2 +- test/test_api/test_environment.py | 2 +- test/test_inference/test_buildout_detection.py | 2 +- test/test_inference/test_extension.py | 8 ++++---- test/test_inference/test_gradual/test_stubs.py | 2 +- tox.ini | 2 -- 28 files changed, 31 insertions(+), 68 deletions(-) delete mode 100755 test/examples/init_extension_module/__init__.cpython-34m.so create mode 100755 test/examples/init_extension_module/__init__.cpython-38-x86_64-linux-gnu.so diff --git a/.travis.yml b/.travis.yml index 324e27a6..f081a464 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,6 @@ dist: xenial language: python python: - 2.7 - - 3.4 - 3.5 - 3.6 - 3.7 @@ -10,7 +9,6 @@ python: env: - JEDI_TEST_ENVIRONMENT=27 - - JEDI_TEST_ENVIRONMENT=34 - JEDI_TEST_ENVIRONMENT=35 - JEDI_TEST_ENVIRONMENT=36 - JEDI_TEST_ENVIRONMENT=37 @@ -41,13 +39,7 @@ script: if [ "$TRAVIS_PYTHON_VERSION" != "$test_env_version" ] && [ "$JEDI_TEST_ENVIRONMENT" != "interpreter" ]; then python_bin=python$test_env_version python_path="$(which $python_bin || true)" - if [ -z "$python_path" ]; then - # Only required for JEDI_TEST_ENVIRONMENT=34. - download_name=python-$test_env_version - wget https://s3.amazonaws.com/travis-python-archives/binaries/ubuntu/16.04/x86_64/$download_name.tar.bz2 - sudo tar xjf $download_name.tar.bz2 --directory / opt/python - ln -s "/opt/python/${test_env_version}/bin/python" /home/travis/bin/$python_bin - elif [ "${python_path#/opt/pyenv/shims}" != "$python_path" ]; then + if [ "${python_path#/opt/pyenv/shims}" != "$python_path" ]; then # Activate pyenv version (required with JEDI_TEST_ENVIRONMENT=36). pyenv_bin="$(pyenv whence --path "$python_bin" | head -n1)" ln -s "$pyenv_bin" /home/travis/bin/$python_bin diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2d7bcccd..0370f133 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,9 +3,11 @@ Changelog --------- -0.16.1 (2020--) +0.17.0 (2020--) +++++++++++++++++++ +- Removed Python 3.4 support + 0.16.0 (2020-01-26) +++++++++++++++++++ diff --git a/README.rst b/README.rst index 0611bdc4..0381785f 100644 --- a/README.rst +++ b/README.rst @@ -109,7 +109,7 @@ understands, see: `Features `_. A list of caveats can be found on the same page. -You can run Jedi on CPython 2.7 or 3.4+ but it should also +You can run Jedi on CPython 2.7 or 3.5+ but it should also understand/parse code older than those versions. Additionally you should be able to use `Virtualenvs `_ very well. diff --git a/appveyor.yml b/appveyor.yml index 18605d8a..7367e331 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -3,9 +3,6 @@ environment: - TOXENV: py27 PYTHON_PATH: C:\Python27 JEDI_TEST_ENVIRONMENT: 27 - - TOXENV: py27 - PYTHON_PATH: C:\Python27 - JEDI_TEST_ENVIRONMENT: 34 - TOXENV: py27 PYTHON_PATH: C:\Python27 JEDI_TEST_ENVIRONMENT: 35 @@ -19,9 +16,6 @@ environment: - TOXENV: py35 PYTHON_PATH: C:\Python35 JEDI_TEST_ENVIRONMENT: 27 - - TOXENV: py35 - PYTHON_PATH: C:\Python35 - JEDI_TEST_ENVIRONMENT: 34 - TOXENV: py35 PYTHON_PATH: C:\Python35 JEDI_TEST_ENVIRONMENT: 35 @@ -35,9 +29,6 @@ environment: - TOXENV: py36 PYTHON_PATH: C:\Python36 JEDI_TEST_ENVIRONMENT: 27 - - TOXENV: py36 - PYTHON_PATH: C:\Python36 - JEDI_TEST_ENVIRONMENT: 34 - TOXENV: py36 PYTHON_PATH: C:\Python36 JEDI_TEST_ENVIRONMENT: 35 @@ -51,9 +42,6 @@ environment: - TOXENV: py37 PYTHON_PATH: C:\Python37 JEDI_TEST_ENVIRONMENT: 27 - - TOXENV: py37 - PYTHON_PATH: C:\Python37 - JEDI_TEST_ENVIRONMENT: 34 - TOXENV: py37 PYTHON_PATH: C:\Python37 JEDI_TEST_ENVIRONMENT: 35 diff --git a/docs/docs/features.rst b/docs/docs/features.rst index 617b7408..437acbc1 100644 --- a/docs/docs/features.rst +++ b/docs/docs/features.rst @@ -17,7 +17,7 @@ make it work. General Features ---------------- -- Python 2.7 and 3.4+ support +- Python 2.7 and 3.5+ support - Ignores syntax errors and wrong indentation - Can deal with complex module / function / class structures - Great Virtualenv support diff --git a/jedi/_compatibility.py b/jedi/_compatibility.py index d8950018..7b549746 100644 --- a/jedi/_compatibility.py +++ b/jedi/_compatibility.py @@ -275,7 +275,7 @@ def _iter_modules(paths, prefix=''): # END COPY -iter_modules = _iter_modules if py_version >= 34 else pkgutil.iter_modules +iter_modules = _iter_modules if py_version >= 35 else pkgutil.iter_modules class ImplicitNSInfo(object): diff --git a/jedi/api/classes.py b/jedi/api/classes.py index 14cf2976..baf07a60 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -815,7 +815,7 @@ class ParamDefinition(Definition): Returns an enum instance. Returns the same values as the builtin :py:attr:`inspect.Parameter.kind`. - No support for Python < 3.4 anymore. + No support for Python < 3.5 anymore. """ if sys.version_info < (3, 5): raise NotImplementedError( diff --git a/jedi/api/environment.py b/jedi/api/environment.py index 99643418..63f127b1 100644 --- a/jedi/api/environment.py +++ b/jedi/api/environment.py @@ -17,7 +17,7 @@ import parso _VersionInfo = namedtuple('VersionInfo', 'major minor micro') -_SUPPORTED_PYTHONS = ['3.8', '3.7', '3.6', '3.5', '3.4', '2.7'] +_SUPPORTED_PYTHONS = ['3.8', '3.7', '3.6', '3.5', '2.7'] _SAFE_PATHS = ['/usr/bin', '/usr/local/bin'] _CONDA_VAR = 'CONDA_PREFIX' _CURRENT_VERSION = '%s.%s' % (sys.version_info.major, sys.version_info.minor) diff --git a/jedi/inference/compiled/access.py b/jedi/inference/compiled/access.py index f76a645f..f5844227 100644 --- a/jedi/inference/compiled/access.py +++ b/jedi/inference/compiled/access.py @@ -502,22 +502,6 @@ class DirectObjectAccess(object): obj = self._obj if py_version < 33: raise ValueError("inspect.signature was introduced in 3.3") - if py_version == 34: - # In 3.4 inspect.signature are wrong for str and int. This has - # been fixed in 3.5. The signature of object is returned, - # because no signature was found for str. Here we imitate 3.5 - # logic and just ignore the signature if the magic methods - # don't match object. - # 3.3 doesn't even have the logic and returns nothing for str - # and classes that inherit from object. - user_def = inspect._signature_get_user_defined_method - if (inspect.isclass(obj) - and not user_def(type(obj), '__init__') - and not user_def(type(obj), '__new__') - and (obj.__init__ != object.__init__ - or obj.__new__ != object.__new__)): - raise ValueError - try: return inspect.signature(obj) except (RuntimeError, TypeError): diff --git a/jedi/inference/star_args.py b/jedi/inference/star_args.py index 176fd9d6..0cda3839 100644 --- a/jedi/inference/star_args.py +++ b/jedi/inference/star_args.py @@ -32,7 +32,7 @@ def _iter_nodes_for_param(param_name): argument = name.parent if argument.type == 'argument' \ and argument.children[0] == '*' * param_name.star_count: - # No support for Python <= 3.4 here, but they are end-of-life + # No support for Python 2.7 here, but they are end-of-life # anyway trailer = search_ancestor(argument, 'trailer') if trailer is not None: # Make sure we're in a function diff --git a/jedi/inference/utils.py b/jedi/inference/utils.py index 0d81e5f4..422e17e7 100644 --- a/jedi/inference/utils.py +++ b/jedi/inference/utils.py @@ -107,7 +107,7 @@ class PushBackIterator(object): def ignored(*exceptions): """ Value manager that ignores all of the specified exceptions. This will - be in the standard library starting with Python 3.4. + be in the standard library starting with Python 3.5. """ try: yield diff --git a/setup.py b/setup.py index e3f037a9..b73fea79 100755 --- a/setup.py +++ b/setup.py @@ -33,16 +33,16 @@ setup(name='jedi', keywords='python completion refactoring vim', long_description=readme, packages=find_packages(exclude=['test', 'test.*']), - python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*', + python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*', install_requires=install_requires, extras_require={ 'testing': [ - # Pytest 5 doesn't support Python 2 and Python 3.4 anymore. + # Pytest 5 doesn't support Python 2 anymore. 'pytest>=3.9.0,<5.0.0', # docopt for sith doctests 'docopt', # coloroma for colored debug output - 'colorama==0.4.1', # Pinned so it works for Python 3.4 + 'colorama', ], 'qa': [ 'flake8==3.7.9', @@ -60,7 +60,6 @@ setup(name='jedi', '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', diff --git a/test/completion/arrays.py b/test/completion/arrays.py index 9d3dcd2e..3d2e108f 100644 --- a/test/completion/arrays.py +++ b/test/completion/arrays.py @@ -473,7 +473,7 @@ def test_func(): #? int() tuple({1})[0] -# python >= 3.4 +# python > 2.7 # ----------------- # PEP 3132 Extended Iterable Unpacking (star unpacking) # ----------------- diff --git a/test/completion/generators.py b/test/completion/generators.py index e36f3928..566f0036 100644 --- a/test/completion/generators.py +++ b/test/completion/generators.py @@ -242,7 +242,7 @@ def x(): # yield from # ----------------- -# python >= 3.4 +# python > 2.7 def yield_from(): yield from iter([1]) diff --git a/test/completion/pep0484_basic.py b/test/completion/pep0484_basic.py index 6c89c738..a20475ca 100644 --- a/test/completion/pep0484_basic.py +++ b/test/completion/pep0484_basic.py @@ -1,6 +1,6 @@ """ Pep-0484 type hinting """ -# python >= 3.4 +# python > 2.7 class A(): diff --git a/test/completion/pep0484_typing.py b/test/completion/pep0484_typing.py index 4ebab2e9..1ddc0abf 100644 --- a/test/completion/pep0484_typing.py +++ b/test/completion/pep0484_typing.py @@ -283,7 +283,7 @@ def testnewtype2(y): y #? [] y. -# python >= 3.4 +# python > 2.7 class TestDefaultDict(typing.DefaultDict[str, int]): def setdud(self): @@ -311,7 +311,7 @@ for key in x.keys(): for value in x.values(): #? int() value -# python >= 3.4 +# python > 2.7 """ diff --git a/test/completion/pytest.py b/test/completion/pytest.py index ba02e28d..c4030918 100644 --- a/test/completion/pytest.py +++ b/test/completion/pytest.py @@ -130,7 +130,7 @@ def test_p(monkeypatch): #? ['setattr'] monkeypatch.setatt -# python > 3.4 +# python > 2.7 #? ['capsysbinary'] def test_p(capsysbin diff --git a/test/completion/stdlib.py b/test/completion/stdlib.py index 636b66fb..c2bd0c82 100644 --- a/test/completion/stdlib.py +++ b/test/completion/stdlib.py @@ -359,7 +359,7 @@ class Test(metaclass=Meta): # Enum # ----------------- -# python >= 3.4 +# python > 2.7 import enum class X(enum.Enum): diff --git a/test/completion/stubs.py b/test/completion/stubs.py index 83013542..4e24eef1 100644 --- a/test/completion/stubs.py +++ b/test/completion/stubs.py @@ -1,4 +1,4 @@ -# python >= 3.4 +# python > 2.7 from stub_folder import with_stub, stub_only, with_stub_folder, stub_only_folder # ------------------------- diff --git a/test/examples/buildout_project/bin/app b/test/examples/buildout_project/bin/app index e99613bd..e8df4eb6 100644 --- a/test/examples/buildout_project/bin/app +++ b/test/examples/buildout_project/bin/app @@ -2,7 +2,7 @@ import sys sys.path[0:0] = [ - '/usr/lib/python3.4/site-packages', + '/usr/lib/python3.8/site-packages', '/tmp/.buildout/eggs/important_package.egg' ] diff --git a/test/examples/init_extension_module/__init__.cpython-34m.so b/test/examples/init_extension_module/__init__.cpython-34m.so deleted file mode 100755 index abfadc39cf3f41ffd58890d8696622dadae2513a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16493 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 literal 0 HcmV?d00001 diff --git a/test/run.py b/test/run.py index 9fb3e3d8..2f4dfc61 100755 --- a/test/run.py +++ b/test/run.py @@ -440,7 +440,7 @@ Options: --pdb Enable pdb debugging on fail. -d, --debug Enable text output debugging (please install ``colorama``). --thirdparty Also run thirdparty tests (in ``completion/thirdparty``). - --env A Python version, like 2.7, 3.4, etc. + --env A Python version, like 2.7, 3.8, etc. """ if __name__ == '__main__': import docopt diff --git a/test/test_api/test_environment.py b/test/test_api/test_environment.py index 61f0d96b..bf3d5674 100644 --- a/test/test_api/test_environment.py +++ b/test/test_api/test_environment.py @@ -27,7 +27,7 @@ def test_find_system_environments(): @pytest.mark.parametrize( 'version', - ['2.7', '3.4', '3.5', '3.6', '3.7'] + ['2.7', '3.5', '3.6', '3.7'] ) def test_versions(version): try: diff --git a/test/test_inference/test_buildout_detection.py b/test/test_inference/test_buildout_detection.py index aa70eca0..3d44c2d4 100644 --- a/test/test_inference/test_buildout_detection.py +++ b/test/test_inference/test_buildout_detection.py @@ -67,7 +67,7 @@ def test_path_from_sys_path_assignment(Script): import sys sys.path[0:0] = [ - '/usr/lib/python3.4/site-packages', + '/usr/lib/python3.8/site-packages', '/home/test/.buildout/eggs/important_package.egg' ] diff --git a/test/test_inference/test_extension.py b/test/test_inference/test_extension.py index a63af388..962a8f9c 100644 --- a/test/test_inference/test_extension.py +++ b/test/test_inference/test_extension.py @@ -33,9 +33,9 @@ def test_get_signatures_stdlib(Script): assert len(sigs[0].params) == 1 -# Check only on linux 64 bit platform and Python3.4. +# Check only on linux 64 bit platform and Python3.8. @pytest.mark.parametrize('load_unsafe_extensions', [False, True]) -@pytest.mark.skipif('sys.platform != "linux" or sys.maxsize <= 2**32 or sys.version_info[:2] != (3, 4)') +@pytest.mark.skipif('sys.platform != "linux" or sys.maxsize <= 2**32 or sys.version_info[:2] != (3, 8)') def test_init_extension_module(Script, load_unsafe_extensions): """ ``__init__`` extension modules are also packages and Jedi should understand @@ -45,10 +45,10 @@ def test_init_extension_module(Script, load_unsafe_extensions): This test was built by the module.c and setup.py combination you can find in the init_extension_module folder. You can easily build the - `__init__.cpython-34m.so` by compiling it (create a virtualenv and run + `__init__.cpython-38m.so` by compiling it (create a virtualenv and run `setup.py install`. - This is also why this test only runs on certain systems (and Python 3.4). + This is also why this test only runs on certain systems and Python 3.8. """ project = jedi.Project(get_example_dir(), load_unsafe_extensions=load_unsafe_extensions) diff --git a/test/test_inference/test_gradual/test_stubs.py b/test/test_inference/test_gradual/test_stubs.py index 1d82dd0b..6683474a 100644 --- a/test/test_inference/test_gradual/test_stubs.py +++ b/test/test_inference/test_gradual/test_stubs.py @@ -45,7 +45,7 @@ def test_infer_and_goto(Script, code, full_name, has_stub, has_python, way, kwargs, type_, options, environment): if environment.version_info < (3, 5): # We just don't care about much of the detailed Python 2 failures - # anymore, because its end-of-life soon. (same for 3.4) + # anymore, because its end-of-life soon. pytest.skip() if type_ == 'infer' and full_name == 'typing.Sequence' and environment.version_info >= (3, 7): diff --git a/tox.ini b/tox.ini index d990d712..dfa023c2 100644 --- a/tox.ini +++ b/tox.ini @@ -5,7 +5,6 @@ extras = testing deps = # for testing the typing module py27: typing - py34: typing # numpydoc for typing scipy stack numpydoc # sphinx, a dependency of numpydoc, dropped Python 2 support in version 2.0 @@ -23,7 +22,6 @@ setenv = # To test Jedi in different versions than the same Python version, set a # different test environment. env27: JEDI_TEST_ENVIRONMENT=27 - env34: JEDI_TEST_ENVIRONMENT=34 env35: JEDI_TEST_ENVIRONMENT=35 env36: JEDI_TEST_ENVIRONMENT=36 env37: JEDI_TEST_ENVIRONMENT=37