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 self_update;
34pub mod semver;
35pub mod tool;
36pub mod venv;
37pub mod versioning;
38pub mod workspace;
39
40pub use affected::{
41    build_dependency_graph, detect_affected, detect_affected_with_transitive,
42    get_transitive_affected, AffectedConfig, AffectedResult,
43};
44pub use audit::{
45    AuditConfig, AuditReport, Auditor, FixRecommendation, FixResult, IgnoredVulnerability,
46    Severity, Vulnerability,
47};
48pub use docker::{build_image, DockerConfig, DockerfileGenerator};
49pub use dotenv::{load_dotenv, DotenvConfig};
50pub use error::{Error, Result};
51pub use installer::{default_cache_dir, InstallResult, Installer};
52pub use lockfile::Lockfile;
53pub use path_dep::{install_path_dependency, load_path_dependencies, PathDependency};
54pub use polylith::{Brick, BrickType, Polylith};
55pub use python::{
56    available_versions, find_matching_version, InstalledPython, Platform, PythonManager,
57    PythonVersion,
58};
59pub use registry::{RegistryConfig, RegistryManager, ResolvedCredentials};
60pub use script::{is_pep723_script, parse_script_metadata, ScriptMetadata, ScriptRunner};
61pub use self_update::{InstallMethod, ReleaseInfo, SelfUpdater};
62pub use tool::{CachedTool, ToolCache, ToolRunner};
63pub use venv::VenvManager;
64pub use versioning::{bump_version, get_git_version, get_version, VersioningConfig};
65pub use workspace::{MemberInfo, Workspace};