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

MPL-2.0 许可证

20KB
410

pep-508

Rust 实现 PEP 508 的 Python 依赖解析器

version deps license ci

文档

用法

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