Skip to content

Commit f456bd8

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

File tree

6 files changed

+86
-187
lines changed

6 files changed

+86
-187
lines changed

src/python_inspector/api.py

Lines changed: 19 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 as 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
@@ -87,10 +89,8 @@ def resolve_dependencies(
8789
max_rounds=200000,
8890
use_cached_index=False,
8991
use_pypi_json_api=False,
90-
verbose=False,
9192
analyze_setup_py_insecurely=False,
9293
prefer_source=False,
93-
printer=print,
9494
generic_paths=False,
9595
ignore_errors=False,
9696
):
@@ -123,8 +123,7 @@ def resolve_dependencies(
123123
f"Must be one of: {', '.join(valid_python_versions)}"
124124
)
125125

126-
if verbose:
127-
printer("Resolving dependencies...")
126+
logger.info("Resolving dependencies...")
128127

129128
if netrc_file:
130129
if not os.path.exists(netrc_file):
@@ -138,8 +137,7 @@ def resolve_dependencies(
138137
netrc_file = None
139138

140139
if netrc_file:
141-
if verbose:
142-
printer(f"Using netrc file {netrc_file}")
140+
logger.info(f"Using netrc file {netrc_file}")
143141
parsed_netrc = netrc(netrc_file)
144142
else:
145143
parsed_netrc = None
@@ -234,18 +232,17 @@ def resolve_dependencies(
234232
files=files,
235233
)
236234

237-
if verbose:
238-
printer("direct_dependencies:")
235+
logger.info("direct_dependencies:")
236+
if logger.level <= logging.INFO:
239237
for dep in direct_dependencies:
240-
printer(f" {dep}")
238+
logging.info(f" {dep}")
241239

242240
# create a resolution environments
243241
environment = utils_pypi.Environment.from_pyver_and_os(
244242
python_version=python_version, operating_system=operating_system
245243
)
246244

247-
if verbose:
248-
printer(f"environment: {environment}")
245+
logging.info(f"environment: {environment}")
249246

250247
repos_by_url = {}
251248
if not use_pypi_json_api:
@@ -254,8 +251,7 @@ def resolve_dependencies(
254251
for index_url in index_urls:
255252
index_url = index_url.strip("/")
256253
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}")
259255
continue
260256
if index_url in repos_by_url:
261257
continue
@@ -273,10 +269,10 @@ def resolve_dependencies(
273269
repos_by_url[index_url] = repo
274270

275271
repos = repos_by_url.values()
276-
if verbose:
277-
printer("repos:")
272+
logger.info("repos:")
273+
if logger.level <= logging.INFO:
278274
for repo in repos:
279-
printer(f" {repo}")
275+
logger.info(f" {repo}")
280276

281277
# resolve dependencies proper
282278
resolution, purls = resolve(
@@ -288,8 +284,6 @@ def resolve_dependencies(
288284
pdt_output=pdt_output,
289285
analyze_setup_py_insecurely=analyze_setup_py_insecurely,
290286
ignore_errors=ignore_errors,
291-
verbose=verbose,
292-
printer=printer,
293287
)
294288

295289
async def gather_pypi_data():
@@ -298,20 +292,17 @@ async def get_pypi_data(package):
298292
package, repos=repos, environment=environment, prefer_source=prefer_source
299293
)
300294

301-
if verbose:
302-
printer(f" retrieved package '{package}'")
295+
logger.info(f" retrieved package '{package}'")
303296

304297
return data
305298

306-
if verbose:
307-
printer(f"retrieve package data from pypi:")
299+
logger.info(f"retrieve package data from pypi:")
308300

309301
return await asyncio.gather(*[get_pypi_data(package) for package in purls])
310302

311303
packages = [pkg.to_dict() for pkg in asyncio.run(gather_pypi_data()) if pkg is not None]
312304

313-
if verbose:
314-
printer("done!")
305+
logger.info("done!")
315306

316307
return Resolution(
317308
packages=packages,
@@ -351,8 +342,6 @@ def resolve(
351342
pdt_output: bool = False,
352343
analyze_setup_py_insecurely: bool = False,
353344
ignore_errors: bool = False,
354-
verbose: bool = False,
355-
printer=print,
356345
):
357346
"""
358347
Resolve dependencies given a ``direct_dependencies`` list of
@@ -379,8 +368,6 @@ def resolve(
379368
pdt_output=pdt_output,
380369
analyze_setup_py_insecurely=analyze_setup_py_insecurely,
381370
ignore_errors=ignore_errors,
382-
verbose=verbose,
383-
printer=printer,
384371
)
385372

386373
return resolved_dependencies, packages
@@ -395,8 +382,6 @@ def get_resolved_dependencies(
395382
pdt_output: bool = False,
396383
analyze_setup_py_insecurely: bool = False,
397384
ignore_errors: bool = False,
398-
verbose: bool = False,
399-
printer=print,
400385
) -> Tuple[List[Dict], List[str]]:
401386
"""
402387
Return resolved dependencies of a ``requirements`` list of Requirement for
@@ -419,13 +404,11 @@ async def gather_version_data():
419404
async def get_version_data(name: str):
420405
versions = await provider.fill_versions_for_package(name)
421406

422-
if verbose:
423-
printer(f" retrieved versions for package '{name}'")
407+
logger.info(f" retrieved versions for package '{name}'")
424408

425409
return versions
426410

427-
if verbose:
428-
printer(f"versions:")
411+
logger.info(f"versions:")
429412

430413
return await asyncio.gather(
431414
*[get_version_data(requirement.name) for requirement in requirements]
@@ -445,11 +428,9 @@ async def get_dependencies(requirement: Requirement):
445428
candidate = Candidate(requirement.name, purl.version, requirement.extras)
446429
await provider.fill_requirements_for_package(purl, candidate)
447430

448-
if verbose:
449-
printer(f" retrieved dependencies for requirement '{str(purl)}'")
431+
logger.info(f" retrieved dependencies for requirement '{str(purl)}'")
450432

451-
if verbose:
452-
printer(f"dependencies:")
433+
logger.info(f"dependencies:")
453434

454435
return await asyncio.gather(
455436
*[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
@@ -42,6 +42,7 @@
4242
from python_inspector import pyinspector_settings as settings
4343
from python_inspector import utils_pypi
4444
from python_inspector.error import NoVersionsFound
45+
from python_inspector.logging import logger
4546
from python_inspector.setup_py_live_eval import iter_requirements
4647
from python_inspector.utils import Candidate
4748
from python_inspector.utils import contain_string
@@ -321,8 +322,8 @@ def get_requirements_from_python_manifest(
321322
)
322323
]
323324
if len(setup_fct) > 1:
324-
print(
325-
f"Warning: identified multiple definitions of 'setup()' in {setup_py_location}, "
325+
logger.warning(
326+
f"Identified multiple definitions of 'setup()' in {setup_py_location}, "
326327
"defaulting to the first occurrence"
327328
)
328329
setup_fct = setup_fct[0]
@@ -331,8 +332,8 @@ def get_requirements_from_python_manifest(
331332
]
332333
if install_requires:
333334
if len(install_requires) > 1:
334-
print(
335-
f"Warning: identified multiple definitions of 'install_requires' in "
335+
logger.warning(
336+
f"Identified multiple definitions of 'install_requires' in "
336337
"{setup_py_location}, defaulting to the first occurrence"
337338
)
338339
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)