pep-508

Rust implementation of Python dependency parser for PEP 508

version deps license ci

Documentation

Usage

rust 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

See CHANGELOG.md