Skip to content

Commit 3b60d74

Browse files
committed
feat: Replace old print/echo calls to new logger function
Signed-off-by: Helio Chissini de Castro <[email protected]>
1 parent 3e6896e commit 3b60d74

File tree

6 files changed

+88
-188
lines changed

6 files changed

+88
-188
lines changed

src/python_inspector/api.py

Lines changed: 21 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
# See https://aboutcode.org for more information about nexB OSS projects.
1010
#
1111
import asyncio
12+
import logging
1213
import os
1314
from netrc import netrc
1415
from typing import Dict
@@ -32,6 +33,7 @@
3233
from python_inspector import pyinspector_settings
3334
from python_inspector import utils
3435
from python_inspector import utils_pypi
36+
from python_inspector.logging import logger
3537
from python_inspector.package_data import get_pypi_data_from_purl
3638
from python_inspector.resolution import PythonInputProvider
3739
from 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]

src/python_inspector/dependencies.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
from _packagedcode.pypi import PipRequirementsFileHandler
2020
from _packagedcode.pypi import get_requirements_txt_dependencies
2121

22+
from python_inspector.logging import logger
23+
2224
"""
2325
Utilities to resolve dependencies.
2426
"""
@@ -36,10 +38,9 @@ def get_dependencies_from_requirements(
3638
location=requirements_file, include_nested=True
3739
)
3840
for dependent_package in dependent_packages:
39-
if TRACE:
40-
print(
41-
"dependent_package.extracted_requirement:",
42-
dependent_package.extracted_requirement,
41+
logger.debug(
42+
"dependent_package.extracted_requirement: "
43+
f"{dependent_package.extracted_requirement}",
4344
)
4445
yield dependent_package
4546

src/python_inspector/resolution.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
from python_inspector import pyinspector_settings as settings
4444
from python_inspector import utils_pypi
4545
from python_inspector.error import NoVersionsFound
46+
from python_inspector.logging import logger
4647
from python_inspector.setup_py_live_eval import iter_requirements
4748
from python_inspector.utils import Candidate
4849
from python_inspector.utils import contain_string
@@ -330,8 +331,8 @@ def get_requirements_from_python_manifest(
330331
)
331332
]
332333
if len(setup_fct) > 1:
333-
print(
334-
f"Warning: identified multiple definitions of 'setup()' in {setup_py_location}, "
334+
logger.warning(
335+
f"Identified multiple definitions of 'setup()' in {setup_py_location}, "
335336
"defaulting to the first occurrence"
336337
)
337338
setup_fct = setup_fct[0]
@@ -340,8 +341,8 @@ def get_requirements_from_python_manifest(
340341
]
341342
if install_requires:
342343
if len(install_requires) > 1:
343-
print(
344-
f"Warning: identified multiple definitions of 'install_requires' in "
344+
logger.warning(
345+
f"Identified multiple definitions of 'install_requires' in "
345346
"{setup_py_location}, defaulting to the first occurrence"
346347
)
347348
install_requires = install_requires[0].elts

src/python_inspector/resolve_cli.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,9 @@ def resolve_dependencies(
239239
ctx.exit(1)
240240

241241
# Setup verbose level
242-
if verbose >= 3:
242+
if verbose >= 4:
243+
logging.setup_logger("DEEP")
244+
elif verbose == 3:
243245
logging.setup_logger("TRACE")
244246
elif verbose == 2:
245247
logging.setup_logger("DEBUG")
@@ -280,7 +282,6 @@ def resolve_dependencies(
280282
use_cached_index=use_cached_index,
281283
use_pypi_json_api=use_pypi_json_api,
282284
analyze_setup_py_insecurely=analyze_setup_py_insecurely,
283-
printer=click.secho,
284285
prefer_source=prefer_source,
285286
ignore_errors=ignore_errors,
286287
generic_paths=generic_paths,

src/python_inspector/setup_py_live_eval.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,13 @@
2424
import setuptools
2525
from commoncode.command import pushd
2626
from packvers.requirements import Requirement
27+
from python_inspector.logging import logger
2728

2829

2930
def minver_error(pkg_name):
3031
"""Report error about missing minimum version constraint and exit."""
31-
print(
32-
'ERROR: specify minimal version of "{0}" using ">=" or "=="'.format(pkg_name),
32+
logger.error(
33+
'Specify minimal version of "{0}" using ' '">=" or "=="'.format(pkg_name),
3334
file=sys.stderr,
3435
)
3536
sys.exit(1)
@@ -98,16 +99,16 @@ def iter_requirements(level, extras, setup_file):
9899
imports.append(name)
99100
setup_providers = [i for i in imports if i in ["distutils.core", "setuptools"]]
100101
if len(setup_providers) == 0:
101-
print(
102-
f"Warning: unable to recognize setup provider in {setup_file}: "
102+
logger.warning(
103+
f"Unable to recognize setup provider in {setup_file}: "
103104
"defaulting to 'distutils.core'."
104105
)
105106
setup_provider = "distutils.core"
106107
elif len(setup_providers) == 1:
107108
setup_provider = setup_providers[0]
108109
else:
109-
print(
110-
f"Warning: ambiguous setup provider in {setup_file}: candidates are {setup_providers}"
110+
logger.warning(
111+
f"Ambiguous setup provider in {setup_file}: candidates are {setup_providers}"
111112
"defaulting to 'distutils.core'."
112113
)
113114
setup_provider = "distutils.core"
@@ -163,8 +164,8 @@ def iter_requirements(level, extras, setup_file):
163164
specs = pkg.specifier
164165
specs = {s.operator: s.version for s in specs._specs}
165166
if ((">=" in specs) and (">" in specs)) or (("<=" in specs) and ("<" in specs)):
166-
print(
167-
'ERROR: Do not specify such weird constraints! ("{0}")'.format(pkg),
167+
logger.error(
168+
"Do not specify such weird constraints! " '("{0}")'.format(pkg),
168169
file=sys.stderr,
169170
)
170171
sys.exit(1)

0 commit comments

Comments
 (0)