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: