raid
Python client for the RAID competition system.
pip install mlsec-raid # or: uv tool install mlsec-raid
export RAID_KEY=<your-api-key> # or pass --api-key <your-api-key>
task-fetch <challenge> # downloads the challenge into ./<challenge>/
task-check <challenge> # scores it locally with scoring/score.py on its data, in a container
task-check method <challenge> # only the method: runs method/run like our backend's sanity check
task-check artifact <challenge> # only the artifact: scores artifact/result/
task-submit <challenge> # submits ./<challenge>/ without its data, scoring/ and .raidignore patterns
task-show # lists your jobs with their state (pending, running, success, failed) and
# score, and the submissions left today on challenges with a daily limit
task-log <job> # prints the log of a finished job, including the errors of your solution
Every command also works as task <command>, e.g. task submit <challenge> or task check method <challenge>.
Challenges like dawn separate the method from the artifact:
<challenge>/
artifact/data/ the data, never submitted
artifact/result/ the artifact you submit, e.g. dawn's re-implementations
method/run your method, which the backend runs once as a sanity check (dawn: on the simple target)
scoring/score.py method(), artifact() and score(), the backend's scoring
setup.sh your installs
task-check runs scoring/score.py in the container raid-<challenge>, built like the backend's sandbox: with Docker an image on Debian trixie (slim) with python3 and the challenge's Debian packages (scoring/packages.txt), in which the challenge's setup.sh runs as root during the build; with only udocker (pip install udocker) a udocker container of debian:trixie set up the same way. It is built again only when setup.sh or the packages change (their hash is the image's raid.setup label, or /etc/raid-setup.sha256 in the udocker container), or with --rebuild. Like on the backend, score.py sees only Debian's Python packages; unlike there, the method may use the internet. task-check method calls score.py's method(), task-check artifact its artifact() and task-check its score(), which checks the method first and then the artifact. Challenges without that split (e.g. self-assessment) have only task-check <challenge>. --no-container checks on this machine instead.
The same is available in Python: Raid(api_key).fetch(...), .check(...), .submit(...), .push(...), .wait(id), .status(), .log(id), .howto().
Challenge authors: task-check <challenge> --hidden --reference scores reference/ on hidden/ (the packages come from challenge.yaml). Admins upload a challenge directory with task-push <directory> and their own API key (created in the admin console): the directory's challenge.yaml sets the name, version, wave, baseline, badge and submissions_per_day (keys it leaves out keep their current values), and the upload becomes the active version.
Development: uv sync sets up the environment, uv build builds the package. Set RAID_URL to use another server. Release: bump version in pyproject.toml, then uv build && uv publish (PyPI token in UV_PUBLISH_TOKEN).
Metadata
Release files for mlsec-raid 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mlsec_raid-0.5.0.tar.gz | 13.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mlsec_raid-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.1 kB
Release files / mlsec_raid-0.5.0.tar.gz
| Download URL | mlsec_raid-0.5.0.tar.gz |
|---|---|
| Size | 13.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ff6bdad6f960ab7619942b2972fe569cbcd2f2fc122b5f2393f84e2dc55b4131
|
|
BLAKE2b-256 checksum How to use checksums |
33a2779b3db5b6b84c79174aa3098e01031b27d21302361068b8b6625a8569d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / mlsec_raid-0.5.0-py3-none-any.whl
| Download URL | mlsec_raid-0.5.0-py3-none-any.whl |
|---|---|
| Size | 16.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f6c0d711bce77dbf2c67f55c608ef6db9cc2660426bab75499fc19b2e1ae0722
|
|
BLAKE2b-256 checksum How to use checksums |
cbf7210cf7756f58ec20616d210f8fed5b712c4f3763042981b984e38eb6d337
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|