Skip to content

Commit 8ffcb7f

Browse files
authored
Merge pull request #79 from nexB/azure_devops
2 parents 34e018d + 18d20a1 commit 8ffcb7f

21 files changed

+4123
-23
lines changed

CHANGELOG.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ Changelog
22
=========
33

44

5+
v0.8.2
6+
------
7+
8+
- For a package that doesn't have a single stable release use the latest pre-release version.
9+
10+
511
v0.8.1
612
------
713

src/python_inspector/resolution.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -192,10 +192,11 @@ def is_valid_version(
192192
"""
193193
Return True if the parsed_version is valid for the given identifier.
194194
"""
195-
if (
196-
any(parsed_version not in r.specifier for r in requirements[identifier])
197-
or parsed_version in bad_versions
198-
):
195+
if parsed_version in bad_versions:
196+
return False
197+
if any(parsed_version not in r.specifier for r in requirements[identifier]):
198+
if all(not r.specifier for r in requirements[identifier]):
199+
return True
199200
return False
200201
return True
201202

@@ -453,16 +454,20 @@ def get_candidates(
453454
"""
454455
Generate candidates for the given identifier. Overridden.
455456
"""
457+
valid_versions = []
456458
for version in all_versions:
457459
parsed_version = parse_version(version)
458-
if not is_valid_version(
460+
if is_valid_version(
459461
parsed_version=parsed_version,
460462
requirements=requirements,
461463
identifier=identifier,
462464
bad_versions=bad_versions,
463465
):
464-
continue
465-
yield Candidate(name=name, version=parsed_version, extras=extras)
466+
valid_versions.append(parsed_version)
467+
if not all(version.is_prerelease for version in valid_versions):
468+
valid_versions = [version for version in valid_versions if not version.is_prerelease]
469+
for version in valid_versions:
470+
yield Candidate(name=name, version=version, extras=extras)
466471

467472
def _iter_matches(
468473
self,
@@ -504,7 +509,11 @@ def find_matches(
504509

505510
def is_satisfied_by(self, requirement: Requirement, candidate: Candidate) -> bool:
506511
"""Whether the given requirement can be satisfied by a candidate. Overridden."""
507-
return candidate.version in requirement.specifier
512+
if candidate.version in requirement.specifier:
513+
return True
514+
elif not requirement.specifier:
515+
return True
516+
return False
508517

509518
def _iter_dependencies(self, candidate: Candidate) -> Generator[Requirement, None, None]:
510519
"""

src/python_inspector/resolve_cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
TRACE = False
3838

39-
__version__ = "0.8.1"
39+
__version__ = "0.8.2"
4040

4141
DEFAULT_PYTHON_VERSION = "38"
4242
PYPI_SIMPLE_URL = "https://pypi.org/simple"

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

Lines changed: 2015 additions & 0 deletions
Large diffs are not rendered by default.

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

Lines changed: 2015 additions & 0 deletions
Large diffs are not rendered by default.

tests/data/azure-devops.req.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
azure-devops
2+
azure-storage-blob
3+
click

tests/data/default-url-expected.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"headers": {
33
"tool_name": "python-inspector",
44
"tool_homepageurl": "https://github.com/nexB/python-inspector",
5-
"tool_version": "0.8.1",
5+
"tool_version": "0.8.2",
66
"options": [
77
"--specifier zipp==3.8.0",
88
"--index-url https://pypi.org/simple",

tests/data/environment-marker-test-requirements.txt-expected.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"headers": {
33
"tool_name": "python-inspector",
44
"tool_homepageurl": "https://github.com/nexB/python-inspector",
5-
"tool_version": "0.8.1",
5+
"tool_version": "0.8.2",
66
"options": [
77
"--requirement /home/tg1999/Desktop/python-inspector-1/tests/data/environment-marker-test-requirements.txt",
88
"--index-url https://pypi.org/simple",

tests/data/frozen-requirements.txt-expected.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"headers": {
33
"tool_name": "python-inspector",
44
"tool_homepageurl": "https://github.com/nexB/python-inspector",
5-
"tool_version": "0.8.1",
5+
"tool_version": "0.8.2",
66
"options": [
77
"--requirement /home/tg1999/Desktop/python-inspector-1/tests/data/frozen-requirements.txt",
88
"--index-url https://pypi.org/simple",

tests/data/insecure-setup-2/setup.py-expected.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"headers": {
33
"tool_name": "python-inspector",
44
"tool_homepageurl": "https://github.com/nexB/python-inspector",
5-
"tool_version": "0.8.1",
5+
"tool_version": "0.8.2",
66
"options": [
77
"--index-url https://pypi.org/simple",
88
"--python-version 27",

0 commit comments

Comments
 (0)