Skip to content

Commit 11f6572

Browse files
committed
fix: correct parsing of wheel version with regex.
The previous regexp was only taking the first integer of the version number, this presented problems when the major version number reached double digits. Poetry would determine that the version of the dependency is '1', rather than, ie: '14'. This caused failures to solve versions.
1 parent 954d160 commit 11f6572

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

poetry/packages/__init__.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import re
33

44
from poetry.semver import Version
5+
from poetry.utils.patterns import wheel_file_re
56
from poetry.version.requirements import Requirement
67

78
from .dependency import Dependency
@@ -70,7 +71,7 @@ def dependency_from_pep_508(name):
7071
link = Link(path_to_url(os.path.normpath(os.path.abspath(link.path))))
7172
# wheel file
7273
if link.is_wheel:
73-
m = re.match(r"^(?P<namever>(?P<name>.+?)-(?P<ver>\d.*?))", link.filename)
74+
m = wheel_file_re.match(link.filename)
7475
if not m:
7576
raise ValueError("Invalid wheel name: {}".format(link.filename))
7677

tests/packages/test_main.py

+11
Original file line numberDiff line numberDiff line change
@@ -191,3 +191,14 @@ def test_dependency_from_pep_508_with_url():
191191
assert "django-utils" == dep.name
192192
assert dep.is_url()
193193
assert "https://example.com/django-utils-1.0.0.tar.gz" == dep.url
194+
195+
196+
def test_dependency_from_pep_508_with_wheel_url():
197+
name = (
198+
"example_wheel @ https://example.com/example_wheel-14.0.2-py2.py3-none-any.whl"
199+
)
200+
201+
dep = dependency_from_pep_508(name)
202+
203+
assert "example-wheel" == dep.name
204+
assert str(dep.constraint) == "14.0.2"

0 commit comments

Comments
 (0)