Skip to main content

ml-std

The standard library for Brunost ML and RL tasks.

One pinned set of packages. The Judge's ML sandbox image installs exactly one release of ml-std; a contestant installs the same release and has the Judge's environment on their own machine:

pip install ml-std==2.0.0
python -m ml_std check      # "environment matches the Judge runtime"

On Linux x86_64 add --extra-index-url https://download.pytorch.org/whl/cpu to get the CPU build of PyTorch (the Judge runs CPU workers; the default PyPI wheel drags in CUDA libraries). macOS and aarch64 wheels are CPU-only.

Nothing else is importable inside the Judge (no network, no pip), so this package's dependency list is the complete answer to "what can I use?".

What is in it

The contest environment of IOAI 2025 (Python 3.12.7, requirements.txt), reduced to the ML-relevant packages and pinned at exactly their versions, so training for Brunost is training for the Olympiad:

Area Packages
Deep learning torch 2.7.1, torchvision 0.22.1, torchaudio 2.7.1, pytorch-lightning 2.5.2, timm 1.0.16, einops 0.8.1
Hugging Face transformers 4.54.0, tokenizers 0.21.2, datasets 3.6.0, huggingface-hub 0.34.2, safetensors 0.5.3, accelerate 1.8.1, peft 0.16.0, sentence-transformers 4.1.0, sentencepiece 0.2.1, evaluate 0.4.4
Classic ML and data numpy 2.2.6, pandas 2.2.3, scipy 1.14.1, scikit-learn 1.6.1, xgboost 3.0.2, lightgbm 4.6.0, catboost 1.2.8, statsmodels 0.14.4, numba 0.61.2, pyarrow 20.0.0, networkx 3.4.2
Images, audio, text pillow 11.1.0, scikit-image 0.25.0, librosa 0.11.0, nltk 3.9.1, spacy 3.8.7
Plotting matplotlib 3.10.0, seaborn 0.13.2
RL and testing gymnasium 1.2.0, pytest 8.4.1, tqdm 4.67.1

Deviations from IOAI 2025, both forced by Python 3.13 wheels: scipy 1.14.1 (IOAI 1.13.1) and sentencepiece 0.2.1 (IOAI 0.2.0). Left out on purpose: GPU-only packages (bitsandbytes, diffusers), notebooks (jupyter, ipykernel) and API clients, which are not part of a judged solution.

ml-std Judge runtime Python
2.0.0 python-3.13-ml-v1 3.13

Releasing a new runtime

  1. Change the pins in pyproject.toml, bump version there and __version__.
  2. python -m ml_std catalog > src/ml_std/runtimes/<version>.json (keep the old files: earlier runtimes stay known).
  3. Set RUNTIME to the new runtime name (python-3.13-ml-v2, ...).
  4. Build and publish the wheel; build the Judge image with ML_STD_SPEC=ml-std==<version> and map the new runtime in BRUNOST_JUDGE_SANDBOX_IMAGES.

Tasks already published keep their runtime; new tasks default to the newest. python -m ml_std runtimes prints every runtime this release knows about, which is what the Judge's GET /v1/runtimes serves to the task editor.

Release files for ml-std 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ml-std 2.0.0
File Size Uploaded
ml_std-2.0.0.tar.gz 7.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ml-std 2.0.0
File Interpreter ABI Platform
ml_std-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.5 kB

Release files / ml_std-2.0.0.tar.gz

Download URL ml_std-2.0.0.tar.gz
Size 7.6 kB
Tags Source
SHA-256 checksum
How to use checksums
6fa8ef6158c230472aaf3dc4fadfe389c892cce7c46e4516719bb7247b0e5347
BLAKE2b-256 checksum
How to use checksums
8e8aec7867a7a3fcb58e2831e958885d19c332571ceaebf3d4dff5a597138cae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / ml_std-2.0.0-py3-none-any.whl

Download URL ml_std-2.0.0-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ce0b83671fd57ee133ce63cd9ff8f3965ad82ffc7b672cc75d1f09e231c82ae
BLAKE2b-256 checksum
How to use checksums
68599e8c2ee796a6875edb2e6d386e8938f400570e89c2bd66c64756e22cc99a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page