diff --git a/crates/ty_project/src/lib.rs b/crates/ty_project/src/lib.rs index 45c84dd18a..d80f5b631c 100644 --- a/crates/ty_project/src/lib.rs +++ b/crates/ty_project/src/lib.rs @@ -37,6 +37,8 @@ mod files; pub mod glob; pub mod metadata; pub mod parallel; +mod script; +mod uv; mod walk; pub mod watch; diff --git a/crates/ty_project/src/metadata.rs b/crates/ty_project/src/metadata.rs index e97c390a4d..04afe3fb72 100644 --- a/crates/ty_project/src/metadata.rs +++ b/crates/ty_project/src/metadata.rs @@ -17,6 +17,7 @@ use crate::metadata::options::{ use crate::metadata::pyproject::{Project, PyProject, PyProjectError, ResolveRequiresPythonError}; use crate::metadata::settings::Settings; use crate::metadata::value::RelativePathBuf; +use crate::uv; pub use options::Options; use options::TyTomlError; @@ -24,9 +25,7 @@ mod configuration_file; pub mod options; pub mod pyproject; pub mod python_version; -pub(crate) mod script; pub mod settings; -mod uv; pub mod value; #[derive(Debug, Clone, PartialEq, Eq, get_size2::GetSize)] @@ -640,7 +639,8 @@ mod tests { use ruff_ranged_value::ValueSource; use ty_static::EnvVars; - use crate::metadata::{Options, uv::UvWorkspace, value::RelativePathBuf}; + use crate::metadata::{Options, value::RelativePathBuf}; + use crate::uv::UvWorkspace; use crate::{ProjectMetadata, ProjectMetadataError}; #[test] diff --git a/crates/ty_project/src/metadata/settings.rs b/crates/ty_project/src/metadata/settings.rs index e939243e88..5a0b6cd69e 100644 --- a/crates/ty_project/src/metadata/settings.rs +++ b/crates/ty_project/src/metadata/settings.rs @@ -6,7 +6,7 @@ use ty_python_semantic::AnalysisSettings; use ty_python_semantic::lint::RuleSelection; use crate::metadata::options::{InnerOverrideOptions, Options, OutputFormat}; -use crate::metadata::script::script_metadata; +use crate::script::script_metadata; use crate::{Db, glob::IncludeExcludeFilter}; /// The resolved [`super::Options`] for the project. diff --git a/crates/ty_project/src/metadata/script.rs b/crates/ty_project/src/script.rs similarity index 100% rename from crates/ty_project/src/metadata/script.rs rename to crates/ty_project/src/script.rs diff --git a/crates/ty_project/src/uv.rs b/crates/ty_project/src/uv.rs new file mode 100644 index 0000000000..3294582273 --- /dev/null +++ b/crates/ty_project/src/uv.rs @@ -0,0 +1,5 @@ +//! Integrates uv with project discovery. + +pub(crate) use metadata::UvWorkspace; + +mod metadata; diff --git a/crates/ty_project/src/metadata/uv.rs b/crates/ty_project/src/uv/metadata.rs similarity index 95% rename from crates/ty_project/src/metadata/uv.rs rename to crates/ty_project/src/uv/metadata.rs index 8bda3071e1..e44d3c8584 100644 --- a/crates/ty_project/src/metadata/uv.rs +++ b/crates/ty_project/src/uv/metadata.rs @@ -7,17 +7,17 @@ use serde::Deserialize; use thiserror::Error; use ty_static::EnvVars; -use super::python_version::SupportedPythonVersion; +use crate::metadata::python_version::SupportedPythonVersion; #[derive(Debug, Clone, PartialEq, Eq, get_size2::GetSize)] -pub(super) struct UvWorkspace { +pub(crate) struct UvWorkspace { root: SystemPathBuf, environment: Option, python_version: Option>, } impl UvWorkspace { - pub(super) fn discover( + pub(crate) fn discover( path: &SystemPath, system: &dyn System, ) -> Result { @@ -50,7 +50,7 @@ impl UvWorkspace { Self::from_metadata(&output.stdout, system) } - pub(super) fn from_metadata( + pub(crate) fn from_metadata( metadata: &[u8], system: &dyn System, ) -> Result { @@ -78,15 +78,15 @@ impl UvWorkspace { }) } - pub(super) fn root(&self) -> &SystemPath { + pub(crate) fn root(&self) -> &SystemPath { &self.root } - pub(super) fn environment(&self) -> Option<&SystemPath> { + pub(crate) fn environment(&self) -> Option<&SystemPath> { self.environment.as_deref() } - pub(super) fn python_version(&self) -> Option<&RangedValue> { + pub(crate) fn python_version(&self) -> Option<&RangedValue> { self.python_version.as_ref() } } @@ -129,7 +129,7 @@ fn existing_directory( } #[derive(Debug, Error)] -pub(super) enum UvWorkspaceError { +pub(crate) enum UvWorkspaceError { #[error("Failed to invoke `uv workspace metadata`: {0}")] Invocation(#[source] std::io::Error), diff --git a/crates/ty_project/src/walk.rs b/crates/ty_project/src/walk.rs index 869742c220..0c70da7c33 100644 --- a/crates/ty_project/src/walk.rs +++ b/crates/ty_project/src/walk.rs @@ -1,5 +1,5 @@ use crate::glob::IncludeExcludeFilter; -use crate::metadata::script::script_metadata; +use crate::script::script_metadata; use crate::{Db, GlobFilterCheckMode, IncludeResult, Project}; use ruff_db::diagnostic::{Diagnostic, DiagnosticId, Severity}; use ruff_db::files::{File, system_path_to_file};