mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 21:35:00 +00:00
Rename puffin-requirements
to puffin-package
(#16)
Closes https://github.com/astral-sh/puffin/issues/7.
This commit is contained in:
parent
94895de46d
commit
8b151a64d5
15 changed files with 21 additions and 19 deletions
|
@ -7,7 +7,7 @@ edition = "2021"
|
||||||
puffin-client = { path = "../puffin-client" }
|
puffin-client = { path = "../puffin-client" }
|
||||||
puffin-interpreter = { path = "../puffin-interpreter" }
|
puffin-interpreter = { path = "../puffin-interpreter" }
|
||||||
puffin-platform = { path = "../puffin-platform" }
|
puffin-platform = { path = "../puffin-platform" }
|
||||||
puffin-requirements = { path = "../puffin-requirements" }
|
puffin-package = { path = "../puffin-package" }
|
||||||
|
|
||||||
anyhow = { version = "1.0.75" }
|
anyhow = { version = "1.0.75" }
|
||||||
clap = { version = "4.4.6", features = ["derive"] }
|
clap = { version = "4.4.6", features = ["derive"] }
|
||||||
|
|
|
@ -11,10 +11,10 @@ use tracing::debug;
|
||||||
|
|
||||||
use puffin_client::{File, PypiClientBuilder, SimpleJson};
|
use puffin_client::{File, PypiClientBuilder, SimpleJson};
|
||||||
use puffin_interpreter::PythonExecutable;
|
use puffin_interpreter::PythonExecutable;
|
||||||
|
use puffin_package::metadata::Metadata21;
|
||||||
|
use puffin_package::package_name::PackageName;
|
||||||
|
use puffin_package::wheel::WheelFilename;
|
||||||
use puffin_platform::Platform;
|
use puffin_platform::Platform;
|
||||||
use puffin_requirements::metadata::Metadata21;
|
|
||||||
use puffin_requirements::package_name::PackageName;
|
|
||||||
use puffin_requirements::wheel::WheelFilename;
|
|
||||||
|
|
||||||
use crate::commands::ExitStatus;
|
use crate::commands::ExitStatus;
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ pub(crate) async fn install(src: &Path, cache: Option<&Path>) -> Result<ExitStat
|
||||||
let requirements_txt = std::fs::read_to_string(src)?;
|
let requirements_txt = std::fs::read_to_string(src)?;
|
||||||
|
|
||||||
// Parse the `requirements.txt` into a list of requirements.
|
// Parse the `requirements.txt` into a list of requirements.
|
||||||
let requirements = puffin_requirements::Requirements::from_str(&requirements_txt)?;
|
let requirements = puffin_package::requirements::Requirements::from_str(&requirements_txt)?;
|
||||||
|
|
||||||
// Detect the current Python interpreter.
|
// Detect the current Python interpreter.
|
||||||
let platform = Platform::current()?;
|
let platform = Platform::current()?;
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
puffin-requirements = { path = "../puffin-requirements" }
|
puffin-package = { path = "../puffin-package" }
|
||||||
|
|
||||||
http-cache-reqwest = { version = "0.11.3" }
|
http-cache-reqwest = { version = "0.11.3" }
|
||||||
reqwest = { version = "0.11.22", features = ["json", "gzip", "brotli"] }
|
reqwest = { version = "0.11.22", features = ["json", "gzip", "brotli"] }
|
||||||
|
|
|
@ -5,8 +5,8 @@ use serde::{Deserialize, Serialize};
|
||||||
use tracing::trace;
|
use tracing::trace;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use puffin_requirements::metadata::Metadata21;
|
use puffin_package::metadata::Metadata21;
|
||||||
use puffin_requirements::package_name::PackageName;
|
use puffin_package::package_name::PackageName;
|
||||||
|
|
||||||
use crate::client::PypiClient;
|
use crate::client::PypiClient;
|
||||||
use crate::error::PypiClientError;
|
use crate::error::PypiClientError;
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
use puffin_requirements::metadata;
|
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
|
use puffin_package::metadata;
|
||||||
|
|
||||||
#[derive(Debug, Error)]
|
#[derive(Debug, Error)]
|
||||||
pub enum PypiClientError {
|
pub enum PypiClientError {
|
||||||
/// An invalid URL was provided.
|
/// An invalid URL was provided.
|
||||||
|
|
|
@ -2,6 +2,7 @@ use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use pep508_rs::MarkerEnvironment;
|
use pep508_rs::MarkerEnvironment;
|
||||||
|
|
||||||
use puffin_platform::Platform;
|
use puffin_platform::Platform;
|
||||||
|
|
||||||
use crate::python_platform::PythonPlatform;
|
use crate::python_platform::PythonPlatform;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[package]
|
[package]
|
||||||
name = "puffin-requirements"
|
name = "puffin-package"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
|
@ -2,7 +2,7 @@ use std::str::FromStr;
|
||||||
|
|
||||||
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||||
|
|
||||||
use puffin_requirements::Requirements;
|
use puffin_package::Requirements;
|
||||||
|
|
||||||
const REQUIREMENTS_TXT: &str = r"
|
const REQUIREMENTS_TXT: &str = r"
|
||||||
#
|
#
|
4
crates/puffin-package/src/lib.rs
Normal file
4
crates/puffin-package/src/lib.rs
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
pub mod metadata;
|
||||||
|
pub mod package_name;
|
||||||
|
pub mod requirements;
|
||||||
|
pub mod wheel;
|
|
@ -6,10 +6,6 @@ use anyhow::Result;
|
||||||
use memchr::{memchr2, memchr_iter};
|
use memchr::{memchr2, memchr_iter};
|
||||||
use pep508_rs::{Pep508Error, Requirement};
|
use pep508_rs::{Pep508Error, Requirement};
|
||||||
|
|
||||||
pub mod metadata;
|
|
||||||
pub mod package_name;
|
|
||||||
pub mod wheel;
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct Requirements(Vec<Requirement>);
|
pub struct Requirements(Vec<Requirement>);
|
||||||
|
|
||||||
|
@ -198,7 +194,7 @@ mod tests {
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use insta::assert_debug_snapshot;
|
use insta::assert_debug_snapshot;
|
||||||
|
|
||||||
use crate::Requirements;
|
use crate::requirements::Requirements;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn simple() -> Result<()> {
|
fn simple() -> Result<()> {
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
source: crates/puffin-requirements/src/lib.rs
|
source: crates/puffin-package/src/requirements.rs
|
||||||
expression: "Requirements::from_str(r#\"\n#\n# This file is autogenerated by pip-compile with Python 3.7\n# by the following command:\n#\n# pip-compile --generate-hashes --output-file=requirements.txt --resolver=backtracking pyproject.toml\n#\nattrs==23.1.0 \\\n --hash=sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04 \\\n --hash=sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015\n # via\n # cattrs\n # lsprotocol\ncattrs==23.1.2 \\\n --hash=sha256:b2bb14311ac17bed0d58785e5a60f022e5431aca3932e3fc5cc8ed8639de50a4 \\\n --hash=sha256:db1c821b8c537382b2c7c66678c3790091ca0275ac486c76f3c8f3920e83c657\n # via lsprotocol\nexceptiongroup==1.1.3 \\\n --hash=sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9 \\\n --hash=sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3\n # via cattrs\nimportlib-metadata==6.7.0 \\\n --hash=sha256:1aaf550d4f73e5d6783e7acb77aec43d49da8017410afae93822cc9cca98c4d4 \\\n --hash=sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5\n # via\n # attrs\n # typeguard\nlsprotocol==2023.0.0b1 \\\n --hash=sha256:ade2cd0fa0ede7965698cb59cd05d3adbd19178fd73e83f72ef57a032fbb9d62 \\\n --hash=sha256:f7a2d4655cbd5639f373ddd1789807450c543341fa0a32b064ad30dbb9f510d4\n # via\n # pygls\n # ruff-lsp (pyproject.toml)\npackaging==23.2 \\\n --hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \\\n --hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7\n # via ruff-lsp (pyproject.toml)\npygls==1.1.0 \\\n --hash=sha256:70acb6fe0df1c8a17b7ce08daa0afdb4aedc6913a6a6696003e1434fda80a06e \\\n --hash=sha256:eb19b818039d3d705ec8adbcdf5809a93af925f30cd7a3f3b7573479079ba00e\n # via ruff-lsp (pyproject.toml)\nruff==0.0.292 \\\n --hash=sha256:02f29db018c9d474270c704e6c6b13b18ed0ecac82761e4fcf0faa3728430c96 \\\n --hash=sha256:1093449e37dd1e9b813798f6ad70932b57cf614e5c2b5c51005bf67d55db33ac \\\n --hash=sha256:69654e564342f507edfa09ee6897883ca76e331d4bbc3676d8a8403838e9fade \\\n --hash=sha256:6bdfabd4334684a4418b99b3118793f2c13bb67bf1540a769d7816410402a205 \\\n --hash=sha256:6c3c91859a9b845c33778f11902e7b26440d64b9d5110edd4e4fa1726c41e0a4 \\\n --hash=sha256:7f67a69c8f12fbc8daf6ae6d36705037bde315abf8b82b6e1f4c9e74eb750f68 \\\n --hash=sha256:87616771e72820800b8faea82edd858324b29bb99a920d6aa3d3949dd3f88fb0 \\\n --hash=sha256:8e087b24d0d849c5c81516ec740bf4fd48bf363cfb104545464e0fca749b6af9 \\\n --hash=sha256:9889bac18a0c07018aac75ef6c1e6511d8411724d67cb879103b01758e110a81 \\\n --hash=sha256:aa7c77c53bfcd75dbcd4d1f42d6cabf2485d2e1ee0678da850f08e1ab13081a8 \\\n --hash=sha256:ac153eee6dd4444501c4bb92bff866491d4bfb01ce26dd2fff7ca472c8df9ad0 \\\n --hash=sha256:b76deb3bdbea2ef97db286cf953488745dd6424c122d275f05836c53f62d4016 \\\n --hash=sha256:be8eb50eaf8648070b8e58ece8e69c9322d34afe367eec4210fdee9a555e4ca7 \\\n --hash=sha256:e854b05408f7a8033a027e4b1c7f9889563dd2aca545d13d06711e5c39c3d003 \\\n --hash=sha256:f160b5ec26be32362d0774964e218f3fcf0a7da299f7e220ef45ae9e3e67101a \\\n --hash=sha256:f27282bedfd04d4c3492e5c3398360c9d86a295be00eccc63914438b4ac8a83c \\\n --hash=sha256:f4476f1243af2d8c29da5f235c13dca52177117935e1f9393f9d90f9833f69e4\n # via ruff-lsp (pyproject.toml)\ntypeguard==3.0.2 \\\n --hash=sha256:bbe993854385284ab42fd5bd3bee6f6556577ce8b50696d6cb956d704f286c8e \\\n --hash=sha256:fee5297fdb28f8e9efcb8142b5ee219e02375509cd77ea9d270b5af826358d5a\n # via pygls\ntyping-extensions==4.7.1 \\\n --hash=sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36 \\\n --hash=sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2\n # via\n # cattrs\n # importlib-metadata\n # ruff-lsp (pyproject.toml)\n # typeguard\nzipp==3.15.0 \\\n --hash=sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b \\\n --hash=sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556\n # via importlib-metadata\n\"#)?"
|
expression: "Requirements::from_str(r\"\n#\n# This file is autogenerated by pip-compile with Python 3.7\n# by the following command:\n#\n# pip-compile --generate-hashes --output-file=requirements.txt --resolver=backtracking pyproject.toml\n#\nattrs==23.1.0 \\\n --hash=sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04 \\\n --hash=sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015\n # via\n # cattrs\n # lsprotocol\ncattrs==23.1.2 \\\n --hash=sha256:b2bb14311ac17bed0d58785e5a60f022e5431aca3932e3fc5cc8ed8639de50a4 \\\n --hash=sha256:db1c821b8c537382b2c7c66678c3790091ca0275ac486c76f3c8f3920e83c657\n # via lsprotocol\nexceptiongroup==1.1.3 \\\n --hash=sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9 \\\n --hash=sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3\n # via cattrs\nimportlib-metadata==6.7.0 \\\n --hash=sha256:1aaf550d4f73e5d6783e7acb77aec43d49da8017410afae93822cc9cca98c4d4 \\\n --hash=sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5\n # via\n # attrs\n # typeguard\nlsprotocol==2023.0.0b1 \\\n --hash=sha256:ade2cd0fa0ede7965698cb59cd05d3adbd19178fd73e83f72ef57a032fbb9d62 \\\n --hash=sha256:f7a2d4655cbd5639f373ddd1789807450c543341fa0a32b064ad30dbb9f510d4\n # via\n # pygls\n # ruff-lsp (pyproject.toml)\npackaging==23.2 \\\n --hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \\\n --hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7\n # via ruff-lsp (pyproject.toml)\npygls==1.1.0 \\\n --hash=sha256:70acb6fe0df1c8a17b7ce08daa0afdb4aedc6913a6a6696003e1434fda80a06e \\\n --hash=sha256:eb19b818039d3d705ec8adbcdf5809a93af925f30cd7a3f3b7573479079ba00e\n # via ruff-lsp (pyproject.toml)\nruff==0.0.292 \\\n --hash=sha256:02f29db018c9d474270c704e6c6b13b18ed0ecac82761e4fcf0faa3728430c96 \\\n --hash=sha256:1093449e37dd1e9b813798f6ad70932b57cf614e5c2b5c51005bf67d55db33ac \\\n --hash=sha256:69654e564342f507edfa09ee6897883ca76e331d4bbc3676d8a8403838e9fade \\\n --hash=sha256:6bdfabd4334684a4418b99b3118793f2c13bb67bf1540a769d7816410402a205 \\\n --hash=sha256:6c3c91859a9b845c33778f11902e7b26440d64b9d5110edd4e4fa1726c41e0a4 \\\n --hash=sha256:7f67a69c8f12fbc8daf6ae6d36705037bde315abf8b82b6e1f4c9e74eb750f68 \\\n --hash=sha256:87616771e72820800b8faea82edd858324b29bb99a920d6aa3d3949dd3f88fb0 \\\n --hash=sha256:8e087b24d0d849c5c81516ec740bf4fd48bf363cfb104545464e0fca749b6af9 \\\n --hash=sha256:9889bac18a0c07018aac75ef6c1e6511d8411724d67cb879103b01758e110a81 \\\n --hash=sha256:aa7c77c53bfcd75dbcd4d1f42d6cabf2485d2e1ee0678da850f08e1ab13081a8 \\\n --hash=sha256:ac153eee6dd4444501c4bb92bff866491d4bfb01ce26dd2fff7ca472c8df9ad0 \\\n --hash=sha256:b76deb3bdbea2ef97db286cf953488745dd6424c122d275f05836c53f62d4016 \\\n --hash=sha256:be8eb50eaf8648070b8e58ece8e69c9322d34afe367eec4210fdee9a555e4ca7 \\\n --hash=sha256:e854b05408f7a8033a027e4b1c7f9889563dd2aca545d13d06711e5c39c3d003 \\\n --hash=sha256:f160b5ec26be32362d0774964e218f3fcf0a7da299f7e220ef45ae9e3e67101a \\\n --hash=sha256:f27282bedfd04d4c3492e5c3398360c9d86a295be00eccc63914438b4ac8a83c \\\n --hash=sha256:f4476f1243af2d8c29da5f235c13dca52177117935e1f9393f9d90f9833f69e4\n # via ruff-lsp (pyproject.toml)\ntypeguard==3.0.2 \\\n --hash=sha256:bbe993854385284ab42fd5bd3bee6f6556577ce8b50696d6cb956d704f286c8e \\\n --hash=sha256:fee5297fdb28f8e9efcb8142b5ee219e02375509cd77ea9d270b5af826358d5a\n # via pygls\ntyping-extensions==4.7.1 \\\n --hash=sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36 \\\n --hash=sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2\n # via\n # cattrs\n # importlib-metadata\n # ruff-lsp (pyproject.toml)\n # typeguard\nzipp==3.15.0 \\\n --hash=sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b \\\n --hash=sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556\n # via importlib-metadata\n\")?"
|
||||||
---
|
---
|
||||||
Requirements(
|
Requirements(
|
||||||
[
|
[
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
source: crates/puffin-requirements/src/lib.rs
|
source: crates/puffin-package/src/requirements.rs
|
||||||
expression: "Requirements::from_str(r#\"flask==2.0\"#)?"
|
expression: "Requirements::from_str(r#\"flask==2.0\"#)?"
|
||||||
---
|
---
|
||||||
Requirements(
|
Requirements(
|
Loading…
Add table
Add a link
Reference in a new issue