Skip to content

Enabling track_cpu_percent causes unacceptable input delay in terminal #245

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
ctcjab opened this issue Mar 21, 2025 · 2 comments
Open
Labels

Comments

@ctcjab
Copy link

ctcjab commented Mar 21, 2025

Description

After I enabled track_cpu_percent for the JupyterHub users I support, we noticed a significant regression in the input delay of the JupyterLab integrated terminal. I made a screen recording that demonstrates the frequent lags we are seeing in displaying what the user is typing, even when typing at a modest but steady rate:

Screen.Recording.2025-03-21.at.9.07.48.AM.mov

When track_cpu_percent is disabled, the input delay is restored to an acceptable level:

Screen.Recording.2025-03-21.at.9.11.02.AM.mov

Reproduce

  1. Enable track_cpu_percent
  2. Open the integrated terminal
  3. Type at a moderate, steady rate
  4. Notice frequent lags in displaying what you typed
  5. Disable track_cpu_percent
  6. Notice the lag is much better

Context

  • Operating System and version: Observed on macOS Sequoia, Windows 11, and Linux (various versions)
  • Browser and version: Observed on Chrome and Edge
  • Jupyter Server version: 2.15.0
  • jupyter-resource-usage version: 1.1.1 (latest as of today, 3/21/25)
Troubleshoot Output
❯ jupyter troubleshoot
$PATH:
        /opt/conda/condabin
        /home/jovyan/.local/bin
        /home/jovyan/.pixi/bin
        /home/jovyan/bin
        /uv/bin
        /opt/mssql-tools18/bin
        /opt/conda/bin
        /usr/local/bin
        /pixi/bin
        /opt/conda/bin
        /usr/local/sbin
        /usr/local/bin
        /usr/sbin
        /usr/bin
        /sbin
        /bin

sys.path:
/opt/conda/bin
/opt/conda/lib/python312.zip
/opt/conda/lib/python3.12
/opt/conda/lib/python3.12/lib-dynload
/home/jovyan/.local/lib/python3.12/site-packages
/opt/conda/lib/python3.12/site-packages

sys.executable:
/opt/conda/bin/python3.12

sys.version:
3.12.9 | packaged by conda-forge | (main, Mar 4 2025, 22:48:41) [GCC 13.3.0]

platform.platform():
Linux-5.14.0-427.33.1.el9_4.x86_64-x86_64-with-glibc2.39

which -a jupyter:
/opt/conda/bin/jupyter
/opt/conda/bin/jupyter

pip list:
Package Version
------------------------- --------------
aiohappyeyeballs 2.6.1
aiohttp 3.11.14
aiosignal 1.3.2
alembic 1.14.1
annotated-types 0.7.0
anyio 4.9.0
archspec 0.2.5
argon2-cffi 23.1.0
argon2-cffi-bindings 21.2.0
arrow 1.3.0
asttokens 3.0.0
async_generator 1.10
async-lru 2.0.5
async-timeout 4.0.3
attrs 25.3.0
babel 2.17.0
beautifulsoup4 4.13.3
bleach 6.2.0
blinker 1.9.0
boltons 24.0.0
bqplot 0.12.43
Brotli 1.1.0
cached-property 1.5.2
cattrs 24.1.2
certifi 2025.1.31
certipy 0.2.1
cffi 1.17.1
charset-normalizer 3.4.1
click 8.1.8
cloudpickle 3.1.1
colorama 0.4.6
comm 0.2.2
conda 25.1.1
conda-libmamba-solver 25.3.0
conda-package-handling 2.4.0
conda_package_streaming 0.11.0
cryptography 44.0.0
ctc-jupyter-ai-glean 0.0.0.dev0
cytoolz 1.0.1
dask 2025.2.0
dataclasses-json 0.6.7
debugpy 1.8.13
decorator 5.2.1
deepmerge 2.0
defusedxml 0.7.1
distributed 2025.2.0
distro 1.9.0
docstring-to-markdown 0.15
entrypoints 0.4
exceptiongroup 1.2.2
executing 2.1.0
faiss 1.9.0
fastjsonschema 2.21.1
fqdn 1.5.1
frozendict 2.4.6
frozenlist 1.5.0
fsspec 2025.3.0
gast 0.4.0
gitdb 4.0.12
GitPython 3.1.44
greenlet 3.1.1
h11 0.14.0
h2 4.2.0
hpack 4.1.0
httpcore 1.0.7
httpx 0.28.1
httpx-sse 0.4.0
hyperframe 6.1.0
idna 3.10
importlib_metadata 8.6.1
importlib_resources 6.5.2
ipydatagrid 1.4.0
ipykernel 6.29.5
ipython 9.0.2
ipython_genutils 0.2.0
ipython_pygments_lexers 1.1.1
ipywidgets 8.1.5
isoduration 20.11.0
jedi 0.19.2
Jinja2 3.1.6
jiter 0.9.0
json5 0.10.0
jsonpatch 1.33
jsonpath-ng 1.6.1
jsonpointer 3.0.0
jsonschema 4.23.0
jsonschema-specifications 2024.10.1
jupyter_ai 2.30.0
jupyter_ai_magics 2.30.0
jupyter_client 8.6.3
jupyter_core 5.7.2
jupyter-events 0.12.0
jupyter-lsp 2.2.5
jupyter-resource-usage 1.1.1
jupyter-ruff 0.2.0
jupyter_server 2.15.0
jupyter_server_mathjax 0.2.6
jupyter_server_terminals 0.5.3
jupyterhub 5.2.1
jupyterlab 4.3.6
jupyterlab_datadog_rum 0.0.2
jupyterlab_ensure_clone 0.1.8
jupyterlab_execute_time 3.2.0
jupyterlab_freeze 0.1.2
jupyterlab_git 0.51.0
jupyterlab-lsp 5.1.0
jupyterlab_pygments 0.3.0
jupyterlab_quick_share 0.1.6
jupyterlab_server 2.27.3
jupyterlab_widgets 3.0.13
jupytext 1.16.7
langchain 0.3.21
langchain-community 0.3.20
langchain-core 0.3.45
langchain-openai 0.3.9
langchain-text-splitters 0.3.7
langsmith 0.2.11
libmambapy 2.0.8
locket 1.0.0
lsprotocol 2023.0.1
Mako 1.3.8
markdown-it-py 3.0.0
MarkupSafe 3.0.2
marshmallow 3.26.1
matplotlib-inline 0.1.7
mdit-py-plugins 0.4.2
mdurl 0.1.2
menuinst 2.2.0
mistune 3.1.3
msgpack 1.1.0
multidict 6.2.0
mypy_extensions 1.0.0
narwhals 1.31.0
nbclassic 1.2.0
nbclient 0.10.2
nbconvert 7.16.6
nbdime 4.0.2
nbformat 5.10.4
nest_asyncio 1.6.0
notebook 7.3.2
notebook_shim 0.2.4
numpy 1.26.4
oauthlib 3.2.2
openai 1.66.5
orjson 3.10.15
overrides 7.7.0
packaging 24.2
pamela 1.2.0
pandas 2.2.3
pandocfilters 1.5.0
parso 0.8.4
partd 1.4.2
pexpect 4.9.0
pickleshare 0.7.5
pip 25.0.1
pkgutil_resolve_name 1.3.10
platformdirs 4.3.6
plotly 6.0.1
pluggy 1.5.0
ply 3.11
prometheus_client 0.21.1
prompt_toolkit 3.0.50
propcache 0.2.1
psutil 5.9.8
ptyprocess 0.7.0
pure_eval 0.2.3
py2vega 0.6.1
pycosat 0.6.6
pycparser 2.22
pydantic 2.10.6
pydantic_core 2.27.2
pydantic-settings 2.8.1
Pygments 2.19.1
PyJWT 2.10.1
PySocks 1.7.1
python-dateutil 2.9.0.post0
python-dotenv 1.0.1
python-json-logger 2.0.7
python-lsp-jsonrpc 1.1.2
python-lsp-ruff 2.2.2
python-lsp-server 1.12.2
pytz 2024.1
PyYAML 6.0.2
pyzmq 26.3.0
referencing 0.36.2
regex 2024.11.6
requests 2.32.3
requests-toolbelt 1.0.0
retrying 1.3.4
rfc3339_validator 0.1.4
rfc3986-validator 0.1.1
rpds-py 0.23.1
ruamel.yaml 0.18.10
ruamel.yaml.clib 0.2.8
ruff 0.11.0
Send2Trash 1.8.3
setuptools 75.8.2
six 1.17.0
smmap 5.0.2
sniffio 1.3.1
sortedcontainers 2.4.0
soupsieve 2.5
SQLAlchemy 2.0.39
stack_data 0.6.3
tblib 3.0.0
tenacity 9.0.0
terminado 0.18.1
tiktoken 0.9.0
tinycss2 1.4.0
tomli 2.2.1
toolz 1.0.0
tornado 6.4.2
tqdm 4.67.1
traitlets 5.14.3
traittypes 0.2.1
truststore 0.10.1
types-python-dateutil 2.9.0.20241206
typing_extensions 4.12.2
typing_inspect 0.9.0
typing_utils 0.1.0
tzdata 2025.1
ujson 5.10.0
uri-template 1.3.0
urllib3 2.3.0
voila 0.5.8
wcwidth 0.2.13
webcolors 24.11.1
webencodings 0.5.1
websocket-client 1.8.0
websockets 15.0.1
wheel 0.45.1
widgetsnbextension 4.0.13
yarl 1.18.3
zict 3.0.0
zipp 3.21.0
zstandard 0.23.0

conda list:
# packages in environment at /opt/conda:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_gnu conda-forge
aiohappyeyeballs 2.6.1 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
aiohttp 3.11.14 py312h178313f_0 https://conda.anaconda.org/conda-forge
aiosignal 1.3.2 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
alembic 1.14.1 pyhd8ed1ab_0 conda-forge
annotated-types 0.7.0 pyhd8ed1ab_1 conda-forge
anyio 4.9.0 pyh29332c3_0 https://conda.anaconda.org/conda-forge
archspec 0.2.5 pyhd8ed1ab_0 conda-forge
argon2-cffi 23.1.0 pyhd8ed1ab_1 conda-forge
argon2-cffi-bindings 21.2.0 py312h66e93f0_5 conda-forge
arrow 1.3.0 pyhd8ed1ab_1 conda-forge
asttokens 3.0.0 pyhd8ed1ab_1 conda-forge
async-lru 2.0.5 pyh29332c3_0 https://conda.anaconda.org/conda-forge
async-timeout 4.0.3 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
async_generator 1.10 pyhd8ed1ab_2 conda-forge
attrs 25.3.0 pyh71513ae_0 https://conda.anaconda.org/conda-forge
babel 2.17.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
beautifulsoup4 4.13.3 pyha770c72_0 https://conda.anaconda.org/conda-forge
bleach 6.2.0 pyh29332c3_4 conda-forge
bleach-with-css 6.2.0 h82add2a_4 conda-forge
blinker 1.9.0 pyhff2d567_0 conda-forge
boltons 24.0.0 pyhd8ed1ab_1 conda-forge
bqplot 0.12.43 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
brotli-python 1.1.0 py312h2ec8cdc_2 conda-forge
bzip2 1.0.8 h4bc722e_7 conda-forge
c-ares 1.34.4 hb9d3cd8_0 conda-forge
ca-certificates 2025.1.31 hbcca054_0 https://conda.anaconda.org/conda-forge
cached-property 1.5.2 hd8ed1ab_1 conda-forge
cached_property 1.5.2 pyha770c72_1 conda-forge
cattrs 24.1.2 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
certifi 2025.1.31 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
certipy 0.2.1 pyhd8ed1ab_1 conda-forge
cffi 1.17.1 py312h06ac9bb_0 conda-forge
charset-normalizer 3.4.1 pyhd8ed1ab_0 conda-forge
click 8.1.8 pyh707e725_0 https://conda.anaconda.org/conda-forge
cloudpickle 3.1.1 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
colorama 0.4.6 pyhd8ed1ab_1 conda-forge
comm 0.2.2 pyhd8ed1ab_1 conda-forge
conda 25.1.1 py312h7900ff3_1 https://conda.anaconda.org/conda-forge
conda-libmamba-solver 25.3.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
conda-package-handling 2.4.0 pyh7900ff3_2 conda-forge
conda-package-streaming 0.11.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
cpp-expected 1.1.0 hf52228f_0 conda-forge
cryptography 44.0.0 py312hda17c39_1 conda-forge
ctc-jupyter-ai-glean 0.0.13 py_0 ctc-conda-prod-gsd
cytoolz 1.0.1 py312h66e93f0_0 https://conda.anaconda.org/conda-forge
dask-core 2025.2.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
dataclasses-json 0.6.7 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
debugpy 1.8.13 py312h2ec8cdc_0 https://conda.anaconda.org/conda-forge
decorator 5.2.1 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
deepmerge 2.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
distributed 2025.2.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
distro 1.9.0 pyhd8ed1ab_1 conda-forge
docstring-to-markdown 0.15 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
entrypoints 0.4 pyhd8ed1ab_1 conda-forge
exceptiongroup 1.2.2 pyhd8ed1ab_1 conda-forge
executing 2.1.0 pyhd8ed1ab_1 conda-forge
faiss 1.9.0 py312hf23773a_0_cpu https://conda.anaconda.org/conda-forge
faiss-cpu 1.9.0 h718b53a_0 https://conda.anaconda.org/conda-forge
fmt 11.0.2 h434a139_0 conda-forge
fqdn 1.5.1 pyhd8ed1ab_1 conda-forge
frozendict 2.4.6 py312h66e93f0_0 conda-forge
frozenlist 1.5.0 py312h178313f_1 https://conda.anaconda.org/conda-forge
fsspec 2025.3.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
gast 0.4.0 pyh9f0ad1d_0 https://conda.anaconda.org/conda-forge
gitdb 4.0.12 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
gitpython 3.1.44 pyhff2d567_0 https://conda.anaconda.org/conda-forge
greenlet 3.1.1 py312h2ec8cdc_1 conda-forge
h11 0.14.0 pyhd8ed1ab_1 conda-forge
h2 4.2.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
hpack 4.1.0 pyhd8ed1ab_0 conda-forge
httpcore 1.0.7 pyh29332c3_1 conda-forge
httpx 0.28.1 pyhd8ed1ab_0 conda-forge
httpx-sse 0.4.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
hyperframe 6.1.0 pyhd8ed1ab_0 conda-forge
icu 75.1 he02047a_0 https://conda.anaconda.org/conda-forge
idna 3.10 pyhd8ed1ab_1 conda-forge
importlib-metadata 8.6.1 pyha770c72_0 conda-forge
importlib_resources 6.5.2 pyhd8ed1ab_0 conda-forge
ipydatagrid 1.4.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
ipykernel 6.29.5 pyh3099207_0 conda-forge
ipython 9.0.2 pyhfb0248b_0 https://conda.anaconda.org/conda-forge
ipython_genutils 0.2.0 pyhd8ed1ab_2 conda-forge
ipython_pygments_lexers 1.1.1 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
ipywidgets 8.1.5 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
isoduration 20.11.0 pyhd8ed1ab_1 conda-forge
jedi 0.19.2 pyhd8ed1ab_1 conda-forge
jinja2 3.1.6 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
jiter 0.9.0 py312h12e396e_0 https://conda.anaconda.org/conda-forge
json5 0.10.0 pyhd8ed1ab_1 conda-forge
jsonpatch 1.33 pyhd8ed1ab_1 conda-forge
jsonpath-ng 1.6.1 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
jsonpointer 3.0.0 py312h7900ff3_1 conda-forge
jsonschema 4.23.0 pyhd8ed1ab_1 conda-forge
jsonschema-specifications 2024.10.1 pyhd8ed1ab_1 conda-forge
jsonschema-with-format-nongpl 4.23.0 hd8ed1ab_1 conda-forge
jupyter-ai 2.30.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
jupyter-ai-magics 2.30.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
jupyter-lsp 2.2.5 pyhd8ed1ab_1 conda-forge
jupyter-resource-usage 1.1.1 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
jupyter-ruff 0.2.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
jupyter-server-mathjax 0.2.6 pyhbbac1ac_2 https://conda.anaconda.org/conda-forge
jupyter_client 8.6.3 pyhd8ed1ab_1 conda-forge
jupyter_core 5.7.2 pyh31011fe_1 conda-forge
jupyter_events 0.12.0 pyh29332c3_0 https://conda.anaconda.org/conda-forge
jupyter_server 2.15.0 pyhd8ed1ab_0 conda-forge
jupyter_server_terminals 0.5.3 pyhd8ed1ab_1 conda-forge
jupyterhub-base 5.2.1 pyh31011fe_0 conda-forge
jupyterhub-singleuser 5.2.1 pyh31011fe_0 conda-forge
jupyterlab 4.3.6 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
jupyterlab-datadog-rum 0.0.2 pypi_0 pypi
jupyterlab-ensure-clone 0.1.8 pypi_0 pypi
jupyterlab-freeze 0.1.2 pypi_0 pypi
jupyterlab-git 0.51.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
jupyterlab-lsp 5.1.0 pyhd8ed1ab_3 https://conda.anaconda.org/conda-forge
jupyterlab-plotly-extension 1.0.0 py_0 https://conda.anaconda.org/conda-forge
jupyterlab-quick-share 0.1.6 pypi_0 pypi
jupyterlab_execute_time 3.2.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
jupyterlab_pygments 0.3.0 pyhd8ed1ab_2 conda-forge
jupyterlab_server 2.27.3 pyhd8ed1ab_1 conda-forge
jupyterlab_widgets 3.0.13 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
jupytext 1.16.7 pyhbbac1ac_0 https://conda.anaconda.org/conda-forge
keyutils 1.6.1 h166bdaf_0 conda-forge
krb5 1.21.3 h659f571_0 conda-forge
langchain 0.3.21 pymin312_hff2d567_0 https://conda.anaconda.org/conda-forge
langchain-community 0.3.20 pymin312_hff2d567_0 https://conda.anaconda.org/conda-forge
langchain-core 0.3.45 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
langchain-openai 0.3.9 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
langchain-text-splitters 0.3.7 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
langsmith 0.2.11 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
ld_impl_linux-64 2.43 h712a8e2_4 https://conda.anaconda.org/conda-forge
libarchive 3.7.7 h4585015_3 conda-forge
libblas 3.9.0 31_h59b9bed_openblas https://conda.anaconda.org/conda-forge
libcblas 3.9.0 31_he106b2a_openblas https://conda.anaconda.org/conda-forge
libcurl 8.12.1 h332b0f4_0 https://conda.anaconda.org/conda-forge
libedit 3.1.20250104 pl5321h7949ede_0 https://conda.anaconda.org/conda-forge
libev 4.33 hd590300_2 conda-forge
libexpat 2.6.4 h5888daf_0 conda-forge
libfaiss 1.9.0 h72e5a87_0_cpu https://conda.anaconda.org/conda-forge
libffi 3.4.6 h2dba641_0 https://conda.anaconda.org/conda-forge
libgcc 14.2.0 h767d61c_2 https://conda.anaconda.org/conda-forge
libgcc-ng 14.2.0 h69a702a_2 https://conda.anaconda.org/conda-forge
libgfortran 14.2.0 h69a702a_2 https://conda.anaconda.org/conda-forge
libgfortran5 14.2.0 hf1ad2bd_2 https://conda.anaconda.org/conda-forge
libgomp 14.2.0 h767d61c_2 https://conda.anaconda.org/conda-forge
libiconv 1.18 h4ce23a2_1 https://conda.anaconda.org/conda-forge
liblapack 3.9.0 31_h7ac8fdf_openblas https://conda.anaconda.org/conda-forge
liblzma 5.6.4 hb9d3cd8_0 https://conda.anaconda.org/conda-forge
libmamba 2.0.8 h326b718_0 https://conda.anaconda.org/conda-forge
libmambapy 2.0.8 py312h8079299_0 https://conda.anaconda.org/conda-forge
libnghttp2 1.64.0 h161d5f1_0 conda-forge
libnsl 2.0.1 hd590300_0 conda-forge
libopenblas 0.3.29 pthreads_h94d23a6_0 https://conda.anaconda.org/conda-forge
libsodium 1.0.20 h4ab18f5_0 conda-forge
libsolv 0.7.30 h3509ff9_0 conda-forge
libsqlite 3.49.1 hee588c1_2 https://conda.anaconda.org/conda-forge
libssh2 1.11.1 hf672d98_0 conda-forge
libstdcxx 14.2.0 h8f9b012_2 https://conda.anaconda.org/conda-forge
libstdcxx-ng 14.2.0 h4852527_2 https://conda.anaconda.org/conda-forge
libuuid 2.38.1 h0b41bf4_0 conda-forge
libuv 1.50.0 hb9d3cd8_0 https://conda.anaconda.org/conda-forge
libxcrypt 4.4.36 hd590300_1 conda-forge
libxml2 2.13.6 h8d12d68_0 https://conda.anaconda.org/conda-forge
libzlib 1.3.1 hb9d3cd8_2 conda-forge
locket 1.0.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
lsprotocol 2023.0.1 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
lz4-c 1.10.0 h5888daf_1 conda-forge
lzo 2.10 hd590300_1001 conda-forge
mako 1.3.8 pyhd8ed1ab_0 conda-forge
mamba 2.0.8 h17bb787_0 https://conda.anaconda.org/conda-forge
markdown-it-py 3.0.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
markupsafe 3.0.2 py312h178313f_1 conda-forge
marshmallow 3.26.1 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
matplotlib-inline 0.1.7 pyhd8ed1ab_1 conda-forge
mdit-py-plugins 0.4.2 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
mdurl 0.1.2 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
menuinst 2.2.0 py312h7900ff3_0 conda-forge
mistune 3.1.3 pyh29332c3_0 https://conda.anaconda.org/conda-forge
msgpack-python 1.1.0 py312h68727a3_0 https://conda.anaconda.org/conda-forge
multidict 6.2.0 py312h178313f_0 https://conda.anaconda.org/conda-forge
mypy_extensions 1.0.0 pyha770c72_1 https://conda.anaconda.org/conda-forge
narwhals 1.31.0 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
nbclassic 1.2.0 pyhd8ed1ab_0 conda-forge
nbclient 0.10.2 pyhd8ed1ab_0 conda-forge
nbconvert 7.16.6 hb482800_0 https://conda.anaconda.org/conda-forge
nbconvert-core 7.16.6 pyh29332c3_0 https://conda.anaconda.org/conda-forge
nbconvert-pandoc 7.16.6 hed9df3c_0 https://conda.anaconda.org/conda-forge
nbdime 4.0.2 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
nbformat 5.10.4 pyhd8ed1ab_1 conda-forge
ncurses 6.5 h2d0b736_3 https://conda.anaconda.org/conda-forge
nest-asyncio 1.6.0 pyhd8ed1ab_1 conda-forge
nlohmann_json 3.11.3 he02047a_1 conda-forge
nodejs 22.13.0 hf235a45_0 https://conda.anaconda.org/conda-forge
notebook 7.3.2 pyhd8ed1ab_0 conda-forge
notebook-shim 0.2.4 pyhd8ed1ab_1 conda-forge
numpy 1.26.4 py312heda63a1_0 https://conda.anaconda.org/conda-forge
oauthlib 3.2.2 pyhd8ed1ab_1 conda-forge
openai 1.66.5 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
openssl 3.4.1 h7b32b05_0 https://conda.anaconda.org/conda-forge
orjson 3.10.15 py312h12e396e_0 https://conda.anaconda.org/conda-forge
overrides 7.7.0 pyhd8ed1ab_1 conda-forge
packaging 24.2 pyhd8ed1ab_2 conda-forge
pamela 1.2.0 pyhd8ed1ab_1 conda-forge
pandas 2.2.3 py312hf9745cd_1 https://conda.anaconda.org/conda-forge
pandoc 3.6.4 ha770c72_0 https://conda.anaconda.org/conda-forge
pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge
parso 0.8.4 pyhd8ed1ab_1 conda-forge
partd 1.4.2 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
pexpect 4.9.0 pyhd8ed1ab_1 conda-forge
pickleshare 0.7.5 pyhd8ed1ab_1004 conda-forge
pip 25.0.1 pyh8b19718_0 https://conda.anaconda.org/conda-forge
pkgutil-resolve-name 1.3.10 pyhd8ed1ab_2 conda-forge
platformdirs 4.3.6 pyhd8ed1ab_1 conda-forge
plotly 6.0.1 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
pluggy 1.5.0 pyhd8ed1ab_1 conda-forge
ply 3.11 pyhd8ed1ab_3 https://conda.anaconda.org/conda-forge
prometheus_client 0.21.1 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.50 pyha770c72_0 conda-forge
propcache 0.2.1 py312h178313f_1 https://conda.anaconda.org/conda-forge
psutil 5.9.8 py312h98912ed_0 https://conda.anaconda.org/conda-forge
ptyprocess 0.7.0 pyhd8ed1ab_1 conda-forge
pure_eval 0.2.3 pyhd8ed1ab_1 conda-forge
py2vega 0.6.1 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
pybind11-abi 4 hd8ed1ab_3 conda-forge
pycosat 0.6.6 py312h66e93f0_2 conda-forge
pycparser 2.22 pyh29332c3_1 conda-forge
pydantic 2.10.6 pyh3cfb1c2_0 conda-forge
pydantic-core 2.27.2 py312h12e396e_0 conda-forge
pydantic-settings 2.8.1 pyh3cfb1c2_0 https://conda.anaconda.org/conda-forge
pygments 2.19.1 pyhd8ed1ab_0 conda-forge
pyjwt 2.10.1 pyhd8ed1ab_0 conda-forge
pysocks 1.7.1 pyha55dd90_7 conda-forge
python 3.12.9 h9e4cc4f_1_cpython https://conda.anaconda.org/conda-forge
python-dateutil 2.9.0.post0 pyhff2d567_1 conda-forge
python-dotenv 1.0.1 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
python-fastjsonschema 2.21.1 pyhd8ed1ab_0 conda-forge
python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge
python-lsp-jsonrpc 1.1.2 pyhff2d567_1 https://conda.anaconda.org/conda-forge
python-lsp-ruff 2.2.2 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
python-lsp-server-base 1.12.2 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
python-tzdata 2025.1 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
python_abi 3.12 5_cp312 conda-forge
pytz 2024.1 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
pyyaml 6.0.2 py312h178313f_2 conda-forge
pyzmq 26.3.0 py312hbf22597_0 https://conda.anaconda.org/conda-forge
readline 8.2 h8c095d6_2 https://conda.anaconda.org/conda-forge
referencing 0.36.2 pyh29332c3_0 conda-forge
regex 2024.11.6 py312h66e93f0_0 https://conda.anaconda.org/conda-forge
reproc 14.2.5.post0 hb9d3cd8_0 conda-forge
reproc-cpp 14.2.5.post0 h5888daf_0 conda-forge
requests 2.32.3 pyhd8ed1ab_1 conda-forge
requests-toolbelt 1.0.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
retrying 1.3.4 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
rfc3339-validator 0.1.4 pyhd8ed1ab_1 conda-forge
rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge
rpds-py 0.23.1 py312h3b7be25_0 https://conda.anaconda.org/conda-forge
ruamel.yaml 0.18.10 py312h66e93f0_0 conda-forge
ruamel.yaml.clib 0.2.8 py312h66e93f0_1 conda-forge
ruff 0.11.0 py312hf79aa60_0 https://conda.anaconda.org/conda-forge
send2trash 1.8.3 pyh0d859eb_1 conda-forge
setuptools 75.8.2 pyhff2d567_0 https://conda.anaconda.org/conda-forge
simdjson 3.12.2 h84d6215_0 https://conda.anaconda.org/conda-forge
six 1.17.0 pyhd8ed1ab_0 conda-forge
smmap 5.0.2 pyhd8ed1ab_0 https://conda.anaconda.org/conda-forge
sniffio 1.3.1 pyhd8ed1ab_1 conda-forge
sortedcontainers 2.4.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
soupsieve 2.5 pyhd8ed1ab_1 conda-forge
spdlog 1.15.1 hb29a8c4_0 https://conda.anaconda.org/conda-forge
sqlalchemy 2.0.39 py312h66e93f0_1 https://conda.anaconda.org/conda-forge
stack_data 0.6.3 pyhd8ed1ab_1 conda-forge
tblib 3.0.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
tenacity 9.0.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
terminado 0.18.1 pyh0d859eb_0 conda-forge
tiktoken 0.9.0 py312h14ff09d_0 https://conda.anaconda.org/conda-forge
tinycss2 1.4.0 pyhd8ed1ab_0 conda-forge
tk 8.6.13 noxft_h4845f30_101 conda-forge
tomli 2.2.1 pyhd8ed1ab_1 conda-forge
toolz 1.0.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
tornado 6.4.2 py312h66e93f0_0 conda-forge
tqdm 4.67.1 pyhd8ed1ab_1 conda-forge
traitlets 5.14.3 pyhd8ed1ab_1 conda-forge
traittypes 0.2.1 pyh9f0ad1d_2 https://conda.anaconda.org/conda-forge
truststore 0.10.1 pyh29332c3_0 https://conda.anaconda.org/conda-forge
types-python-dateutil 2.9.0.20241206 pyhd8ed1ab_0 conda-forge
typing-extensions 4.12.2 hd8ed1ab_1 conda-forge
typing_extensions 4.12.2 pyha770c72_1 conda-forge
typing_inspect 0.9.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
typing_utils 0.1.0 pyhd8ed1ab_1 conda-forge
tzdata 2025a h78e105d_0 conda-forge
ujson 5.10.0 py312h2ec8cdc_1 https://conda.anaconda.org/conda-forge
uri-template 1.3.0 pyhd8ed1ab_1 conda-forge
urllib3 2.3.0 pyhd8ed1ab_0 conda-forge
voila 0.5.8 pyhd8ed1ab_2 https://conda.anaconda.org/conda-forge
wcwidth 0.2.13 pyhd8ed1ab_1 conda-forge
webcolors 24.11.1 pyhd8ed1ab_0 conda-forge
webencodings 0.5.1 pyhd8ed1ab_3 conda-forge
websocket-client 1.8.0 pyhd8ed1ab_1 conda-forge
websockets 15.0.1 py312h66e93f0_0 https://conda.anaconda.org/conda-forge
wheel 0.45.1 pyhd8ed1ab_1 conda-forge
widgetsnbextension 4.0.13 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
yaml 0.2.5 h7f98852_2 conda-forge
yaml-cpp 0.8.0 h59595ed_0 conda-forge
yarl 1.18.3 py312h178313f_1 https://conda.anaconda.org/conda-forge
zeromq 4.3.5 h3b0a872_7 conda-forge
zict 3.0.0 pyhd8ed1ab_1 https://conda.anaconda.org/conda-forge
zipp 3.21.0 pyhd8ed1ab_1 conda-forge
zlib 1.3.1 hb9d3cd8_2 https://conda.anaconda.org/conda-forge
zstandard 0.23.0 py312h66e93f0_1 https://conda.anaconda.org/conda-forge
zstd 1.5.7 hb8e6e7a_1 https://conda.anaconda.org/conda-forge

conda env:
name: base
channels:
- https://conda.anaconda.org/conda-forge
- conda-forge
- ctc-conda-prod-3p
- ctc-conda-prod-gsd
- ctc-curated-condaforge-main
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_gnu
- aiohappyeyeballs=2.6.1=pyhd8ed1ab_0
- aiohttp=3.11.14=py312h178313f_0
- aiosignal=1.3.2=pyhd8ed1ab_0
- alembic=1.14.1=pyhd8ed1ab_0
- annotated-types=0.7.0=pyhd8ed1ab_1
- anyio=4.9.0=pyh29332c3_0
- archspec=0.2.5=pyhd8ed1ab_0
- argon2-cffi=23.1.0=pyhd8ed1ab_1
- argon2-cffi-bindings=21.2.0=py312h66e93f0_5
- arrow=1.3.0=pyhd8ed1ab_1
- asttokens=3.0.0=pyhd8ed1ab_1
- async-lru=2.0.5=pyh29332c3_0
- async-timeout=4.0.3=pyhd8ed1ab_0
- async_generator=1.10=pyhd8ed1ab_2
- attrs=25.3.0=pyh71513ae_0
- babel=2.17.0=pyhd8ed1ab_0
- beautifulsoup4=4.13.3=pyha770c72_0
- bleach=6.2.0=pyh29332c3_4
- bleach-with-css=6.2.0=h82add2a_4
- blinker=1.9.0=pyhff2d567_0
- boltons=24.0.0=pyhd8ed1ab_1
- bqplot=0.12.43=pyhd8ed1ab_1
- brotli-python=1.1.0=py312h2ec8cdc_2
- bzip2=1.0.8=h4bc722e_7
- c-ares=1.34.4=hb9d3cd8_0
- ca-certificates=2025.1.31=hbcca054_0
- cached-property=1.5.2=hd8ed1ab_1
- cached_property=1.5.2=pyha770c72_1
- cattrs=24.1.2=pyhd8ed1ab_1
- certifi=2025.1.31=pyhd8ed1ab_0
- certipy=0.2.1=pyhd8ed1ab_1
- cffi=1.17.1=py312h06ac9bb_0
- charset-normalizer=3.4.1=pyhd8ed1ab_0
- click=8.1.8=pyh707e725_0
- cloudpickle=3.1.1=pyhd8ed1ab_0
- colorama=0.4.6=pyhd8ed1ab_1
- comm=0.2.2=pyhd8ed1ab_1
- conda=25.1.1=py312h7900ff3_1
- conda-libmamba-solver=25.3.0=pyhd8ed1ab_0
- conda-package-handling=2.4.0=pyh7900ff3_2
- conda-package-streaming=0.11.0=pyhd8ed1ab_1
- cpp-expected=1.1.0=hf52228f_0
- cryptography=44.0.0=py312hda17c39_1
- ctc-jupyter-ai-glean=0.0.13=py_0
- cytoolz=1.0.1=py312h66e93f0_0
- dask-core=2025.2.0=pyhd8ed1ab_0
- dataclasses-json=0.6.7=pyhd8ed1ab_1
- debugpy=1.8.13=py312h2ec8cdc_0
- decorator=5.2.1=pyhd8ed1ab_0
- deepmerge=2.0=pyhd8ed1ab_1
- defusedxml=0.7.1=pyhd8ed1ab_0
- distributed=2025.2.0=pyhd8ed1ab_0
- distro=1.9.0=pyhd8ed1ab_1
- docstring-to-markdown=0.15=pyhd8ed1ab_1
- entrypoints=0.4=pyhd8ed1ab_1
- exceptiongroup=1.2.2=pyhd8ed1ab_1
- executing=2.1.0=pyhd8ed1ab_1
- faiss=1.9.0=py312hf23773a_0_cpu
- faiss-cpu=1.9.0=h718b53a_0
- fmt=11.0.2=h434a139_0
- fqdn=1.5.1=pyhd8ed1ab_1
- frozendict=2.4.6=py312h66e93f0_0
- frozenlist=1.5.0=py312h178313f_1
- fsspec=2025.3.0=pyhd8ed1ab_0
- gast=0.4.0=pyh9f0ad1d_0
- gitdb=4.0.12=pyhd8ed1ab_0
- gitpython=3.1.44=pyhff2d567_0
- greenlet=3.1.1=py312h2ec8cdc_1
- h11=0.14.0=pyhd8ed1ab_1
- h2=4.2.0=pyhd8ed1ab_0
- hpack=4.1.0=pyhd8ed1ab_0
- httpcore=1.0.7=pyh29332c3_1
- httpx=0.28.1=pyhd8ed1ab_0
- httpx-sse=0.4.0=pyhd8ed1ab_1
- hyperframe=6.1.0=pyhd8ed1ab_0
- icu=75.1=he02047a_0
- idna=3.10=pyhd8ed1ab_1
- importlib-metadata=8.6.1=pyha770c72_0
- importlib_resources=6.5.2=pyhd8ed1ab_0
- ipydatagrid=1.4.0=pyhd8ed1ab_1
- ipykernel=6.29.5=pyh3099207_0
- ipython=9.0.2=pyhfb0248b_0
- ipython_genutils=0.2.0=pyhd8ed1ab_2
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- ipywidgets=8.1.5=pyhd8ed1ab_1
- isoduration=20.11.0=pyhd8ed1ab_1
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhd8ed1ab_0
- jiter=0.9.0=py312h12e396e_0
- json5=0.10.0=pyhd8ed1ab_1
- jsonpatch=1.33=pyhd8ed1ab_1
- jsonpath-ng=1.6.1=pyhd8ed1ab_1
- jsonpointer=3.0.0=py312h7900ff3_1
- jsonschema=4.23.0=pyhd8ed1ab_1
- jsonschema-specifications=2024.10.1=pyhd8ed1ab_1
- jsonschema-with-format-nongpl=4.23.0=hd8ed1ab_1
- jupyter-ai=2.30.0=pyhd8ed1ab_0
- jupyter-ai-magics=2.30.0=pyhd8ed1ab_0
- jupyter-lsp=2.2.5=pyhd8ed1ab_1
- jupyter-resource-usage=1.1.1=pyhd8ed1ab_0
- jupyter-ruff=0.2.0=pyhd8ed1ab_0
- jupyter-server-mathjax=0.2.6=pyhbbac1ac_2
- jupyter_client=8.6.3=pyhd8ed1ab_1
- jupyter_core=5.7.2=pyh31011fe_1
- jupyter_events=0.12.0=pyh29332c3_0
- jupyter_server=2.15.0=pyhd8ed1ab_0
- jupyter_server_terminals=0.5.3=pyhd8ed1ab_1
- jupyterhub-base=5.2.1=pyh31011fe_0
- jupyterhub-singleuser=5.2.1=pyh31011fe_0
- jupyterlab=4.3.6=pyhd8ed1ab_0
- jupyterlab-git=0.51.0=pyhd8ed1ab_0
- jupyterlab-lsp=5.1.0=pyhd8ed1ab_3
- jupyterlab-plotly-extension=1.0.0=py_0
- jupyterlab_execute_time=3.2.0=pyhd8ed1ab_1
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- jupyterlab_server=2.27.3=pyhd8ed1ab_1
- jupyterlab_widgets=3.0.13=pyhd8ed1ab_1
- jupytext=1.16.7=pyhbbac1ac_0
- keyutils=1.6.1=h166bdaf_0
- krb5=1.21.3=h659f571_0
- langchain=0.3.21=pymin312_hff2d567_0
- langchain-community=0.3.20=pymin312_hff2d567_0
- langchain-core=0.3.45=pyhd8ed1ab_0
- langchain-openai=0.3.9=pyhd8ed1ab_0
- langchain-text-splitters=0.3.7=pyhd8ed1ab_0
- langsmith=0.2.11=pyhd8ed1ab_0
- ld_impl_linux-64=2.43=h712a8e2_4
- libarchive=3.7.7=h4585015_3
- libblas=3.9.0=31_h59b9bed_openblas
- libcblas=3.9.0=31_he106b2a_openblas
- libcurl=8.12.1=h332b0f4_0
- libedit=3.1.20250104=pl5321h7949ede_0
- libev=4.33=hd590300_2
- libexpat=2.6.4=h5888daf_0
- libfaiss=1.9.0=h72e5a87_0_cpu
- libffi=3.4.6=h2dba641_0
- libgcc=14.2.0=h767d61c_2
- libgcc-ng=14.2.0=h69a702a_2
- libgfortran=14.2.0=h69a702a_2
- libgfortran5=14.2.0=hf1ad2bd_2
- libgomp=14.2.0=h767d61c_2
- libiconv=1.18=h4ce23a2_1
- liblapack=3.9.0=31_h7ac8fdf_openblas
- liblzma=5.6.4=hb9d3cd8_0
- libmamba=2.0.8=h326b718_0
- libmambapy=2.0.8=py312h8079299_0
- libnghttp2=1.64.0=h161d5f1_0
- libnsl=2.0.1=hd590300_0
- libopenblas=0.3.29=pthreads_h94d23a6_0
- libsodium=1.0.20=h4ab18f5_0
- libsolv=0.7.30=h3509ff9_0
- libsqlite=3.49.1=hee588c1_2
- libssh2=1.11.1=hf672d98_0
- libstdcxx=14.2.0=h8f9b012_2
- libstdcxx-ng=14.2.0=h4852527_2
- libuuid=2.38.1=h0b41bf4_0
- libuv=1.50.0=hb9d3cd8_0
- libxcrypt=4.4.36=hd590300_1
- libxml2=2.13.6=h8d12d68_0
- libzlib=1.3.1=hb9d3cd8_2
- locket=1.0.0=pyhd8ed1ab_0
- lsprotocol=2023.0.1=pyhd8ed1ab_1
- lz4-c=1.10.0=h5888daf_1
- lzo=2.10=hd590300_1001
- mako=1.3.8=pyhd8ed1ab_0
- mamba=2.0.8=h17bb787_0
- markdown-it-py=3.0.0=pyhd8ed1ab_1
- markupsafe=3.0.2=py312h178313f_1
- marshmallow=3.26.1=pyhd8ed1ab_0
- matplotlib-inline=0.1.7=pyhd8ed1ab_1
- mdit-py-plugins=0.4.2=pyhd8ed1ab_1
- mdurl=0.1.2=pyhd8ed1ab_1
- menuinst=2.2.0=py312h7900ff3_0
- mistune=3.1.3=pyh29332c3_0
- msgpack-python=1.1.0=py312h68727a3_0
- multidict=6.2.0=py312h178313f_0
- mypy_extensions=1.0.0=pyha770c72_1
- narwhals=1.31.0=pyhd8ed1ab_0
- nbclassic=1.2.0=pyhd8ed1ab_0
- nbclient=0.10.2=pyhd8ed1ab_0
- nbconvert=7.16.6=hb482800_0
- nbconvert-core=7.16.6=pyh29332c3_0
- nbconvert-pandoc=7.16.6=hed9df3c_0
- nbdime=4.0.2=pyhd8ed1ab_1
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.5=h2d0b736_3
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- nlohmann_json=3.11.3=he02047a_1
- nodejs=22.13.0=hf235a45_0
- notebook=7.3.2=pyhd8ed1ab_0
- notebook-shim=0.2.4=pyhd8ed1ab_1
- numpy=1.26.4=py312heda63a1_0
- oauthlib=3.2.2=pyhd8ed1ab_1
- openai=1.66.5=pyhd8ed1ab_0
- openssl=3.4.1=h7b32b05_0
- orjson=3.10.15=py312h12e396e_0
- overrides=7.7.0=pyhd8ed1ab_1
- packaging=24.2=pyhd8ed1ab_2
- pamela=1.2.0=pyhd8ed1ab_1
- pandas=2.2.3=py312hf9745cd_1
- pandoc=3.6.4=ha770c72_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- parso=0.8.4=pyhd8ed1ab_1
- partd=1.4.2=pyhd8ed1ab_0
- pexpect=4.9.0=pyhd8ed1ab_1
- pickleshare=0.7.5=pyhd8ed1ab_1004
- pip=25.0.1=pyh8b19718_0
- pkgutil-resolve-name=1.3.10=pyhd8ed1ab_2
- platformdirs=4.3.6=pyhd8ed1ab_1
- plotly=6.0.1=pyhd8ed1ab_0
- pluggy=1.5.0=pyhd8ed1ab_1
- ply=3.11=pyhd8ed1ab_3
- prometheus_client=0.21.1=pyhd8ed1ab_0
- prompt-toolkit=3.0.50=pyha770c72_0
- propcache=0.2.1=py312h178313f_1
- psutil=5.9.8=py312h98912ed_0
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
- py2vega=0.6.1=pyhd8ed1ab_0
- pybind11-abi=4=hd8ed1ab_3
- pycosat=0.6.6=py312h66e93f0_2
- pycparser=2.22=pyh29332c3_1
- pydantic=2.10.6=pyh3cfb1c2_0
- pydantic-core=2.27.2=py312h12e396e_0
- pydantic-settings=2.8.1=pyh3cfb1c2_0
- pygments=2.19.1=pyhd8ed1ab_0
- pyjwt=2.10.1=pyhd8ed1ab_0
- pysocks=1.7.1=pyha55dd90_7
- python=3.12.9=h9e4cc4f_1_cpython
- python-dateutil=2.9.0.post0=pyhff2d567_1
- python-dotenv=1.0.1=pyhd8ed1ab_1
- python-fastjsonschema=2.21.1=pyhd8ed1ab_0
- python-json-logger=2.0.7=pyhd8ed1ab_0
- python-lsp-jsonrpc=1.1.2=pyhff2d567_1
- python-lsp-ruff=2.2.2=pyhd8ed1ab_1
- python-lsp-server-base=1.12.2=pyhd8ed1ab_0
- python-tzdata=2025.1=pyhd8ed1ab_0
- python_abi=3.12=5_cp312
- pytz=2024.1=pyhd8ed1ab_0
- pyyaml=6.0.2=py312h178313f_2
- pyzmq=26.3.0=py312hbf22597_0
- readline=8.2=h8c095d6_2
- referencing=0.36.2=pyh29332c3_0
- regex=2024.11.6=py312h66e93f0_0
- reproc=14.2.5.post0=hb9d3cd8_0
- reproc-cpp=14.2.5.post0=h5888daf_0
- requests=2.32.3=pyhd8ed1ab_1
- requests-toolbelt=1.0.0=pyhd8ed1ab_1
- retrying=1.3.4=pyhd8ed1ab_0
- rfc3339-validator=0.1.4=pyhd8ed1ab_1
- rfc3986-validator=0.1.1=pyh9f0ad1d_0
- rpds-py=0.23.1=py312h3b7be25_0
- ruamel.yaml=0.18.10=py312h66e93f0_0
- ruamel.yaml.clib=0.2.8=py312h66e93f0_1
- ruff=0.11.0=py312hf79aa60_0
- send2trash=1.8.3=pyh0d859eb_1
- setuptools=75.8.2=pyhff2d567_0
- simdjson=3.12.2=h84d6215_0
- six=1.17.0=pyhd8ed1ab_0
- smmap=5.0.2=pyhd8ed1ab_0
- sniffio=1.3.1=pyhd8ed1ab_1
- sortedcontainers=2.4.0=pyhd8ed1ab_1
- soupsieve=2.5=pyhd8ed1ab_1
- spdlog=1.15.1=hb29a8c4_0
- sqlalchemy=2.0.39=py312h66e93f0_1
- stack_data=0.6.3=pyhd8ed1ab_1
- tblib=3.0.0=pyhd8ed1ab_1
- tenacity=9.0.0=pyhd8ed1ab_1
- terminado=0.18.1=pyh0d859eb_0
- tiktoken=0.9.0=py312h14ff09d_0
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=noxft_h4845f30_101
- tomli=2.2.1=pyhd8ed1ab_1
- toolz=1.0.0=pyhd8ed1ab_1
- tornado=6.4.2=py312h66e93f0_0
- tqdm=4.67.1=pyhd8ed1ab_1
- traitlets=5.14.3=pyhd8ed1ab_1
- traittypes=0.2.1=pyh9f0ad1d_2
- truststore=0.10.1=pyh29332c3_0
- types-python-dateutil=2.9.0.20241206=pyhd8ed1ab_0
- typing-extensions=4.12.2=hd8ed1ab_1
- typing_extensions=4.12.2=pyha770c72_1
- typing_inspect=0.9.0=pyhd8ed1ab_1
- typing_utils=0.1.0=pyhd8ed1ab_1
- tzdata=2025a=h78e105d_0
- ujson=5.10.0=py312h2ec8cdc_1
- uri-template=1.3.0=pyhd8ed1ab_1
- urllib3=2.3.0=pyhd8ed1ab_0
- voila=0.5.8=pyhd8ed1ab_2
- wcwidth=0.2.13=pyhd8ed1ab_1
- webcolors=24.11.1=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- websocket-client=1.8.0=pyhd8ed1ab_1
- websockets=15.0.1=py312h66e93f0_0
- wheel=0.45.1=pyhd8ed1ab_1
- widgetsnbextension=4.0.13=pyhd8ed1ab_1
- yaml=0.2.5=h7f98852_2
- yaml-cpp=0.8.0=h59595ed_0
- yarl=1.18.3=py312h178313f_1
- zeromq=4.3.5=h3b0a872_7
- zict=3.0.0=pyhd8ed1ab_1
- zipp=3.21.0=pyhd8ed1ab_1
- zlib=1.3.1=hb9d3cd8_2
- zstandard=0.23.0=py312h66e93f0_1
- zstd=1.5.7=hb8e6e7a_1
- pip:
- jupyterlab-datadog-rum==0.0.2
- jupyterlab-ensure-clone==0.1.8
- jupyterlab-freeze==0.1.2
- jupyterlab-quick-share==0.1.6
prefix: /opt/conda

Command Line Output Only relevant output is
[I 2025-03-21 13:21:42.757 ServerApp] jupyter_resource_usage | extension was successfully loaded.
which does not differ between enabling and disabling `track_cpu_percent`
Browser Output Does not differ between enabling and disabling `track_cpu_percent`
@ctcjab ctcjab added the bug label Mar 21, 2025
@ctcjab
Copy link
Author

ctcjab commented Mar 21, 2025

Meant to say, text input in notebooks and in text editor tabs is not affected. The severe input lag has only been observed in the integrated terminal thus far.

@krassowski
Copy link
Collaborator

Maybe adding oneshot context around:

@web.authenticated
async def get(self):
"""
Calculate and return current resource usage metrics
"""

could help? as per https://gmpy.dev/blog/2016/psutil-550-is-twice-as-fast

Also the code is calling cpu_percent with non-zero interval for each process which is likely the source of the problem.

return p.cpu_percent(interval=0.05)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants