use-python 0.0.1

Facade crate for RustUse Python ecosystem primitives
Documentation

use-python

Facade crate for the focused RustUse Python ecosystem primitives.

Experimental

use-python is experimental while the workspace remains below 0.3.0. Expect small API adjustments during the first release wave.

Example

use use_python::{
    PipRequirement, PythonIdentifier, PythonImplementation, PythonPrimitiveValue, PythonVersion,
    PytestNodeId,
};

let version: PythonVersion = "Python 3.12.1".parse()?;
let identifier = PythonIdentifier::new("async_task")?;
let requirement = PipRequirement::new("requests>=2")?;
let node_id = PytestNodeId::new("tests/test_app.py::test_smoke")?;

assert!(version.is_python3());
assert_eq!(identifier.as_str(), "async_task");
assert_eq!(PythonImplementation::CPython.as_str(), "cpython");
assert_eq!(PythonPrimitiveValue::None.type_name(), "NoneType");
assert!(!requirement.is_editable());
assert!(node_id.has_scope_separator());
# Ok::<(), Box<dyn std::error::Error>>(())

Scope

  • Thin re-exports over the focused crates in this workspace.
  • One dependency when consumer ergonomics matter more than the narrowest possible dependency graph.
  • Primitive metadata and validation helpers for Python ecosystem concepts.

Non-goals

  • Python runtime behavior or object semantics.
  • Full source, TOML, requirement, lockfile, or test-file parsing.
  • Shelling out to Python ecosystem tools.
  • Package resolution, installation, virtual environment creation, linting, formatting, testing, or project generation.

License

Licensed under either Apache-2.0 or MIT.