diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 99fef34..96bd166 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -29,21 +29,21 @@ jobs:
with:
enable-cache: true
- name: Install test dependencies
- run: uv sync --locked --group dev --group cpu --extra leaderboard --extra plots --extra rt
+ run: uv sync --all-packages --locked --group dev --group cpu --extra leaderboard --extra plots --extra rt
- name: Verify test interpreter
env:
EXPECTED_PYTHON: ${{ matrix.python-version }}
run: |
- uv run python -c 'import os, sys; actual = f"{sys.version_info.major}.{sys.version_info.minor}"; expected = os.environ["EXPECTED_PYTHON"]; assert actual == expected, f"Expected Python {expected}, got {actual}"'
+ uv run --no-sync python -c 'import os, sys; actual = f"{sys.version_info.major}.{sys.version_info.minor}"; expected = os.environ["EXPECTED_PYTHON"]; assert actual == expected, f"Expected Python {expected}, got {actual}"'
- name: Check formatting and lint
run: |
- uv run ruff format --check .
- uv run ruff check .
+ uv run --no-sync ruff format --check .
+ uv run --no-sync ruff check .
- name: Run tests
env:
OMP_NUM_THREADS: "1"
- run: uv run pytest
+ run: uv run --no-sync pytest
- name: Build distributions
- run: uv build
+ run: uv build --all-packages
- name: Verify required package data
run: python workflows/verify_distributions.py
diff --git a/AGENTS.md b/AGENTS.md
index 7b1a15f..6be1ecf 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -70,7 +70,7 @@ macOS-only AutoGluon/LightGBM issue
locally on macOS, prefix with the env var:
```bash
-OMP_NUM_THREADS=1 uv run pytest # otherwise: "Fatal Python error: Segmentation fault" in lightgbm
+OMP_NUM_THREADS=1 uv run --all-packages pytest # otherwise: "Fatal Python error: Segmentation fault" in lightgbm
```
(There's no clean *permanent* local fix under `uv`: symlinking one `libomp` β e.g.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b0baaf3..f63b7b6 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -8,8 +8,8 @@ improvements, new model integrations, and reproducibility fixes are welcome.
RelArena requires Python 3.11 and uses [uv](https://docs.astral.sh/uv/):
```bash
-uv sync --group dev --group cpu --extra leaderboard --extra plots
-uv run pre-commit install
+uv sync --all-packages --group dev --group cpu --extra leaderboard --extra plots
+uv run --all-packages pre-commit install
```
On macOS, prefix test and CLI commands with `OMP_NUM_THREADS=1` to avoid the
@@ -18,10 +18,10 @@ known conflict between the OpenMP runtimes bundled by PyTorch and LightGBM.
Before opening a pull request, run:
```bash
-uv run ruff format --check .
-uv run ruff check .
-OMP_NUM_THREADS=1 uv run pytest
-uv build
+uv run --all-packages ruff format --check .
+uv run --all-packages ruff check .
+OMP_NUM_THREADS=1 uv run --all-packages pytest
+uv build --all-packages
```
For model integrations, follow [docs/adding-a-model.md](docs/adding-a-model.md).
diff --git a/README.md b/README.md
index b3a0189..3a50bd7 100644
--- a/README.md
+++ b/README.md
@@ -186,7 +186,7 @@ preprocessing cost.
π§© Add your own model β the fit / predict contract plus a search space
We want the set of included baselines to be as representative as possible, so adding a method is
-meant to be cheap. A model is a folder under `src/relarena/models/` implementing the
+meant to be cheap. A model is a folder under `packages/relarena/src/relarena/models/` implementing the
`RelArenaModel` contract (`fit` and `predict`) with a `SearchSpace` registered via
`@register_model(search_space=...)`; an end-to-end procedure implements
`RelArenaSystem.run` and uses `@register_system`. The registry discovers the folder automatically.
@@ -220,7 +220,7 @@ predictions = PredictiveQuery(spec).fit("tabpfn-rel-client").predict()
Any registered RelArena-Ξ± method runs this way, hyperparameter tuning included. See
[docs/predictive-task.md](docs/predictive-task.md) for the task definition, SQL rules, split
semantics, and worked examples;
-[`src/relarena/userdb/relbench_v1/`](src/relarena/userdb/relbench_v1) for example specifications
+[`packages/relarena/src/relarena/userdb/relbench_v1/`](packages/relarena/src/relarena/userdb/relbench_v1) for example specifications
covering all 21 entity-level RelBench v1 tasks; and
[`examples/olist_seller_churn.py`](examples/olist_seller_churn.py) for the full path on a real
7-table Kaggle database. That example predicts seller churn, where held-out ROC AUC is 0.50 for
@@ -246,7 +246,7 @@ preprocessing and GPU-bound training have different hardware requirements. RelAr
permits methods to compute preprocessing artifacts once and cache them on disk before a run.
Caching is not required. RelArena provides an **optional, experimental** helper API in
-[`relarena.cache`](src/relarena/cache.py) for local paths, miss policies, private scratch
+[`relarena.cache`](packages/relarena/src/relarena/cache.py) for local paths, miss policies, private scratch
computation, and atomic publication. A method may ignore this API and implement caching
independently. The helper does not bring cache warming into a timed RelArena experiment;
preprocessing scripts still run separately, so their runtime is not currently included in the
@@ -289,7 +289,7 @@ those nodes. The workflow warms every RelBench v1 task:
```bash
RELARENA_CACHE_DIR=~/relarena-cache \
- uv run --extra rdblearn python workflows/warm_feature_cache.py
+ uv run --all-packages --extra rdblearn python workflows/warm_feature_cache.py
```
It invokes `relarena.featurization.warm_cache` for both protocol splits and warms both
@@ -390,8 +390,8 @@ checkout for those.
```bash
git clone https://github.com/PriorLabs/relarena.git
cd relarena
-uv sync # the dev group (pytest, ruff, ...) installs by default
-OMP_NUM_THREADS=1 uv run pytest # the prefix is required on macOS; harmless elsewhere
+uv sync --all-packages # the dev group (pytest, ruff, ...) installs by default
+OMP_NUM_THREADS=1 uv run --all-packages pytest # the prefix is required on macOS; harmless elsewhere
```
Add `--group cpu` for the CPU-only torch build instead of the CUDA one, and
@@ -404,17 +404,17 @@ pinned by `uv.lock`).
π οΈ Developer setup β everything, plus pre-commit
```bash
-uv sync --group dev --group cpu --extra leaderboard --extra plots
-uv run pre-commit install
+uv sync --all-packages --group dev --group cpu --extra leaderboard --extra plots
+uv run --all-packages pre-commit install
```
Before opening a pull request:
```bash
-uv run ruff format --check .
-uv run ruff check .
-OMP_NUM_THREADS=1 uv run pytest
-uv build
+uv run --all-packages ruff format --check .
+uv run --all-packages ruff check .
+OMP_NUM_THREADS=1 uv run --all-packages pytest
+uv build --all-packages
```
See [CONTRIBUTING.md](CONTRIBUTING.md) and, for agent-facing notes, [AGENTS.md](AGENTS.md).
@@ -453,7 +453,7 @@ currently supported by RelArena's RT integration, and a GPU is strongly recommen
fine-tuning runtimes.
```bash
-uv sync --extra rt # from a source checkout
+uv sync --all-packages --extra rt # from a source checkout
pip install "relarena[rt]" # from a release
```
@@ -563,8 +563,8 @@ pretrained on PluRel-generated synthetic data and fine-tuned on the given task w
sequential tuning regime. KurveRSC jointly selects a GraphReduce feature program and downstream
learner on the inner split, then freezes and replays that exact operation plan in its reporting
arm. Their protocols and configured values are documented in
-[`models/rt/model.py`](src/relarena/models/rt/model.py) and
-[`models/kurversc/model.py`](src/relarena/models/kurversc/model.py). Each produces one system row
+[`models/rt/model.py`](packages/relarena/src/relarena/models/rt/model.py) and
+[`models/kurversc/model.py`](packages/relarena/src/relarena/models/kurversc/model.py). Each produces one system row
with real test metrics and complete runtime, without a harness config or validation score.
Everything else per method lives at its source: install caveats in
@@ -606,7 +606,7 @@ from RDBLearn and improves on it in four ways:
```
relarena/
-βββ src/relarena/ # the package
+βββ packages/relarena/src/relarena/ # the package
β βββ model.py # RelArenaModel, the contract every model implements
β βββ search_space.py # SearchSpace, declarative HPO space (ConfigSpace or grid)
β βββ registry.py # string-keyed model registry, binds model to search space
diff --git a/packages/relarena/LICENSE b/packages/relarena/LICENSE
new file mode 100644
index 0000000..830a28f
--- /dev/null
+++ b/packages/relarena/LICENSE
@@ -0,0 +1,200 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2026 PriorLabs GmbH
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
diff --git a/packages/relarena/NOTICE b/packages/relarena/NOTICE
new file mode 100644
index 0000000..e19d8aa
--- /dev/null
+++ b/packages/relarena/NOTICE
@@ -0,0 +1,71 @@
+relarena
+Copyright 2026 PriorLabs GmbH
+
+Licensed under the Apache License, Version 2.0. See the LICENSE file.
+
+This product includes third-party software. The following components are used
+under the MIT license, with the upstream copyright notice and license text
+retained alongside the code in this package:
+
+ * RelBench example GNN building blocks
+ Copyright (c) 2023 RelBench Team
+ https://github.com/snap-stanford/relbench
+ src/relarena/models/_shared/gnn/_vendor/gnn.py
+
+ * RelGNN composite-message-passing GNN
+ Copyright (c) 2023 RelBench Team
+ https://github.com/snap-stanford/RelGNN
+ src/relarena/models/relgnn/_vendor/
+
+ * RelGT Relational Graph Transformer
+ Copyright (c) 2025 Vijay Prakash Dwivedi, Sri Jaladi, Yangyi Shen,
+ Federico LΓ³pez, Charilaos I. Kanatsoulis, Rishi Puri, Matthias Fey,
+ Jure Leskovec
+ https://github.com/snap-stanford/relgt
+ src/relarena/models/relgt/_vendor/
+
+The following upstream works are acknowledged for attribution; no files are
+copied into this package:
+
+ * RDBLearn (method adaptation), licensed under Apache-2.0
+ Copyright (c) HKU Shanghai X-Lab
+ https://github.com/HKUSHXLab/rdblearn
+ src/relarena/models/rdblearn/model.py, src/relarena/models/_shared/tfm/tfm.py,
+ src/relarena/featurization/dfs.py
+
+ * Relational Transformer (RT) (dependency)
+ Copyright (c) 2025 Stanford STAR / Relational Transformer authors
+ https://github.com/rishabh-ranjan/relational-transformer
+ src/relarena/models/rt/ -- installed from the `rt` extra, not vendored.
+
+Datasets are not distributed with this package. They are downloaded at runtime by
+relbench and remain subject to their own upstream terms.
+
+Vendored component provenance
+-----------------------------
+
+RelBench example GNN building blocks were copied from
+https://github.com/snap-stanford/relbench at commit 74d4c37
+(`examples/model.py` and `examples/text_embedder.py`). Their imports were merged
+into `src/relarena/models/_shared/gnn/_vendor/gnn.py`; only Ruff formatting was
+otherwise normalized. The GNN layers themselves are imported from the installed
+`relbench.modeling.nn` package and are not copied.
+
+RelGNN model building blocks were copied from
+https://github.com/snap-stanford/RelGNN at commit cffdb8b. The upstream example
+modules were split into the matching modules under
+`src/relarena/models/relgnn/_vendor/`; package imports were rewritten and Ruff
+formatting normalized. Duplicate RelBench encoders were not copied.
+
+RelGT model and sampler building blocks were copied from
+https://github.com/snap-stanford/relgt at commit 19e423ca. Upstream `utils.py`
+became `_sampler.py` and retains only the sampler functions and globals RelArena
+uses; inter-module imports were rewritten to package paths and Ruff formatting
+normalized. `models/relgt/model.py` and `models/relgt/tokenize.py` are original
+RelArena adapter code, not vendored files.
+
+RDBLearn is a method adaptation rather than a file copy. RelArena reimplements
+the Deep Feature Synthesis to tabular-foundation-model recipe from
+https://github.com/HKUSHXLab/rdblearn. The closest adaptation is the
+non-stratified train downsampling in `models/_shared/tfm/tfm.py`; RelArena's DFS
+cache and TabPFN-Rel extensions are original work.
diff --git a/packages/relarena/README.md b/packages/relarena/README.md
new file mode 100644
index 0000000..4105f0f
--- /dev/null
+++ b/packages/relarena/README.md
@@ -0,0 +1,19 @@
+# RelArena
+
+RelArena benchmarks relational prediction models with shared temporal validation,
+tuning and reporting. It includes baseline models and adapters for RelBench tasks.
+
+```bash
+pip install relarena
+relarena --list
+```
+
+Install TabPFN-Rel for benchmarking with a local or hosted backend:
+
+```bash
+pip install "relarena[tabpfn-rel-local]"
+# Or: pip install "relarena[tabpfn-rel-api]"
+relarena --model tabpfn-rel-local --datasets rel-f1 --tasks driver-dnf --n-trials 1
+```
+
+[Documentation and contributor guide](https://github.com/PriorLabs/relarena#readme).
diff --git a/packages/relarena/pyproject.toml b/packages/relarena/pyproject.toml
new file mode 100644
index 0000000..9382e89
--- /dev/null
+++ b/packages/relarena/pyproject.toml
@@ -0,0 +1,110 @@
+[build-system]
+requires = ["uv_build>=0.11.15"]
+build-backend = "uv_build"
+
+[project]
+name = "relarena"
+version = "0.0.1"
+authors = [{ name = "Prior Labs" }]
+license = "Apache-2.0"
+license-files = ["LICENSE", "NOTICE", "src/relarena/models/VENDORED-LICENSES"]
+description = "A unified, fair benchmarking framework for models on relational tasks on RelBench databases."
+readme = "README.md"
+requires-python = ">=3.11,<3.13"
+keywords = [
+ "benchmarking",
+ "machine-learning",
+ "relational-learning",
+ "relbench",
+ "tabular-data",
+]
+classifiers = [
+ "Development Status :: 3 - Alpha",
+ "License :: OSI Approved :: Apache Software License",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
+]
+dependencies = [
+ # Pinned exactly: RelBench ships the dataset/task SHA256 checksums in the package
+ # itself (relbench/datasets/hashes.json, relbench/tasks/hashes.json, wired into the
+ # pooch registries in relbench/datasets/__init__.py and relbench/tasks/__init__.py),
+ # so the package version is the data version. Pinning keeps a resolver bump from
+ # swapping in a release with different data. Only bump the relbench version
+ # deliberately (see below).
+ # When upgrading: re-run `python workflows/record_checksums.py` and confirm the
+ # recorded split checksums (src/relarena/checksums/relbench_v1_checksums.json) are unchanged β a new
+ # RelBench release may reprocess the data even if the splits look unchanged.
+ # (Also re-record whenever dataset.drop_noncanonical_columns changes.)
+ "relbench==2.1.2",
+ "numpy>=1.24",
+ # Mirrors fastdfs' own pandas range (the dfs extras resolve it);
+ # anything below 2.3.3 is unsatisfiable here.
+ "pandas>=2.3.3,<3.0",
+ "scikit-learn>=1.3",
+ "configspace>=1.0",
+ # pyyaml: loading PredictiveQuerySpec from a YAML task file (userdb).
+ "pyyaml>=6.0",
+ # jsonschema: validate a userdb task/database YAML against its JSON Schema.
+ "jsonschema>=4.0",
+ # torch: the GNN wrappers (graphsage, relgnn, relgt) import it at module level and
+ # `relarena.models` imports them eagerly to register them, so importing the model
+ # registry needs torch even when no GNN extra is installed. The rest of each GNN
+ # stack (PyG, PyTorch Frame, the text embedder) stays in the rdl extra.
+ "torch",
+]
+
+[project.urls]
+Homepage = "https://github.com/PriorLabs/relarena"
+Repository = "https://github.com/PriorLabs/relarena"
+Issues = "https://github.com/PriorLabs/relarena/issues"
+Paper = "https://arxiv.org/abs/2608.16319"
+
+[project.scripts]
+relarena = "relarena.cli:main"
+
+[project.optional-dependencies]
+# Per-method extras (lazy-import + optional-dependency pattern; imported when run).
+lightgbm = ["lightgbm>=4.0,<4.7"]
+# KurveRSC owns GraphReduce configuration search and CatBoost fitting. It is a
+# native system entry because selection happens inside its end-to-end run.
+kurversc = ["kurversc==0.1.1"]
+# rdblearn: DFS features + a tabular foundation model. Carries the local TFM
+# (tabpfn>=8 for the create_default_for_version API, lazily imported in models/_tfm.py)
+# plus the DFS featurization deps; `tabpfn-rel-local` uses this same extra.
+# setuptools<82 because featuretools -> woodwork imports pkg_resources at import
+# time, and setuptools 82 removed it (81 still ships it).
+rdblearn = ["tabpfn>=8", "fastdfs>=1.1", "setuptools<82"]
+# rdl: the shared Relational Deep Learning stack for the GNN baselines β PyG + PyTorch
+# Frame + a text embedder, which relbench.modeling.* needs (all lazy-imported inside
+# fit()). GPU recommended. NOTE: PyG neighbor sampling needs `pyg-lib` or `torch-sparse`
+# from the PyG wheel index β see README; not declared here because the right wheel
+# depends on the torch/CUDA build of the target machine.
+rdl = ["torch-geometric>=2.5", "pytorch-frame>=0.2.3", "sentence-transformers"]
+# The GNN baselines build on that shared stack: graphsage (RelBench's heterogeneous
+# GraphSAGE), relgnn (RelGNN composite message passing over atomic routes), and relgt
+# (the Relational Graph Transformer dropped in for the GNN). relgt adds einops for the
+# global-attention einsum and h5py for the pre-built token cache.
+graphsage = ["relarena[rdl]"]
+relgnn = ["relarena[rdl]"]
+relgt = ["relarena[rdl]", "einops>=0.8", "h5py>=3.0"]
+# tabpfn-rel-local runs the local TabPFN v3 over DFS features β the same stack as
+# rdblearn, exposed under the model's own name. tabpfn-rel-api covers
+# tabpfn-rel-client (the tabpfn-v3-api TFM): DFS locally, fit/predict server-side,
+# text embedded natively by the API β no GPU and no local tabpfn needed.
+tabpfn-rel-local = ["relarena[rdblearn]"]
+tabpfn-rel-api = ["fastdfs>=1.1", "setuptools<82", "tabpfn-client>=0.3.2"]
+# RelArena supports RT execution on Linux x86_64, for which relational-transformer
+# publishes a stable-ABI (abi3-py311) wheel. GPU strongly recommended -- a
+# fine-tune on CPU is not a practical run.
+rt = ["relational-transformer==1.8.0"]
+# TabArena-style leaderboard aggregation (ELO / win-rate / rank / normalized
+# loss). bencheval is TabArena's standalone leaderboard package β no
+# AutoGluon/torch dependency. See relarena/evaluation/leaderboard.py.
+leaderboard = ["bencheval"]
+# Leaderboard plots (relarena/evaluation/plots.py): normalized-loss heatmaps + the
+# critical-difference diagram. bencheval's `[plot]` extra ships the
+# matplotlib/seaborn/plotly stack and the CD plot; `autorank` runs the DemΕ‘ar
+# significance test.
+plots = ["bencheval[plot]", "autorank"]
diff --git a/src/relarena/__init__.py b/packages/relarena/src/relarena/__init__.py
similarity index 100%
rename from src/relarena/__init__.py
rename to packages/relarena/src/relarena/__init__.py
diff --git a/src/relarena/cache.py b/packages/relarena/src/relarena/cache.py
similarity index 100%
rename from src/relarena/cache.py
rename to packages/relarena/src/relarena/cache.py
diff --git a/src/relarena/checksums/__init__.py b/packages/relarena/src/relarena/checksums/__init__.py
similarity index 100%
rename from src/relarena/checksums/__init__.py
rename to packages/relarena/src/relarena/checksums/__init__.py
diff --git a/src/relarena/checksums/checksum.py b/packages/relarena/src/relarena/checksums/checksum.py
similarity index 100%
rename from src/relarena/checksums/checksum.py
rename to packages/relarena/src/relarena/checksums/checksum.py
diff --git a/src/relarena/checksums/relbench_v1_checksums.json b/packages/relarena/src/relarena/checksums/relbench_v1_checksums.json
similarity index 100%
rename from src/relarena/checksums/relbench_v1_checksums.json
rename to packages/relarena/src/relarena/checksums/relbench_v1_checksums.json
diff --git a/src/relarena/cli.py b/packages/relarena/src/relarena/cli.py
similarity index 100%
rename from src/relarena/cli.py
rename to packages/relarena/src/relarena/cli.py
diff --git a/src/relarena/dataset.py b/packages/relarena/src/relarena/dataset.py
similarity index 100%
rename from src/relarena/dataset.py
rename to packages/relarena/src/relarena/dataset.py
diff --git a/src/relarena/evaluation/__init__.py b/packages/relarena/src/relarena/evaluation/__init__.py
similarity index 100%
rename from src/relarena/evaluation/__init__.py
rename to packages/relarena/src/relarena/evaluation/__init__.py
diff --git a/src/relarena/evaluation/leaderboard.py b/packages/relarena/src/relarena/evaluation/leaderboard.py
similarity index 100%
rename from src/relarena/evaluation/leaderboard.py
rename to packages/relarena/src/relarena/evaluation/leaderboard.py
diff --git a/src/relarena/evaluation/plots.py b/packages/relarena/src/relarena/evaluation/plots.py
similarity index 100%
rename from src/relarena/evaluation/plots.py
rename to packages/relarena/src/relarena/evaluation/plots.py
diff --git a/src/relarena/evaluation/reference.py b/packages/relarena/src/relarena/evaluation/reference.py
similarity index 100%
rename from src/relarena/evaluation/reference.py
rename to packages/relarena/src/relarena/evaluation/reference.py
diff --git a/src/relarena/evaluation/subsets.py b/packages/relarena/src/relarena/evaluation/subsets.py
similarity index 100%
rename from src/relarena/evaluation/subsets.py
rename to packages/relarena/src/relarena/evaluation/subsets.py
diff --git a/src/relarena/featurization/__init__.py b/packages/relarena/src/relarena/featurization/__init__.py
similarity index 100%
rename from src/relarena/featurization/__init__.py
rename to packages/relarena/src/relarena/featurization/__init__.py
diff --git a/src/relarena/featurization/_columns.py b/packages/relarena/src/relarena/featurization/_columns.py
similarity index 100%
rename from src/relarena/featurization/_columns.py
rename to packages/relarena/src/relarena/featurization/_columns.py
diff --git a/src/relarena/featurization/cache.py b/packages/relarena/src/relarena/featurization/cache.py
similarity index 100%
rename from src/relarena/featurization/cache.py
rename to packages/relarena/src/relarena/featurization/cache.py
diff --git a/src/relarena/featurization/dfs.py b/packages/relarena/src/relarena/featurization/dfs.py
similarity index 100%
rename from src/relarena/featurization/dfs.py
rename to packages/relarena/src/relarena/featurization/dfs.py
diff --git a/src/relarena/featurization/entity.py b/packages/relarena/src/relarena/featurization/entity.py
similarity index 100%
rename from src/relarena/featurization/entity.py
rename to packages/relarena/src/relarena/featurization/entity.py
diff --git a/src/relarena/featurization/warm_cache.py b/packages/relarena/src/relarena/featurization/warm_cache.py
similarity index 100%
rename from src/relarena/featurization/warm_cache.py
rename to packages/relarena/src/relarena/featurization/warm_cache.py
diff --git a/src/relarena/identity.py b/packages/relarena/src/relarena/identity.py
similarity index 100%
rename from src/relarena/identity.py
rename to packages/relarena/src/relarena/identity.py
diff --git a/src/relarena/metrics.py b/packages/relarena/src/relarena/metrics.py
similarity index 100%
rename from src/relarena/metrics.py
rename to packages/relarena/src/relarena/metrics.py
diff --git a/src/relarena/model.py b/packages/relarena/src/relarena/model.py
similarity index 100%
rename from src/relarena/model.py
rename to packages/relarena/src/relarena/model.py
diff --git a/src/relarena/models/VENDORED-LICENSES b/packages/relarena/src/relarena/models/VENDORED-LICENSES
similarity index 100%
rename from src/relarena/models/VENDORED-LICENSES
rename to packages/relarena/src/relarena/models/VENDORED-LICENSES
diff --git a/src/relarena/models/__init__.py b/packages/relarena/src/relarena/models/__init__.py
similarity index 100%
rename from src/relarena/models/__init__.py
rename to packages/relarena/src/relarena/models/__init__.py
diff --git a/src/relarena/models/_shared/__init__.py b/packages/relarena/src/relarena/models/_shared/__init__.py
similarity index 100%
rename from src/relarena/models/_shared/__init__.py
rename to packages/relarena/src/relarena/models/_shared/__init__.py
diff --git a/src/relarena/models/_shared/gbdt/__init__.py b/packages/relarena/src/relarena/models/_shared/gbdt/__init__.py
similarity index 100%
rename from src/relarena/models/_shared/gbdt/__init__.py
rename to packages/relarena/src/relarena/models/_shared/gbdt/__init__.py
diff --git a/src/relarena/models/_shared/gbdt/lgb.py b/packages/relarena/src/relarena/models/_shared/gbdt/lgb.py
similarity index 100%
rename from src/relarena/models/_shared/gbdt/lgb.py
rename to packages/relarena/src/relarena/models/_shared/gbdt/lgb.py
diff --git a/src/relarena/models/_shared/gnn/__init__.py b/packages/relarena/src/relarena/models/_shared/gnn/__init__.py
similarity index 100%
rename from src/relarena/models/_shared/gnn/__init__.py
rename to packages/relarena/src/relarena/models/_shared/gnn/__init__.py
diff --git a/src/relarena/models/_shared/gnn/_vendor/__init__.py b/packages/relarena/src/relarena/models/_shared/gnn/_vendor/__init__.py
similarity index 100%
rename from src/relarena/models/_shared/gnn/_vendor/__init__.py
rename to packages/relarena/src/relarena/models/_shared/gnn/_vendor/__init__.py
diff --git a/src/relarena/models/_shared/gnn/_vendor/gnn.py b/packages/relarena/src/relarena/models/_shared/gnn/_vendor/gnn.py
similarity index 100%
rename from src/relarena/models/_shared/gnn/_vendor/gnn.py
rename to packages/relarena/src/relarena/models/_shared/gnn/_vendor/gnn.py
diff --git a/src/relarena/models/_shared/gnn/graph.py b/packages/relarena/src/relarena/models/_shared/gnn/graph.py
similarity index 100%
rename from src/relarena/models/_shared/gnn/graph.py
rename to packages/relarena/src/relarena/models/_shared/gnn/graph.py
diff --git a/src/relarena/models/_shared/gnn/graph_cache.py b/packages/relarena/src/relarena/models/_shared/gnn/graph_cache.py
similarity index 100%
rename from src/relarena/models/_shared/gnn/graph_cache.py
rename to packages/relarena/src/relarena/models/_shared/gnn/graph_cache.py
diff --git a/src/relarena/models/_shared/gnn/training.py b/packages/relarena/src/relarena/models/_shared/gnn/training.py
similarity index 100%
rename from src/relarena/models/_shared/gnn/training.py
rename to packages/relarena/src/relarena/models/_shared/gnn/training.py
diff --git a/src/relarena/models/_shared/predict_contract.py b/packages/relarena/src/relarena/models/_shared/predict_contract.py
similarity index 100%
rename from src/relarena/models/_shared/predict_contract.py
rename to packages/relarena/src/relarena/models/_shared/predict_contract.py
diff --git a/src/relarena/models/_shared/tfm/__init__.py b/packages/relarena/src/relarena/models/_shared/tfm/__init__.py
similarity index 100%
rename from src/relarena/models/_shared/tfm/__init__.py
rename to packages/relarena/src/relarena/models/_shared/tfm/__init__.py
diff --git a/src/relarena/models/_shared/tfm/tfm.py b/packages/relarena/src/relarena/models/_shared/tfm/tfm.py
similarity index 100%
rename from src/relarena/models/_shared/tfm/tfm.py
rename to packages/relarena/src/relarena/models/_shared/tfm/tfm.py
diff --git a/src/relarena/models/dummy/__init__.py b/packages/relarena/src/relarena/models/dummy/__init__.py
similarity index 100%
rename from src/relarena/models/dummy/__init__.py
rename to packages/relarena/src/relarena/models/dummy/__init__.py
diff --git a/src/relarena/models/dummy/model.py b/packages/relarena/src/relarena/models/dummy/model.py
similarity index 100%
rename from src/relarena/models/dummy/model.py
rename to packages/relarena/src/relarena/models/dummy/model.py
diff --git a/src/relarena/models/graphsage/__init__.py b/packages/relarena/src/relarena/models/graphsage/__init__.py
similarity index 100%
rename from src/relarena/models/graphsage/__init__.py
rename to packages/relarena/src/relarena/models/graphsage/__init__.py
diff --git a/src/relarena/models/graphsage/model.py b/packages/relarena/src/relarena/models/graphsage/model.py
similarity index 100%
rename from src/relarena/models/graphsage/model.py
rename to packages/relarena/src/relarena/models/graphsage/model.py
diff --git a/src/relarena/models/kurversc/__init__.py b/packages/relarena/src/relarena/models/kurversc/__init__.py
similarity index 100%
rename from src/relarena/models/kurversc/__init__.py
rename to packages/relarena/src/relarena/models/kurversc/__init__.py
diff --git a/src/relarena/models/kurversc/model.py b/packages/relarena/src/relarena/models/kurversc/model.py
similarity index 100%
rename from src/relarena/models/kurversc/model.py
rename to packages/relarena/src/relarena/models/kurversc/model.py
diff --git a/src/relarena/models/lightgbm/__init__.py b/packages/relarena/src/relarena/models/lightgbm/__init__.py
similarity index 100%
rename from src/relarena/models/lightgbm/__init__.py
rename to packages/relarena/src/relarena/models/lightgbm/__init__.py
diff --git a/src/relarena/models/lightgbm/model.py b/packages/relarena/src/relarena/models/lightgbm/model.py
similarity index 100%
rename from src/relarena/models/lightgbm/model.py
rename to packages/relarena/src/relarena/models/lightgbm/model.py
diff --git a/src/relarena/models/rdblearn/__init__.py b/packages/relarena/src/relarena/models/rdblearn/__init__.py
similarity index 100%
rename from src/relarena/models/rdblearn/__init__.py
rename to packages/relarena/src/relarena/models/rdblearn/__init__.py
diff --git a/src/relarena/models/rdblearn/model.py b/packages/relarena/src/relarena/models/rdblearn/model.py
similarity index 100%
rename from src/relarena/models/rdblearn/model.py
rename to packages/relarena/src/relarena/models/rdblearn/model.py
diff --git a/src/relarena/models/relgnn/__init__.py b/packages/relarena/src/relarena/models/relgnn/__init__.py
similarity index 100%
rename from src/relarena/models/relgnn/__init__.py
rename to packages/relarena/src/relarena/models/relgnn/__init__.py
diff --git a/src/relarena/models/relgnn/_vendor/__init__.py b/packages/relarena/src/relarena/models/relgnn/_vendor/__init__.py
similarity index 100%
rename from src/relarena/models/relgnn/_vendor/__init__.py
rename to packages/relarena/src/relarena/models/relgnn/_vendor/__init__.py
diff --git a/src/relarena/models/relgnn/_vendor/atomic_routes.py b/packages/relarena/src/relarena/models/relgnn/_vendor/atomic_routes.py
similarity index 100%
rename from src/relarena/models/relgnn/_vendor/atomic_routes.py
rename to packages/relarena/src/relarena/models/relgnn/_vendor/atomic_routes.py
diff --git a/src/relarena/models/relgnn/_vendor/conv.py b/packages/relarena/src/relarena/models/relgnn/_vendor/conv.py
similarity index 100%
rename from src/relarena/models/relgnn/_vendor/conv.py
rename to packages/relarena/src/relarena/models/relgnn/_vendor/conv.py
diff --git a/src/relarena/models/relgnn/_vendor/hetero_conv.py b/packages/relarena/src/relarena/models/relgnn/_vendor/hetero_conv.py
similarity index 100%
rename from src/relarena/models/relgnn/_vendor/hetero_conv.py
rename to packages/relarena/src/relarena/models/relgnn/_vendor/hetero_conv.py
diff --git a/src/relarena/models/relgnn/_vendor/model.py b/packages/relarena/src/relarena/models/relgnn/_vendor/model.py
similarity index 100%
rename from src/relarena/models/relgnn/_vendor/model.py
rename to packages/relarena/src/relarena/models/relgnn/_vendor/model.py
diff --git a/src/relarena/models/relgnn/_vendor/nn.py b/packages/relarena/src/relarena/models/relgnn/_vendor/nn.py
similarity index 100%
rename from src/relarena/models/relgnn/_vendor/nn.py
rename to packages/relarena/src/relarena/models/relgnn/_vendor/nn.py
diff --git a/src/relarena/models/relgnn/model.py b/packages/relarena/src/relarena/models/relgnn/model.py
similarity index 100%
rename from src/relarena/models/relgnn/model.py
rename to packages/relarena/src/relarena/models/relgnn/model.py
diff --git a/src/relarena/models/relgnn/preprocessing.py b/packages/relarena/src/relarena/models/relgnn/preprocessing.py
similarity index 100%
rename from src/relarena/models/relgnn/preprocessing.py
rename to packages/relarena/src/relarena/models/relgnn/preprocessing.py
diff --git a/src/relarena/models/relgnn/warm_cache.py b/packages/relarena/src/relarena/models/relgnn/warm_cache.py
similarity index 100%
rename from src/relarena/models/relgnn/warm_cache.py
rename to packages/relarena/src/relarena/models/relgnn/warm_cache.py
diff --git a/src/relarena/models/relgt/__init__.py b/packages/relarena/src/relarena/models/relgt/__init__.py
similarity index 100%
rename from src/relarena/models/relgt/__init__.py
rename to packages/relarena/src/relarena/models/relgt/__init__.py
diff --git a/src/relarena/models/relgt/_vendor/__init__.py b/packages/relarena/src/relarena/models/relgt/_vendor/__init__.py
similarity index 100%
rename from src/relarena/models/relgt/_vendor/__init__.py
rename to packages/relarena/src/relarena/models/relgt/_vendor/__init__.py
diff --git a/src/relarena/models/relgt/_vendor/_sampler.py b/packages/relarena/src/relarena/models/relgt/_vendor/_sampler.py
similarity index 100%
rename from src/relarena/models/relgt/_vendor/_sampler.py
rename to packages/relarena/src/relarena/models/relgt/_vendor/_sampler.py
diff --git a/src/relarena/models/relgt/_vendor/codebook.py b/packages/relarena/src/relarena/models/relgt/_vendor/codebook.py
similarity index 100%
rename from src/relarena/models/relgt/_vendor/codebook.py
rename to packages/relarena/src/relarena/models/relgt/_vendor/codebook.py
diff --git a/src/relarena/models/relgt/_vendor/encoders.py b/packages/relarena/src/relarena/models/relgt/_vendor/encoders.py
similarity index 100%
rename from src/relarena/models/relgt/_vendor/encoders.py
rename to packages/relarena/src/relarena/models/relgt/_vendor/encoders.py
diff --git a/src/relarena/models/relgt/_vendor/local_module.py b/packages/relarena/src/relarena/models/relgt/_vendor/local_module.py
similarity index 100%
rename from src/relarena/models/relgt/_vendor/local_module.py
rename to packages/relarena/src/relarena/models/relgt/_vendor/local_module.py
diff --git a/src/relarena/models/relgt/_vendor/model.py b/packages/relarena/src/relarena/models/relgt/_vendor/model.py
similarity index 100%
rename from src/relarena/models/relgt/_vendor/model.py
rename to packages/relarena/src/relarena/models/relgt/_vendor/model.py
diff --git a/src/relarena/models/relgt/model.py b/packages/relarena/src/relarena/models/relgt/model.py
similarity index 100%
rename from src/relarena/models/relgt/model.py
rename to packages/relarena/src/relarena/models/relgt/model.py
diff --git a/src/relarena/models/relgt/tokenize.py b/packages/relarena/src/relarena/models/relgt/tokenize.py
similarity index 100%
rename from src/relarena/models/relgt/tokenize.py
rename to packages/relarena/src/relarena/models/relgt/tokenize.py
diff --git a/src/relarena/models/relgt/warm_cache.py b/packages/relarena/src/relarena/models/relgt/warm_cache.py
similarity index 100%
rename from src/relarena/models/relgt/warm_cache.py
rename to packages/relarena/src/relarena/models/relgt/warm_cache.py
diff --git a/src/relarena/models/rt/__init__.py b/packages/relarena/src/relarena/models/rt/__init__.py
similarity index 100%
rename from src/relarena/models/rt/__init__.py
rename to packages/relarena/src/relarena/models/rt/__init__.py
diff --git a/src/relarena/models/rt/config.py b/packages/relarena/src/relarena/models/rt/config.py
similarity index 100%
rename from src/relarena/models/rt/config.py
rename to packages/relarena/src/relarena/models/rt/config.py
diff --git a/src/relarena/models/rt/export.py b/packages/relarena/src/relarena/models/rt/export.py
similarity index 100%
rename from src/relarena/models/rt/export.py
rename to packages/relarena/src/relarena/models/rt/export.py
diff --git a/src/relarena/models/rt/model.py b/packages/relarena/src/relarena/models/rt/model.py
similarity index 100%
rename from src/relarena/models/rt/model.py
rename to packages/relarena/src/relarena/models/rt/model.py
diff --git a/src/relarena/models/rt/warm_cache.py b/packages/relarena/src/relarena/models/rt/warm_cache.py
similarity index 100%
rename from src/relarena/models/rt/warm_cache.py
rename to packages/relarena/src/relarena/models/rt/warm_cache.py
diff --git a/src/relarena/models/tabpfn_rel/__init__.py b/packages/relarena/src/relarena/models/tabpfn_rel/__init__.py
similarity index 100%
rename from src/relarena/models/tabpfn_rel/__init__.py
rename to packages/relarena/src/relarena/models/tabpfn_rel/__init__.py
diff --git a/src/relarena/models/tabpfn_rel/context.py b/packages/relarena/src/relarena/models/tabpfn_rel/context.py
similarity index 100%
rename from src/relarena/models/tabpfn_rel/context.py
rename to packages/relarena/src/relarena/models/tabpfn_rel/context.py
diff --git a/src/relarena/models/tabpfn_rel/features.py b/packages/relarena/src/relarena/models/tabpfn_rel/features.py
similarity index 100%
rename from src/relarena/models/tabpfn_rel/features.py
rename to packages/relarena/src/relarena/models/tabpfn_rel/features.py
diff --git a/src/relarena/models/tabpfn_rel/model.py b/packages/relarena/src/relarena/models/tabpfn_rel/model.py
similarity index 100%
rename from src/relarena/models/tabpfn_rel/model.py
rename to packages/relarena/src/relarena/models/tabpfn_rel/model.py
diff --git a/src/relarena/py.typed b/packages/relarena/src/relarena/py.typed
similarity index 100%
rename from src/relarena/py.typed
rename to packages/relarena/src/relarena/py.typed
diff --git a/src/relarena/registry.py b/packages/relarena/src/relarena/registry.py
similarity index 100%
rename from src/relarena/registry.py
rename to packages/relarena/src/relarena/registry.py
diff --git a/src/relarena/results.py b/packages/relarena/src/relarena/results.py
similarity index 100%
rename from src/relarena/results.py
rename to packages/relarena/src/relarena/results.py
diff --git a/src/relarena/runner.py b/packages/relarena/src/relarena/runner.py
similarity index 100%
rename from src/relarena/runner.py
rename to packages/relarena/src/relarena/runner.py
diff --git a/src/relarena/search_space.py b/packages/relarena/src/relarena/search_space.py
similarity index 100%
rename from src/relarena/search_space.py
rename to packages/relarena/src/relarena/search_space.py
diff --git a/src/relarena/system.py b/packages/relarena/src/relarena/system.py
similarity index 100%
rename from src/relarena/system.py
rename to packages/relarena/src/relarena/system.py
diff --git a/src/relarena/tasks.py b/packages/relarena/src/relarena/tasks.py
similarity index 100%
rename from src/relarena/tasks.py
rename to packages/relarena/src/relarena/tasks.py
diff --git a/src/relarena/tuner.py b/packages/relarena/src/relarena/tuner.py
similarity index 100%
rename from src/relarena/tuner.py
rename to packages/relarena/src/relarena/tuner.py
diff --git a/src/relarena/userdb/__init__.py b/packages/relarena/src/relarena/userdb/__init__.py
similarity index 100%
rename from src/relarena/userdb/__init__.py
rename to packages/relarena/src/relarena/userdb/__init__.py
diff --git a/src/relarena/userdb/_schema.py b/packages/relarena/src/relarena/userdb/_schema.py
similarity index 100%
rename from src/relarena/userdb/_schema.py
rename to packages/relarena/src/relarena/userdb/_schema.py
diff --git a/src/relarena/userdb/database.schema.json b/packages/relarena/src/relarena/userdb/database.schema.json
similarity index 100%
rename from src/relarena/userdb/database.schema.json
rename to packages/relarena/src/relarena/userdb/database.schema.json
diff --git a/src/relarena/userdb/ingest.py b/packages/relarena/src/relarena/userdb/ingest.py
similarity index 100%
rename from src/relarena/userdb/ingest.py
rename to packages/relarena/src/relarena/userdb/ingest.py
diff --git a/src/relarena/userdb/predict.py b/packages/relarena/src/relarena/userdb/predict.py
similarity index 100%
rename from src/relarena/userdb/predict.py
rename to packages/relarena/src/relarena/userdb/predict.py
diff --git a/src/relarena/userdb/query.py b/packages/relarena/src/relarena/userdb/query.py
similarity index 100%
rename from src/relarena/userdb/query.py
rename to packages/relarena/src/relarena/userdb/query.py
diff --git a/src/relarena/userdb/relbench_v1/__init__.py b/packages/relarena/src/relarena/userdb/relbench_v1/__init__.py
similarity index 100%
rename from src/relarena/userdb/relbench_v1/__init__.py
rename to packages/relarena/src/relarena/userdb/relbench_v1/__init__.py
diff --git a/src/relarena/userdb/relbench_v1/rel-amazon/__init__.py b/packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/__init__.py
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-amazon/__init__.py
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/__init__.py
diff --git a/src/relarena/userdb/relbench_v1/rel-amazon/db.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/db.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-amazon/db.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/db.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-amazon/item-churn.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/item-churn.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-amazon/item-churn.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/item-churn.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-amazon/item-ltv.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/item-ltv.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-amazon/item-ltv.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/item-ltv.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-amazon/user-churn.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/user-churn.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-amazon/user-churn.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/user-churn.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-amazon/user-ltv.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/user-ltv.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-amazon/user-ltv.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-amazon/user-ltv.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-avito/__init__.py b/packages/relarena/src/relarena/userdb/relbench_v1/rel-avito/__init__.py
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-avito/__init__.py
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-avito/__init__.py
diff --git a/src/relarena/userdb/relbench_v1/rel-avito/ad-ctr.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-avito/ad-ctr.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-avito/ad-ctr.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-avito/ad-ctr.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-avito/db.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-avito/db.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-avito/db.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-avito/db.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-avito/user-clicks.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-avito/user-clicks.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-avito/user-clicks.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-avito/user-clicks.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-avito/user-visits.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-avito/user-visits.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-avito/user-visits.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-avito/user-visits.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-event/__init__.py b/packages/relarena/src/relarena/userdb/relbench_v1/rel-event/__init__.py
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-event/__init__.py
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-event/__init__.py
diff --git a/src/relarena/userdb/relbench_v1/rel-event/db.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-event/db.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-event/db.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-event/db.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-event/user-attendance.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-event/user-attendance.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-event/user-attendance.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-event/user-attendance.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-event/user-ignore.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-event/user-ignore.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-event/user-ignore.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-event/user-ignore.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-event/user-repeat.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-event/user-repeat.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-event/user-repeat.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-event/user-repeat.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-f1/__init__.py b/packages/relarena/src/relarena/userdb/relbench_v1/rel-f1/__init__.py
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-f1/__init__.py
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-f1/__init__.py
diff --git a/src/relarena/userdb/relbench_v1/rel-f1/db.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-f1/db.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-f1/db.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-f1/db.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-f1/driver-dnf.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-f1/driver-dnf.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-f1/driver-dnf.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-f1/driver-dnf.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-f1/driver-position.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-f1/driver-position.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-f1/driver-position.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-f1/driver-position.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-f1/driver-top3.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-f1/driver-top3.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-f1/driver-top3.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-f1/driver-top3.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-hm/__init__.py b/packages/relarena/src/relarena/userdb/relbench_v1/rel-hm/__init__.py
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-hm/__init__.py
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-hm/__init__.py
diff --git a/src/relarena/userdb/relbench_v1/rel-hm/db.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-hm/db.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-hm/db.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-hm/db.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-hm/item-sales.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-hm/item-sales.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-hm/item-sales.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-hm/item-sales.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-hm/user-churn.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-hm/user-churn.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-hm/user-churn.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-hm/user-churn.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-stack/__init__.py b/packages/relarena/src/relarena/userdb/relbench_v1/rel-stack/__init__.py
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-stack/__init__.py
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-stack/__init__.py
diff --git a/src/relarena/userdb/relbench_v1/rel-stack/db.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-stack/db.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-stack/db.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-stack/db.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-stack/post-votes.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-stack/post-votes.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-stack/post-votes.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-stack/post-votes.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-stack/user-badge.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-stack/user-badge.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-stack/user-badge.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-stack/user-badge.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-stack/user-engagement.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-stack/user-engagement.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-stack/user-engagement.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-stack/user-engagement.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-trial/__init__.py b/packages/relarena/src/relarena/userdb/relbench_v1/rel-trial/__init__.py
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-trial/__init__.py
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-trial/__init__.py
diff --git a/src/relarena/userdb/relbench_v1/rel-trial/db.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-trial/db.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-trial/db.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-trial/db.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-trial/site-success.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-trial/site-success.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-trial/site-success.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-trial/site-success.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-trial/study-adverse.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-trial/study-adverse.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-trial/study-adverse.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-trial/study-adverse.yaml
diff --git a/src/relarena/userdb/relbench_v1/rel-trial/study-outcome.yaml b/packages/relarena/src/relarena/userdb/relbench_v1/rel-trial/study-outcome.yaml
similarity index 100%
rename from src/relarena/userdb/relbench_v1/rel-trial/study-outcome.yaml
rename to packages/relarena/src/relarena/userdb/relbench_v1/rel-trial/study-outcome.yaml
diff --git a/src/relarena/userdb/spec.py b/packages/relarena/src/relarena/userdb/spec.py
similarity index 100%
rename from src/relarena/userdb/spec.py
rename to packages/relarena/src/relarena/userdb/spec.py
diff --git a/src/relarena/userdb/task.py b/packages/relarena/src/relarena/userdb/task.py
similarity index 100%
rename from src/relarena/userdb/task.py
rename to packages/relarena/src/relarena/userdb/task.py
diff --git a/src/relarena/userdb/task.schema.json b/packages/relarena/src/relarena/userdb/task.schema.json
similarity index 100%
rename from src/relarena/userdb/task.schema.json
rename to packages/relarena/src/relarena/userdb/task.schema.json
diff --git a/tests/__init__.py b/packages/relarena/tests/__init__.py
similarity index 100%
rename from tests/__init__.py
rename to packages/relarena/tests/__init__.py
diff --git a/tests/checksums/__init__.py b/packages/relarena/tests/checksums/__init__.py
similarity index 100%
rename from tests/checksums/__init__.py
rename to packages/relarena/tests/checksums/__init__.py
diff --git a/tests/checksums/test_checksum.py b/packages/relarena/tests/checksums/test_checksum.py
similarity index 100%
rename from tests/checksums/test_checksum.py
rename to packages/relarena/tests/checksums/test_checksum.py
diff --git a/tests/evaluation/__init__.py b/packages/relarena/tests/evaluation/__init__.py
similarity index 100%
rename from tests/evaluation/__init__.py
rename to packages/relarena/tests/evaluation/__init__.py
diff --git a/tests/evaluation/test_leaderboard.py b/packages/relarena/tests/evaluation/test_leaderboard.py
similarity index 99%
rename from tests/evaluation/test_leaderboard.py
rename to packages/relarena/tests/evaluation/test_leaderboard.py
index e73ffac..c62634b 100644
--- a/tests/evaluation/test_leaderboard.py
+++ b/packages/relarena/tests/evaluation/test_leaderboard.py
@@ -13,7 +13,7 @@
to_bencheval_frame,
)
-_BASELINE_DIR = Path(__file__).resolve().parents[2] / "baseline_results"
+_BASELINE_DIR = Path(__file__).resolve().parents[4] / "baseline_results"
_REFERENCE_CSV = _BASELINE_DIR / "reference_results.csv"
diff --git a/tests/evaluation/test_leaderboard_smoke.py b/packages/relarena/tests/evaluation/test_leaderboard_smoke.py
similarity index 100%
rename from tests/evaluation/test_leaderboard_smoke.py
rename to packages/relarena/tests/evaluation/test_leaderboard_smoke.py
diff --git a/tests/evaluation/test_plots.py b/packages/relarena/tests/evaluation/test_plots.py
similarity index 100%
rename from tests/evaluation/test_plots.py
rename to packages/relarena/tests/evaluation/test_plots.py
diff --git a/tests/evaluation/test_reference.py b/packages/relarena/tests/evaluation/test_reference.py
similarity index 97%
rename from tests/evaluation/test_reference.py
rename to packages/relarena/tests/evaluation/test_reference.py
index 8c324f2..c27688f 100644
--- a/tests/evaluation/test_reference.py
+++ b/packages/relarena/tests/evaluation/test_reference.py
@@ -8,7 +8,7 @@
from relarena.evaluation import load_reference_results, to_bencheval_frame
-_BASELINE_DIR = Path(__file__).resolve().parents[2] / "baseline_results"
+_BASELINE_DIR = Path(__file__).resolve().parents[4] / "baseline_results"
_REFERENCE_CSV = _BASELINE_DIR / "reference_results.csv"
diff --git a/tests/evaluation/test_subsets.py b/packages/relarena/tests/evaluation/test_subsets.py
similarity index 100%
rename from tests/evaluation/test_subsets.py
rename to packages/relarena/tests/evaluation/test_subsets.py
diff --git a/tests/featurization/__init__.py b/packages/relarena/tests/featurization/__init__.py
similarity index 100%
rename from tests/featurization/__init__.py
rename to packages/relarena/tests/featurization/__init__.py
diff --git a/tests/featurization/test_cache.py b/packages/relarena/tests/featurization/test_cache.py
similarity index 100%
rename from tests/featurization/test_cache.py
rename to packages/relarena/tests/featurization/test_cache.py
diff --git a/tests/featurization/test_dfs.py b/packages/relarena/tests/featurization/test_dfs.py
similarity index 100%
rename from tests/featurization/test_dfs.py
rename to packages/relarena/tests/featurization/test_dfs.py
diff --git a/tests/featurization/test_entity.py b/packages/relarena/tests/featurization/test_entity.py
similarity index 100%
rename from tests/featurization/test_entity.py
rename to packages/relarena/tests/featurization/test_entity.py
diff --git a/tests/featurization/test_warm_cache.py b/packages/relarena/tests/featurization/test_warm_cache.py
similarity index 100%
rename from tests/featurization/test_warm_cache.py
rename to packages/relarena/tests/featurization/test_warm_cache.py
diff --git a/tests/fixtures/__init__.py b/packages/relarena/tests/fixtures/__init__.py
similarity index 100%
rename from tests/fixtures/__init__.py
rename to packages/relarena/tests/fixtures/__init__.py
diff --git a/tests/fixtures/cached_model.py b/packages/relarena/tests/fixtures/cached_model.py
similarity index 100%
rename from tests/fixtures/cached_model.py
rename to packages/relarena/tests/fixtures/cached_model.py
diff --git a/tests/models/__init__.py b/packages/relarena/tests/models/__init__.py
similarity index 100%
rename from tests/models/__init__.py
rename to packages/relarena/tests/models/__init__.py
diff --git a/tests/models/_shared/__init__.py b/packages/relarena/tests/models/_shared/__init__.py
similarity index 100%
rename from tests/models/_shared/__init__.py
rename to packages/relarena/tests/models/_shared/__init__.py
diff --git a/tests/models/_shared/gbdt/__init__.py b/packages/relarena/tests/models/_shared/gbdt/__init__.py
similarity index 100%
rename from tests/models/_shared/gbdt/__init__.py
rename to packages/relarena/tests/models/_shared/gbdt/__init__.py
diff --git a/tests/models/_shared/gbdt/test_lgb.py b/packages/relarena/tests/models/_shared/gbdt/test_lgb.py
similarity index 100%
rename from tests/models/_shared/gbdt/test_lgb.py
rename to packages/relarena/tests/models/_shared/gbdt/test_lgb.py
diff --git a/tests/models/_shared/gnn/__init__.py b/packages/relarena/tests/models/_shared/gnn/__init__.py
similarity index 100%
rename from tests/models/_shared/gnn/__init__.py
rename to packages/relarena/tests/models/_shared/gnn/__init__.py
diff --git a/tests/models/_shared/gnn/test_graph_cache.py b/packages/relarena/tests/models/_shared/gnn/test_graph_cache.py
similarity index 100%
rename from tests/models/_shared/gnn/test_graph_cache.py
rename to packages/relarena/tests/models/_shared/gnn/test_graph_cache.py
diff --git a/tests/models/_shared/gnn/test_training.py b/packages/relarena/tests/models/_shared/gnn/test_training.py
similarity index 100%
rename from tests/models/_shared/gnn/test_training.py
rename to packages/relarena/tests/models/_shared/gnn/test_training.py
diff --git a/tests/models/_shared/test_predict_contract.py b/packages/relarena/tests/models/_shared/test_predict_contract.py
similarity index 100%
rename from tests/models/_shared/test_predict_contract.py
rename to packages/relarena/tests/models/_shared/test_predict_contract.py
diff --git a/tests/models/_shared/tfm/__init__.py b/packages/relarena/tests/models/_shared/tfm/__init__.py
similarity index 100%
rename from tests/models/_shared/tfm/__init__.py
rename to packages/relarena/tests/models/_shared/tfm/__init__.py
diff --git a/tests/models/_shared/tfm/test_tfm.py b/packages/relarena/tests/models/_shared/tfm/test_tfm.py
similarity index 100%
rename from tests/models/_shared/tfm/test_tfm.py
rename to packages/relarena/tests/models/_shared/tfm/test_tfm.py
diff --git a/tests/models/dummy/__init__.py b/packages/relarena/tests/models/dummy/__init__.py
similarity index 100%
rename from tests/models/dummy/__init__.py
rename to packages/relarena/tests/models/dummy/__init__.py
diff --git a/tests/models/dummy/test_model.py b/packages/relarena/tests/models/dummy/test_model.py
similarity index 100%
rename from tests/models/dummy/test_model.py
rename to packages/relarena/tests/models/dummy/test_model.py
diff --git a/tests/models/graphsage/__init__.py b/packages/relarena/tests/models/graphsage/__init__.py
similarity index 100%
rename from tests/models/graphsage/__init__.py
rename to packages/relarena/tests/models/graphsage/__init__.py
diff --git a/tests/models/graphsage/test_model.py b/packages/relarena/tests/models/graphsage/test_model.py
similarity index 100%
rename from tests/models/graphsage/test_model.py
rename to packages/relarena/tests/models/graphsage/test_model.py
diff --git a/tests/models/kurversc/__init__.py b/packages/relarena/tests/models/kurversc/__init__.py
similarity index 100%
rename from tests/models/kurversc/__init__.py
rename to packages/relarena/tests/models/kurversc/__init__.py
diff --git a/tests/models/kurversc/test_model.py b/packages/relarena/tests/models/kurversc/test_model.py
similarity index 100%
rename from tests/models/kurversc/test_model.py
rename to packages/relarena/tests/models/kurversc/test_model.py
diff --git a/tests/models/lightgbm/__init__.py b/packages/relarena/tests/models/lightgbm/__init__.py
similarity index 100%
rename from tests/models/lightgbm/__init__.py
rename to packages/relarena/tests/models/lightgbm/__init__.py
diff --git a/tests/models/lightgbm/test_model.py b/packages/relarena/tests/models/lightgbm/test_model.py
similarity index 100%
rename from tests/models/lightgbm/test_model.py
rename to packages/relarena/tests/models/lightgbm/test_model.py
diff --git a/tests/models/rdblearn/__init__.py b/packages/relarena/tests/models/rdblearn/__init__.py
similarity index 100%
rename from tests/models/rdblearn/__init__.py
rename to packages/relarena/tests/models/rdblearn/__init__.py
diff --git a/tests/models/rdblearn/test_model.py b/packages/relarena/tests/models/rdblearn/test_model.py
similarity index 100%
rename from tests/models/rdblearn/test_model.py
rename to packages/relarena/tests/models/rdblearn/test_model.py
diff --git a/tests/models/relgnn/__init__.py b/packages/relarena/tests/models/relgnn/__init__.py
similarity index 100%
rename from tests/models/relgnn/__init__.py
rename to packages/relarena/tests/models/relgnn/__init__.py
diff --git a/tests/models/relgnn/test_model.py b/packages/relarena/tests/models/relgnn/test_model.py
similarity index 100%
rename from tests/models/relgnn/test_model.py
rename to packages/relarena/tests/models/relgnn/test_model.py
diff --git a/tests/models/relgnn/test_warm_cache.py b/packages/relarena/tests/models/relgnn/test_warm_cache.py
similarity index 100%
rename from tests/models/relgnn/test_warm_cache.py
rename to packages/relarena/tests/models/relgnn/test_warm_cache.py
diff --git a/tests/models/relgt/__init__.py b/packages/relarena/tests/models/relgt/__init__.py
similarity index 100%
rename from tests/models/relgt/__init__.py
rename to packages/relarena/tests/models/relgt/__init__.py
diff --git a/tests/models/relgt/_vendor/__init__.py b/packages/relarena/tests/models/relgt/_vendor/__init__.py
similarity index 100%
rename from tests/models/relgt/_vendor/__init__.py
rename to packages/relarena/tests/models/relgt/_vendor/__init__.py
diff --git a/tests/models/relgt/_vendor/test_model.py b/packages/relarena/tests/models/relgt/_vendor/test_model.py
similarity index 100%
rename from tests/models/relgt/_vendor/test_model.py
rename to packages/relarena/tests/models/relgt/_vendor/test_model.py
diff --git a/tests/models/relgt/test_model.py b/packages/relarena/tests/models/relgt/test_model.py
similarity index 100%
rename from tests/models/relgt/test_model.py
rename to packages/relarena/tests/models/relgt/test_model.py
diff --git a/tests/models/relgt/test_tokenize.py b/packages/relarena/tests/models/relgt/test_tokenize.py
similarity index 100%
rename from tests/models/relgt/test_tokenize.py
rename to packages/relarena/tests/models/relgt/test_tokenize.py
diff --git a/tests/models/relgt/test_warm_cache.py b/packages/relarena/tests/models/relgt/test_warm_cache.py
similarity index 100%
rename from tests/models/relgt/test_warm_cache.py
rename to packages/relarena/tests/models/relgt/test_warm_cache.py
diff --git a/tests/models/rt/__init__.py b/packages/relarena/tests/models/rt/__init__.py
similarity index 100%
rename from tests/models/rt/__init__.py
rename to packages/relarena/tests/models/rt/__init__.py
diff --git a/tests/models/rt/test_model.py b/packages/relarena/tests/models/rt/test_model.py
similarity index 100%
rename from tests/models/rt/test_model.py
rename to packages/relarena/tests/models/rt/test_model.py
diff --git a/tests/models/tabpfn_rel/__init__.py b/packages/relarena/tests/models/tabpfn_rel/__init__.py
similarity index 100%
rename from tests/models/tabpfn_rel/__init__.py
rename to packages/relarena/tests/models/tabpfn_rel/__init__.py
diff --git a/tests/models/tabpfn_rel/test_context.py b/packages/relarena/tests/models/tabpfn_rel/test_context.py
similarity index 100%
rename from tests/models/tabpfn_rel/test_context.py
rename to packages/relarena/tests/models/tabpfn_rel/test_context.py
diff --git a/tests/models/tabpfn_rel/test_features.py b/packages/relarena/tests/models/tabpfn_rel/test_features.py
similarity index 100%
rename from tests/models/tabpfn_rel/test_features.py
rename to packages/relarena/tests/models/tabpfn_rel/test_features.py
diff --git a/tests/models/tabpfn_rel/test_model.py b/packages/relarena/tests/models/tabpfn_rel/test_model.py
similarity index 100%
rename from tests/models/tabpfn_rel/test_model.py
rename to packages/relarena/tests/models/tabpfn_rel/test_model.py
diff --git a/tests/models/test_discovery.py b/packages/relarena/tests/models/test_discovery.py
similarity index 100%
rename from tests/models/test_discovery.py
rename to packages/relarena/tests/models/test_discovery.py
diff --git a/tests/test_cache.py b/packages/relarena/tests/test_cache.py
similarity index 100%
rename from tests/test_cache.py
rename to packages/relarena/tests/test_cache.py
diff --git a/tests/test_cache_extension.py b/packages/relarena/tests/test_cache_extension.py
similarity index 100%
rename from tests/test_cache_extension.py
rename to packages/relarena/tests/test_cache_extension.py
diff --git a/tests/test_cli.py b/packages/relarena/tests/test_cli.py
similarity index 100%
rename from tests/test_cli.py
rename to packages/relarena/tests/test_cli.py
diff --git a/tests/test_dataset.py b/packages/relarena/tests/test_dataset.py
similarity index 100%
rename from tests/test_dataset.py
rename to packages/relarena/tests/test_dataset.py
diff --git a/tests/test_identity.py b/packages/relarena/tests/test_identity.py
similarity index 100%
rename from tests/test_identity.py
rename to packages/relarena/tests/test_identity.py
diff --git a/tests/test_metrics.py b/packages/relarena/tests/test_metrics.py
similarity index 100%
rename from tests/test_metrics.py
rename to packages/relarena/tests/test_metrics.py
diff --git a/tests/test_model.py b/packages/relarena/tests/test_model.py
similarity index 100%
rename from tests/test_model.py
rename to packages/relarena/tests/test_model.py
diff --git a/tests/test_runner.py b/packages/relarena/tests/test_runner.py
similarity index 100%
rename from tests/test_runner.py
rename to packages/relarena/tests/test_runner.py
diff --git a/tests/test_search_space.py b/packages/relarena/tests/test_search_space.py
similarity index 100%
rename from tests/test_search_space.py
rename to packages/relarena/tests/test_search_space.py
diff --git a/tests/test_skeleton.py b/packages/relarena/tests/test_skeleton.py
similarity index 100%
rename from tests/test_skeleton.py
rename to packages/relarena/tests/test_skeleton.py
diff --git a/tests/test_tasks.py b/packages/relarena/tests/test_tasks.py
similarity index 100%
rename from tests/test_tasks.py
rename to packages/relarena/tests/test_tasks.py
diff --git a/tests/test_tuner.py b/packages/relarena/tests/test_tuner.py
similarity index 100%
rename from tests/test_tuner.py
rename to packages/relarena/tests/test_tuner.py
diff --git a/tests/userdb/__init__.py b/packages/relarena/tests/userdb/__init__.py
similarity index 100%
rename from tests/userdb/__init__.py
rename to packages/relarena/tests/userdb/__init__.py
diff --git a/tests/userdb/test_ingest.py b/packages/relarena/tests/userdb/test_ingest.py
similarity index 100%
rename from tests/userdb/test_ingest.py
rename to packages/relarena/tests/userdb/test_ingest.py
diff --git a/tests/userdb/test_predict.py b/packages/relarena/tests/userdb/test_predict.py
similarity index 100%
rename from tests/userdb/test_predict.py
rename to packages/relarena/tests/userdb/test_predict.py
diff --git a/tests/userdb/test_query.py b/packages/relarena/tests/userdb/test_query.py
similarity index 99%
rename from tests/userdb/test_query.py
rename to packages/relarena/tests/userdb/test_query.py
index ab61aea..6b26ca9 100644
--- a/tests/userdb/test_query.py
+++ b/packages/relarena/tests/userdb/test_query.py
@@ -16,7 +16,7 @@
from relarena.userdb import relbench_v1_spec, relbench_v1_tasks
from relarena.userdb.query import PredictiveQuery, PredictiveQuerySpec
-_EXAMPLES = Path(__file__).resolve().parents[2] / "examples"
+_EXAMPLES = Path(__file__).resolve().parents[4] / "examples"
_DB_YAML = "drivers:\n pkey: driverId\n"
_TASK_YAML = (
"database: db.yaml\n"
diff --git a/tests/userdb/test_task.py b/packages/relarena/tests/userdb/test_task.py
similarity index 100%
rename from tests/userdb/test_task.py
rename to packages/relarena/tests/userdb/test_task.py
diff --git a/tests/workflows/test_audit_licenses.py b/packages/relarena/tests/workflows/test_audit_licenses.py
similarity index 99%
rename from tests/workflows/test_audit_licenses.py
rename to packages/relarena/tests/workflows/test_audit_licenses.py
index f05ecaf..93cc2d2 100644
--- a/tests/workflows/test_audit_licenses.py
+++ b/packages/relarena/tests/workflows/test_audit_licenses.py
@@ -20,7 +20,7 @@
import pytest
-MODULE_PATH = Path(__file__).resolve().parents[2] / "workflows" / "audit_licenses.py"
+MODULE_PATH = Path(__file__).resolve().parents[4] / "workflows" / "audit_licenses.py"
@pytest.fixture(scope="module")
diff --git a/tests/workflows/test_update_leaderboards.py b/packages/relarena/tests/workflows/test_update_leaderboards.py
similarity index 98%
rename from tests/workflows/test_update_leaderboards.py
rename to packages/relarena/tests/workflows/test_update_leaderboards.py
index e042882..de9edc6 100644
--- a/tests/workflows/test_update_leaderboards.py
+++ b/packages/relarena/tests/workflows/test_update_leaderboards.py
@@ -13,7 +13,7 @@
pytest.importorskip("matplotlib")
pytest.importorskip("bencheval.evaluator")
-ROOT = Path(__file__).resolve().parents[2]
+ROOT = Path(__file__).resolve().parents[4]
@pytest.fixture
diff --git a/pyproject.toml b/pyproject.toml
index fe0088d..cd3ccf2 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,113 +1,7 @@
-[build-system]
-requires = ["uv_build>=0.11.15"]
-build-backend = "uv_build"
-
[project]
-name = "relarena"
-version = "0.0.1"
-authors = [{ name = "Prior Labs" }]
-license = "Apache-2.0"
-license-files = ["LICENSE", "NOTICE", "src/relarena/models/VENDORED-LICENSES"]
-description = "A unified, fair benchmarking framework for models on relational tasks on RelBench databases."
-readme = "README.md"
+name = "relarena-workspace"
+version = "0.0.0"
requires-python = ">=3.11,<3.13"
-keywords = [
- "benchmarking",
- "machine-learning",
- "relational-learning",
- "relbench",
- "tabular-data",
-]
-classifiers = [
- "Development Status :: 3 - Alpha",
- "License :: OSI Approved :: Apache Software License",
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.11",
- "Programming Language :: Python :: 3.12",
- "Topic :: Scientific/Engineering :: Artificial Intelligence",
-]
-dependencies = [
- # Pinned exactly: RelBench ships the dataset/task SHA256 checksums in the package
- # itself (relbench/datasets/hashes.json, relbench/tasks/hashes.json, wired into the
- # pooch registries in relbench/datasets/__init__.py and relbench/tasks/__init__.py),
- # so the package version is the data version. Pinning keeps a resolver bump from
- # swapping in a release with different data. Only bump the relbench version
- # deliberately (see below).
- # When upgrading: re-run `python workflows/record_checksums.py` and confirm the
- # recorded split checksums (src/relarena/checksums/relbench_v1_checksums.json) are unchanged β a new
- # RelBench release may reprocess the data even if the splits look unchanged.
- # (Also re-record whenever dataset.drop_noncanonical_columns changes.)
- "relbench==2.1.2",
- "numpy>=1.24",
- # Mirrors fastdfs' own pandas range (the dfs extras resolve it);
- # anything below 2.3.3 is unsatisfiable here.
- "pandas>=2.3.3,<3.0",
- "scikit-learn>=1.3",
- "configspace>=1.0",
- # pyyaml: loading PredictiveQuerySpec from a YAML task file (userdb).
- "pyyaml>=6.0",
- # jsonschema: validate a userdb task/database YAML against its JSON Schema.
- "jsonschema>=4.0",
- # torch: the GNN wrappers (graphsage, relgnn, relgt) import it at module level and
- # `relarena.models` imports them eagerly to register them, so importing the model
- # registry needs torch even when no GNN extra is installed. The rest of each GNN
- # stack (PyG, PyTorch Frame, the text embedder) stays in the rdl extra.
- "torch",
-]
-
-[project.urls]
-Homepage = "https://github.com/PriorLabs/relarena"
-Repository = "https://github.com/PriorLabs/relarena"
-Issues = "https://github.com/PriorLabs/relarena/issues"
-Paper = "https://arxiv.org/abs/2608.16319"
-
-[project.scripts]
-relarena = "relarena.cli:main"
-
-[project.optional-dependencies]
-# Per-method extras (lazy-import + optional-dependency pattern; imported when run).
-lightgbm = ["lightgbm>=4.0,<4.7"]
-# KurveRSC owns GraphReduce configuration search and CatBoost fitting. It is a
-# native system entry because selection happens inside its end-to-end run.
-kurversc = ["kurversc==0.1.1"]
-# rdblearn: DFS features + a tabular foundation model. Carries the local TFM
-# (tabpfn>=8 for the create_default_for_version API, lazily imported in models/_tfm.py)
-# plus the DFS featurization deps; `tabpfn-rel-local` uses this same extra.
-# setuptools<82 because featuretools -> woodwork imports pkg_resources at import
-# time, and setuptools 82 removed it (81 still ships it).
-rdblearn = ["tabpfn>=8", "fastdfs>=1.1", "setuptools<82"]
-# rdl: the shared Relational Deep Learning stack for the GNN baselines β PyG + PyTorch
-# Frame + a text embedder, which relbench.modeling.* needs (all lazy-imported inside
-# fit()). GPU recommended. NOTE: PyG neighbor sampling needs `pyg-lib` or `torch-sparse`
-# from the PyG wheel index β see README; not declared here because the right wheel
-# depends on the torch/CUDA build of the target machine.
-rdl = ["torch-geometric>=2.5", "pytorch-frame>=0.2.3", "sentence-transformers"]
-# The GNN baselines build on that shared stack: graphsage (RelBench's heterogeneous
-# GraphSAGE), relgnn (RelGNN composite message passing over atomic routes), and relgt
-# (the Relational Graph Transformer dropped in for the GNN). relgt adds einops for the
-# global-attention einsum and h5py for the pre-built token cache.
-graphsage = ["relarena[rdl]"]
-relgnn = ["relarena[rdl]"]
-relgt = ["relarena[rdl]", "einops>=0.8", "h5py>=3.0"]
-# tabpfn-rel-local runs the local TabPFN v3 over DFS features β the same stack as
-# rdblearn, exposed under the model's own name. tabpfn-rel-api covers
-# tabpfn-rel-client (the tabpfn-v3-api TFM): DFS locally, fit/predict server-side,
-# text embedded natively by the API β no GPU and no local tabpfn needed.
-tabpfn-rel-local = ["relarena[rdblearn]"]
-tabpfn-rel-api = ["fastdfs>=1.1", "setuptools<82", "tabpfn-client>=0.3.2"]
-# RelArena supports RT execution on Linux x86_64, for which relational-transformer
-# publishes a stable-ABI (abi3-py311) wheel. GPU strongly recommended -- a
-# fine-tune on CPU is not a practical run.
-rt = ["relational-transformer==1.8.0"]
-# TabArena-style leaderboard aggregation (ELO / win-rate / rank / normalized
-# loss). bencheval is TabArena's standalone leaderboard package β no
-# AutoGluon/torch dependency. See relarena/evaluation/leaderboard.py.
-leaderboard = ["bencheval"]
-# Leaderboard plots (relarena/evaluation/plots.py): normalized-loss heatmaps + the
-# critical-difference diagram. bencheval's `[plot]` extra ships the
-# matplotlib/seaborn/plotly stack and the CD plot; `autorank` runs the DemΕ‘ar
-# significance test.
-plots = ["bencheval[plot]", "autorank"]
[dependency-groups]
dev = [
@@ -129,6 +23,7 @@ cuda = []
cpu = ["torch"]
[tool.uv]
+package = false
exclude-newer = "3 days"
# These packages were published after the global cutoff while their exact
# dependency pins were being integrated. Exact pins keep the exemptions
@@ -141,6 +36,7 @@ conflicts = [
]
[tool.uv.sources]
+relarena = { workspace = true }
# bencheval lives in the autogluon/tabarena uv-workspace under packages/bencheval.
# The resolved commit is pinned in uv.lock for reproducibility.
bencheval = { git = "https://github.com/autogluon/tabarena.git", subdirectory = "packages/bencheval", rev = "9f3878b882439cb885003b5f978676961b059b6d" }
@@ -154,6 +50,7 @@ url = "https://download.pytorch.org/whl/cpu"
explicit = true
[tool.ruff]
+src = ["packages/relarena/src"]
required-version = "==0.15.13"
force-exclude = true
line-length = 88
@@ -194,3 +91,9 @@ ignore-decorators = ["typing.override", "typing_extensions.override"]
"D107",
"S101",
]
+
+[tool.uv.workspace]
+members = ["packages/relarena"]
+
+[tool.pytest.ini_options]
+testpaths = ["packages/relarena/tests"]
diff --git a/uv.lock b/uv.lock
index 1460661..add472f 100644
--- a/uv.lock
+++ b/uv.lock
@@ -2,34 +2,22 @@ version = 1
revision = 3
requires-python = ">=3.11, <3.13"
resolution-markers = [
- "python_full_version >= '3.12' and sys_platform != 'darwin' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and sys_platform != 'darwin' and extra == 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and sys_platform != 'darwin' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and sys_platform == 'darwin' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and sys_platform == 'darwin' and extra == 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and sys_platform == 'darwin' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and sys_platform != 'darwin' and extra == 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and sys_platform == 'darwin' and extra == 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform != 'darwin' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform != 'darwin' and extra == 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform != 'darwin' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform == 'darwin' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform == 'darwin' and extra == 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform == 'darwin' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform != 'darwin' and extra == 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform == 'darwin' and extra == 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
+ "python_full_version >= '3.12' and extra != 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda'",
+ "python_full_version < '3.12' and extra != 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda'",
+ "python_full_version >= '3.12' and sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu' and extra != 'group-18-relarena-workspace-cuda'",
+ "python_full_version >= '3.12' and sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu' and extra != 'group-18-relarena-workspace-cuda'",
+ "python_full_version < '3.12' and sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu' and extra != 'group-18-relarena-workspace-cuda'",
+ "python_full_version < '3.12' and sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu' and extra != 'group-18-relarena-workspace-cuda'",
+ "python_full_version >= '3.12' and extra != 'group-18-relarena-workspace-cpu' and extra != 'group-18-relarena-workspace-cuda'",
+ "python_full_version < '3.12' and extra != 'group-18-relarena-workspace-cpu' and extra != 'group-18-relarena-workspace-cuda'",
]
conflicts = [[
- { package = "relarena", group = "cpu" },
- { package = "relarena", group = "cuda" },
+ { package = "relarena-workspace", group = "cpu" },
+ { package = "relarena-workspace", group = "cuda" },
]]
[options]
-exclude-newer = "0001-01-01T00:00:00Z" # This has no effect and is included for backwards compatibility when using relative exclude-newer values.
+exclude-newer = "2026-09-06T14:27:48.950532Z"
exclude-newer-span = "P3D"
[options.exclude-newer-package]
@@ -37,6 +25,12 @@ graphreduce = false
relational-transformer = false
kurversc = false
+[manifest]
+members = [
+ "relarena",
+ "relarena-workspace",
+]
+
[[package]]
name = "aiohappyeyeballs"
version = "2.7.1"
@@ -449,7 +443,7 @@ name = "cuda-bindings"
version = "13.3.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "cuda-pathfinder", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
+ { name = "cuda-pathfinder", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/51/6b/457ca12dad3ee9bfcc9a545cfd6b64b359ba49de40f776f6e028e678f262/cuda_bindings-13.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c5879712accf6e14bb01aa5e67440eb84998b8d104b509cc7a6dc0b8f656a474", size = 6053539, upload-time = "2026-05-29T23:11:43.19Z" },
@@ -478,43 +472,43 @@ wheels = [
[package.optional-dependencies]
cublas = [
- { name = "nvidia-cublas", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "nvidia-cuda-nvrtc", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "nvidia-cublas", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "nvidia-cuda-nvrtc", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
cudart = [
- { name = "nvidia-cuda-runtime", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "nvidia-cuda-runtime", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
cufft = [
- { name = "nvidia-cufft", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "nvidia-cufft", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
cufile = [
- { name = "nvidia-cufile", marker = "(platform_machine != 'aarch64' and platform_machine != 'x86_64' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'aarch64' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (platform_machine == 'x86_64' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform != 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "nvidia-cufile", marker = "(platform_machine != 'aarch64' and platform_machine != 'x86_64' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'aarch64' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (platform_machine == 'x86_64' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform != 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
cupti = [
- { name = "nvidia-cuda-cupti", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "nvidia-cuda-cupti", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
curand = [
- { name = "nvidia-curand", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "nvidia-curand", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
cusolver = [
- { name = "nvidia-cublas", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "nvidia-cusolver", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "nvidia-cusparse", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "nvidia-cublas", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "nvidia-cusolver", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "nvidia-cusparse", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
cusparse = [
- { name = "nvidia-cusparse", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "nvidia-cusparse", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
nvjitlink = [
- { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
nvrtc = [
- { name = "nvidia-cuda-nvrtc", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "nvidia-cuda-nvrtc", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
nvtx = [
- { name = "nvidia-nvtx", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-8-relarena-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'linux' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "nvidia-nvtx", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (platform_machine == 'AMD64' and sys_platform == 'win32' and extra != 'group-18-relarena-workspace-cpu') or (sys_platform != 'linux' and sys_platform != 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'linux' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
[[package]]
@@ -534,7 +528,7 @@ dependencies = [
{ name = "click" },
{ name = "cloudpickle" },
{ name = "fsspec" },
- { name = "importlib-metadata", marker = "python_full_version < '3.12' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "importlib-metadata", marker = "python_full_version < '3.12' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "packaging" },
{ name = "partd" },
{ name = "pyyaml" },
@@ -961,7 +955,7 @@ dependencies = [
{ name = "click" },
{ name = "filelock" },
{ name = "fsspec" },
- { name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "httpx" },
{ name = "packaging" },
{ name = "pyyaml" },
@@ -1011,7 +1005,7 @@ name = "importlib-metadata"
version = "9.0.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "zipp", marker = "python_full_version < '3.12' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "zipp", marker = "python_full_version < '3.12' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
sdist = { url = "https://files.pythonhosted.org/packages/a9/01/15bb152d77b21318514a96f43af312635eb2500c96b55398d020c93d86ea/importlib_metadata-9.0.0.tar.gz", hash = "sha256:a4f57ab599e6a2e3016d7595cfd72eb4661a5106e787a95bcc90c7105b831efc", size = 56405, upload-time = "2026-03-20T06:42:56.999Z" }
wheels = [
@@ -1041,17 +1035,17 @@ name = "ipython"
version = "9.16.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "ipython-pygments-lexers" },
{ name = "jedi" },
{ name = "matplotlib-inline" },
- { name = "pexpect", marker = "(sys_platform != 'emscripten' and sys_platform != 'win32') or (sys_platform == 'emscripten' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'win32' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "pexpect", marker = "(sys_platform != 'emscripten' and sys_platform != 'win32') or (sys_platform == 'emscripten' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'win32' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "prompt-toolkit" },
- { name = "psutil", marker = "(sys_platform != 'cygwin' and sys_platform != 'emscripten') or (sys_platform == 'cygwin' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform == 'emscripten' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "psutil", marker = "(sys_platform != 'cygwin' and sys_platform != 'emscripten') or (sys_platform == 'cygwin' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform == 'emscripten' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "pygments" },
{ name = "stack-data" },
{ name = "traitlets" },
- { name = "typing-extensions", marker = "python_full_version < '3.12' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "typing-extensions", marker = "python_full_version < '3.12' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
sdist = { url = "https://files.pythonhosted.org/packages/06/96/b150fe7e25a5a29ae9ac1374e71488639605d39a1ea4abb74c9ce33af235/ipython-9.16.1.tar.gz", hash = "sha256:5a3d1f9a47ff216d6cf9cf863124f6a2c1a198d1354c546a4d24a370a283b64c", size = 4515302, upload-time = "2026-08-03T08:36:15.571Z" }
wheels = [
@@ -1245,8 +1239,8 @@ name = "loguru"
version = "0.7.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "win32-setctime", marker = "sys_platform == 'win32' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "win32-setctime", marker = "sys_platform == 'win32' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
sdist = { url = "https://files.pythonhosted.org/packages/3a/05/a1dae3dffd1116099471c643b8924f5aa6524411dc6c63fdae648c4f1aca/loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6", size = 63559, upload-time = "2024-12-06T11:20:56.608Z" }
wheels = [
@@ -1373,7 +1367,7 @@ name = "mlx"
version = "0.32.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "mlx-metal", marker = "sys_platform == 'darwin' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "mlx-metal", marker = "sys_platform == 'darwin' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/4e/3c/f56f5de7188b0b5855046244b1ebb6f2055cc298c9f7336b69cc2013ad23/mlx-0.32.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:238b50d2ee3917c836e73f9446011518b79ff094940eb0107fa6cd17d02a2eca", size = 625943, upload-time = "2026-08-25T10:31:33.737Z" },
@@ -1537,7 +1531,7 @@ name = "nvidia-cublas"
version = "13.1.1.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "nvidia-cuda-nvrtc", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
+ { name = "nvidia-cuda-nvrtc", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/a7/a1/0bd24ee8c8d03adac032fd2909426a00c88f8c57961b1277ded97f91119f/nvidia_cublas-13.1.1.3-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:b7a210458267ac818974c53038fbec2e969d5c99f305ab15c72522fa9f001dd5", size = 542848918, upload-time = "2026-04-08T18:46:22.985Z" },
@@ -1580,7 +1574,7 @@ name = "nvidia-cudnn-cu13"
version = "9.20.0.48"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "nvidia-cublas", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
+ { name = "nvidia-cublas", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/56/c5/83384d846b2fd17c44bd499b36c75a45ed4f095fbbb2252294e89cea5c5c/nvidia_cudnn_cu13-9.20.0.48-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:e31454ae00094b0c55319d9d15b6fa2fc50a9e1c0f5c8c80fb75258234e731e1", size = 444574296, upload-time = "2026-03-09T19:28:27.751Z" },
@@ -1593,7 +1587,7 @@ name = "nvidia-cufft"
version = "12.0.0.61"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "nvidia-nvjitlink", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
+ { name = "nvidia-nvjitlink", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/8b/ae/f417a75c0259e85c1d2f83ca4e960289a5f814ed0cea74d18c353d3e989d/nvidia_cufft-12.0.0.61-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2708c852ef8cd89d1d2068bdbece0aa188813a0c934db3779b9b1faa8442e5f5", size = 214053554, upload-time = "2025-09-04T08:31:38.196Z" },
@@ -1625,9 +1619,9 @@ name = "nvidia-cusolver"
version = "12.0.4.66"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "nvidia-cublas", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "nvidia-cusparse", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "nvidia-nvjitlink", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
+ { name = "nvidia-cublas", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "nvidia-cusparse", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "nvidia-nvjitlink", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/c8/c3/b30c9e935fc01e3da443ec0116ed1b2a009bb867f5324d3f2d7e533e776b/nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:02c2457eaa9e39de20f880f4bd8820e6a1cfb9f9a34f820eb12a155aa5bc92d2", size = 223467760, upload-time = "2025-09-04T08:33:04.222Z" },
@@ -1640,7 +1634,7 @@ name = "nvidia-cusparse"
version = "12.6.3.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "nvidia-nvjitlink", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
+ { name = "nvidia-nvjitlink", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/f8/94/5c26f33738ae35276672f12615a64bd008ed5be6d1ebcb23579285d960a9/nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:80bcc4662f23f1054ee334a15c72b8940402975e0eab63178fc7e670aa59472c", size = 162155568, upload-time = "2025-09-04T08:33:42.864Z" },
@@ -2229,7 +2223,7 @@ name = "pytest"
version = "9.1.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "iniconfig" },
{ name = "packaging" },
{ name = "pluggy" },
@@ -2282,9 +2276,9 @@ dependencies = [
{ name = "pandas" },
{ name = "pillow" },
{ name = "pyarrow" },
- { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "torch", version = "2.13.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "torch", version = "2.13.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "tqdm" },
]
sdist = { url = "https://files.pythonhosted.org/packages/22/64/4a4aaa2a90eab208bf9f929a3bcc3b17ceb99bcb9abecf1c2323818f2898/pytorch_frame-0.3.0.tar.gz", hash = "sha256:412b42002e1a21a09fc8b0c6e4f0d048bd4e5ebef2f7139bbbbae82d81040152", size = 104795, upload-time = "2025-11-02T23:22:07.936Z" }
@@ -2399,7 +2393,7 @@ wheels = [
[[package]]
name = "relarena"
version = "0.0.1"
-source = { editable = "." }
+source = { editable = "packages/relarena" }
dependencies = [
{ name = "configspace" },
{ name = "jsonschema" },
@@ -2408,9 +2402,9 @@ dependencies = [
{ name = "pyyaml" },
{ name = "relbench" },
{ name = "scikit-learn" },
- { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "torch", version = "2.13.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "torch", version = "2.13.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
[package.optional-dependencies]
@@ -2468,21 +2462,6 @@ tabpfn-rel-local = [
{ name = "tabpfn" },
]
-[package.dev-dependencies]
-cpu = [
- { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
-]
-dev = [
- { name = "fastdfs" },
- { name = "kurversc" },
- { name = "lightgbm" },
- { name = "pre-commit" },
- { name = "pytest" },
- { name = "ruff" },
- { name = "setuptools" },
-]
-
[package.metadata]
requires-dist = [
{ name = "autorank", marker = "extra == 'plots'" },
@@ -2500,10 +2479,10 @@ requires-dist = [
{ name = "pandas", specifier = ">=2.3.3,<3.0" },
{ name = "pytorch-frame", marker = "extra == 'rdl'", specifier = ">=0.2.3" },
{ name = "pyyaml", specifier = ">=6.0" },
- { name = "relarena", extras = ["rdblearn"], marker = "extra == 'tabpfn-rel-local'" },
- { name = "relarena", extras = ["rdl"], marker = "extra == 'graphsage'" },
- { name = "relarena", extras = ["rdl"], marker = "extra == 'relgnn'" },
- { name = "relarena", extras = ["rdl"], marker = "extra == 'relgt'" },
+ { name = "relarena", extras = ["rdblearn"], marker = "extra == 'tabpfn-rel-local'", editable = "packages/relarena" },
+ { name = "relarena", extras = ["rdl"], marker = "extra == 'graphsage'", editable = "packages/relarena" },
+ { name = "relarena", extras = ["rdl"], marker = "extra == 'relgnn'", editable = "packages/relarena" },
+ { name = "relarena", extras = ["rdl"], marker = "extra == 'relgt'", editable = "packages/relarena" },
{ name = "relational-transformer", marker = "extra == 'rt'", specifier = "==1.8.0" },
{ name = "relbench", specifier = "==2.1.2" },
{ name = "scikit-learn", specifier = ">=1.3" },
@@ -2517,8 +2496,30 @@ requires-dist = [
]
provides-extras = ["lightgbm", "kurversc", "rdblearn", "rdl", "graphsage", "relgnn", "relgt", "tabpfn-rel-local", "tabpfn-rel-api", "rt", "leaderboard", "plots"]
+[[package]]
+name = "relarena-workspace"
+version = "0.0.0"
+source = { virtual = "." }
+
+[package.dev-dependencies]
+cpu = [
+ { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+]
+dev = [
+ { name = "fastdfs" },
+ { name = "kurversc" },
+ { name = "lightgbm" },
+ { name = "pre-commit" },
+ { name = "pytest" },
+ { name = "ruff" },
+ { name = "setuptools" },
+]
+
+[package.metadata]
+
[package.metadata.requires-dev]
-cpu = [{ name = "torch", index = "https://download.pytorch.org/whl/cpu", conflict = { package = "relarena", group = "cpu" } }]
+cpu = [{ name = "torch", index = "https://download.pytorch.org/whl/cpu", conflict = { package = "relarena-workspace", group = "cpu" } }]
cuda = []
dev = [
{ name = "fastdfs", specifier = ">=1.1" },
@@ -2548,9 +2549,9 @@ dependencies = [
{ name = "safetensors" },
{ name = "scikit-learn" },
{ name = "sentence-transformers" },
- { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "torch", version = "2.13.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "torch", version = "2.13.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "wandb" },
]
sdist = { url = "https://files.pythonhosted.org/packages/4f/42/070417ee12df7ed76c86649cff7c5e1de8effc0cf8de00f0beedc841b6a3/relational_transformer-1.8.0.tar.gz", hash = "sha256:e61e72228407551c6c8fe5e118240a0ee36778c49405d7d5c6986f0508786fe2", size = 139563, upload-time = "2026-08-15T18:00:43.207Z" }
@@ -2796,9 +2797,9 @@ dependencies = [
{ name = "scikit-learn" },
{ name = "scipy" },
{ name = "tokenizers" },
- { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "torch", version = "2.13.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "torch", version = "2.13.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "tqdm" },
{ name = "transformers" },
{ name = "typing-extensions" },
@@ -2871,7 +2872,7 @@ name = "sqlalchemy"
version = "2.0.52"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "typing-extensions" },
]
sdist = { url = "https://files.pythonhosted.org/packages/3b/21/77b4c147963073040dc3c3a5cb7a8c3001a1893c0209432cb77f9df836aa/sqlalchemy-2.0.52.tar.gz", hash = "sha256:5e2d46356ac2ccb7d268ab6c2319ac6a2b42f1b8d5fd8bd3d46855cd82abee97", size = 9945637, upload-time = "2026-08-11T19:07:09.829Z" }
@@ -2982,7 +2983,7 @@ dependencies = [
{ name = "huggingface-hub" },
{ name = "joblib" },
{ name = "lightgbm" },
- { name = "mlx", marker = "(platform_machine == 'arm64' and sys_platform == 'darwin') or (platform_machine != 'arm64' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda') or (sys_platform != 'darwin' and extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "mlx", marker = "(platform_machine == 'arm64' and sys_platform == 'darwin') or (platform_machine != 'arm64' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda') or (sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "numpy" },
{ name = "pandas" },
{ name = "pydantic" },
@@ -2990,9 +2991,9 @@ dependencies = [
{ name = "safetensors" },
{ name = "scikit-learn" },
{ name = "scipy" },
- { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "torch", version = "2.13.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "torch", version = "2.13.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "torch", version = "2.13.0", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "torch", version = "2.13.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "tqdm" },
{ name = "typing-extensions" },
]
@@ -3103,13 +3104,13 @@ resolution-markers = [
"python_full_version < '3.12' and sys_platform == 'darwin'",
]
dependencies = [
- { name = "filelock", marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "fsspec", marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "jinja2", marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "networkx", marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "setuptools", marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "sympy", marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "typing-extensions", marker = "(sys_platform == 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "filelock", marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "fsspec", marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "jinja2", marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "networkx", marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "setuptools", marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "sympy", marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "typing-extensions", marker = "(sys_platform == 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
wheels = [
{ url = "https://download-r2.pytorch.org/whl/cpu/torch-2.13.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:e76f9bcecc52b8ff711239a2f7547d5353df95878ab232f0773c1d95928b92f8", upload-time = "2026-07-08T12:26:13Z" },
@@ -3121,34 +3122,24 @@ name = "torch"
version = "2.13.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
- "python_full_version >= '3.12' and sys_platform != 'darwin' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and sys_platform != 'darwin' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and sys_platform == 'darwin' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and sys_platform == 'darwin' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version >= '3.12' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform != 'darwin' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform != 'darwin' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform == 'darwin' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and sys_platform == 'darwin' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and extra != 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda'",
- "python_full_version < '3.12' and extra != 'group-8-relarena-cpu' and extra != 'group-8-relarena-cuda'",
-]
-dependencies = [
- { name = "cuda-bindings", marker = "(sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "cuda-toolkit", extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"], marker = "(sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "filelock", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "fsspec", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "jinja2", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "networkx", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "nvidia-cudnn-cu13", marker = "(sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "nvidia-cusparselt-cu13", marker = "(sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "nvidia-nccl-cu13", marker = "(sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "nvidia-nvshmem-cu13", marker = "(sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "setuptools", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "sympy", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
- { name = "triton", marker = "(sys_platform == 'linux' and extra != 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "typing-extensions", marker = "extra == 'group-8-relarena-cuda' or extra != 'group-8-relarena-cpu'" },
+ "python_full_version >= '3.12'",
+ "python_full_version < '3.12'",
+]
+dependencies = [
+ { name = "cuda-bindings", marker = "(sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "cuda-toolkit", extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"], marker = "(sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "filelock", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "fsspec", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "jinja2", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "networkx", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "nvidia-cudnn-cu13", marker = "(sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "nvidia-cusparselt-cu13", marker = "(sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "nvidia-nccl-cu13", marker = "(sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "nvidia-nvshmem-cu13", marker = "(sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "setuptools", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "sympy", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
+ { name = "triton", marker = "(sys_platform == 'linux' and extra != 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "typing-extensions", marker = "extra == 'group-18-relarena-workspace-cuda' or extra != 'group-18-relarena-workspace-cpu'" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/5b/fe/cba54dc58523434919b66f13a667e36e436deddd77ca519e96553617d4ec/torch-2.13.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:e76f9bcecc52b8ff711239a2f7547d5353df95878ab232f0773c1d95928b92f8", size = 111187938, upload-time = "2026-07-08T16:05:17.065Z" },
@@ -3170,13 +3161,13 @@ resolution-markers = [
"python_full_version < '3.12' and sys_platform != 'darwin'",
]
dependencies = [
- { name = "filelock", marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "fsspec", marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "jinja2", marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "networkx", marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "setuptools", marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "sympy", marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
- { name = "typing-extensions", marker = "(sys_platform != 'darwin' and extra == 'group-8-relarena-cpu') or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "filelock", marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "fsspec", marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "jinja2", marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "networkx", marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "setuptools", marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "sympy", marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
+ { name = "typing-extensions", marker = "(sys_platform != 'darwin' and extra == 'group-18-relarena-workspace-cpu') or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
wheels = [
{ url = "https://download-r2.pytorch.org/whl/cpu/torch-2.13.0%2Bcpu-cp311-cp311-linux_s390x.whl", hash = "sha256:6e9817dbdf5ea76789babd46e457eac5bf14ff566cf85f8addbfdff2d56601ce", upload-time = "2026-07-08T19:27:52Z" },
@@ -3216,7 +3207,7 @@ name = "tqdm"
version = "4.67.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
]
sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598, upload-time = "2026-02-03T17:35:53.048Z" }
wheels = [
@@ -3269,7 +3260,7 @@ version = "0.27.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "annotated-doc" },
- { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'group-8-relarena-cpu' and extra == 'group-8-relarena-cuda')" },
+ { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'group-18-relarena-workspace-cpu' and extra == 'group-18-relarena-workspace-cuda')" },
{ name = "rich" },
{ name = "shellingham" },
]
diff --git a/workflows/verify_distributions.py b/workflows/verify_distributions.py
index c03f7b8..3d6f1e3 100644
--- a/workflows/verify_distributions.py
+++ b/workflows/verify_distributions.py
@@ -11,13 +11,16 @@ def main() -> None:
"""Check the wheel and sdist under ``dist/``."""
wheel = next(Path("dist").glob("*.whl"))
sdist = next(Path("dist").glob("*.tar.gz"))
- spec_root = Path("src/relarena/userdb/relbench_v1")
+ spec_root = Path("packages/relarena/src/relarena/userdb/relbench_v1")
required = {
"relarena/models/VENDORED-LICENSES",
"relarena/checksums/relbench_v1_checksums.json",
"relarena/userdb/database.schema.json",
"relarena/userdb/task.schema.json",
- *(str(path.relative_to("src")) for path in spec_root.glob("*/*.yaml")),
+ *(
+ str(path.relative_to("packages/relarena/src"))
+ for path in spec_root.glob("*/*.yaml")
+ ),
}
with zipfile.ZipFile(wheel) as archive: