26
26
from _packagedcode .pypi import PipRequirementsFileHandler
27
27
from _packagedcode .pypi import PythonSetupPyHandler
28
28
from _packagedcode .pypi import can_process_dependent_package
29
- from python_inspector import DEFAULT_PYTHON_VERSION
30
29
from python_inspector import dependencies
30
+ from python_inspector import settings
31
31
from python_inspector import utils
32
32
from python_inspector import utils_pypi
33
33
from python_inspector .package_data import get_pypi_data_from_purl
40
40
from python_inspector .resolution import get_reqs_insecurely
41
41
from python_inspector .resolution import get_requirements_from_python_manifest
42
42
from python_inspector .utils_pypi import PLATFORMS_BY_OS
43
- from python_inspector .utils_pypi import PYPI_SIMPLE_URL
44
43
from python_inspector .utils_pypi import Environment
44
+ from python_inspector .utils_pypi import PypiSimpleRepository
45
45
from python_inspector .utils_pypi import valid_python_versions
46
46
47
47
@@ -79,7 +79,7 @@ def resolve_dependencies(
79
79
specifiers = tuple (),
80
80
python_version = None ,
81
81
operating_system = None ,
82
- index_urls = tuple ([ PYPI_SIMPLE_URL ]) ,
82
+ index_urls : tuple [ str , ...] = settings . INDEX_URL ,
83
83
pdt_output = None ,
84
84
netrc_file = None ,
85
85
max_rounds = 200000 ,
@@ -106,15 +106,15 @@ def resolve_dependencies(
106
106
"""
107
107
108
108
if not operating_system :
109
- raise Exception (f "No operating system provided." )
109
+ raise Exception ("No operating system provided." )
110
110
if operating_system not in PLATFORMS_BY_OS :
111
111
raise ValueError (
112
112
f"Invalid operating system: { operating_system } . "
113
113
f"Must be one of: { ', ' .join (PLATFORMS_BY_OS .keys ())} "
114
114
)
115
115
116
116
if not python_version :
117
- raise Exception (f "No python version provided." )
117
+ raise Exception ("No python version provided." )
118
118
if python_version not in valid_python_versions :
119
119
raise ValueError (
120
120
f"Invalid python version: { python_version } . "
@@ -147,14 +147,13 @@ def resolve_dependencies(
147
147
148
148
files = []
149
149
150
- if PYPI_SIMPLE_URL not in index_urls :
151
- index_urls = tuple ([PYPI_SIMPLE_URL ]) + tuple (index_urls )
152
-
153
150
# requirements
154
151
for req_file in requirement_files :
155
152
deps = dependencies .get_dependencies_from_requirements (
156
153
requirements_file = req_file )
157
- for extra_data in dependencies .get_extra_data_from_requirements (requirements_file = req_file ):
154
+ for extra_data in dependencies .get_extra_data_from_requirements (
155
+ requirements_file = req_file
156
+ ):
158
157
index_urls = (
159
158
* index_urls , * tuple (extra_data .get ("extra_index_urls" ) or []))
160
159
index_urls = (
@@ -260,10 +259,8 @@ def resolve_dependencies(
260
259
# Collect PyPI repos
261
260
for index_url in index_urls :
262
261
index_url = index_url .strip ("/" )
263
- existing = utils_pypi .DEFAULT_PYPI_REPOS_BY_URL .get (index_url )
264
- if existing :
265
- existing .use_cached_index = use_cached_index
266
- repos .append (existing )
262
+ if index_url in settings .INDEX_URL :
263
+ repos .append (PypiSimpleRepository (index_url ))
267
264
else :
268
265
credentials = None
269
266
if parsed_netrc :
@@ -273,7 +270,7 @@ def resolve_dependencies(
273
270
dict (login = login ,
274
271
password = password ) if login and password else None
275
272
)
276
- repo = utils_pypi . PypiSimpleRepository (
273
+ repo = PypiSimpleRepository (
277
274
index_url = index_url ,
278
275
use_cached_index = use_cached_index ,
279
276
credentials = credentials ,
@@ -366,8 +363,8 @@ def resolve(
366
363
367
364
def get_resolved_dependencies (
368
365
requirements : List [Requirement ],
369
- environment : Environment = None ,
370
- repos : Sequence [utils_pypi . PypiSimpleRepository ] = tuple (),
366
+ environment : Environment ,
367
+ repos : Sequence [PypiSimpleRepository ] = tuple (),
371
368
as_tree : bool = False ,
372
369
max_rounds : int = 200000 ,
373
370
pdt_output : bool = False ,
@@ -382,6 +379,7 @@ def get_resolved_dependencies(
382
379
Used the provided ``repos`` list of PypiSimpleRepository.
383
380
If empty, use instead the PyPI.org JSON API exclusively instead
384
381
"""
382
+
385
383
resolver = Resolver (
386
384
provider = PythonInputProvider (
387
385
environment = environment ,
@@ -391,9 +389,12 @@ def get_resolved_dependencies(
391
389
),
392
390
reporter = BaseReporter (),
393
391
)
392
+
394
393
resolver_results = resolver .resolve (
395
394
requirements = requirements , max_rounds = max_rounds )
395
+
396
396
package_list = get_package_list (results = resolver_results )
397
+
397
398
if pdt_output :
398
399
return (format_pdt_tree (resolver_results ), package_list )
399
400
return (
0 commit comments