Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/facett

py/requirements.txt

# facett-demo — pinned runtime deps.
#
# ⚠ THIS FILE IS NOT INSTALLED ON THE HOST. The owner, 2026-09-05: "use a CONTAINER for
# the horrible python language". The demo runs in `nordisk-streamlit`, which pins the
# three RUNTIME versions below as build ARGs; `cargo ops streamlit` builds it and
# `cargo ops test-demo` runs the suite in it. This file is the one WRITER for those
# versions, and `xtask/tests/streamlit_image_matches_requirements.rs` fails if the
# image and this file ever disagree.
#
# The packages under test are NOT listed here on purpose: the `facett` and
# `facett-demo` WHEELS (built by `cargo ops publish-pip`) are installed at run time —
# from the built wheelhouse, or from a PEP 503 index (`--index <url>`) — because a
# dependency baked in ahead of time could not tell us whether the release works.
# What a USER installs is declared in pyproject.toml (`facett[streamlit]`, and the
# optional `[korp]` extra = grpcio + protobuf); this file pins the image.

streamlit==1.60.0
grpcio==1.83.0
protobuf==7.35.1

# dev / regeneration + tests (also installed in the image — the suite runs there too)
grpcio-tools==1.83.0
pytest==9.1.1

# ── REMOVED 2026-09-05, and why ─────────────────────────────────────────────────
#
# plotly / pandas / altair / numpy / pyarrow — GONE from the pinned set, and NOT
# because a pane still needs them. MEASURED 2026-09-05 across all of py/: not one
# module imports pandas, plotly, altair or numpy, and there is not one call to
# st.line_chart / st.bar_chart / st.plotly_chart / st.dataframe / st.table /
# st.metric anywhere. Every pane mounts wasm components through facett_component.
#
# The 2026-09-05 t14s audit listed population_pane.py as a live Plotly renderer.
# That was stale — its own docstring says "It PREVIOUSLY used pandas + plotly +
# st.dataframe", and it now mounts `table` and `stat-grid`. Somebody converted it
# before this lane started. These pins were the last trace of the old way.
#
# Held there by py/tests/test_gallery_pane.py, which walks the AST of every module
# (grepping the source would fail on a docstring that merely NAMES the forbidden
# calls in order to forbid them — the first version of that guard did exactly that).
#
# The three ghost lines that used to sit at the bottom of this file are gone too.
# They said:
# It told the reader to run an xtask verb that does not exist, in order to
# `pip install -e` a sibling crate that does not exist. Neither the crate nor the verb
# has been in this repo for months, so anyone following those two lines got an
# `unknown command` and no way to tell whether they had typed it wrong.
# removed long ago and the instruction outlived them, so anyone following this file
# was told to run a command that does not exist in order to install a package that
# does not exist. The real path is `cargo xtask wrap-wasm && cargo ops publish-pip`,
# then install the `facett` + `facett-demo` wheels.