9
9
# See https://aboutcode.org for more information about nexB OSS projects.
10
10
#
11
11
import asyncio
12
+ import logging
12
13
import os
13
14
from netrc import netrc
14
15
from typing import Dict
32
33
from python_inspector import pyinspector_settings as settings
33
34
from python_inspector import utils
34
35
from python_inspector import utils_pypi
36
+ from python_inspector .logging import logger
35
37
from python_inspector .package_data import get_pypi_data_from_purl
36
38
from python_inspector .resolution import PythonInputProvider
37
39
from python_inspector .resolution import format_pdt_tree
@@ -87,10 +89,8 @@ def resolve_dependencies(
87
89
max_rounds = 200000 ,
88
90
use_cached_index = False ,
89
91
use_pypi_json_api = False ,
90
- verbose = False ,
91
92
analyze_setup_py_insecurely = False ,
92
93
prefer_source = False ,
93
- printer = print ,
94
94
generic_paths = False ,
95
95
ignore_errors = False ,
96
96
):
@@ -123,8 +123,7 @@ def resolve_dependencies(
123
123
f"Must be one of: { ', ' .join (valid_python_versions )} "
124
124
)
125
125
126
- if verbose :
127
- printer ("Resolving dependencies..." )
126
+ logger .info ("Resolving dependencies..." )
128
127
129
128
if netrc_file :
130
129
if not os .path .exists (netrc_file ):
@@ -138,8 +137,7 @@ def resolve_dependencies(
138
137
netrc_file = None
139
138
140
139
if netrc_file :
141
- if verbose :
142
- printer (f"Using netrc file { netrc_file } " )
140
+ logger .info (f"Using netrc file { netrc_file } " )
143
141
parsed_netrc = netrc (netrc_file )
144
142
else :
145
143
parsed_netrc = None
@@ -234,18 +232,17 @@ def resolve_dependencies(
234
232
files = files ,
235
233
)
236
234
237
- if verbose :
238
- printer ( "direct_dependencies:" )
235
+ logger . info ( "direct_dependencies:" )
236
+ if logger . level <= logging . INFO :
239
237
for dep in direct_dependencies :
240
- printer (f" { dep } " )
238
+ logging . info (f" { dep } " )
241
239
242
240
# create a resolution environments
243
241
environment = utils_pypi .Environment .from_pyver_and_os (
244
242
python_version = python_version , operating_system = operating_system
245
243
)
246
244
247
- if verbose :
248
- printer (f"environment: { environment } " )
245
+ logging .info (f"environment: { environment } " )
249
246
250
247
repos_by_url = {}
251
248
if not use_pypi_json_api :
@@ -254,8 +251,7 @@ def resolve_dependencies(
254
251
for index_url in index_urls :
255
252
index_url = index_url .strip ("/" )
256
253
if use_only_confed and index_url not in settings .INDEX_URL :
257
- if verbose :
258
- printer (f"Skipping index URL unknown in settings: { index_url !r} " )
254
+ logger .info (f"Skipping index URL unknown in settings: { index_url !r} " )
259
255
continue
260
256
if index_url in repos_by_url :
261
257
continue
@@ -273,10 +269,10 @@ def resolve_dependencies(
273
269
repos_by_url [index_url ] = repo
274
270
275
271
repos = repos_by_url .values ()
276
- if verbose :
277
- printer ( "repos:" )
272
+ logger . info ( "repos:" )
273
+ if logger . level <= logging . INFO :
278
274
for repo in repos :
279
- printer (f" { repo } " )
275
+ logger . info (f" { repo } " )
280
276
281
277
# resolve dependencies proper
282
278
resolution , purls = resolve (
@@ -288,8 +284,6 @@ def resolve_dependencies(
288
284
pdt_output = pdt_output ,
289
285
analyze_setup_py_insecurely = analyze_setup_py_insecurely ,
290
286
ignore_errors = ignore_errors ,
291
- verbose = verbose ,
292
- printer = printer ,
293
287
)
294
288
295
289
async def gather_pypi_data ():
@@ -298,20 +292,17 @@ async def get_pypi_data(package):
298
292
package , repos = repos , environment = environment , prefer_source = prefer_source
299
293
)
300
294
301
- if verbose :
302
- printer (f" retrieved package '{ package } '" )
295
+ logger .info (f" retrieved package '{ package } '" )
303
296
304
297
return data
305
298
306
- if verbose :
307
- printer (f"retrieve package data from pypi:" )
299
+ logger .info (f"retrieve package data from pypi:" )
308
300
309
301
return await asyncio .gather (* [get_pypi_data (package ) for package in purls ])
310
302
311
303
packages = [pkg .to_dict () for pkg in asyncio .run (gather_pypi_data ()) if pkg is not None ]
312
304
313
- if verbose :
314
- printer ("done!" )
305
+ logger .info ("done!" )
315
306
316
307
return Resolution (
317
308
packages = packages ,
@@ -351,8 +342,6 @@ def resolve(
351
342
pdt_output : bool = False ,
352
343
analyze_setup_py_insecurely : bool = False ,
353
344
ignore_errors : bool = False ,
354
- verbose : bool = False ,
355
- printer = print ,
356
345
):
357
346
"""
358
347
Resolve dependencies given a ``direct_dependencies`` list of
@@ -379,8 +368,6 @@ def resolve(
379
368
pdt_output = pdt_output ,
380
369
analyze_setup_py_insecurely = analyze_setup_py_insecurely ,
381
370
ignore_errors = ignore_errors ,
382
- verbose = verbose ,
383
- printer = printer ,
384
371
)
385
372
386
373
return resolved_dependencies , packages
@@ -395,8 +382,6 @@ def get_resolved_dependencies(
395
382
pdt_output : bool = False ,
396
383
analyze_setup_py_insecurely : bool = False ,
397
384
ignore_errors : bool = False ,
398
- verbose : bool = False ,
399
- printer = print ,
400
385
) -> Tuple [List [Dict ], List [str ]]:
401
386
"""
402
387
Return resolved dependencies of a ``requirements`` list of Requirement for
@@ -419,13 +404,11 @@ async def gather_version_data():
419
404
async def get_version_data (name : str ):
420
405
versions = await provider .fill_versions_for_package (name )
421
406
422
- if verbose :
423
- printer (f" retrieved versions for package '{ name } '" )
407
+ logger .info (f" retrieved versions for package '{ name } '" )
424
408
425
409
return versions
426
410
427
- if verbose :
428
- printer (f"versions:" )
411
+ logger .info (f"versions:" )
429
412
430
413
return await asyncio .gather (
431
414
* [get_version_data (requirement .name ) for requirement in requirements ]
@@ -445,11 +428,9 @@ async def get_dependencies(requirement: Requirement):
445
428
candidate = Candidate (requirement .name , purl .version , requirement .extras )
446
429
await provider .fill_requirements_for_package (purl , candidate )
447
430
448
- if verbose :
449
- printer (f" retrieved dependencies for requirement '{ str (purl )} '" )
431
+ logger .info (f" retrieved dependencies for requirement '{ str (purl )} '" )
450
432
451
- if verbose :
452
- printer (f"dependencies:" )
433
+ logger .info (f"dependencies:" )
453
434
454
435
return await asyncio .gather (
455
436
* [get_dependencies (requirement ) for requirement in requirements ]
0 commit comments