mirror of
https://github.com/pypa/pip
synced 2023-12-13 21:30:23 +01:00
Merge pull request #7037 from chrahunt/refactor/clean-up-unpack
Remove svn handling in unpacking.unpack_file
This commit is contained in:
commit
79ec3def25
4 changed files with 10 additions and 37 deletions
2
news/7037.removal
Normal file
2
news/7037.removal
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Remove undocumented support for http:// requirements pointing to SVN
|
||||||
|
repositories.
|
|
@ -1053,7 +1053,7 @@ def unpack_http_url(
|
||||||
|
|
||||||
# unpack the archive to the build dir location. even when only
|
# unpack the archive to the build dir location. even when only
|
||||||
# downloading archives, they have to be unpacked to parse dependencies
|
# downloading archives, they have to be unpacked to parse dependencies
|
||||||
unpack_file(from_path, location, content_type, link)
|
unpack_file(from_path, location, content_type)
|
||||||
|
|
||||||
# a download dir is specified; let's copy the archive there
|
# a download dir is specified; let's copy the archive there
|
||||||
if download_dir and not already_downloaded_path:
|
if download_dir and not already_downloaded_path:
|
||||||
|
@ -1149,7 +1149,7 @@ def unpack_file_url(
|
||||||
|
|
||||||
# unpack the archive to the build dir location. even when only downloading
|
# unpack the archive to the build dir location. even when only downloading
|
||||||
# archives, they have to be unpacked to parse dependencies
|
# archives, they have to be unpacked to parse dependencies
|
||||||
unpack_file(from_path, location, content_type, link)
|
unpack_file(from_path, location, content_type)
|
||||||
|
|
||||||
# a download dir is specified and not already downloaded
|
# a download dir is specified and not already downloaded
|
||||||
if download_dir and not already_downloaded_path:
|
if download_dir and not already_downloaded_path:
|
||||||
|
|
|
@ -8,7 +8,6 @@ from __future__ import absolute_import
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import re
|
|
||||||
import shutil
|
import shutil
|
||||||
import stat
|
import stat
|
||||||
import tarfile
|
import tarfile
|
||||||
|
@ -21,13 +20,11 @@ from pip._internal.utils.filetypes import (
|
||||||
XZ_EXTENSIONS,
|
XZ_EXTENSIONS,
|
||||||
ZIP_EXTENSIONS,
|
ZIP_EXTENSIONS,
|
||||||
)
|
)
|
||||||
from pip._internal.utils.misc import ensure_dir, hide_url
|
from pip._internal.utils.misc import ensure_dir
|
||||||
from pip._internal.utils.typing import MYPY_CHECK_RUNNING
|
from pip._internal.utils.typing import MYPY_CHECK_RUNNING
|
||||||
|
|
||||||
if MYPY_CHECK_RUNNING:
|
if MYPY_CHECK_RUNNING:
|
||||||
from typing import Iterable, List, Optional, Match, Text, Union
|
from typing import Iterable, List, Optional, Text, Union
|
||||||
|
|
||||||
from pip._internal.models.link import Link
|
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
@ -56,23 +53,6 @@ def current_umask():
|
||||||
return mask
|
return mask
|
||||||
|
|
||||||
|
|
||||||
def file_contents(filename):
|
|
||||||
# type: (str) -> Text
|
|
||||||
with open(filename, 'rb') as fp:
|
|
||||||
return fp.read().decode('utf-8')
|
|
||||||
|
|
||||||
|
|
||||||
def is_svn_page(html):
|
|
||||||
# type: (Union[str, Text]) -> Optional[Match[Union[str, Text]]]
|
|
||||||
"""
|
|
||||||
Returns true if the page appears to be the index page of an svn repository
|
|
||||||
"""
|
|
||||||
return (
|
|
||||||
re.search(r'<title>[^<]*Revision \d+:', html) and
|
|
||||||
re.search(r'Powered by (?:<a[^>]*?>)?Subversion', html, re.I)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def split_leading_dir(path):
|
def split_leading_dir(path):
|
||||||
# type: (Union[str, Text]) -> List[Union[str, Text]]
|
# type: (Union[str, Text]) -> List[Union[str, Text]]
|
||||||
path = path.lstrip('/').lstrip('\\')
|
path = path.lstrip('/').lstrip('\\')
|
||||||
|
@ -231,7 +211,6 @@ def unpack_file(
|
||||||
filename, # type: str
|
filename, # type: str
|
||||||
location, # type: str
|
location, # type: str
|
||||||
content_type, # type: Optional[str]
|
content_type, # type: Optional[str]
|
||||||
link # type: Optional[Link]
|
|
||||||
):
|
):
|
||||||
# type: (...) -> None
|
# type: (...) -> None
|
||||||
filename = os.path.realpath(filename)
|
filename = os.path.realpath(filename)
|
||||||
|
@ -253,14 +232,6 @@ def unpack_file(
|
||||||
)
|
)
|
||||||
):
|
):
|
||||||
untar_file(filename, location)
|
untar_file(filename, location)
|
||||||
elif (
|
|
||||||
content_type and content_type.startswith('text/html') and
|
|
||||||
is_svn_page(file_contents(filename))
|
|
||||||
):
|
|
||||||
# We don't really care about this
|
|
||||||
from pip._internal.vcs.subversion import Subversion
|
|
||||||
hidden_url = hide_url('svn+' + link.url)
|
|
||||||
Subversion().unpack(location, url=hidden_url)
|
|
||||||
else:
|
else:
|
||||||
# FIXME: handle?
|
# FIXME: handle?
|
||||||
# FIXME: magic signatures?
|
# FIXME: magic signatures?
|
||||||
|
|
|
@ -370,9 +370,9 @@ def test_wheel_version(tmpdir, data):
|
||||||
future_version = (1, 9)
|
future_version = (1, 9)
|
||||||
|
|
||||||
unpack_file(data.packages.joinpath(future_wheel),
|
unpack_file(data.packages.joinpath(future_wheel),
|
||||||
tmpdir + 'future', None, None)
|
tmpdir + 'future', None)
|
||||||
unpack_file(data.packages.joinpath(broken_wheel),
|
unpack_file(data.packages.joinpath(broken_wheel),
|
||||||
tmpdir + 'broken', None, None)
|
tmpdir + 'broken', None)
|
||||||
|
|
||||||
assert wheel.wheel_version(tmpdir + 'future') == future_version
|
assert wheel.wheel_version(tmpdir + 'future') == future_version
|
||||||
assert not wheel.wheel_version(tmpdir + 'broken')
|
assert not wheel.wheel_version(tmpdir + 'broken')
|
||||||
|
@ -593,7 +593,7 @@ class TestWheelFile(object):
|
||||||
def test_unpack_wheel_no_flatten(self, tmpdir):
|
def test_unpack_wheel_no_flatten(self, tmpdir):
|
||||||
filepath = os.path.join(DATA_DIR, 'packages',
|
filepath = os.path.join(DATA_DIR, 'packages',
|
||||||
'meta-1.0-py2.py3-none-any.whl')
|
'meta-1.0-py2.py3-none-any.whl')
|
||||||
unpack_file(filepath, tmpdir, 'application/zip', None)
|
unpack_file(filepath, tmpdir, 'application/zip')
|
||||||
assert os.path.isdir(os.path.join(tmpdir, 'meta-1.0.dist-info'))
|
assert os.path.isdir(os.path.join(tmpdir, 'meta-1.0.dist-info'))
|
||||||
|
|
||||||
def test_purelib_platlib(self, data):
|
def test_purelib_platlib(self, data):
|
||||||
|
@ -633,7 +633,7 @@ class TestMoveWheelFiles(object):
|
||||||
self.req = Requirement('sample')
|
self.req = Requirement('sample')
|
||||||
self.src = os.path.join(tmpdir, 'src')
|
self.src = os.path.join(tmpdir, 'src')
|
||||||
self.dest = os.path.join(tmpdir, 'dest')
|
self.dest = os.path.join(tmpdir, 'dest')
|
||||||
unpack_file(self.wheelpath, self.src, None, None)
|
unpack_file(self.wheelpath, self.src, None)
|
||||||
self.scheme = {
|
self.scheme = {
|
||||||
'scripts': os.path.join(self.dest, 'bin'),
|
'scripts': os.path.join(self.dest, 'bin'),
|
||||||
'purelib': os.path.join(self.dest, 'lib'),
|
'purelib': os.path.join(self.dest, 'lib'),
|
||||||
|
|
Loading…
Reference in a new issue