///|
fn main {
try {
let raw = "v01.002-rc3+ABC_007"
let v = @pyversion.Version::parse(raw)
println("input : \{v.raw}")
println("normalized : \{@pyversion.Version::to_string(v)}")
let earlier = try! @pyversion.Version::parse("1.0")
let later = try! @pyversion.Version::parse("1.1.dev1")
let ordering = if earlier < later {
"1.0 < 1.1.dev1"
} else {
"unexpected ordering"
}
println("compare : \{ordering}")
let spec = try! @pyversion.SpecifierSet::parse(">=1.0, !=1.4.*, <2.0")
let candidates = [
try! @pyversion.Version::parse("0.9"),
try! @pyversion.Version::parse("1.0"),
try! @pyversion.Version::parse("1.4.1"),
try! @pyversion.Version::parse("1.5"),
try! @pyversion.Version::parse("2.0"),
]
let filtered = @pyversion.SpecifierSet::filter(candidates, spec)
let b = StringBuilder()
b.write_string("filter : ")
for i = 0; i < filtered.length(); i = i + 1 {
if i > 0 {
b.write_string(", ")
}
b.write_string(@pyversion.Version::to_string(filtered[i]))
}
println(b.to_string())
} catch {
err => println("VersionError: \{err.diagnostic()}")
}
}