Skip to content

Commit d0d414b

Browse files
authored
Update tool_homepage_url and fix tests (#204)
* Update homepage Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com> * Fix CI Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com> * Fix formatting errors Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com> * Skip codestyle test for 3.12 Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com> * Fix formatting errors Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com> * Drop 3.13 Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com> --------- Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 98f4b02 commit d0d414b

34 files changed

+2503
-2606
lines changed

azure-pipelines.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,46 +9,46 @@ jobs:
99
parameters:
1010
job_name: ubuntu20_cpython
1111
image_name: ubuntu-20.04
12-
python_versions: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
12+
python_versions: ["3.9", "3.10", "3.11", "3.12"]
1313
test_suites:
1414
all: venv/bin/pytest -n 2 -vvs --reruns 2
1515

1616
- template: etc/ci/azure-posix.yml
1717
parameters:
1818
job_name: ubuntu22_cpython
1919
image_name: ubuntu-22.04
20-
python_versions: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
20+
python_versions: ["3.9", "3.10", "3.11", "3.12"]
2121
test_suites:
2222
all: venv/bin/pytest -n 2 -vvs --reruns 2
2323

2424
- template: etc/ci/azure-posix.yml
2525
parameters:
26-
job_name: macos12_cpython
27-
image_name: macOS-12
28-
python_versions: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
26+
job_name: macos14_cpython
27+
image_name: macOS-14
28+
python_versions: ["3.9", "3.10", "3.11", "3.12"]
2929
test_suites:
3030
all: venv/bin/pytest -n 2 -vvs --reruns 2
3131

3232
- template: etc/ci/azure-posix.yml
3333
parameters:
3434
job_name: macos13_cpython
3535
image_name: macos-13
36-
python_versions: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
36+
python_versions: ["3.9", "3.10", "3.11", "3.12"]
3737
test_suites:
3838
all: venv/bin/pytest -n 2 -vvs --reruns 2
3939

4040
- template: etc/ci/azure-win.yml
4141
parameters:
4242
job_name: win2019_cpython
4343
image_name: windows-2019
44-
python_versions: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
44+
python_versions: ["3.9", "3.10", "3.11", "3.12"]
4545
test_suites:
4646
all: venv\Scripts\pytest -n 2 -vvs --reruns 2
4747

4848
- template: etc/ci/azure-win.yml
4949
parameters:
5050
job_name: win2022_cpython
5151
image_name: windows-2022
52-
python_versions: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
52+
python_versions: ["3.9", "3.10", "3.11", "3.12"]
5353
test_suites:
5454
all: venv\Scripts\pytest -n 2 -vvs --reruns 2

src/python_inspector/api.py

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@ def to_dict(self, generic_paths=False):
6464
# clean file paths
6565
for file in files:
6666
path = file["path"]
67-
file["path"] = utils.remove_test_data_dir_variable_prefix(
68-
path=path)
67+
file["path"] = utils.remove_test_data_dir_variable_prefix(path=path)
6968
return {
7069
"files": files,
7170
"packages": [package for package in self.packages],
@@ -152,20 +151,16 @@ def resolve_dependencies(
152151

153152
# requirements
154153
for req_file in requirement_files:
155-
deps = dependencies.get_dependencies_from_requirements(
156-
requirements_file=req_file)
154+
deps = dependencies.get_dependencies_from_requirements(requirements_file=req_file)
157155
for extra_data in dependencies.get_extra_data_from_requirements(requirements_file=req_file):
158-
index_urls = (
159-
*index_urls, *tuple(extra_data.get("extra_index_urls") or []))
160-
index_urls = (
161-
*index_urls, *tuple(extra_data.get("index_url") or []))
156+
index_urls = (*index_urls, *tuple(extra_data.get("extra_index_urls") or []))
157+
index_urls = (*index_urls, *tuple(extra_data.get("index_url") or []))
162158
direct_dependencies.extend(deps)
163159
package_data = [
164160
pkg_data.to_dict() for pkg_data in PipRequirementsFileHandler.parse(location=req_file)
165161
]
166162
if generic_paths:
167-
req_file = utils.remove_test_data_dir_variable_prefix(
168-
path=req_file)
163+
req_file = utils.remove_test_data_dir_variable_prefix(path=req_file)
169164

170165
files.append(
171166
dict(
@@ -218,15 +213,13 @@ def resolve_dependencies(
218213
files=[setup_py_file],
219214
analyze_setup_py_insecurely=analyze_setup_py_insecurely,
220215
)
221-
setup_py_file_deps = list(
222-
get_dependent_packages_from_reqs(reqs))
216+
setup_py_file_deps = list(get_dependent_packages_from_reqs(reqs))
223217
direct_dependencies.extend(setup_py_file_deps)
224218

225219
package_data.dependencies = setup_py_file_deps
226220
file_package_data = [package_data.to_dict()]
227221
if generic_paths:
228-
setup_py_file = utils.remove_test_data_dir_variable_prefix(
229-
path=setup_py_file)
222+
setup_py_file = utils.remove_test_data_dir_variable_prefix(path=setup_py_file)
230223
files.append(
231224
dict(
232225
type="file",
@@ -267,11 +260,9 @@ def resolve_dependencies(
267260
else:
268261
credentials = None
269262
if parsed_netrc:
270-
login, password = utils.get_netrc_auth(
271-
index_url, parsed_netrc)
263+
login, password = utils.get_netrc_auth(index_url, parsed_netrc)
272264
credentials = (
273-
dict(login=login,
274-
password=password) if login and password else None
265+
dict(login=login, password=password) if login and password else None
275266
)
276267
repo = utils_pypi.PypiSimpleRepository(
277268
index_url=index_url,
@@ -391,8 +382,7 @@ def get_resolved_dependencies(
391382
),
392383
reporter=BaseReporter(),
393384
)
394-
resolver_results = resolver.resolve(
395-
requirements=requirements, max_rounds=max_rounds)
385+
resolver_results = resolver.resolve(requirements=requirements, max_rounds=max_rounds)
396386
package_list = get_package_list(results=resolver_results)
397387
if pdt_output:
398388
return (format_pdt_tree(resolver_results), package_list)

src/python_inspector/cli_utils.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ class FileOptionType(click.File):
2121

2222
def convert(self, value, param, ctx):
2323
known_opts = set(
24-
chain.from_iterable(
25-
p.opts for p in ctx.command.params if isinstance(p, click.Option))
24+
chain.from_iterable(p.opts for p in ctx.command.params if isinstance(p, click.Option))
2625
)
2726
if value in known_opts:
2827
self.fail(

src/python_inspector/package_data.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ def get_pypi_data_from_purl(
5353
project_urls = info.get("project_urls") or {}
5454
code_view_url = get_pypi_codeview_url(project_urls)
5555
bug_tracking_url = get_pypi_bugtracker_url(project_urls)
56-
python_version = get_python_version_from_env_tag(
57-
python_version=environment.python_version)
56+
python_version = get_python_version_from_env_tag(python_version=environment.python_version)
5857
valid_distribution_urls = []
5958

6059
valid_distribution_urls.append(

src/python_inspector/resolution.py

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -210,15 +210,13 @@ def get_sdist_file_path_from_filename(sdist):
210210
sdist_file = sdist.rstrip(".tar.gz")
211211
with tarfile.open(os.path.join(utils_pypi.CACHE_THIRDPARTY_DIR, sdist)) as file:
212212
file.extractall(
213-
os.path.join(utils_pypi.CACHE_THIRDPARTY_DIR,
214-
"extracted_sdists", sdist_file)
213+
os.path.join(utils_pypi.CACHE_THIRDPARTY_DIR, "extracted_sdists", sdist_file)
215214
)
216215
elif sdist.endswith(".zip"):
217216
sdist_file = sdist.rstrip(".zip")
218217
with ZipFile(os.path.join(utils_pypi.CACHE_THIRDPARTY_DIR, sdist)) as zip:
219218
zip.extractall(
220-
os.path.join(utils_pypi.CACHE_THIRDPARTY_DIR,
221-
"extracted_sdists", sdist_file)
219+
os.path.join(utils_pypi.CACHE_THIRDPARTY_DIR, "extracted_sdists", sdist_file)
222220
)
223221

224222
else:
@@ -361,8 +359,7 @@ def __init__(
361359
ignore_errors=False,
362360
):
363361
self.environment = environment
364-
self.environment_marker = get_environment_marker_from_environment(
365-
self.environment)
362+
self.environment_marker = get_environment_marker_from_environment(self.environment)
366363
self.repos = repos or []
367364
self.versions_by_package = {}
368365
self.dependencies_by_purl = {}
@@ -411,11 +408,9 @@ def get_versions_for_package_from_repo(
411408
versions = []
412409
for version, package in repo.get_package_versions(name).items():
413410
python_version = parse_version(
414-
get_python_version_from_env_tag(
415-
python_version=self.environment.python_version)
411+
get_python_version_from_env_tag(python_version=self.environment.python_version)
416412
)
417-
wheels = list(package.get_supported_wheels(
418-
environment=self.environment))
413+
wheels = list(package.get_supported_wheels(environment=self.environment))
419414
valid_wheel_present = False
420415
pypi_valid_python_version = False
421416
if wheels:
@@ -464,8 +459,7 @@ def get_requirements_for_package_from_pypi_simple(
464459
Return requirements for a package from the simple repositories.
465460
"""
466461
python_version = parse_version(
467-
get_python_version_from_env_tag(
468-
python_version=self.environment.python_version)
462+
get_python_version_from_env_tag(python_version=self.environment.python_version)
469463
)
470464

471465
wheels = utils_pypi.download_wheel(
@@ -478,8 +472,7 @@ def get_requirements_for_package_from_pypi_simple(
478472

479473
if wheels:
480474
for wheel in wheels:
481-
wheel_location = os.path.join(
482-
utils_pypi.CACHE_THIRDPARTY_DIR, wheel)
475+
wheel_location = os.path.join(utils_pypi.CACHE_THIRDPARTY_DIR, wheel)
483476
requirements = get_requirements_from_distribution(
484477
handler=PypiWheelHandler,
485478
location=wheel_location,
@@ -571,8 +564,7 @@ def get_candidates(
571564
):
572565
valid_versions.append(parsed_version)
573566
if not all(version.is_prerelease for version in valid_versions):
574-
valid_versions = [
575-
version for version in valid_versions if not version.is_prerelease]
567+
valid_versions = [version for version in valid_versions if not version.is_prerelease]
576568
for version in valid_versions:
577569
yield Candidate(name=name, version=version, extras=extras)
578570

@@ -593,8 +585,7 @@ def _iter_matches(
593585
versions.extend(self.get_versions_for_package(name=name))
594586
else:
595587
for repo in self.repos:
596-
versions.extend(
597-
self.get_versions_for_package(name=name, repo=repo))
588+
versions.extend(self.get_versions_for_package(name=name, repo=repo))
598589

599590
if not versions:
600591
if self.ignore_errors:
@@ -685,8 +676,7 @@ def dfs(mapping: Dict, graph: DirectedGraph, src: str):
685676

686677
return dict(
687678
package=str(src_purl),
688-
dependencies=sorted([dfs(mapping, graph, c)
689-
for c in children], key=lambda d: d["package"]),
679+
dependencies=sorted([dfs(mapping, graph, c) for c in children], key=lambda d: d["package"]),
690680
)
691681

692682

@@ -804,8 +794,7 @@ def get_setup_requirements(sdist_location: str, setup_py_location: str, setup_cf
804794
"""
805795

806796
if not os.path.exists(setup_py_location) and not os.path.exists(setup_cfg_location):
807-
raise Exception(
808-
f"No setup.py or setup.cfg found in pypi sdist {sdist_location}")
797+
raise Exception(f"No setup.py or setup.cfg found in pypi sdist {sdist_location}")
809798

810799
# Some commonon packages like flask may have some dependencies in setup.cfg
811800
# and some dependencies in setup.py. We are going to check both.

src/python_inspector/resolve_cli.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,7 @@ def print_version(ctx, param, value):
8484
metavar="OS",
8585
show_default=True,
8686
required=True,
87-
help="OS to use for dependency resolution. One of " +
88-
", ".join(utils_pypi.PLATFORMS_BY_OS),
87+
help="OS to use for dependency resolution. One of " + ", ".join(utils_pypi.PLATFORMS_BY_OS),
8988
)
9089
@click.option(
9190
"--index-url",
@@ -229,8 +228,7 @@ def resolve_dependencies(
229228
from python_inspector.api import resolve_dependencies as resolver_api
230229

231230
if not (json_output or pdt_output):
232-
click.secho(
233-
"No output file specified. Use --json or --json-pdt.", err=True)
231+
click.secho("No output file specified. Use --json or --json-pdt.", err=True)
234232
ctx.exit(1)
235233

236234
if json_output and pdt_output:
@@ -339,8 +337,7 @@ def get_pretty_options(ctx, generic_paths=False):
339337
value = [value]
340338

341339
for val in value:
342-
val = get_pretty_value(param_type=param.type,
343-
value=val, generic_paths=generic_paths)
340+
val = get_pretty_value(param_type=param.type, value=val, generic_paths=generic_paths)
344341

345342
if isinstance(param, click.Argument):
346343
args.append(val)

tests/data/azure-devops.req-310-expected.json

Lines changed: 383 additions & 349 deletions
Large diffs are not rendered by default.

tests/data/azure-devops.req-312-expected.json

Lines changed: 383 additions & 349 deletions
Large diffs are not rendered by default.

tests/data/azure-devops.req-38-expected.json

Lines changed: 381 additions & 345 deletions
Large diffs are not rendered by default.

tests/data/default-url-expected.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"headers": {
33
"tool_name": "python-inspector",
4-
"tool_homepageurl": "https://github.com/nexB/python-inspector",
4+
"tool_homepageurl": "https://github.com/aboutcode-org/python-inspector",
55
"tool_version": "0.12.0",
66
"options": [
77
"--json <file>",
@@ -10,7 +10,7 @@
1010
"--specifier zipp==3.8.0",
1111
"--use-pypi-json-api"
1212
],
13-
"notice": "Dependency tree generated with python-inspector.\npython-inspector is a free software tool from nexB Inc. and others.\nVisit https://github.com/nexB/python-inspector/ for support and download.",
13+
"notice": "Dependency tree generated with python-inspector.\npython-inspector is a free software tool from nexB Inc. and others.\nVisit https://github.com/aboutcode-org/python-inspector/ for support and download.",
1414
"warnings": [],
1515
"errors": []
1616
},

0 commit comments

Comments
 (0)