Skip to content

Commit

Permalink
Deprecate support for Python 3.3
Browse files Browse the repository at this point in the history
  • Loading branch information
dstufft committed Mar 22, 2017
1 parent 476d297 commit 6b54145
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 29 deletions.
1 change: 1 addition & 0 deletions news/3796.removal
@@ -0,0 +1 @@
Deprecate support for Python 3.3.
10 changes: 9 additions & 1 deletion pip/basecommand.py
Expand Up @@ -6,6 +6,7 @@
import os
import sys
import optparse
import warnings

from pip import cmdoptions
from pip.index import PackageFinder
Expand All @@ -20,7 +21,7 @@
SUCCESS, ERROR, UNKNOWN_ERROR, VIRTUALENV_NOT_FOUND,
PREVIOUS_BUILD_DIR_ERROR,
)
from pip.utils import get_prog, normalize_path
from pip.utils import deprecation, get_prog, normalize_path
from pip.utils.logging import IndentingFormatter
from pip.utils.outdated import pip_version_check

Expand Down Expand Up @@ -185,6 +186,13 @@ def main(self, args):
),
})

if sys.version_info[:2] == (3, 3):
warnings.warn(
"Python 3.3 supported has been deprecated and support for it "
"will be dropped in the future. Please upgrade your Python.",
deprecation.RemovedInPip11Warning,
)

# TODO: try to get these passing down from the command?
# without resorting to os.environ to hold these.

Expand Down
2 changes: 1 addition & 1 deletion tests/functional/test_install.py
Expand Up @@ -70,7 +70,7 @@ def test_pip_second_command_line_interface_works(script, data):
# On old versions of Python, urllib3/requests will raise a warning about
# the lack of an SSLContext.
kwargs = {}
if pyversion_tuple < (2, 7, 9):
if pyversion_tuple < (2, 7, 9) or pyversion_tuple[:2] == (3, 3):
kwargs['expect_stderr'] = True

args = ['pip%s' % pyversion]
Expand Down
25 changes: 0 additions & 25 deletions tests/functional/test_install_upgrade.py
@@ -1,4 +1,3 @@
import json
import os
import sys
import textwrap
Expand Down Expand Up @@ -449,27 +448,3 @@ def prep_ve(self, script, version, pip_src, distribute=False):
cwd=pip_src,
expect_stderr=True,
)

@pytest.mark.skipif(
sys.version_info >= (3, 5),
reason="distribute doesn't work on Python 3.5",
)
def test_from_distribute_6_to_setuptools_7(
self, script, data, virtualenv):
self.prep_ve(
script, '1.9.1', virtualenv.pip_source_dir, distribute=True
)
result = self.script.run(
self.ve_bin / 'pip', 'install', '--no-index',
'--find-links=%s' % data.find_links, '-U', 'distribute',
)
assert (
"Found existing installation: distribute 0.6.34" in result.stdout
)
result = self.script.run(
self.ve_bin / 'pip', 'list', '--format=json',
)
assert {"name": "setuptools", "version": "0.9.8"} \
in json.loads(result.stdout)
assert {"name": "distribute", "version": "0.7.3"} \
in json.loads(result.stdout)
4 changes: 2 additions & 2 deletions tests/functional/test_uninstall.py
Expand Up @@ -54,11 +54,11 @@ def test_simple_uninstall_distutils(script):
in json.loads(result.stdout)
result = script.pip('uninstall', 'distutils_install', '-y',
expect_stderr=True, expect_error=True)
assert result.stderr.strip() == (
assert (
"Cannot uninstall 'distutils-install'. It is a distutils installed "
"project and thus we cannot accurately determine which files belong "
"to it which would lead to only a partial uninstall."
)
) in result.stderr


@pytest.mark.network
Expand Down
3 changes: 3 additions & 0 deletions tests/lib/__init__.py
Expand Up @@ -334,6 +334,9 @@ def pip(self, *args, **kwargs):
if (pyversion_tuple < (2, 7, 9) and
args and args[0] in ('search', 'install', 'download')):
kwargs['expect_stderr'] = True
# Python 3.3 is deprecated and we emit a warning on it.
if pyversion_tuple[:2] == (3, 3):
kwargs['expect_stderr'] = True

return self.run("pip", *args, **kwargs)

Expand Down

0 comments on commit 6b54145

Please sign in to comment.