mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 21:35:00 +00:00
Copy over pep440-rs
crate (#30)
This PR copies over the `pep440-rs` crate at commit `a8303b01ffef6fccfdce562a887f6b110d482ef3` with no modifications. It won't pass CI, but modifications will intentionally be confined to later PRs.
This commit is contained in:
parent
1e6a217503
commit
f03398bee3
15 changed files with 3480 additions and 0 deletions
48
crates/pep440-rs/test/test_python.py
Normal file
48
crates/pep440-rs/test/test_python.py
Normal file
|
@ -0,0 +1,48 @@
|
|||
"""
|
||||
This is implementation has some very rudimentary python bindings
|
||||
"""
|
||||
from pep440_rs import Version, VersionSpecifier, Operator, VersionSpecifiers
|
||||
|
||||
|
||||
def test_pep440():
|
||||
assert Version("1.1a1").any_prerelease()
|
||||
assert Version("1.1.dev2").any_prerelease()
|
||||
assert not Version("1.1").any_prerelease()
|
||||
assert VersionSpecifier(">=1.0").contains(Version("1.1a1"))
|
||||
assert not VersionSpecifier(">=1.1").contains(Version("1.1a1"))
|
||||
assert Version("1.1") >= Version("1.1a1")
|
||||
assert Version("2.0") in VersionSpecifier("==2")
|
||||
assert Version("2.1").major == 2
|
||||
assert Version("2.1").minor == 1
|
||||
assert Version("2.1").micro == 0
|
||||
|
||||
|
||||
def test_version_specifier():
|
||||
assert VersionSpecifier(">=1.1").version == Version("1.1")
|
||||
assert VersionSpecifier(">=1.1").operator == Operator.GreaterThanEqual
|
||||
assert str(VersionSpecifier(">=1.1").operator) == ">="
|
||||
# Note: This removes the star
|
||||
assert VersionSpecifier("==1.1.*").version == Version("1.1")
|
||||
assert str(VersionSpecifier("==1.1.*").operator) == "=="
|
||||
assert {
|
||||
VersionSpecifier("==1.1.*"),
|
||||
VersionSpecifier("==1.1"),
|
||||
VersionSpecifier("==1.1"),
|
||||
} == {VersionSpecifier("==1.1.*"), VersionSpecifier("==1.1")}
|
||||
|
||||
|
||||
def test_version_specifiers():
|
||||
assert str(VersionSpecifiers(">=1.1, <2.0")) == ">=1.1, <2.0"
|
||||
assert list(VersionSpecifiers(">=1.1, <2.0")) == [
|
||||
VersionSpecifier(">=1.1"),
|
||||
VersionSpecifier("<2.0"),
|
||||
]
|
||||
|
||||
|
||||
def test_normalization():
|
||||
assert str(Version("1.19-alpha.1")) == "1.19a1"
|
||||
assert str(VersionSpecifier(" >=1.19-alpha.1 ")) == ">=1.19a1"
|
||||
assert repr(Version("1.19-alpha.1")) == '<Version("1.19a1")>'
|
||||
assert (
|
||||
repr(VersionSpecifier(" >=1.19-alpha.1 ")) == '<VersionSpecifier(">=1.19a1")>'
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue