diff --git a/.github/workflows/sync_typeshed.yaml b/.github/workflows/sync_typeshed.yaml index 625b9b9fce6bb..d3bc1b4c9c546 100644 --- a/.github/workflows/sync_typeshed.yaml +++ b/.github/workflows/sync_typeshed.yaml @@ -37,13 +37,13 @@ jobs: - name: Sync typeshed id: sync run: | - rm -rf ruff/crates/red_knot_python_semantic/vendor/typeshed - mkdir ruff/crates/red_knot_python_semantic/vendor/typeshed - cp typeshed/README.md ruff/crates/red_knot_python_semantic/vendor/typeshed - cp typeshed/LICENSE ruff/crates/red_knot_python_semantic/vendor/typeshed - cp -r typeshed/stdlib ruff/crates/red_knot_python_semantic/vendor/typeshed/stdlib - rm -rf ruff/crates/red_knot_python_semantic/vendor/typeshed/stdlib/@tests - git -C typeshed rev-parse HEAD > ruff/crates/red_knot_python_semantic/vendor/typeshed/source_commit.txt + rm -rf ruff/crates/ruff_vendored/vendor/typeshed + mkdir ruff/crates/ruff_vendored/vendor/typeshed + cp typeshed/README.md ruff/crates/ruff_vendored/vendor/typeshed + cp typeshed/LICENSE ruff/crates/ruff_vendored/vendor/typeshed + cp -r typeshed/stdlib ruff/crates/ruff_vendored/vendor/typeshed/stdlib + rm -rf ruff/crates/ruff_vendored/vendor/typeshed/stdlib/@tests + git -C typeshed rev-parse HEAD > ruff/crates/ruff_vendored/vendor/typeshed/source_commit.txt - name: Commit the changes id: commit if: ${{ steps.sync.outcome == 'success' }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6f355ec378208..11cb47e0d98de 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,7 +2,7 @@ fail_fast: true exclude: | (?x)^( - crates/red_knot_python_semantic/vendor/.*| + crates/ruff_vendored/vendor/.*| crates/red_knot_workspace/resources/.*| crates/ruff_linter/resources/.*| crates/ruff_linter/src/rules/.*/snapshots/.*| diff --git a/Cargo.lock b/Cargo.lock index 727b38d862f03..9b1c5620d9bf8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2083,9 +2083,7 @@ dependencies = [ "countme", "hashbrown", "insta", - "once_cell", "ordermap", - "path-slash", "ruff_db", "ruff_index", "ruff_python_ast", @@ -2094,6 +2092,7 @@ dependencies = [ "ruff_python_stdlib", "ruff_source_file", "ruff_text_size", + "ruff_vendored", "rustc-hash 2.0.0", "salsa", "smallvec", @@ -2102,8 +2101,6 @@ dependencies = [ "test-case", "thiserror", "tracing", - "walkdir", - "zip", ] [[package]] @@ -2159,6 +2156,7 @@ dependencies = [ "ruff_db", "ruff_python_ast", "ruff_text_size", + "ruff_vendored", "rustc-hash 2.0.0", "salsa", "tempfile", @@ -2450,6 +2448,7 @@ version = "0.1.0" dependencies = [ "anyhow", "clap", + "once_cell", "red_knot_python_semantic", "ruff_cache", "ruff_db", @@ -2460,6 +2459,7 @@ dependencies = [ "salsa", "schemars", "serde", + "zip", ] [[package]] @@ -2790,6 +2790,17 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "ruff_vendored" +version = "0.0.0" +dependencies = [ + "once_cell", + "path-slash", + "ruff_db", + "walkdir", + "zip", +] + [[package]] name = "ruff_wasm" version = "0.6.6" diff --git a/Cargo.toml b/Cargo.toml index 81e80f7630db3..932a5048811f2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ license = "MIT" [workspace.dependencies] ruff = { path = "crates/ruff" } ruff_cache = { path = "crates/ruff_cache" } -ruff_db = { path = "crates/ruff_db" } +ruff_db = { path = "crates/ruff_db", default-features = false } ruff_diagnostics = { path = "crates/ruff_diagnostics" } ruff_formatter = { path = "crates/ruff_formatter" } ruff_graph = { path = "crates/ruff_graph" } @@ -34,11 +34,12 @@ ruff_python_trivia = { path = "crates/ruff_python_trivia" } ruff_server = { path = "crates/ruff_server" } ruff_source_file = { path = "crates/ruff_source_file" } ruff_text_size = { path = "crates/ruff_text_size" } +ruff_vendored = { path = "crates/ruff_vendored" } ruff_workspace = { path = "crates/ruff_workspace" } red_knot_python_semantic = { path = "crates/red_knot_python_semantic" } red_knot_server = { path = "crates/red_knot_server" } -red_knot_workspace = { path = "crates/red_knot_workspace" } +red_knot_workspace = { path = "crates/red_knot_workspace", default-features = false } aho-corasick = { version = "1.1.3" } annotate-snippets = { version = "0.9.2", features = ["color"] } diff --git a/crates/red_knot/Cargo.toml b/crates/red_knot/Cargo.toml index 0f66f0b3a6961..1b3fdfa346130 100644 --- a/crates/red_knot/Cargo.toml +++ b/crates/red_knot/Cargo.toml @@ -13,9 +13,8 @@ license.workspace = true [dependencies] red_knot_python_semantic = { workspace = true } -red_knot_workspace = { workspace = true } +red_knot_workspace = { workspace = true, features = ["zstd"] } red_knot_server = { workspace = true } - ruff_db = { workspace = true, features = ["os", "cache"] } anyhow = { workspace = true } diff --git a/crates/red_knot_python_semantic/Cargo.toml b/crates/red_knot_python_semantic/Cargo.toml index 862f6f268967e..bf8afe24af8de 100644 --- a/crates/red_knot_python_semantic/Cargo.toml +++ b/crates/red_knot_python_semantic/Cargo.toml @@ -24,7 +24,6 @@ bitflags = { workspace = true } camino = { workspace = true } compact_str = { workspace = true } countme = { workspace = true } -once_cell = { workspace = true } ordermap = { workspace = true } salsa = { workspace = true } thiserror = { workspace = true } @@ -35,20 +34,14 @@ smallvec = { workspace = true } static_assertions = { workspace = true } test-case = { workspace = true } -[build-dependencies] -path-slash = { workspace = true } -walkdir = { workspace = true } -zip = { workspace = true, features = ["zstd", "deflate"] } - [dev-dependencies] ruff_db = { workspace = true, features = ["os", "testing"] } ruff_python_parser = { workspace = true } +ruff_vendored = { workspace = true } anyhow = { workspace = true } insta = { workspace = true } tempfile = { workspace = true } -walkdir = { workspace = true } -zip = { workspace = true } [lints] workspace = true diff --git a/crates/red_knot_python_semantic/src/db.rs b/crates/red_knot_python_semantic/src/db.rs index c358d3e1cc351..8ec0fee30053a 100644 --- a/crates/red_knot_python_semantic/src/db.rs +++ b/crates/red_knot_python_semantic/src/db.rs @@ -11,7 +11,6 @@ pub trait Db: SourceDb + Upcast { pub(crate) mod tests { use std::sync::Arc; - use crate::module_resolver::vendored_typeshed_stubs; use ruff_db::files::{File, Files}; use ruff_db::system::{DbWithTestSystem, System, TestSystem}; use ruff_db::vendored::VendoredFileSystem; @@ -33,7 +32,7 @@ pub(crate) mod tests { Self { storage: salsa::Storage::default(), system: TestSystem::default(), - vendored: vendored_typeshed_stubs().clone(), + vendored: ruff_vendored::file_system().clone(), events: std::sync::Arc::default(), files: Files::default(), } diff --git a/crates/red_knot_python_semantic/src/lib.rs b/crates/red_knot_python_semantic/src/lib.rs index afdf2da55a6b0..2c1b059b29d3d 100644 --- a/crates/red_knot_python_semantic/src/lib.rs +++ b/crates/red_knot_python_semantic/src/lib.rs @@ -4,9 +4,7 @@ use rustc_hash::FxHasher; pub use db::Db; pub use module_name::ModuleName; -pub use module_resolver::{ - resolve_module, system_module_search_paths, vendored_typeshed_stubs, Module, -}; +pub use module_resolver::{resolve_module, system_module_search_paths, Module}; pub use program::{Program, ProgramSettings, SearchPathSettings, SitePackages}; pub use python_version::PythonVersion; pub use semantic_model::{HasTy, SemanticModel}; diff --git a/crates/red_knot_python_semantic/src/module_resolver/mod.rs b/crates/red_knot_python_semantic/src/module_resolver/mod.rs index a8ba40c09d3c0..c17925606ff29 100644 --- a/crates/red_knot_python_semantic/src/module_resolver/mod.rs +++ b/crates/red_knot_python_semantic/src/module_resolver/mod.rs @@ -4,7 +4,6 @@ pub use module::Module; pub use resolver::resolve_module; pub(crate) use resolver::{file_to_module, SearchPaths}; use ruff_db::system::SystemPath; -pub use typeshed::vendored_typeshed_stubs; use crate::module_resolver::resolver::search_paths; use crate::Db; diff --git a/crates/red_knot_python_semantic/src/module_resolver/typeshed/versions.rs b/crates/red_knot_python_semantic/src/module_resolver/typeshed.rs similarity index 99% rename from crates/red_knot_python_semantic/src/module_resolver/typeshed/versions.rs rename to crates/red_knot_python_semantic/src/module_resolver/typeshed.rs index bce245459711c..204a876ded3ac 100644 --- a/crates/red_knot_python_semantic/src/module_resolver/typeshed/versions.rs +++ b/crates/red_knot_python_semantic/src/module_resolver/typeshed.rs @@ -390,7 +390,8 @@ mod tests { fn typeshed_versions_consistent_with_vendored_stubs() { let db = TestDb::new(); let vendored_typeshed_versions = vendored_typeshed_versions(&db); - let vendored_typeshed_dir = Path::new("vendor/typeshed").canonicalize().unwrap(); + let vendored_typeshed_dir = + Path::new(env!("CARGO_MANIFEST_DIR")).join("../ruff_vendored/vendor/typeshed"); let mut empty_iterator = true; diff --git a/crates/red_knot_python_semantic/src/module_resolver/typeshed/mod.rs b/crates/red_knot_python_semantic/src/module_resolver/typeshed/mod.rs deleted file mode 100644 index fe6b08f5766c9..0000000000000 --- a/crates/red_knot_python_semantic/src/module_resolver/typeshed/mod.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub use self::vendored::vendored_typeshed_stubs; -pub(super) use self::versions::{ - typeshed_versions, vendored_typeshed_versions, TypeshedVersions, TypeshedVersionsParseError, - TypeshedVersionsQueryResult, -}; - -mod vendored; -mod versions; diff --git a/crates/red_knot_python_semantic/src/types.rs b/crates/red_knot_python_semantic/src/types.rs index 07ad95095b090..54df8499de33e 100644 --- a/crates/red_knot_python_semantic/src/types.rs +++ b/crates/red_knot_python_semantic/src/types.rs @@ -701,12 +701,12 @@ enum CallOutcome<'db> { impl<'db> CallOutcome<'db> { /// Create a new `CallOutcome::Callable` with given return type. - fn callable(return_ty: Type<'db>) -> CallOutcome { + fn callable(return_ty: Type<'db>) -> CallOutcome<'db> { CallOutcome::Callable { return_ty } } /// Create a new `CallOutcome::NotCallable` with given not-callable type. - fn not_callable(not_callable_ty: Type<'db>) -> CallOutcome { + fn not_callable(not_callable_ty: Type<'db>) -> CallOutcome<'db> { CallOutcome::NotCallable { not_callable_ty } } @@ -719,7 +719,10 @@ impl<'db> CallOutcome<'db> { } /// Create a new `CallOutcome::Union` with given wrapped outcomes. - fn union(called_ty: Type<'db>, outcomes: impl Into]>>) -> CallOutcome { + fn union( + called_ty: Type<'db>, + outcomes: impl Into]>>, + ) -> CallOutcome<'db> { CallOutcome::Union { called_ty, outcomes: outcomes.into(), diff --git a/crates/red_knot_wasm/Cargo.toml b/crates/red_knot_wasm/Cargo.toml index df70eaa9b39db..896af153915a6 100644 --- a/crates/red_knot_wasm/Cargo.toml +++ b/crates/red_knot_wasm/Cargo.toml @@ -20,9 +20,9 @@ default = ["console_error_panic_hook"] [dependencies] red_knot_python_semantic = { workspace = true } -red_knot_workspace = { workspace = true } +red_knot_workspace = { workspace = true, default-features = false, features = ["deflate"] } -ruff_db = { workspace = true } +ruff_db = { workspace = true, features = [] } ruff_notebook = { workspace = true } console_error_panic_hook = { workspace = true, optional = true } diff --git a/crates/red_knot_workspace/Cargo.toml b/crates/red_knot_workspace/Cargo.toml index dd73febde3588..dac58c365f5b1 100644 --- a/crates/red_knot_workspace/Cargo.toml +++ b/crates/red_knot_workspace/Cargo.toml @@ -18,6 +18,7 @@ ruff_cache = { workspace = true } ruff_db = { workspace = true, features = ["os", "cache"] } ruff_python_ast = { workspace = true } ruff_text_size = { workspace = true } +ruff_vendored = { workspace = true } anyhow = { workspace = true } crossbeam = { workspace = true } @@ -31,5 +32,10 @@ tracing = { workspace = true } ruff_db = { workspace = true, features = ["testing"] } tempfile = { workspace = true } +[features] +default = ["zstd"] +zstd = ["ruff_vendored/zstd"] +deflate = ["ruff_vendored/deflate"] + [lints] workspace = true diff --git a/crates/red_knot_workspace/src/db.rs b/crates/red_knot_workspace/src/db.rs index 0839d7ee0fe26..4d3da0ceed98f 100644 --- a/crates/red_knot_workspace/src/db.rs +++ b/crates/red_knot_workspace/src/db.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use salsa::plumbing::ZalsaDatabase; use salsa::{Cancelled, Event}; -use red_knot_python_semantic::{vendored_typeshed_stubs, Db as SemanticDb, Program}; +use red_knot_python_semantic::{Db as SemanticDb, Program}; use ruff_db::files::{File, Files}; use ruff_db::system::System; use ruff_db::vendored::VendoredFileSystem; @@ -124,7 +124,7 @@ impl SemanticDb for RootDatabase { #[salsa::db] impl SourceDb for RootDatabase { fn vendored(&self) -> &VendoredFileSystem { - vendored_typeshed_stubs() + ruff_vendored::file_system() } fn system(&self) -> &dyn System { @@ -161,7 +161,7 @@ pub(crate) mod tests { use salsa::Event; - use red_knot_python_semantic::{vendored_typeshed_stubs, Db as SemanticDb}; + use red_knot_python_semantic::Db as SemanticDb; use ruff_db::files::Files; use ruff_db::system::{DbWithTestSystem, System, TestSystem}; use ruff_db::vendored::VendoredFileSystem; @@ -183,7 +183,7 @@ pub(crate) mod tests { Self { storage: salsa::Storage::default(), system: TestSystem::default(), - vendored: vendored_typeshed_stubs().clone(), + vendored: ruff_vendored::file_system().clone(), files: Files::default(), events: Arc::default(), } diff --git a/crates/ruff/Cargo.toml b/crates/ruff/Cargo.toml index 6b1ba0ad5e910..786ca8e9c2850 100644 --- a/crates/ruff/Cargo.toml +++ b/crates/ruff/Cargo.toml @@ -14,7 +14,7 @@ default-run = "ruff" [dependencies] ruff_cache = { workspace = true } -ruff_db = { workspace = true } +ruff_db = { workspace = true, default-features = false, features = ["os"] } ruff_diagnostics = { workspace = true } ruff_graph = { workspace = true, features = ["serde", "clap"] } ruff_linter = { workspace = true, features = ["clap"] } diff --git a/crates/ruff_db/Cargo.toml b/crates/ruff_db/Cargo.toml index 570aa0d63b297..3410fe7449cfc 100644 --- a/crates/ruff_db/Cargo.toml +++ b/crates/ruff_db/Cargo.toml @@ -33,19 +33,17 @@ tracing = { workspace = true } tracing-subscriber = { workspace = true, optional = true } tracing-tree = { workspace = true, optional = true } rustc-hash = { workspace = true } - -[target.'cfg(not(target_arch="wasm32"))'.dependencies] -zip = { workspace = true, features = ["zstd"] } +zip = { workspace = true } [target.'cfg(target_arch="wasm32")'.dependencies] web-time = { version = "1.1.0" } -zip = { workspace = true, features = ["deflate"] } [dev-dependencies] insta = { workspace = true } tempfile = { workspace = true } [features] +default = ["os"] cache = ["ruff_cache"] os = ["ignore"] serde = ["dep:serde", "camino/serde1"] diff --git a/crates/ruff_db/src/files.rs b/crates/ruff_db/src/files.rs index ec1f6939207c2..50f4e76d7e984 100644 --- a/crates/ruff_db/src/files.rs +++ b/crates/ruff_db/src/files.rs @@ -503,7 +503,8 @@ mod tests { use crate::files::{system_path_to_file, vendored_path_to_file, FileError}; use crate::system::DbWithTestSystem; use crate::tests::TestDb; - use crate::vendored::tests::VendoredFileSystemBuilder; + use crate::vendored::VendoredFileSystemBuilder; + use zip::CompressionMethod; #[test] fn system_existing_file() -> crate::system::Result<()> { @@ -548,7 +549,7 @@ mod tests { fn stubbed_vendored_file() -> crate::system::Result<()> { let mut db = TestDb::new(); - let mut vendored_builder = VendoredFileSystemBuilder::new(); + let mut vendored_builder = VendoredFileSystemBuilder::new(CompressionMethod::Stored); vendored_builder .add_file("test.pyi", "def foo() -> str") .unwrap(); diff --git a/crates/ruff_db/src/parsed.rs b/crates/ruff_db/src/parsed.rs index c47e71fdfff86..e93d5e55178c2 100644 --- a/crates/ruff_db/src/parsed.rs +++ b/crates/ruff_db/src/parsed.rs @@ -79,8 +79,9 @@ mod tests { use crate::parsed::parsed_module; use crate::system::{DbWithTestSystem, SystemPath, SystemVirtualPath}; use crate::tests::TestDb; - use crate::vendored::{tests::VendoredFileSystemBuilder, VendoredPath}; + use crate::vendored::{VendoredFileSystemBuilder, VendoredPath}; use crate::Db; + use zip::CompressionMethod; #[test] fn python_file() -> crate::system::Result<()> { @@ -150,7 +151,7 @@ mod tests { fn vendored_file() { let mut db = TestDb::new(); - let mut vendored_builder = VendoredFileSystemBuilder::new(); + let mut vendored_builder = VendoredFileSystemBuilder::new(CompressionMethod::Stored); vendored_builder .add_file( "path.pyi", diff --git a/crates/ruff_db/src/vendored.rs b/crates/ruff_db/src/vendored.rs index d72195aa7ffe4..1a328448c5336 100644 --- a/crates/ruff_db/src/vendored.rs +++ b/crates/ruff_db/src/vendored.rs @@ -1,12 +1,13 @@ use std::borrow::Cow; use std::collections::BTreeMap; use std::fmt::{self, Debug}; -use std::io::{self, Read}; +use std::io::{self, Read, Write}; use std::sync::{Arc, Mutex, MutexGuard}; -use zip::{read::ZipFile, ZipArchive, ZipWriter}; - use crate::file_revision::FileRevision; +use zip::result::ZipResult; +use zip::write::FileOptions; +use zip::{read::ZipFile, CompressionMethod, ZipArchive, ZipWriter}; pub use self::path::{VendoredPath, VendoredPathBuf}; @@ -177,7 +178,6 @@ struct ZipFileDebugInfo { crc32_hash: u32, compressed_size: u64, uncompressed_size: u64, - compression_method: zip::CompressionMethod, kind: FileType, } @@ -187,7 +187,6 @@ impl<'a> From> for ZipFileDebugInfo { crc32_hash: value.crc32(), compressed_size: value.compressed_size(), uncompressed_size: value.size(), - compression_method: value.compression(), kind: if value.is_dir() { FileType::Directory } else { @@ -341,69 +340,61 @@ impl<'a> From<&'a VendoredPath> for NormalizedVendoredPath<'a> { } } -#[cfg(test)] -pub(crate) mod tests { - use std::io::Write; - - use insta::assert_snapshot; - use zip::result::ZipResult; - use zip::write::FileOptions; - use zip::{CompressionMethod, ZipWriter}; +pub struct VendoredFileSystemBuilder { + writer: ZipWriter>>, + compression_method: CompressionMethod, +} - use super::*; +impl VendoredFileSystemBuilder { + pub fn new(compression_method: CompressionMethod) -> Self { + let buffer = io::Cursor::new(Vec::new()); - const FUNCTOOLS_CONTENTS: &str = "def update_wrapper(): ..."; - const ASYNCIO_TASKS_CONTENTS: &str = "class Task: ..."; + Self { + writer: ZipWriter::new(buffer), + compression_method, + } + } - pub struct VendoredFileSystemBuilder { - writer: ZipWriter>>, + pub fn add_file( + &mut self, + path: impl AsRef, + content: &str, + ) -> std::io::Result<()> { + self.writer + .start_file(path.as_ref().as_str(), self.options())?; + self.writer.write_all(content.as_bytes()) } - impl Default for VendoredFileSystemBuilder { - fn default() -> Self { - Self::new() - } + pub fn add_directory(&mut self, path: impl AsRef) -> ZipResult<()> { + self.writer + .add_directory(path.as_ref().as_str(), self.options()) } - impl VendoredFileSystemBuilder { - pub fn new() -> Self { - let buffer = io::Cursor::new(Vec::new()); + pub fn finish(mut self) -> Result { + let buffer = self.writer.finish()?; - Self { - writer: ZipWriter::new(buffer), - } - } + VendoredFileSystem::new(buffer.into_inner()) + } - pub fn add_file( - &mut self, - path: impl AsRef, - content: &str, - ) -> std::io::Result<()> { - self.writer - .start_file(path.as_ref().as_str(), Self::options())?; - self.writer.write_all(content.as_bytes()) - } + fn options(&self) -> FileOptions { + FileOptions::default() + .compression_method(self.compression_method) + .unix_permissions(0o644) + } +} - pub fn add_directory(&mut self, path: impl AsRef) -> ZipResult<()> { - self.writer - .add_directory(path.as_ref().as_str(), Self::options()) - } +#[cfg(test)] +pub(crate) mod tests { - pub fn finish(mut self) -> Result { - let buffer = self.writer.finish()?; + use insta::assert_snapshot; - VendoredFileSystem::new(buffer.into_inner()) - } + use super::*; - fn options() -> FileOptions { - FileOptions::default() - .compression_method(CompressionMethod::Zstd) - .unix_permissions(0o644) - } - } + const FUNCTOOLS_CONTENTS: &str = "def update_wrapper(): ..."; + const ASYNCIO_TASKS_CONTENTS: &str = "class Task: ..."; fn mock_typeshed() -> VendoredFileSystem { - let mut builder = VendoredFileSystemBuilder::new(); + let mut builder = VendoredFileSystemBuilder::new(CompressionMethod::Stored); builder.add_directory("stdlib/").unwrap(); builder @@ -441,28 +432,24 @@ pub(crate) mod tests { crc32_hash: 0, compressed_size: 0, uncompressed_size: 0, - compression_method: Stored, kind: Directory, }, "stdlib/asyncio/": ZipFileDebugInfo { crc32_hash: 0, compressed_size: 0, uncompressed_size: 0, - compression_method: Stored, kind: Directory, }, "stdlib/asyncio/tasks.pyi": ZipFileDebugInfo { crc32_hash: 2826547428, - compressed_size: 24, + compressed_size: 15, uncompressed_size: 15, - compression_method: Zstd, kind: File, }, "stdlib/functools.pyi": ZipFileDebugInfo { crc32_hash: 1099005079, - compressed_size: 34, + compressed_size: 25, uncompressed_size: 25, - compression_method: Zstd, kind: File, }, }, diff --git a/crates/ruff_graph/Cargo.toml b/crates/ruff_graph/Cargo.toml index c9808eace8bc5..9bb0a67d9ca9d 100644 --- a/crates/ruff_graph/Cargo.toml +++ b/crates/ruff_graph/Cargo.toml @@ -20,9 +20,11 @@ ruff_python_parser = { workspace = true } anyhow = { workspace = true } clap = { workspace = true, optional = true } +once_cell = { workspace = true } salsa = { workspace = true } schemars = { workspace = true, optional = true } serde = { workspace = true, optional = true } +zip = { workspace = true, features = [] } [lints] workspace = true diff --git a/crates/ruff_graph/src/db.rs b/crates/ruff_graph/src/db.rs index d0323f6c062c2..a84168763131f 100644 --- a/crates/ruff_graph/src/db.rs +++ b/crates/ruff_graph/src/db.rs @@ -1,12 +1,19 @@ use anyhow::Result; -use red_knot_python_semantic::{ - vendored_typeshed_stubs, Db, Program, ProgramSettings, PythonVersion, SearchPathSettings, -}; +use zip::CompressionMethod; + +use red_knot_python_semantic::{Db, Program, ProgramSettings, PythonVersion, SearchPathSettings}; use ruff_db::files::{File, Files}; use ruff_db::system::{OsSystem, System, SystemPathBuf}; -use ruff_db::vendored::VendoredFileSystem; +use ruff_db::vendored::{VendoredFileSystem, VendoredFileSystemBuilder}; use ruff_db::{Db as SourceDb, Upcast}; +static EMPTY_VENDORED: once_cell::sync::Lazy = + once_cell::sync::Lazy::new(|| { + let mut builder = VendoredFileSystemBuilder::new(CompressionMethod::Stored); + builder.add_file("stdlib/VERSIONS", "\n").unwrap(); + builder.finish().unwrap() + }); + #[salsa::db] #[derive(Default)] pub struct ModuleDb { @@ -70,7 +77,7 @@ impl Upcast for ModuleDb { #[salsa::db] impl SourceDb for ModuleDb { fn vendored(&self) -> &VendoredFileSystem { - vendored_typeshed_stubs() + &EMPTY_VENDORED } fn system(&self) -> &dyn System { diff --git a/crates/ruff_vendored/Cargo.toml b/crates/ruff_vendored/Cargo.toml new file mode 100644 index 0000000000000..fbd9b3b9014cb --- /dev/null +++ b/crates/ruff_vendored/Cargo.toml @@ -0,0 +1,32 @@ +[package] +name = "ruff_vendored" +version = "0.0.0" +publish = false +authors = { workspace = true } +edition = { workspace = true } +rust-version = { workspace = true } +homepage = { workspace = true } +documentation = { workspace = true } +repository = { workspace = true } +license = { workspace = true } + +[dependencies] +ruff_db = { workspace = true } +once_cell = { workspace = true } +zip = { workspace = true } + +[build-dependencies] +path-slash = { workspace = true } +walkdir = { workspace = true } +zip = { workspace = true, features = ["zstd", "deflate"] } + +[dev-dependencies] +walkdir = { workspace = true } + +[features] +zstd = ["zip/zstd"] +deflate = ["zip/deflate"] + +[lints] +workspace = true + diff --git a/crates/red_knot_python_semantic/build.rs b/crates/ruff_vendored/build.rs similarity index 96% rename from crates/red_knot_python_semantic/build.rs rename to crates/ruff_vendored/build.rs index f7481bf85be21..535585d657f30 100644 --- a/crates/red_knot_python_semantic/build.rs +++ b/crates/ruff_vendored/build.rs @@ -30,10 +30,12 @@ fn zip_dir(directory_path: &str, writer: File) -> ZipResult { // We can't use `#[cfg(...)]` here because the target-arch in a build script is the // architecture of the system running the build script and not the architecture of the build-target. // That's why we use the `TARGET` environment variable here. - let method = if std::env::var("TARGET").unwrap().contains("wasm32") { + let method = if cfg!(feature = "zstd") { + CompressionMethod::Zstd + } else if cfg!(feature = "deflate") { CompressionMethod::Deflated } else { - CompressionMethod::Zstd + CompressionMethod::Stored }; let options = FileOptions::default() diff --git a/crates/red_knot_python_semantic/src/module_resolver/typeshed/vendored.rs b/crates/ruff_vendored/src/lib.rs similarity index 96% rename from crates/red_knot_python_semantic/src/module_resolver/typeshed/vendored.rs rename to crates/ruff_vendored/src/lib.rs index e28eadbc3f9c5..de384cd570b97 100644 --- a/crates/red_knot_python_semantic/src/module_resolver/typeshed/vendored.rs +++ b/crates/ruff_vendored/src/lib.rs @@ -6,7 +6,7 @@ use ruff_db::vendored::VendoredFileSystem; // Luckily this crate will fail to build if this file isn't available at build time. static TYPESHED_ZIP_BYTES: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/zipped_typeshed.zip")); -pub fn vendored_typeshed_stubs() -> &'static VendoredFileSystem { +pub fn file_system() -> &'static VendoredFileSystem { static VENDORED_TYPESHED_STUBS: Lazy = Lazy::new(|| VendoredFileSystem::new_static(TYPESHED_ZIP_BYTES).unwrap()); &VENDORED_TYPESHED_STUBS @@ -42,7 +42,7 @@ mod tests { #[test] fn typeshed_vfs_consistent_with_vendored_stubs() { let vendored_typeshed_dir = Path::new("vendor/typeshed").canonicalize().unwrap(); - let vendored_typeshed_stubs = vendored_typeshed_stubs(); + let vendored_typeshed_stubs = file_system(); let mut empty_iterator = true; for entry in walkdir::WalkDir::new(&vendored_typeshed_dir).min_depth(1) { diff --git a/crates/red_knot_python_semantic/vendor/typeshed/LICENSE b/crates/ruff_vendored/vendor/typeshed/LICENSE similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/LICENSE rename to crates/ruff_vendored/vendor/typeshed/LICENSE diff --git a/crates/red_knot_python_semantic/vendor/typeshed/README.md b/crates/ruff_vendored/vendor/typeshed/README.md similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/README.md rename to crates/ruff_vendored/vendor/typeshed/README.md diff --git a/crates/red_knot_python_semantic/vendor/typeshed/source_commit.txt b/crates/ruff_vendored/vendor/typeshed/source_commit.txt similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/source_commit.txt rename to crates/ruff_vendored/vendor/typeshed/source_commit.txt diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/VERSIONS b/crates/ruff_vendored/vendor/typeshed/stdlib/VERSIONS similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/VERSIONS rename to crates/ruff_vendored/vendor/typeshed/stdlib/VERSIONS diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/__future__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/__future__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/__future__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/__future__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/__main__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/__main__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/__main__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/__main__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_ast.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_ast.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_ast.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_ast.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_bisect.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_bisect.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_bisect.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_bisect.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_bootlocale.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_bootlocale.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_bootlocale.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_bootlocale.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_codecs.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_codecs.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_codecs.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_codecs.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_collections_abc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_collections_abc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_collections_abc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_collections_abc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_compat_pickle.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_compat_pickle.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_compat_pickle.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_compat_pickle.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_compression.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_compression.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_compression.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_compression.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_csv.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_csv.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_csv.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_csv.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_ctypes.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_ctypes.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_ctypes.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_ctypes.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_curses.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_curses.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_curses.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_curses.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_decimal.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_decimal.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_decimal.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_decimal.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_dummy_thread.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_dummy_thread.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_dummy_thread.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_dummy_thread.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_dummy_threading.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_dummy_threading.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_dummy_threading.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_dummy_threading.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_heapq.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_heapq.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_heapq.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_heapq.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_imp.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_imp.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_imp.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_imp.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_interpchannels.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_interpchannels.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_interpchannels.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_interpchannels.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_interpqueues.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_interpqueues.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_interpqueues.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_interpqueues.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_interpreters.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_interpreters.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_interpreters.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_interpreters.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_json.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_json.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_json.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_json.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_locale.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_locale.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_locale.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_locale.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_lsprof.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_lsprof.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_lsprof.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_lsprof.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_markupbase.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_markupbase.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_markupbase.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_markupbase.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_msi.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_msi.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_msi.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_msi.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_operator.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_operator.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_operator.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_operator.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_osx_support.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_osx_support.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_osx_support.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_osx_support.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_posixsubprocess.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_posixsubprocess.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_posixsubprocess.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_posixsubprocess.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_py_abc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_py_abc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_py_abc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_py_abc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_pydecimal.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_pydecimal.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_pydecimal.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_pydecimal.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_random.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_random.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_random.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_random.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_sitebuiltins.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_sitebuiltins.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_sitebuiltins.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_sitebuiltins.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_socket.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_socket.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_socket.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_socket.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_stat.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_stat.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_stat.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_stat.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_thread.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_thread.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_thread.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_thread.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_threading_local.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_threading_local.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_threading_local.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_threading_local.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_tkinter.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_tkinter.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_tkinter.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_tkinter.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_tracemalloc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_tracemalloc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_tracemalloc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_tracemalloc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/README.md b/crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/README.md similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/README.md rename to crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/README.md diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/dbapi.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/dbapi.pyi similarity index 97% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/dbapi.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/dbapi.pyi index d54fbee57042a..874696ad51b62 100644 --- a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/dbapi.pyi +++ b/crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/dbapi.pyi @@ -1,4 +1,4 @@ -# PEP 249 Database API 2.0 Types + # PEP 249 Database API 2.0 Types # https://www.python.org/dev/peps/pep-0249/ from collections.abc import Mapping, Sequence diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/importlib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/importlib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/importlib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/importlib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/wsgi.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/wsgi.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/wsgi.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/wsgi.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/xml.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/xml.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_typeshed/xml.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_typeshed/xml.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_warnings.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_warnings.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_warnings.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_warnings.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_weakref.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_weakref.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_weakref.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_weakref.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_weakrefset.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_weakrefset.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_weakrefset.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_weakrefset.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/_winapi.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/_winapi.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/_winapi.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/_winapi.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/abc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/abc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/abc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/abc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/aifc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/aifc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/aifc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/aifc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/antigravity.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/antigravity.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/antigravity.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/antigravity.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/argparse.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/argparse.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/argparse.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/argparse.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/array.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/array.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/array.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/array.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/ast.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/ast.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/ast.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/ast.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asynchat.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asynchat.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asynchat.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asynchat.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/base_events.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/base_events.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/base_events.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/base_events.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/base_futures.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/base_futures.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/base_futures.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/base_futures.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/base_subprocess.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/base_subprocess.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/base_subprocess.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/base_subprocess.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/base_tasks.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/base_tasks.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/base_tasks.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/base_tasks.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/constants.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/constants.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/constants.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/constants.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/coroutines.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/coroutines.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/coroutines.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/coroutines.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/events.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/events.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/events.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/events.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/exceptions.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/exceptions.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/exceptions.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/exceptions.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/format_helpers.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/format_helpers.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/format_helpers.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/format_helpers.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/futures.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/futures.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/futures.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/futures.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/locks.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/locks.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/locks.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/locks.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/log.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/log.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/log.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/log.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/mixins.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/mixins.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/mixins.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/mixins.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/proactor_events.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/proactor_events.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/proactor_events.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/proactor_events.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/protocols.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/protocols.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/protocols.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/protocols.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/queues.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/queues.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/queues.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/queues.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/runners.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/runners.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/runners.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/runners.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/selector_events.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/selector_events.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/selector_events.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/selector_events.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/sslproto.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/sslproto.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/sslproto.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/sslproto.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/staggered.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/staggered.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/staggered.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/staggered.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/streams.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/streams.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/streams.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/streams.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/subprocess.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/subprocess.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/subprocess.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/subprocess.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/taskgroups.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/taskgroups.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/taskgroups.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/taskgroups.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/tasks.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/tasks.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/tasks.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/tasks.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/threads.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/threads.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/threads.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/threads.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/timeouts.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/timeouts.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/timeouts.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/timeouts.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/transports.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/transports.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/transports.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/transports.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/trsock.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/trsock.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/trsock.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/trsock.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/unix_events.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/unix_events.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/unix_events.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/unix_events.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/windows_events.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/windows_events.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/windows_events.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/windows_events.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/windows_utils.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/windows_utils.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncio/windows_utils.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncio/windows_utils.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncore.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/asyncore.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/asyncore.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/asyncore.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/atexit.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/atexit.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/atexit.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/atexit.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/audioop.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/audioop.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/audioop.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/audioop.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/base64.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/base64.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/base64.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/base64.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/bdb.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/bdb.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/bdb.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/bdb.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/binascii.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/binascii.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/binascii.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/binascii.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/binhex.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/binhex.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/binhex.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/binhex.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/bisect.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/bisect.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/bisect.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/bisect.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/builtins.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/builtins.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/builtins.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/builtins.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/bz2.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/bz2.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/bz2.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/bz2.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/cProfile.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/cProfile.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/cProfile.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/cProfile.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/calendar.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/calendar.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/calendar.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/calendar.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/cgi.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/cgi.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/cgi.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/cgi.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/cgitb.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/cgitb.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/cgitb.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/cgitb.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/chunk.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/chunk.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/chunk.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/chunk.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/cmath.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/cmath.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/cmath.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/cmath.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/cmd.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/cmd.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/cmd.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/cmd.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/code.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/code.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/code.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/code.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/codecs.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/codecs.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/codecs.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/codecs.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/codeop.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/codeop.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/codeop.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/codeop.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/collections/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/collections/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/collections/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/collections/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/collections/abc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/collections/abc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/collections/abc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/collections/abc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/colorsys.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/colorsys.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/colorsys.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/colorsys.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/compileall.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/compileall.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/compileall.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/compileall.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/concurrent/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/concurrent/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/concurrent/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/concurrent/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/concurrent/futures/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/concurrent/futures/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/concurrent/futures/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/concurrent/futures/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/concurrent/futures/_base.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/concurrent/futures/_base.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/concurrent/futures/_base.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/concurrent/futures/_base.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/concurrent/futures/process.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/concurrent/futures/process.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/concurrent/futures/process.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/concurrent/futures/process.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/concurrent/futures/thread.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/concurrent/futures/thread.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/concurrent/futures/thread.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/concurrent/futures/thread.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/configparser.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/configparser.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/configparser.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/configparser.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/contextlib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/contextlib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/contextlib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/contextlib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/contextvars.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/contextvars.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/contextvars.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/contextvars.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/copy.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/copy.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/copy.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/copy.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/copyreg.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/copyreg.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/copyreg.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/copyreg.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/crypt.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/crypt.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/crypt.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/crypt.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/csv.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/csv.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/csv.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/csv.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/ctypes/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/ctypes/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/ctypes/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/ctypes/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/ctypes/_endian.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/ctypes/_endian.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/ctypes/_endian.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/ctypes/_endian.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/ctypes/util.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/ctypes/util.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/ctypes/util.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/ctypes/util.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/ctypes/wintypes.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/ctypes/wintypes.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/ctypes/wintypes.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/ctypes/wintypes.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/curses/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/curses/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/curses/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/curses/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/curses/ascii.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/curses/ascii.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/curses/ascii.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/curses/ascii.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/curses/has_key.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/curses/has_key.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/curses/has_key.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/curses/has_key.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/curses/panel.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/curses/panel.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/curses/panel.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/curses/panel.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/curses/textpad.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/curses/textpad.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/curses/textpad.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/curses/textpad.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/dataclasses.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/dataclasses.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/dataclasses.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/dataclasses.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/datetime.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/datetime.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/datetime.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/datetime.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/dbm/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/dbm/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/dbm/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/dbm/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/dbm/dumb.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/dbm/dumb.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/dbm/dumb.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/dbm/dumb.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/dbm/gnu.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/dbm/gnu.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/dbm/gnu.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/dbm/gnu.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/dbm/ndbm.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/dbm/ndbm.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/dbm/ndbm.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/dbm/ndbm.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/dbm/sqlite3.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/dbm/sqlite3.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/dbm/sqlite3.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/dbm/sqlite3.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/decimal.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/decimal.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/decimal.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/decimal.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/difflib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/difflib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/difflib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/difflib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/dis.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/dis.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/dis.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/dis.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/archive_util.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/archive_util.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/archive_util.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/archive_util.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/bcppcompiler.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/bcppcompiler.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/bcppcompiler.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/bcppcompiler.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/ccompiler.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/ccompiler.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/ccompiler.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/ccompiler.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/cmd.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/cmd.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/cmd.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/cmd.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist_dumb.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist_dumb.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist_dumb.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist_dumb.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist_msi.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist_msi.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist_msi.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist_msi.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist_packager.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist_packager.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist_packager.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist_packager.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist_rpm.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist_rpm.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist_rpm.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist_rpm.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist_wininst.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist_wininst.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/bdist_wininst.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/bdist_wininst.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/build.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/build.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/build.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/build.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/build_clib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/build_clib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/build_clib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/build_clib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/build_ext.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/build_ext.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/build_ext.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/build_ext.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/build_py.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/build_py.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/build_py.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/build_py.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/build_scripts.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/build_scripts.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/build_scripts.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/build_scripts.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/check.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/check.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/check.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/check.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/clean.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/clean.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/clean.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/clean.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/config.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/config.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/config.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/config.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install_data.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install_data.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install_data.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install_data.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install_egg_info.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install_egg_info.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install_egg_info.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install_egg_info.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install_headers.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install_headers.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install_headers.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install_headers.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install_lib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install_lib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install_lib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install_lib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install_scripts.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install_scripts.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/install_scripts.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/install_scripts.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/register.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/register.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/register.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/register.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/sdist.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/sdist.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/sdist.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/sdist.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/upload.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/upload.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/command/upload.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/command/upload.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/config.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/config.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/config.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/config.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/core.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/core.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/core.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/core.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/cygwinccompiler.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/cygwinccompiler.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/cygwinccompiler.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/cygwinccompiler.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/debug.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/debug.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/debug.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/debug.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/dep_util.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/dep_util.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/dep_util.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/dep_util.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/dir_util.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/dir_util.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/dir_util.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/dir_util.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/dist.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/dist.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/dist.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/dist.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/errors.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/errors.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/errors.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/errors.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/extension.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/extension.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/extension.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/extension.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/fancy_getopt.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/fancy_getopt.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/fancy_getopt.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/fancy_getopt.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/file_util.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/file_util.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/file_util.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/file_util.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/filelist.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/filelist.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/filelist.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/filelist.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/log.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/log.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/log.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/log.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/msvccompiler.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/msvccompiler.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/msvccompiler.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/msvccompiler.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/spawn.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/spawn.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/spawn.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/spawn.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/sysconfig.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/sysconfig.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/sysconfig.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/sysconfig.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/text_file.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/text_file.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/text_file.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/text_file.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/unixccompiler.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/unixccompiler.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/unixccompiler.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/unixccompiler.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/util.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/util.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/util.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/util.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/version.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/distutils/version.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/distutils/version.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/distutils/version.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/doctest.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/doctest.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/doctest.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/doctest.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/dummy_threading.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/dummy_threading.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/dummy_threading.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/dummy_threading.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/_header_value_parser.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/_header_value_parser.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/_header_value_parser.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/_header_value_parser.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/_policybase.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/_policybase.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/_policybase.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/_policybase.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/base64mime.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/base64mime.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/base64mime.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/base64mime.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/charset.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/charset.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/charset.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/charset.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/contentmanager.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/contentmanager.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/contentmanager.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/contentmanager.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/encoders.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/encoders.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/encoders.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/encoders.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/errors.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/errors.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/errors.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/errors.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/feedparser.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/feedparser.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/feedparser.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/feedparser.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/generator.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/generator.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/generator.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/generator.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/header.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/header.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/header.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/header.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/headerregistry.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/headerregistry.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/headerregistry.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/headerregistry.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/iterators.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/iterators.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/iterators.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/iterators.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/message.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/message.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/message.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/message.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/application.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/application.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/application.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/application.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/audio.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/audio.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/audio.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/audio.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/base.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/base.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/base.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/base.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/image.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/image.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/image.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/image.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/message.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/message.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/message.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/message.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/multipart.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/multipart.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/multipart.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/multipart.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/nonmultipart.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/nonmultipart.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/nonmultipart.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/nonmultipart.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/text.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/text.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/mime/text.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/mime/text.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/parser.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/parser.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/parser.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/parser.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/policy.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/policy.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/policy.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/policy.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/quoprimime.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/quoprimime.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/quoprimime.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/quoprimime.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/utils.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/email/utils.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/email/utils.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/email/utils.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/encodings/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/encodings/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/encodings/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/encodings/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/encodings/utf_8.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/encodings/utf_8.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/encodings/utf_8.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/encodings/utf_8.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/encodings/utf_8_sig.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/encodings/utf_8_sig.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/encodings/utf_8_sig.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/encodings/utf_8_sig.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/ensurepip/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/ensurepip/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/ensurepip/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/ensurepip/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/enum.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/enum.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/enum.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/enum.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/errno.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/errno.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/errno.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/errno.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/faulthandler.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/faulthandler.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/faulthandler.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/faulthandler.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/fcntl.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/fcntl.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/fcntl.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/fcntl.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/filecmp.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/filecmp.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/filecmp.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/filecmp.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/fileinput.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/fileinput.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/fileinput.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/fileinput.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/fnmatch.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/fnmatch.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/fnmatch.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/fnmatch.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/formatter.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/formatter.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/formatter.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/formatter.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/fractions.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/fractions.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/fractions.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/fractions.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/ftplib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/ftplib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/ftplib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/ftplib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/functools.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/functools.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/functools.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/functools.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/gc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/gc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/gc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/gc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/genericpath.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/genericpath.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/genericpath.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/genericpath.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/getopt.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/getopt.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/getopt.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/getopt.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/getpass.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/getpass.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/getpass.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/getpass.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/gettext.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/gettext.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/gettext.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/gettext.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/glob.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/glob.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/glob.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/glob.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/graphlib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/graphlib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/graphlib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/graphlib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/grp.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/grp.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/grp.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/grp.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/gzip.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/gzip.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/gzip.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/gzip.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/hashlib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/hashlib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/hashlib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/hashlib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/heapq.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/heapq.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/heapq.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/heapq.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/hmac.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/hmac.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/hmac.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/hmac.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/html/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/html/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/html/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/html/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/html/entities.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/html/entities.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/html/entities.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/html/entities.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/html/parser.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/html/parser.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/html/parser.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/html/parser.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/http/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/http/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/http/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/http/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/http/client.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/http/client.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/http/client.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/http/client.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/http/cookiejar.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/http/cookiejar.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/http/cookiejar.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/http/cookiejar.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/http/cookies.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/http/cookies.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/http/cookies.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/http/cookies.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/http/server.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/http/server.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/http/server.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/http/server.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/imaplib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/imaplib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/imaplib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/imaplib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/imghdr.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/imghdr.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/imghdr.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/imghdr.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/imp.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/imp.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/imp.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/imp.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/_abc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/_abc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/_abc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/_abc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/abc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/abc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/abc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/abc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/machinery.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/machinery.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/machinery.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/machinery.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/metadata/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/metadata/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/metadata/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/metadata/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/metadata/_meta.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/metadata/_meta.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/metadata/_meta.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/metadata/_meta.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/metadata/diagnose.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/metadata/diagnose.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/metadata/diagnose.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/metadata/diagnose.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/readers.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/readers.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/readers.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/readers.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/resources/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/resources/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/resources/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/resources/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/resources/abc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/resources/abc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/resources/abc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/resources/abc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/resources/readers.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/resources/readers.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/resources/readers.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/resources/readers.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/resources/simple.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/resources/simple.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/resources/simple.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/resources/simple.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/simple.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/simple.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/simple.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/simple.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/util.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/importlib/util.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/importlib/util.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/importlib/util.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/inspect.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/inspect.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/inspect.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/inspect.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/io.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/io.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/io.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/io.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/ipaddress.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/ipaddress.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/ipaddress.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/ipaddress.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/itertools.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/itertools.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/itertools.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/itertools.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/json/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/json/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/json/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/json/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/json/decoder.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/json/decoder.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/json/decoder.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/json/decoder.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/json/encoder.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/json/encoder.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/json/encoder.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/json/encoder.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/json/tool.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/json/tool.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/json/tool.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/json/tool.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/keyword.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/keyword.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/keyword.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/keyword.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/btm_matcher.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/btm_matcher.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/btm_matcher.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/btm_matcher.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixer_base.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixer_base.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixer_base.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixer_base.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_apply.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_asserts.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_basestring.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_buffer.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_dict.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_except.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_except.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_except.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_except.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_exec.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_execfile.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_exitfunc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_filter.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_funcattrs.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_future.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_future.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_future.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_future.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_getcwdu.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_has_key.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_idioms.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_import.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_import.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_import.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_import.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_imports.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_imports2.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_input.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_input.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_input.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_input.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_intern.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_isinstance.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_itertools.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_itertools_imports.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_long.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_long.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_long.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_long.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_map.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_map.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_map.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_map.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_metaclass.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_methodattrs.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_ne.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_next.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_next.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_next.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_next.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_nonzero.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_numliterals.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_operator.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_paren.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_print.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_print.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_print.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_print.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_raise.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_raw_input.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_reduce.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_reload.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_renames.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_repr.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_set_literal.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_standarderror.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_sys_exc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_throw.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_tuple_params.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_types.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_types.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_types.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_types.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_unicode.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_urllib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_ws_comma.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_xrange.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_xreadlines.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/fixes/fix_zip.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/main.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/main.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/main.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/main.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/driver.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/driver.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/driver.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/driver.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/grammar.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/grammar.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/grammar.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/grammar.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/literals.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/literals.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/literals.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/literals.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/parse.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/parse.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/parse.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/parse.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/pgen.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/pgen.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/pgen.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/pgen.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/token.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/token.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/token.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/token.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pgen2/tokenize.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pygram.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pygram.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pygram.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pygram.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pytree.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pytree.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/pytree.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/pytree.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/refactor.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/refactor.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lib2to3/refactor.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lib2to3/refactor.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/linecache.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/linecache.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/linecache.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/linecache.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/locale.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/locale.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/locale.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/locale.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/logging/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/logging/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/logging/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/logging/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/logging/config.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/logging/config.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/logging/config.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/logging/config.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/logging/handlers.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/logging/handlers.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/logging/handlers.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/logging/handlers.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/lzma.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/lzma.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/lzma.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/lzma.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/mailbox.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/mailbox.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/mailbox.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/mailbox.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/mailcap.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/mailcap.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/mailcap.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/mailcap.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/marshal.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/marshal.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/marshal.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/marshal.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/math.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/math.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/math.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/math.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/mimetypes.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/mimetypes.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/mimetypes.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/mimetypes.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/mmap.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/mmap.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/mmap.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/mmap.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/modulefinder.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/modulefinder.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/modulefinder.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/modulefinder.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/msilib/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/msilib/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/msilib/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/msilib/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/msilib/schema.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/msilib/schema.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/msilib/schema.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/msilib/schema.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/msilib/sequence.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/msilib/sequence.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/msilib/sequence.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/msilib/sequence.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/msilib/text.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/msilib/text.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/msilib/text.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/msilib/text.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/msvcrt.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/msvcrt.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/msvcrt.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/msvcrt.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/connection.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/connection.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/connection.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/connection.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/context.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/context.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/context.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/context.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/dummy/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/dummy/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/dummy/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/dummy/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/dummy/connection.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/dummy/connection.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/dummy/connection.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/dummy/connection.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/forkserver.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/forkserver.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/forkserver.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/forkserver.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/heap.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/heap.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/heap.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/heap.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/managers.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/managers.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/managers.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/managers.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/pool.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/pool.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/pool.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/pool.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/popen_fork.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/popen_fork.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/popen_fork.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/popen_fork.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/popen_forkserver.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/popen_forkserver.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/popen_forkserver.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/popen_forkserver.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/popen_spawn_posix.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/popen_spawn_win32.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/process.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/process.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/process.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/process.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/queues.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/queues.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/queues.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/queues.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/reduction.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/reduction.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/reduction.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/reduction.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/resource_sharer.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/resource_sharer.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/resource_sharer.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/resource_sharer.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/resource_tracker.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/resource_tracker.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/resource_tracker.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/resource_tracker.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/shared_memory.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/shared_memory.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/shared_memory.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/shared_memory.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/sharedctypes.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/sharedctypes.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/sharedctypes.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/sharedctypes.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/spawn.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/spawn.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/spawn.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/spawn.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/synchronize.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/synchronize.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/synchronize.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/synchronize.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/util.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/util.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/multiprocessing/util.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/multiprocessing/util.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/netrc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/netrc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/netrc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/netrc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/nis.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/nis.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/nis.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/nis.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/nntplib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/nntplib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/nntplib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/nntplib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/nt.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/nt.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/nt.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/nt.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/ntpath.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/ntpath.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/ntpath.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/ntpath.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/nturl2path.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/nturl2path.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/nturl2path.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/nturl2path.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/numbers.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/numbers.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/numbers.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/numbers.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/opcode.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/opcode.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/opcode.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/opcode.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/operator.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/operator.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/operator.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/operator.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/optparse.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/optparse.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/optparse.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/optparse.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/os/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/os/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/os/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/os/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/os/path.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/os/path.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/os/path.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/os/path.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/ossaudiodev.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/ossaudiodev.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/ossaudiodev.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/ossaudiodev.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/parser.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/parser.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/parser.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/parser.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pathlib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pathlib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pathlib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pathlib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pdb.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pdb.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pdb.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pdb.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pickle.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pickle.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pickle.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pickle.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pickletools.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pickletools.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pickletools.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pickletools.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pipes.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pipes.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pipes.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pipes.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pkgutil.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pkgutil.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pkgutil.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pkgutil.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/platform.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/platform.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/platform.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/platform.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/plistlib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/plistlib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/plistlib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/plistlib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/poplib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/poplib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/poplib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/poplib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/posix.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/posix.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/posix.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/posix.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/posixpath.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/posixpath.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/posixpath.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/posixpath.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pprint.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pprint.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pprint.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pprint.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/profile.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/profile.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/profile.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/profile.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pstats.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pstats.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pstats.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pstats.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pty.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pty.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pty.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pty.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pwd.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pwd.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pwd.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pwd.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/py_compile.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/py_compile.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/py_compile.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/py_compile.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pyclbr.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pyclbr.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pyclbr.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pyclbr.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pydoc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pydoc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pydoc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pydoc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pydoc_data/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pydoc_data/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pydoc_data/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pydoc_data/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pydoc_data/topics.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pydoc_data/topics.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pydoc_data/topics.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pydoc_data/topics.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pyexpat/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pyexpat/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pyexpat/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pyexpat/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pyexpat/errors.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pyexpat/errors.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pyexpat/errors.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pyexpat/errors.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/pyexpat/model.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/pyexpat/model.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/pyexpat/model.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/pyexpat/model.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/queue.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/queue.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/queue.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/queue.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/quopri.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/quopri.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/quopri.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/quopri.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/random.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/random.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/random.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/random.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/re.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/re.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/re.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/re.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/readline.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/readline.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/readline.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/readline.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/reprlib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/reprlib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/reprlib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/reprlib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/resource.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/resource.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/resource.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/resource.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/rlcompleter.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/rlcompleter.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/rlcompleter.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/rlcompleter.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/runpy.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/runpy.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/runpy.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/runpy.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/sched.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/sched.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/sched.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/sched.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/secrets.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/secrets.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/secrets.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/secrets.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/select.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/select.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/select.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/select.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/selectors.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/selectors.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/selectors.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/selectors.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/shelve.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/shelve.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/shelve.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/shelve.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/shlex.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/shlex.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/shlex.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/shlex.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/shutil.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/shutil.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/shutil.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/shutil.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/signal.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/signal.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/signal.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/signal.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/site.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/site.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/site.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/site.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/smtpd.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/smtpd.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/smtpd.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/smtpd.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/smtplib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/smtplib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/smtplib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/smtplib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/sndhdr.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/sndhdr.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/sndhdr.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/sndhdr.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/socket.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/socket.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/socket.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/socket.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/socketserver.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/socketserver.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/socketserver.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/socketserver.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/spwd.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/spwd.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/spwd.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/spwd.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/sqlite3/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/sqlite3/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/sqlite3/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/sqlite3/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/sqlite3/dbapi2.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/sqlite3/dbapi2.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/sqlite3/dbapi2.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/sqlite3/dbapi2.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/sre_compile.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/sre_compile.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/sre_compile.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/sre_compile.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/sre_constants.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/sre_constants.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/sre_constants.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/sre_constants.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/sre_parse.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/sre_parse.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/sre_parse.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/sre_parse.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/ssl.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/ssl.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/ssl.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/ssl.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/stat.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/stat.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/stat.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/stat.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/statistics.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/statistics.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/statistics.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/statistics.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/string.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/string.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/string.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/string.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/stringprep.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/stringprep.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/stringprep.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/stringprep.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/struct.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/struct.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/struct.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/struct.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/subprocess.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/subprocess.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/subprocess.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/subprocess.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/sunau.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/sunau.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/sunau.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/sunau.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/symbol.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/symbol.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/symbol.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/symbol.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/symtable.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/symtable.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/symtable.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/symtable.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/sys/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/sys/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/sys/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/sys/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/sys/_monitoring.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/sys/_monitoring.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/sys/_monitoring.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/sys/_monitoring.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/sysconfig.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/sysconfig.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/sysconfig.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/sysconfig.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/syslog.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/syslog.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/syslog.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/syslog.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tabnanny.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tabnanny.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tabnanny.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tabnanny.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tarfile.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tarfile.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tarfile.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tarfile.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/telnetlib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/telnetlib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/telnetlib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/telnetlib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tempfile.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tempfile.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tempfile.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tempfile.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/termios.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/termios.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/termios.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/termios.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/textwrap.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/textwrap.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/textwrap.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/textwrap.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/this.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/this.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/this.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/this.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/threading.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/threading.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/threading.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/threading.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/time.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/time.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/time.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/time.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/timeit.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/timeit.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/timeit.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/timeit.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/colorchooser.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/colorchooser.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/colorchooser.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/colorchooser.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/commondialog.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/commondialog.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/commondialog.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/commondialog.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/constants.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/constants.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/constants.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/constants.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/dialog.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/dialog.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/dialog.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/dialog.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/dnd.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/dnd.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/dnd.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/dnd.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/filedialog.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/filedialog.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/filedialog.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/filedialog.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/font.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/font.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/font.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/font.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/messagebox.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/messagebox.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/messagebox.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/messagebox.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/scrolledtext.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/scrolledtext.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/scrolledtext.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/scrolledtext.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/simpledialog.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/simpledialog.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/simpledialog.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/simpledialog.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/tix.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/tix.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/tix.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/tix.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/ttk.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/ttk.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tkinter/ttk.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tkinter/ttk.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/token.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/token.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/token.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/token.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tokenize.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tokenize.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tokenize.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tokenize.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tomllib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tomllib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tomllib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tomllib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/trace.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/trace.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/trace.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/trace.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/traceback.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/traceback.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/traceback.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/traceback.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tracemalloc.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tracemalloc.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tracemalloc.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tracemalloc.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/tty.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/tty.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/tty.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/tty.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/turtle.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/turtle.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/turtle.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/turtle.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/types.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/types.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/types.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/types.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/typing.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/typing.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/typing.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/typing.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/typing_extensions.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/typing_extensions.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/typing_extensions.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/typing_extensions.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unicodedata.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unicodedata.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unicodedata.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unicodedata.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/_log.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/_log.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/_log.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/_log.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/async_case.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/async_case.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/async_case.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/async_case.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/case.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/case.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/case.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/case.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/loader.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/loader.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/loader.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/loader.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/main.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/main.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/main.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/main.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/mock.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/mock.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/mock.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/mock.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/result.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/result.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/result.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/result.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/runner.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/runner.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/runner.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/runner.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/signals.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/signals.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/signals.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/signals.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/suite.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/suite.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/suite.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/suite.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/util.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/unittest/util.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/unittest/util.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/unittest/util.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/urllib/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/urllib/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/error.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/urllib/error.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/error.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/urllib/error.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/parse.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/urllib/parse.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/parse.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/urllib/parse.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/request.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/urllib/request.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/request.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/urllib/request.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/response.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/urllib/response.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/response.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/urllib/response.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/robotparser.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/urllib/robotparser.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/urllib/robotparser.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/urllib/robotparser.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/uu.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/uu.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/uu.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/uu.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/uuid.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/uuid.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/uuid.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/uuid.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/warnings.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/warnings.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/warnings.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/warnings.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/wave.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/wave.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/wave.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/wave.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/weakref.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/weakref.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/weakref.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/weakref.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/webbrowser.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/webbrowser.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/webbrowser.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/webbrowser.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/winreg.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/winreg.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/winreg.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/winreg.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/winsound.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/winsound.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/winsound.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/winsound.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/handlers.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/handlers.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/handlers.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/handlers.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/headers.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/headers.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/headers.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/headers.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/simple_server.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/simple_server.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/simple_server.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/simple_server.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/types.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/types.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/types.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/types.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/util.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/util.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/util.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/util.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/validate.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/validate.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/wsgiref/validate.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/wsgiref/validate.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xdrlib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xdrlib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xdrlib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xdrlib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/NodeFilter.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/NodeFilter.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/NodeFilter.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/NodeFilter.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/domreg.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/domreg.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/domreg.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/domreg.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/expatbuilder.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/expatbuilder.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/expatbuilder.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/expatbuilder.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/minicompat.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/minicompat.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/minicompat.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/minicompat.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/minidom.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/minidom.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/minidom.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/minidom.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/pulldom.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/pulldom.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/pulldom.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/pulldom.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/xmlbuilder.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/xmlbuilder.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/dom/xmlbuilder.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/dom/xmlbuilder.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/etree/ElementInclude.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/etree/ElementInclude.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/etree/ElementInclude.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/etree/ElementInclude.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/etree/ElementPath.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/etree/ElementPath.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/etree/ElementPath.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/etree/ElementPath.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/etree/ElementTree.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/etree/ElementTree.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/etree/ElementTree.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/etree/ElementTree.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/etree/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/etree/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/etree/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/etree/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/etree/cElementTree.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/etree/cElementTree.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/etree/cElementTree.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/etree/cElementTree.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/parsers/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/parsers/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/parsers/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/parsers/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/parsers/expat/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/parsers/expat/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/parsers/expat/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/parsers/expat/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/parsers/expat/errors.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/parsers/expat/errors.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/parsers/expat/errors.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/parsers/expat/errors.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/parsers/expat/model.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/parsers/expat/model.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/parsers/expat/model.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/parsers/expat/model.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/sax/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/sax/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/sax/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/sax/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/sax/_exceptions.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/sax/_exceptions.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/sax/_exceptions.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/sax/_exceptions.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/sax/handler.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/sax/handler.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/sax/handler.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/sax/handler.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/sax/saxutils.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/sax/saxutils.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/sax/saxutils.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/sax/saxutils.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/sax/xmlreader.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xml/sax/xmlreader.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xml/sax/xmlreader.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xml/sax/xmlreader.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xmlrpc/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xmlrpc/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xmlrpc/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xmlrpc/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xmlrpc/client.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xmlrpc/client.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xmlrpc/client.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xmlrpc/client.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xmlrpc/server.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xmlrpc/server.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xmlrpc/server.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xmlrpc/server.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/xxlimited.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/xxlimited.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/xxlimited.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/xxlimited.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/zipapp.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/zipapp.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/zipapp.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/zipapp.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/zipfile/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/zipfile/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/zipfile/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/zipfile/__init__.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/zipfile/_path.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/zipfile/_path.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/zipfile/_path.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/zipfile/_path.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/zipimport.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/zipimport.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/zipimport.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/zipimport.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/zlib.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/zlib.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/zlib.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/zlib.pyi diff --git a/crates/red_knot_python_semantic/vendor/typeshed/stdlib/zoneinfo/__init__.pyi b/crates/ruff_vendored/vendor/typeshed/stdlib/zoneinfo/__init__.pyi similarity index 100% rename from crates/red_knot_python_semantic/vendor/typeshed/stdlib/zoneinfo/__init__.pyi rename to crates/ruff_vendored/vendor/typeshed/stdlib/zoneinfo/__init__.pyi