A library for dealing with RPM versions (NEVRA, EVR) correctly. Python bindings for the Rust crate rpm-version
Project description
Description
A library for dealing with RPM versions (NEVRA, EVR) correctly.
Usage
In Rust
use std::cmp::Ordering;
use rpm_version::{Evr, Nevra, rpm_evr_compare};
// Compare EVR strings directly
assert_eq!(rpm_evr_compare("1.2.3-4", "1.2.3-5"), Ordering::Less);
assert_eq!(rpm_evr_compare("2:1.0-1", "1:9.9-1"), Ordering::Greater);
// Or use the Evr struct for structured comparisons
let v1 = Evr::parse("1:2.3.4-5");
let v2 = Evr::parse("1:2.3.4-6");
assert!(v1 < v2);
// Full NEVRA (Name-Epoch-Version-Release-Architecture) parsing
let nevra = Nevra::parse("foo-1:2.3.4-5.x86_64");
println!("{} {} {}", nevra.name(), nevra.version(), nevra.arch()); // foo 2.3.4 x86_64
In Python
from rpm_version import Evr, Nevra, evr_compare
# Compare EVR strings directly
assert evr_compare("1.2.3-4", "1.2.3-5") == -1
assert evr_compare("2:1.0-1", "1:9.9-1") == 1
# Or use the Evr object for structured comparisons
v1 = Evr.parse("1:2.3.4-5")
v2 = Evr.parse("1:2.3.4-6")
assert v1 < v2
# Full NEVRA (Name-Epoch-Version-Release-Architecture) parsing
nevra = Nevra.parse("foo-1:2.3.4-5.x86_64")
print(f"{nevra.name} {nevra.version} {nevra.arch}") # foo 2.3.4 x86_64
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
rpm_version-0.1.0.tar.gz
(12.7 kB
view details)
File details
Details for the file rpm_version-0.1.0.tar.gz.
File metadata
- Download URL: rpm_version-0.1.0.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05e1598481be7d6645082e52187597c3b52aa758245da53bc187ecb06ae51e07
|
|
| MD5 |
fd010892b7722baac22e637eaee079d4
|
|
| BLAKE2b-256 |
6411bf3000a22871ba1627fdb9afe69211a776d2dde92770656bc7cb1a375939
|