Skip to main content

pro_core/
lib.rs

1//! pro-core: Core library for Pro Python package manager
2//!
3//! This crate provides the core functionality for Pro:
4//! - Dependency resolution (using pubgrub)
5//! - Package installation with caching
6//! - Native wheel/sdist building
7//! - Virtual environment management
8//! - Security auditing (CVE checking)
9//! - PEP standards compliance
10//! - Python version management
11//! - Tool runner for ephemeral tool execution
12//! - PEP 723 script support
13
14// Allow some clippy lints that would require substantial refactoring
15#![allow(clippy::type_complexity)]
16
17pub mod affected;
18pub mod audit;
19pub mod builder;
20pub mod docker;
21pub mod dotenv;
22pub mod error;
23pub mod index;
24pub mod installer;
25pub mod lockfile;
26pub mod path_dep;
27pub mod pep;
28pub mod polylith;
29pub mod python;
30pub mod registry;
31pub mod resolver;
32pub mod script;
33pub mod semver;
34pub mod tool;
35pub mod venv;
36pub mod versioning;
37pub mod workspace;
38
39pub use affected::{
40    build_dependency_graph, detect_affected, detect_affected_with_transitive,
41    get_transitive_affected, AffectedConfig, AffectedResult,
42};
43pub use audit::{
44    AuditConfig, AuditReport, Auditor, FixRecommendation, FixResult, IgnoredVulnerability,
45    Severity, Vulnerability,
46};
47pub use docker::{build_image, DockerConfig, DockerfileGenerator};
48pub use dotenv::{load_dotenv, DotenvConfig};
49pub use error::{Error, Result};
50pub use installer::{default_cache_dir, InstallResult, Installer};
51pub use lockfile::Lockfile;
52pub use path_dep::{install_path_dependency, load_path_dependencies, PathDependency};
53pub use polylith::{Brick, BrickType, Polylith};
54pub use python::{
55    available_versions, find_matching_version, InstalledPython, Platform, PythonManager,
56    PythonVersion,
57};
58pub use registry::{RegistryConfig, RegistryManager, ResolvedCredentials};
59pub use script::{is_pep723_script, parse_script_metadata, ScriptMetadata, ScriptRunner};
60pub use tool::{CachedTool, ToolCache, ToolRunner};
61pub use venv::VenvManager;
62pub use versioning::{bump_version, get_git_version, get_version, VersioningConfig};
63pub use workspace::{MemberInfo, Workspace};