4 个版本 (破坏性更新)
0.4.0 | 2023年11月20日 |
---|---|
0.3.0 | 2023年3月11日 |
0.2.0 | 2023年3月4日 |
0.1.0 | 2023年2月18日 |
#1411 in 解析器实现
每月40次下载
用于 2 crates
20KB
410 行
pep-508
Rust 实现 PEP 508 的 Python 依赖解析器
用法
let dep = "requests[security, socks] <= 2.28.1, == 2.28.*; python_version > '3.7' and extra == 'http'";
let parsed = parse(dep).unwrap();
let expected = Dependency {
name: "requests",
extras: vec!["security", "socks"],
spec: Some(Spec::Version(vec![
VersionSpec {
comparator: Comparator::Le,
version: "2.28.1",
},
VersionSpec {
comparator: Comparator::Eq,
version: "2.28.*",
},
])),
marker: Some(Marker::And(
Box::new(Marker::Operator(
Variable::PythonVersion,
Operator::Comparator(Comparator::Gt),
Variable::String("3.7"),
)),
Box::new(Marker::Operator(
Variable::Extra,
Operator::Comparator(Comparator::Eq),
Variable::String("http"),
)),
)),
};
assert_eq!(parsed, expected);
变更日志
查看 CHANGELOG.md
依赖项
~2.5MB
~35K SLoC