mirror of
https://github.com/pypa/pip
synced 2023-12-13 21:30:23 +01:00
Merge pull request #7281 from sbidoul/ref-get_used_vcs_backend-sbi
Refactor _get_used_vcs_backend
This commit is contained in:
commit
448303a4ac
1
news/7281.trivial
Normal file
1
news/7281.trivial
Normal file
|
@ -0,0 +1 @@
|
|||
refactor _get_used_vcs_backend
|
|
@ -66,7 +66,6 @@ if MYPY_CHECK_RUNNING:
|
|||
from pip._internal.req.req_install import InstallRequirement
|
||||
from pip._internal.req.req_tracker import RequirementTracker
|
||||
from pip._internal.utils.hashes import Hashes
|
||||
from pip._internal.vcs.versioncontrol import VersionControl
|
||||
|
||||
if PY2:
|
||||
CopytreeKwargs = TypedDict(
|
||||
|
@ -103,22 +102,11 @@ def _get_prepared_distribution(req, req_tracker, finder, build_isolation):
|
|||
|
||||
def unpack_vcs_link(link, location):
|
||||
# type: (Link, str) -> None
|
||||
vcs_backend = _get_used_vcs_backend(link)
|
||||
vcs_backend = vcs.get_backend_for_scheme(link.scheme)
|
||||
assert vcs_backend is not None
|
||||
vcs_backend.unpack(location, url=hide_url(link.url))
|
||||
|
||||
|
||||
def _get_used_vcs_backend(link):
|
||||
# type: (Link) -> Optional[VersionControl]
|
||||
"""
|
||||
Return a VersionControl object or None.
|
||||
"""
|
||||
for vcs_backend in vcs.backends:
|
||||
if link.scheme in vcs_backend.schemes:
|
||||
return vcs_backend
|
||||
return None
|
||||
|
||||
|
||||
def _progress_indicator(iterable, *args, **kwargs):
|
||||
return iterable
|
||||
|
||||
|
|
|
@ -237,6 +237,16 @@ class VcsSupport(object):
|
|||
return vcs_backend
|
||||
return None
|
||||
|
||||
def get_backend_for_scheme(self, scheme):
|
||||
# type: (str) -> Optional[VersionControl]
|
||||
"""
|
||||
Return a VersionControl object or None.
|
||||
"""
|
||||
for vcs_backend in self._registry.values():
|
||||
if scheme in vcs_backend.schemes:
|
||||
return vcs_backend
|
||||
return None
|
||||
|
||||
def get_backend(self, name):
|
||||
# type: (str) -> Optional[VersionControl]
|
||||
"""
|
||||
|
|
|
@ -6,10 +6,15 @@ import os
|
|||
|
||||
import pytest
|
||||
|
||||
from pip._internal.vcs import vcs
|
||||
from pip._internal.vcs.git import Git, RemoteNotFoundError
|
||||
from tests.lib import _create_test_package, _git_commit, _test_path_to_file_url
|
||||
|
||||
|
||||
def test_get_backend_for_scheme():
|
||||
assert vcs.get_backend_for_scheme("git+https") is vcs.get_backend("Git")
|
||||
|
||||
|
||||
def get_head_sha(script, dest):
|
||||
"""Return the HEAD sha."""
|
||||
result = script.run('git', 'rev-parse', 'HEAD', cwd=dest)
|
||||
|
|
Loading…
Reference in a new issue