99# See https://aboutcode.org for more information about nexB OSS projects.
1010#
1111import asyncio
12+ import logging
1213import os
1314from netrc import netrc
1415from typing import Dict
3233from python_inspector import pyinspector_settings
3334from python_inspector import utils
3435from python_inspector import utils_pypi
36+ from python_inspector .logging import logger
3537from python_inspector .package_data import get_pypi_data_from_purl
3638from python_inspector .resolution import PythonInputProvider
3739from python_inspector .resolution import format_pdt_tree
@@ -88,10 +90,8 @@ def resolve_dependencies(
8890 max_rounds = 200000 ,
8991 use_cached_index = False ,
9092 use_pypi_json_api = False ,
91- verbose = False ,
9293 analyze_setup_py_insecurely = False ,
9394 prefer_source = False ,
94- printer = print ,
9595 generic_paths = False ,
9696 ignore_errors = False ,
9797):
@@ -124,8 +124,7 @@ def resolve_dependencies(
124124 f"Must be one of: { ', ' .join (valid_python_versions )} "
125125 )
126126
127- if verbose :
128- printer ("Resolving dependencies..." )
127+ logger .info ("Resolving dependencies..." )
129128
130129 if netrc_file :
131130 if not os .path .exists (netrc_file ):
@@ -139,8 +138,7 @@ def resolve_dependencies(
139138 netrc_file = None
140139
141140 if netrc_file :
142- if verbose :
143- printer (f"Using netrc file { netrc_file } " )
141+ logger .info (f"Using netrc file { netrc_file } " )
144142 parsed_netrc = netrc (netrc_file )
145143 else :
146144 parsed_netrc = None
@@ -235,28 +233,28 @@ def resolve_dependencies(
235233 files = files ,
236234 )
237235
238- if verbose :
239- printer ( "direct_dependencies:" )
236+ logger . info ( "direct_dependencies:" )
237+ if logger . level <= logging . INFO :
240238 for dep in direct_dependencies :
241- printer (f" { dep } " )
239+ logging . info (f" { dep } " )
242240
243241 # create a resolution environments
244242 environment = utils_pypi .Environment .from_pyver_and_os (
245243 python_version = python_version , operating_system = operating_system
246244 )
247245
248- if verbose :
249- printer (f"environment: { environment } " )
246+ logging .info (f"environment: { environment } " )
250247
251248 repos_by_url = {}
252249 if not use_pypi_json_api :
253250 # Collect PyPI repos
254251 use_only_confed = pyinspector_settings .USE_ONLY_CONFIGURED_INDEX_URLS
255252 for index_url in index_urls :
256253 index_url = index_url .strip ("/" )
254+
257255 if use_only_confed and index_url not in pyinspector_settings .INDEX_URL :
258- if verbose :
259- printer ( f"Skipping index URL unknown in settings: { index_url !r } " )
256+ logger . info ( f"Skipping index URL unknown in settings: { index_url !r } " )
257+
260258 continue
261259 if index_url in repos_by_url :
262260 continue
@@ -274,10 +272,10 @@ def resolve_dependencies(
274272 repos_by_url [index_url ] = repo
275273
276274 repos = repos_by_url .values ()
277- if verbose :
278- printer ( "repos:" )
275+ logger . info ( "repos:" )
276+ if logger . level <= logging . INFO :
279277 for repo in repos :
280- printer (f" { repo } " )
278+ logger . info (f" { repo } " )
281279
282280 # resolve dependencies proper
283281 resolution , purls = resolve (
@@ -289,8 +287,6 @@ def resolve_dependencies(
289287 pdt_output = pdt_output ,
290288 analyze_setup_py_insecurely = analyze_setup_py_insecurely ,
291289 ignore_errors = ignore_errors ,
292- verbose = verbose ,
293- printer = printer ,
294290 )
295291
296292 async def gather_pypi_data ():
@@ -299,20 +295,17 @@ async def get_pypi_data(package):
299295 package , repos = repos , environment = environment , prefer_source = prefer_source
300296 )
301297
302- if verbose :
303- printer (f" retrieved package '{ package } '" )
298+ logger .info (f" retrieved package '{ package } '" )
304299
305300 return data
306301
307- if verbose :
308- printer (f"retrieve package data from pypi:" )
302+ logger .info (f"retrieve package data from pypi:" )
309303
310304 return await asyncio .gather (* [get_pypi_data (package ) for package in purls ])
311305
312306 packages = [pkg .to_dict () for pkg in asyncio .run (gather_pypi_data ()) if pkg is not None ]
313307
314- if verbose :
315- printer ("done!" )
308+ logger .info ("done!" )
316309
317310 return Resolution (
318311 packages = packages ,
@@ -352,8 +345,6 @@ def resolve(
352345 pdt_output : bool = False ,
353346 analyze_setup_py_insecurely : bool = False ,
354347 ignore_errors : bool = False ,
355- verbose : bool = False ,
356- printer = print ,
357348):
358349 """
359350 Resolve dependencies given a ``direct_dependencies`` list of
@@ -380,8 +371,6 @@ def resolve(
380371 pdt_output = pdt_output ,
381372 analyze_setup_py_insecurely = analyze_setup_py_insecurely ,
382373 ignore_errors = ignore_errors ,
383- verbose = verbose ,
384- printer = printer ,
385374 )
386375
387376 return resolved_dependencies , packages
@@ -396,8 +385,6 @@ def get_resolved_dependencies(
396385 pdt_output : bool = False ,
397386 analyze_setup_py_insecurely : bool = False ,
398387 ignore_errors : bool = False ,
399- verbose : bool = False ,
400- printer = print ,
401388) -> Tuple [List [Dict ], List [str ]]:
402389 """
403390 Return resolved dependencies of a ``requirements`` list of Requirement for
@@ -420,13 +407,11 @@ async def gather_version_data():
420407 async def get_version_data (name : str ):
421408 versions = await provider .fill_versions_for_package (name )
422409
423- if verbose :
424- printer (f" retrieved versions for package '{ name } '" )
410+ logger .info (f" retrieved versions for package '{ name } '" )
425411
426412 return versions
427413
428- if verbose :
429- printer (f"versions:" )
414+ logger .info (f"versions:" )
430415
431416 return await asyncio .gather (
432417 * [get_version_data (requirement .name ) for requirement in requirements ]
@@ -446,11 +431,9 @@ async def get_dependencies(requirement: Requirement):
446431 candidate = Candidate (requirement .name , purl .version , requirement .extras )
447432 await provider .fill_requirements_for_package (purl , candidate )
448433
449- if verbose :
450- printer (f" retrieved dependencies for requirement '{ str (purl )} '" )
434+ logger .info (f" retrieved dependencies for requirement '{ str (purl )} '" )
451435
452- if verbose :
453- printer (f"dependencies:" )
436+ logger .info (f"dependencies:" )
454437
455438 return await asyncio .gather (
456439 * [get_dependencies (requirement ) for requirement in requirements ]
0 commit comments