mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 21:35:00 +00:00
Instrument the main function and add jupyter.in (#1186)
Instrument the main function as anchor span for checking overhead and update tracing-durations-export to 0.2.0 for differentiating blocking/non-blocking tasks. Add a `jupyter.in` requirement since `pip install jupyter` is a common operation. I tried `jupyterlab` too but there is no difference in performance (1.00 ± 0.07).
This commit is contained in:
parent
a6c4cbfe55
commit
ab27913f68
7 changed files with 314 additions and 10 deletions
8
Cargo.lock
generated
8
Cargo.lock
generated
|
@ -3628,9 +3628,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "svg"
|
||||
version = "0.14.0"
|
||||
version = "0.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0d703a3635418d4e4d0e410009ddbfb65047ef9468b1d29afd3b057a5bc4c217"
|
||||
checksum = "2198f991cd549041203080de947415bae45220eab7253c220b87e3188d19f21a"
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
|
@ -4064,9 +4064,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "tracing-durations-export"
|
||||
version = "0.1.2"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a81cbe37a5217ac622312780d49061da017602b295ada333a16a507065ec633b"
|
||||
checksum = "35b910b25a6c8e0fefcfff912bad6c4f4849d37e5945c3861d15e550d819da53"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"fs-err",
|
||||
|
|
|
@ -95,7 +95,7 @@ tokio-util = { version = "0.7.10", features = ["compat"] }
|
|||
toml = { version = "0.8.8" }
|
||||
toml_edit = { version = "0.21.0" }
|
||||
tracing = { version = "0.1.40" }
|
||||
tracing-durations-export = { version = "0.1.0", features = ["plot"] }
|
||||
tracing-durations-export = { version = "0.2.0", features = ["plot"] }
|
||||
tracing-indicatif = { version = "0.3.6" }
|
||||
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
|
||||
tracing-tree = { version = "0.3.0" }
|
||||
|
|
|
@ -50,7 +50,7 @@ rustc-hash = { workspace = true }
|
|||
tempfile = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
tracing = { workspace = true }
|
||||
tracing-durations-export = { version = "0.1.0", features = ["plot"] }
|
||||
tracing-durations-export = { workspace = true, features = ["plot"] }
|
||||
tracing-indicatif = { workspace = true }
|
||||
tracing-subscriber = { workspace = true }
|
||||
url = { workspace = true }
|
||||
|
|
|
@ -10,7 +10,7 @@ use anstream::eprintln;
|
|||
use anyhow::Result;
|
||||
use clap::Parser;
|
||||
use owo_colors::OwoColorize;
|
||||
use tracing::debug;
|
||||
use tracing::{debug, instrument};
|
||||
use tracing_durations_export::plot::PlotConfig;
|
||||
use tracing_durations_export::DurationsLayerBuilder;
|
||||
use tracing_indicatif::IndicatifLayer;
|
||||
|
@ -68,6 +68,7 @@ enum Cli {
|
|||
WheelMetadata(WheelMetadataArgs),
|
||||
}
|
||||
|
||||
#[instrument] // Anchor span to check for overhead
|
||||
async fn run() -> Result<()> {
|
||||
let cli = Cli::parse();
|
||||
match cli {
|
||||
|
|
|
@ -8,6 +8,7 @@ use anyhow::Result;
|
|||
use chrono::{DateTime, Days, NaiveDate, NaiveTime, Utc};
|
||||
use clap::{Args, Parser, Subcommand};
|
||||
use owo_colors::OwoColorize;
|
||||
use tracing::instrument;
|
||||
|
||||
use distribution_types::{FlatIndexLocation, IndexLocations, IndexUrl};
|
||||
use puffin_cache::{Cache, CacheArgs, Refresh};
|
||||
|
@ -605,7 +606,8 @@ struct RemoveArgs {
|
|||
name: PackageName,
|
||||
}
|
||||
|
||||
async fn inner() -> Result<ExitStatus> {
|
||||
#[instrument] // Anchor span to check for overhead
|
||||
async fn run() -> Result<ExitStatus> {
|
||||
let cli = Cli::parse();
|
||||
|
||||
// Configure the `tracing` crate, which controls internal logging.
|
||||
|
@ -865,7 +867,7 @@ fn main() -> ExitCode {
|
|||
.thread_stack_size(stack_size)
|
||||
.build()
|
||||
.expect("Failed building the Runtime")
|
||||
.block_on(inner())
|
||||
.block_on(run())
|
||||
};
|
||||
std::thread::Builder::new()
|
||||
.stack_size(stack_size)
|
||||
|
@ -878,7 +880,7 @@ fn main() -> ExitCode {
|
|||
.enable_all()
|
||||
.build()
|
||||
.expect("Failed building the Runtime")
|
||||
.block_on(inner())
|
||||
.block_on(run())
|
||||
};
|
||||
|
||||
match result {
|
||||
|
|
300
scripts/requirements/compiled/jupyter.txt
Normal file
300
scripts/requirements/compiled/jupyter.txt
Normal file
|
@ -0,0 +1,300 @@
|
|||
# This file was autogenerated by Puffin v0.0.3 via the following command:
|
||||
# puffin pip compile scripts/requirements/jupyter.in
|
||||
anyio==4.2.0
|
||||
# via jupyter-server
|
||||
argon2-cffi==23.1.0
|
||||
# via jupyter-server
|
||||
argon2-cffi-bindings==21.2.0
|
||||
# via argon2-cffi
|
||||
arrow==1.3.0
|
||||
# via isoduration
|
||||
asttokens==2.4.1
|
||||
# via stack-data
|
||||
async-lru==2.0.4
|
||||
# via jupyterlab
|
||||
attrs==23.2.0
|
||||
# via
|
||||
# jsonschema
|
||||
# referencing
|
||||
babel==2.14.0
|
||||
# via jupyterlab-server
|
||||
beautifulsoup4==4.12.3
|
||||
# via nbconvert
|
||||
bleach==6.1.0
|
||||
# via nbconvert
|
||||
certifi==2023.11.17
|
||||
# via requests
|
||||
cffi==1.16.0
|
||||
# via argon2-cffi-bindings
|
||||
charset-normalizer==3.3.2
|
||||
# via requests
|
||||
comm==0.2.1
|
||||
# via
|
||||
# ipykernel
|
||||
# ipywidgets
|
||||
debugpy==1.8.0
|
||||
# via ipykernel
|
||||
decorator==5.1.1
|
||||
# via ipython
|
||||
defusedxml==0.7.1
|
||||
# via nbconvert
|
||||
executing==2.0.1
|
||||
# via stack-data
|
||||
fastjsonschema==2.19.1
|
||||
# via nbformat
|
||||
fqdn==1.5.1
|
||||
# via jsonschema
|
||||
idna==3.6
|
||||
# via
|
||||
# anyio
|
||||
# jsonschema
|
||||
# requests
|
||||
ipykernel==6.29.0
|
||||
# via
|
||||
# jupyter
|
||||
# jupyter-console
|
||||
# jupyterlab
|
||||
# qtconsole
|
||||
ipython==8.20.0
|
||||
# via
|
||||
# ipykernel
|
||||
# ipywidgets
|
||||
# jupyter-console
|
||||
ipywidgets==8.1.1
|
||||
# via jupyter
|
||||
isoduration==20.11.0
|
||||
# via jsonschema
|
||||
jedi==0.19.1
|
||||
# via ipython
|
||||
jinja2==3.1.3
|
||||
# via
|
||||
# jupyter-server
|
||||
# jupyterlab
|
||||
# jupyterlab-server
|
||||
# nbconvert
|
||||
json5==0.9.14
|
||||
# via jupyterlab-server
|
||||
jsonpointer==2.4
|
||||
# via jsonschema
|
||||
jsonschema==4.21.1
|
||||
# via
|
||||
# jupyter-events
|
||||
# jupyterlab-server
|
||||
# nbformat
|
||||
jsonschema-specifications==2023.12.1
|
||||
# via jsonschema
|
||||
jupyter==1.0.0
|
||||
jupyter-client==8.6.0
|
||||
# via
|
||||
# ipykernel
|
||||
# jupyter-console
|
||||
# jupyter-server
|
||||
# nbclient
|
||||
# qtconsole
|
||||
jupyter-console==6.6.3
|
||||
# via jupyter
|
||||
jupyter-core==5.7.1
|
||||
# via
|
||||
# ipykernel
|
||||
# jupyter-client
|
||||
# jupyter-console
|
||||
# jupyter-server
|
||||
# jupyterlab
|
||||
# nbclient
|
||||
# nbconvert
|
||||
# nbformat
|
||||
# qtconsole
|
||||
jupyter-events==0.9.0
|
||||
# via jupyter-server
|
||||
jupyter-lsp==2.2.2
|
||||
# via jupyterlab
|
||||
jupyter-server==2.12.5
|
||||
# via
|
||||
# jupyter-lsp
|
||||
# jupyterlab
|
||||
# jupyterlab-server
|
||||
# notebook
|
||||
# notebook-shim
|
||||
jupyter-server-terminals==0.5.2
|
||||
# via jupyter-server
|
||||
jupyterlab==4.0.11
|
||||
# via notebook
|
||||
jupyterlab-pygments==0.3.0
|
||||
# via nbconvert
|
||||
jupyterlab-server==2.25.2
|
||||
# via
|
||||
# jupyterlab
|
||||
# notebook
|
||||
jupyterlab-widgets==3.0.9
|
||||
# via ipywidgets
|
||||
markupsafe==2.1.4
|
||||
# via
|
||||
# jinja2
|
||||
# nbconvert
|
||||
matplotlib-inline==0.1.6
|
||||
# via
|
||||
# ipykernel
|
||||
# ipython
|
||||
mistune==3.0.2
|
||||
# via nbconvert
|
||||
nbclient==0.9.0
|
||||
# via nbconvert
|
||||
nbconvert==7.14.2
|
||||
# via
|
||||
# jupyter
|
||||
# jupyter-server
|
||||
nbformat==5.9.2
|
||||
# via
|
||||
# jupyter-server
|
||||
# nbclient
|
||||
# nbconvert
|
||||
nest-asyncio==1.6.0
|
||||
# via ipykernel
|
||||
notebook==7.0.7
|
||||
# via jupyter
|
||||
notebook-shim==0.2.3
|
||||
# via
|
||||
# jupyterlab
|
||||
# notebook
|
||||
overrides==7.7.0
|
||||
# via jupyter-server
|
||||
packaging==23.2
|
||||
# via
|
||||
# ipykernel
|
||||
# jupyter-server
|
||||
# jupyterlab
|
||||
# jupyterlab-server
|
||||
# nbconvert
|
||||
# qtconsole
|
||||
# qtpy
|
||||
pandocfilters==1.5.1
|
||||
# via nbconvert
|
||||
parso==0.8.3
|
||||
# via jedi
|
||||
pexpect==4.9.0
|
||||
# via ipython
|
||||
platformdirs==4.1.0
|
||||
# via jupyter-core
|
||||
prometheus-client==0.19.0
|
||||
# via jupyter-server
|
||||
prompt-toolkit==3.0.43
|
||||
# via
|
||||
# ipython
|
||||
# jupyter-console
|
||||
psutil==5.9.8
|
||||
# via ipykernel
|
||||
ptyprocess==0.7.0
|
||||
# via
|
||||
# pexpect
|
||||
# terminado
|
||||
pure-eval==0.2.2
|
||||
# via stack-data
|
||||
pycparser==2.21
|
||||
# via cffi
|
||||
pygments==2.17.2
|
||||
# via
|
||||
# ipython
|
||||
# jupyter-console
|
||||
# nbconvert
|
||||
# qtconsole
|
||||
python-dateutil==2.8.2
|
||||
# via
|
||||
# arrow
|
||||
# jupyter-client
|
||||
python-json-logger==2.0.7
|
||||
# via jupyter-events
|
||||
pyyaml==6.0.1
|
||||
# via jupyter-events
|
||||
pyzmq==25.1.2
|
||||
# via
|
||||
# ipykernel
|
||||
# jupyter-client
|
||||
# jupyter-console
|
||||
# jupyter-server
|
||||
# qtconsole
|
||||
qtconsole==5.5.1
|
||||
# via jupyter
|
||||
qtpy==2.4.1
|
||||
# via qtconsole
|
||||
referencing==0.33.0
|
||||
# via
|
||||
# jsonschema
|
||||
# jsonschema-specifications
|
||||
# jupyter-events
|
||||
requests==2.31.0
|
||||
# via jupyterlab-server
|
||||
rfc3339-validator==0.1.4
|
||||
# via
|
||||
# jsonschema
|
||||
# jupyter-events
|
||||
rfc3986-validator==0.1.1
|
||||
# via
|
||||
# jsonschema
|
||||
# jupyter-events
|
||||
rpds-py==0.17.1
|
||||
# via
|
||||
# jsonschema
|
||||
# referencing
|
||||
send2trash==1.8.2
|
||||
# via jupyter-server
|
||||
six==1.16.0
|
||||
# via
|
||||
# asttokens
|
||||
# bleach
|
||||
# python-dateutil
|
||||
# rfc3339-validator
|
||||
sniffio==1.3.0
|
||||
# via anyio
|
||||
soupsieve==2.5
|
||||
# via beautifulsoup4
|
||||
stack-data==0.6.3
|
||||
# via ipython
|
||||
terminado==0.18.0
|
||||
# via
|
||||
# jupyter-server
|
||||
# jupyter-server-terminals
|
||||
tinycss2==1.2.1
|
||||
# via nbconvert
|
||||
tornado==6.4
|
||||
# via
|
||||
# ipykernel
|
||||
# jupyter-client
|
||||
# jupyter-server
|
||||
# jupyterlab
|
||||
# notebook
|
||||
# terminado
|
||||
traitlets==5.14.1
|
||||
# via
|
||||
# comm
|
||||
# ipykernel
|
||||
# ipython
|
||||
# ipywidgets
|
||||
# jupyter-client
|
||||
# jupyter-console
|
||||
# jupyter-core
|
||||
# jupyter-events
|
||||
# jupyter-server
|
||||
# jupyterlab
|
||||
# matplotlib-inline
|
||||
# nbclient
|
||||
# nbconvert
|
||||
# nbformat
|
||||
# qtconsole
|
||||
types-python-dateutil==2.8.19.20240106
|
||||
# via arrow
|
||||
uri-template==1.3.0
|
||||
# via jsonschema
|
||||
urllib3==2.1.0
|
||||
# via requests
|
||||
wcwidth==0.2.13
|
||||
# via prompt-toolkit
|
||||
webcolors==1.13
|
||||
# via jsonschema
|
||||
webencodings==0.5.1
|
||||
# via
|
||||
# bleach
|
||||
# tinycss2
|
||||
websocket-client==1.7.0
|
||||
# via jupyter-server
|
||||
widgetsnbextension==4.0.9
|
||||
# via ipywidgets
|
1
scripts/requirements/jupyter.in
Normal file
1
scripts/requirements/jupyter.in
Normal file
|
@ -0,0 +1 @@
|
|||
jupyter
|
Loading…
Add table
Add a link
Reference in a new issue