Skip to content

Commit 766c57d

Browse files
authored
Move eval logic to fasteval project, make codebase a monorepo (#240)
* Move eval logic to fasteval project * minor update pyproject.toml * minor update pyproject.toml * minor update pyproject.toml * Avoid root internal imports in TabArena * Update install instructions * Remove special root import test * Move tabarena src out of the root directory * Fix CI * Rename fasteval -> bencheval
1 parent 9d73361 commit 766c57d

File tree

243 files changed

+190
-250
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

243 files changed

+190
-250
lines changed

.github/workflows/pytest-pytest.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
4949
# Allow prerelease versions of AutoGluon
5050
# Install your package in editable/develop mode
51-
uv pip install --system --prerelease=allow -e .
51+
uv pip install --system --prerelease=allow -e ./tabarena
5252
5353
# Optional tools
5454
uv pip install --system flake8 pytest

README.md

Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,25 +50,56 @@ TabArena code is currently being polished. Detailed Documentation for TabArena w
5050

5151
To install TabArena, ensure you are using Python 3.9-3.12. Then, run the following:
5252

53+
### Install UV
54+
55+
Ensure [UV is installed](https://docs.astral.sh/uv/getting-started/installation/) for the most stable install.
56+
57+
```
58+
pip install uv # if pip is available
59+
```
60+
61+
### Install AutoGluon
62+
63+
In future AutoGluon installation will occur automatically, but due to changes yet to be released, we need to install AutoGluon from source.
64+
65+
```
66+
git clone https://github.com/autogluon/autogluon.git
67+
./autogluon/full_install.sh
68+
```
69+
70+
### Clone the repository
71+
72+
```
73+
git clone https://github.com/autogluon/tabarena.git
74+
cd tabarena # ensure the working directory is the project root, otherwise the below commands won't work
75+
```
76+
5377
### Evaluation (Leaderboard / Metrics)
5478

5579
If you don't intend to fit models, this is the simplest installation.
5680

81+
#### UV Install (recommended)
82+
5783
```
58-
git clone https://github.com/autogluon/tabarena.git
59-
pip install -e tabarena/
84+
uv pip install --prerelease=allow -e ./tabarena
85+
```
86+
87+
#### PIP Install (not recommended)
88+
89+
```
90+
pip install -e ./bencheval
91+
pip install -e ./tabarena
6092
```
6193

6294
### Benchmark (Fitting Models)
6395

6496
If you intend to fit models, this is required.
6597

6698
```
67-
git clone https://github.com/autogluon/tabarena.git
68-
pip install -e tabarena/[benchmark]
99+
uv pip install --prerelease=allow -e ./tabarena[benchmark]
69100
70101
# use GIT_LFS_SKIP_SMUDGE=1 in front of the command if installing TabDPT fails due to a broken LFS/pip setup
71-
# GIT_LFS_SKIP_SMUDGE=1 uv pip install -e tabarena/[benchmark]
102+
# GIT_LFS_SKIP_SMUDGE=1 uv pip install --prerelease=allow -e ./tabarena/[benchmark]
72103
```
73104

74105
### Developer Install
@@ -80,7 +111,7 @@ git clone https://github.com/autogluon/autogluon.git
80111
./autogluon/full_install.sh
81112
82113
git clone https://github.com/autogluon/tabarena.git
83-
pip install -e tabarena/[benchmark]
114+
uv pip install --prerelease=allow -e ./tabarena[benchmark]
84115
```
85116

86117
### Example Install + Run
@@ -89,9 +120,12 @@ pip install -e tabarena/[benchmark]
89120
pip install uv
90121
uv init -p 3.11
91122
uv sync
123+
git clone https://github.com/autogluon/autogluon.git
124+
./autogluon/full_install.sh
92125
git clone https://github.com/autogluon/tabarena.git
93-
uv pip install -e tabarena/[benchmark]
94-
cd examples/benchmarking/
126+
cd tabarena
127+
uv pip install --prerelease=allow -e ./tabarena[benchmark]
128+
cd examples/benchmarking
95129
python run_quickstart_tabarena.py
96130
```
97131

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
from pandas.api.types import is_numeric_dtype
1111
from scipy.stats import gmean
1212

13-
from tabarena.tabarena.elo_utils import EloHelper
14-
from tabarena.tabarena.mean_utils import compute_weighted_mean_by_task
15-
from tabarena.tabarena.winrate_utils import compute_winrate, compute_winrate_matrix
13+
from .elo_utils import EloHelper
14+
from .mean_utils import compute_weighted_mean_by_task
15+
from .winrate_utils import compute_winrate, compute_winrate_matrix
1616

1717
RANK = "rank"
1818
IMPROVABILITY = "improvability"

bencheval/pyproject.toml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[build-system]
2+
requires = ["setuptools>=69", "wheel"]
3+
build-backend = "setuptools.build_meta"
4+
5+
[project]
6+
name = "bencheval"
7+
version = "0.0.1"
8+
requires-python = ">=3.10"
9+
license = { text = "Apache-2.0" }
10+
authors = [{ name = "AutoGluon Community" }]
11+
dependencies = [
12+
"scipy",
13+
"numpy",
14+
"pandas",
15+
"tqdm",
16+
"typing-extensions>=4.11,<5", # used for `Self` type hint
17+
"scikit-learn",
18+
"seaborn==0.13.2",
19+
"matplotlib==3.10.1",
20+
"plotly>=6.3.0",
21+
"kaleido>=0.2.1,<1", # for winrate matrix
22+
]
23+
24+
[tool.setuptools.packages.find]
25+
where = ["."]
26+
include = ["bencheval*"]
27+
28+
#[tool.setuptools]
29+
#package-dir = {}
30+
#packages = ["bencheval"]
31+
32+
[project.urls]
33+
Homepage = "https://github.com/autogluon/tabarena"

examples/!old/run_quickstart_tabarena_custom_autogluon.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ def is_in(dataset: str, fold: int) -> bool:
119119

120120
calibration_framework = "RF (default)"
121121

122-
from tabarena.tabarena.tabarena import TabArena
122+
from bencheval.tabarena import TabArena
123123
tabarena = TabArena(
124124
method_col="method",
125125
task_col="dataset",

0 commit comments

Comments
 (0)