Skip to main content

use_python/
lib.rs

1#![forbid(unsafe_code)]
2#![doc = include_str!("../README.md")]
3
4pub use use_python_version::*;
5
6pub use use_python_identifier::*;
7
8pub use use_python_keyword::*;
9
10pub use use_python_value::*;
11
12pub use use_python_module::*;
13
14pub use use_pyproject::*;
15
16pub use use_pip::*;
17
18pub use use_uv::*;
19
20pub use use_venv::*;
21
22pub use use_pytest::*;
23
24#[cfg(test)]
25mod tests {
26    use super::{
27        PipRequirement, PyProject, PyProjectProjectMetadata, PytestMarkerName, PythonIdentifier,
28        PythonImplementation, PythonKeyword, PythonModuleName, PythonPrimitiveValue, PythonVersion,
29        PythonVirtualEnvKind, PythonVirtualEnvName, UvPackageSpec,
30    };
31
32    #[test]
33    fn facade_exposes_every_child_crate() -> Result<(), Box<dyn std::error::Error>> {
34        let version: PythonVersion = "3.12.1".parse()?;
35        let identifier = PythonIdentifier::new("async_task")?;
36        let module = PythonModuleName::new("package.module")?;
37        let project =
38            PyProject::new().with_project(PyProjectProjectMetadata::new().with_name("demo")?);
39        let requirement = PipRequirement::new("requests>=2")?;
40        let package = UvPackageSpec::new("ruff>=0.4")?;
41        let env_name = PythonVirtualEnvName::new(".venv")?;
42        let marker = PytestMarkerName::new("slow")?;
43
44        assert!(version.is_python3());
45        assert_eq!(identifier.as_str(), "async_task");
46        assert_eq!(PythonKeyword::Return.as_str(), "return");
47        assert_eq!(PythonPrimitiveValue::None.type_name(), "NoneType");
48        assert_eq!(module.as_str(), "package.module");
49        assert_eq!(project.project_name(), Some("demo"));
50        assert_eq!(requirement.as_str(), "requests>=2");
51        assert_eq!(package.as_str(), "ruff>=0.4");
52        assert_eq!(env_name.as_str(), ".venv");
53        assert_eq!(marker.as_str(), "slow");
54        assert_eq!(PythonImplementation::CPython.as_str(), "cpython");
55        assert_eq!(PythonVirtualEnvKind::Venv.as_str(), "venv");
56        Ok(())
57    }
58}