aboutcode-org / aboutcode-org/univers

`VersionConstraint.version` is allowed to be `None`

Open
#33 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
50
Forks
29
PR merge metrics
No merged PRs in 30d

Description

Is is more of a design decision than an issue.

Let's consider that in a place far far away, someone writes a piece code to get versions from all the constraints:
```py
>>> vr = VersionRange.from_string("vers:npm/1.1|2.2")
>>> range_versions = [c.version for c in vr.constraints]
>>> range_versions
[SemverVersion(string='1.1'), SemverVersion(string='2.2')]
```
Everything is nice and good until we meet `vers:ANY/*`
```py
>>> vr = VersionRange.from_string("vers:npm/*")
>>> range_versions = [c.version for c in vr.constraints]
>>> range_versions
[None]
```
Suddenly, `range_versions` break all expectations and contains a value value of `NoneType` than `Version`
A possible fix would be to allow `None` versions, such as `Version(None)`

Introduced here:
https://github.com/nexB/univers/blob/83e4fa651da7868f5c6f7c05a006bfadaac8d1cd/src/univers/version_constraint.py#L70

Related:
https://github.com/nexB/univers/issues/10
https://github.com/nexB/univers/issues/19

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.