diff options
author | Timothy Edmund Crosley <timothy.crosley@gmail.com> | 2019-04-18 14:37:17 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-18 14:37:17 -0700 |
commit | 91881693efd7b92ed419e4503bfc7ae9ea0ccffb (patch) | |
tree | 3160be625aed82fe9c6a2b6e83a57db8cc438106 | |
parent | d4d3bfaf3d4dae0f17948bb5fb2e9fd0b7478850 (diff) | |
parent | c3100aecf05dfc39c4ab8cdb39f94bdf85bd198d (diff) | |
download | isort-91881693efd7b92ed419e4503bfc7ae9ea0ccffb.tar.gz |
Merge pull request #928 from di/use-pip-api
Use pip-api instead of importing pip
-rw-r--r-- | isort/finders.py | 14 | ||||
-rwxr-xr-x | setup.py | 2 | ||||
-rw-r--r-- | test_isort.py | 6 |
3 files changed, 6 insertions, 16 deletions
diff --git a/isort/finders.py b/isort/finders.py index 75fe79a3..c7e24b62 100644 --- a/isort/finders.py +++ b/isort/finders.py @@ -20,15 +20,9 @@ except ImportError: pipreqs = None try: - # pip>=10 - from pip._internal.download import PipSession - from pip._internal.req import parse_requirements + from pip_api import parse_requirements except ImportError: - try: - from pip.download import PipSession - from pip.req import parse_requirements - except ImportError: - parse_requirements = None + parse_requirements = None try: from requirementslib import Pipfile @@ -325,8 +319,8 @@ class RequirementsFinder(ReqsBaseFinder): result = [] with chdir(os.path.dirname(path)): - requirements = parse_requirements(path, session=PipSession()) - for req in requirements: + requirements = parse_requirements(path) + for req in requirements.values(): if req.name: result.append(req.name) @@ -24,7 +24,7 @@ setup(name='isort', extras_require={ 'pipfile': ['pipreqs', 'requirementslib'], 'pyproject': ['toml'], - 'requirements': ['pip', 'pipreqs'], + 'requirements': ['pip', 'pipreqs', 'pip-api'], 'xdg_home': ['appdirs>=1.4.0'], }, python_requires=">=3.4", diff --git a/test_isort.py b/test_isort.py index 92c6d197..5f5c2ee7 100644 --- a/test_isort.py +++ b/test_isort.py @@ -2578,8 +2578,6 @@ def test_new_lines_are_preserved(): os.remove(n_newline.name) -@pytest.mark.skipif(not finders.RequirementsFinder.enabled, reason='RequirementsFinder not enabled (too old version of pip?)') -@pytest.mark.skipif(not finders.pipreqs, reason='pipreqs is missing') def test_requirements_finder(tmpdir): subdir = tmpdir.mkdir('subdir').join("lol.txt") subdir.write("flask") @@ -2599,7 +2597,7 @@ def test_requirements_finder(tmpdir): files = list(finder._get_files()) assert len(files) == 1 # file finding assert files[0].endswith('requirements.txt') # file finding - assert list(finder._get_names(str(req_file))) == ['Django', 'deal'] # file parsing + assert set(finder._get_names(str(req_file))) == {'Django', 'deal'} # file parsing assert finder.find("django") == si.sections.THIRDPARTY # package in reqs assert finder.find("flask") is None # package not in reqs @@ -2656,8 +2654,6 @@ deal = {editable = true, git = "https://github.com/orsinium/deal.git"} """ -@pytest.mark.skipif(not finders.PipfileFinder.enabled, reason='PipfileFinder not enabled (missing requirementslib?)') -@pytest.mark.skipif(not finders.pipreqs, reason='pipreqs is missing') def test_pipfile_finder(tmpdir): pipfile = tmpdir.join('Pipfile') pipfile.write(PIPFILE) |