Skip to content

Commit 9e115c5

Browse files
committed
fix(docker): handle missing ArcadeDB wheel in Docker environment
1 parent d781c80 commit 9e115c5

6 files changed

Lines changed: 126 additions & 11 deletions

bindings/python/examples/07_stackoverflow_tables_oltp.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2029,9 +2029,26 @@ def run_in_docker(args):
20292029
continue
20302030
filtered_args.append(arg)
20312031

2032-
packages = ["lxml"]
2032+
arcadedb_wheel_mount_path = None
20332033
if args.db == "arcadedb":
2034-
packages.append(f"arcadedb-embedded=={args.arcadedb_version}")
2034+
wheel_candidates = sorted(
2035+
(repo_root / "bindings/python/dist").glob("*embed*.whl")
2036+
)
2037+
if not wheel_candidates:
2038+
if os.environ.get("GITHUB_ACTIONS", "").lower() == "true":
2039+
raise RuntimeError(
2040+
"ArcadeDB wheel not found in bindings/python/dist during GitHub Actions run"
2041+
)
2042+
print(
2043+
"[info] No local ArcadeDB wheel found in bindings/python/dist; "
2044+
"skipping Docker wrapper and running natively."
2045+
)
2046+
return False
2047+
arcadedb_wheel_mount_path = (
2048+
f"/workspace/bindings/python/dist/{wheel_candidates[0].name}"
2049+
)
2050+
2051+
packages = ["lxml"]
20352052
if args.db == "duckdb":
20362053
packages.append(f"duckdb=={args.duckdb_version}")
20372054
if args.db == "postgresql":
@@ -2050,6 +2067,8 @@ def run_in_docker(args):
20502067
inner_cmd_parts.append(". /tmp/bench-venv/bin/activate")
20512068
inner_cmd_parts.append(f"{python_cmd} -m pip install --no-cache-dir uv")
20522069
inner_cmd_parts.append(f"uv pip install {packages_str}")
2070+
if arcadedb_wheel_mount_path is not None:
2071+
inner_cmd_parts.append(f'uv pip install "{arcadedb_wheel_mount_path}"')
20532072
inner_cmd_parts.append("echo 'Starting benchmark...'")
20542073
if args.db == "postgresql":
20552074
db_name = build_benchmark_db_name(args.dataset, args.db, args.run_label)

bindings/python/examples/08_stackoverflow_tables_olap.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1339,9 +1339,26 @@ def run_in_docker(args):
13391339
continue
13401340
filtered_args.append(arg)
13411341

1342-
packages = ["lxml"]
1342+
arcadedb_wheel_mount_path = None
13431343
if args.db == "arcadedb":
1344-
packages.append(f"arcadedb-embedded=={args.arcadedb_version}")
1344+
wheel_candidates = sorted(
1345+
(repo_root / "bindings/python/dist").glob("*embed*.whl")
1346+
)
1347+
if not wheel_candidates:
1348+
if os.environ.get("GITHUB_ACTIONS", "").lower() == "true":
1349+
raise RuntimeError(
1350+
"ArcadeDB wheel not found in bindings/python/dist during GitHub Actions run"
1351+
)
1352+
print(
1353+
"[info] No local ArcadeDB wheel found in bindings/python/dist; "
1354+
"skipping Docker wrapper and running natively."
1355+
)
1356+
return False
1357+
arcadedb_wheel_mount_path = (
1358+
f"/workspace/bindings/python/dist/{wheel_candidates[0].name}"
1359+
)
1360+
1361+
packages = ["lxml"]
13451362
if args.db == "duckdb":
13461363
packages.append(f"duckdb=={args.duckdb_version}")
13471364
if args.db == "postgresql":
@@ -1359,6 +1376,8 @@ def run_in_docker(args):
13591376
inner_cmd_parts.append(". /tmp/bench-venv/bin/activate")
13601377
inner_cmd_parts.append(f"{python_cmd} -m pip install --no-cache-dir uv")
13611378
inner_cmd_parts.append(f"uv pip install {packages_str}")
1379+
if arcadedb_wheel_mount_path is not None:
1380+
inner_cmd_parts.append(f'uv pip install "{arcadedb_wheel_mount_path}"')
13621381
inner_cmd_parts.append("echo 'Starting benchmark...'")
13631382
inner_cmd_parts.append(
13641383
f"{python_cmd} -u 08_stackoverflow_tables_olap.py {' '.join(filtered_args)}"

bindings/python/examples/09_stackoverflow_graph_oltp.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7738,9 +7738,26 @@ def run_in_docker(args) -> bool:
77387738
continue
77397739
filtered_args.append(arg)
77407740

7741-
packages = ["lxml"]
7741+
arcadedb_wheel_mount_path = None
77427742
if args.db == "arcadedb":
7743-
packages.append(f"arcadedb-embedded=={args.arcadedb_version}")
7743+
wheel_candidates = sorted(
7744+
(repo_root / "bindings/python/dist").glob("*embed*.whl")
7745+
)
7746+
if not wheel_candidates:
7747+
if os.environ.get("GITHUB_ACTIONS", "").lower() == "true":
7748+
raise RuntimeError(
7749+
"ArcadeDB wheel not found in bindings/python/dist during GitHub Actions run"
7750+
)
7751+
print(
7752+
"[info] No local ArcadeDB wheel found in bindings/python/dist; "
7753+
"skipping Docker wrapper and running natively."
7754+
)
7755+
return False
7756+
arcadedb_wheel_mount_path = (
7757+
f"/workspace/bindings/python/dist/{wheel_candidates[0].name}"
7758+
)
7759+
7760+
packages = ["lxml"]
77447761
if args.db in ("ladybug", "ladybugdb"):
77457762
if args.ladybug_version:
77467763
packages.append(f"real_ladybug=={args.ladybug_version}")
@@ -7757,6 +7774,8 @@ def run_in_docker(args) -> bool:
77577774
inner_cmd_parts.append(". /tmp/bench-venv/bin/activate")
77587775
inner_cmd_parts.append(f"{python_cmd} -m pip install --no-cache-dir uv")
77597776
inner_cmd_parts.append(f"uv pip install {packages_str}")
7777+
if arcadedb_wheel_mount_path is not None:
7778+
inner_cmd_parts.append(f'uv pip install "{arcadedb_wheel_mount_path}"')
77607779
inner_cmd_parts.append("echo 'Starting benchmark...'")
77617780
inner_cmd_parts.append(
77627781
f"{python_cmd} -u 09_stackoverflow_graph_oltp.py {' '.join(filtered_args)}"

bindings/python/examples/10_stackoverflow_graph_olap.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4926,9 +4926,26 @@ def run_in_docker(args) -> bool:
49264926
continue
49274927
filtered_args.append(arg)
49284928

4929-
packages = ["lxml"]
4929+
arcadedb_wheel_mount_path = None
49304930
if args.db in ("arcadedb", "arcadedb_cypher"):
4931-
packages.append(f"arcadedb-embedded=={args.arcadedb_version}")
4931+
wheel_candidates = sorted(
4932+
(repo_root / "bindings/python/dist").glob("*embed*.whl")
4933+
)
4934+
if not wheel_candidates:
4935+
if os.environ.get("GITHUB_ACTIONS", "").lower() == "true":
4936+
raise RuntimeError(
4937+
"ArcadeDB wheel not found in bindings/python/dist during GitHub Actions run"
4938+
)
4939+
print(
4940+
"[info] No local ArcadeDB wheel found in bindings/python/dist; "
4941+
"skipping Docker wrapper and running natively."
4942+
)
4943+
return False
4944+
arcadedb_wheel_mount_path = (
4945+
f"/workspace/bindings/python/dist/{wheel_candidates[0].name}"
4946+
)
4947+
4948+
packages = ["lxml"]
49324949
if args.db in ("ladybug", "ladybugdb"):
49334950
if args.ladybug_version:
49344951
packages.append(f"real_ladybug=={args.ladybug_version}")
@@ -4948,6 +4965,8 @@ def run_in_docker(args) -> bool:
49484965
inner_cmd_parts.append(". /tmp/bench-venv/bin/activate")
49494966
inner_cmd_parts.append(f"{python_cmd} -m pip install --no-cache-dir uv")
49504967
inner_cmd_parts.append(f"uv pip install {packages_str}")
4968+
if arcadedb_wheel_mount_path is not None:
4969+
inner_cmd_parts.append(f'uv pip install "{arcadedb_wheel_mount_path}"')
49514970
inner_cmd_parts.append("echo 'Starting benchmark...'")
49524971
inner_cmd_parts.append(
49534972
f"{python_cmd} -u 10_stackoverflow_graph_olap.py {' '.join(filtered_args)}"

bindings/python/examples/11_vector_index_build.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1418,6 +1418,25 @@ def run_in_docker(args) -> bool:
14181418
if not has_qdrant_host:
14191419
filtered_args.extend(["--qdrant-host", "host.docker.internal"])
14201420

1421+
arcadedb_wheel_mount_path = None
1422+
if args.backend == "arcadedb":
1423+
wheel_candidates = sorted(
1424+
(repo_root / "bindings/python/dist").glob("*embed*.whl")
1425+
)
1426+
if not wheel_candidates:
1427+
if os.environ.get("GITHUB_ACTIONS", "").lower() == "true":
1428+
raise RuntimeError(
1429+
"ArcadeDB wheel not found in bindings/python/dist during GitHub Actions run"
1430+
)
1431+
print(
1432+
"[info] No local ArcadeDB wheel found in bindings/python/dist; "
1433+
"skipping Docker wrapper and running natively."
1434+
)
1435+
return False
1436+
arcadedb_wheel_mount_path = (
1437+
f"/workspace/bindings/python/dist/{wheel_candidates[0].name}"
1438+
)
1439+
14211440
image = args.docker_image
14221441
if args.backend == "pgvector" and image == "python:3.12-slim":
14231442
image = default_docker_image(args.backend)
@@ -1428,8 +1447,8 @@ def run_in_docker(args) -> bool:
14281447
"python -m venv /tmp/bench-venv",
14291448
". /tmp/bench-venv/bin/activate",
14301449
"python -m pip install --no-cache-dir uv",
1431-
"uv pip install "
1432-
f"arcadedb-embedded=={args.arcadedb_version} numpy psutil",
1450+
"uv pip install numpy psutil",
1451+
f'uv pip install "{arcadedb_wheel_mount_path}"',
14331452
"echo 'Starting vector build benchmark...'",
14341453
f"python -u 11_vector_index_build.py {' '.join(filtered_args)}",
14351454
]

bindings/python/examples/12_vector_search.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1734,6 +1734,25 @@ def run_in_docker(args) -> bool:
17341734
if not has_qdrant_host:
17351735
filtered_args.extend(["--qdrant-host", "host.docker.internal"])
17361736

1737+
arcadedb_wheel_mount_path = None
1738+
if args.backend == "arcadedb":
1739+
wheel_candidates = sorted(
1740+
(repo_root / "bindings/python/dist").glob("*embed*.whl")
1741+
)
1742+
if not wheel_candidates:
1743+
if os.environ.get("GITHUB_ACTIONS", "").lower() == "true":
1744+
raise RuntimeError(
1745+
"ArcadeDB wheel not found in bindings/python/dist during GitHub Actions run"
1746+
)
1747+
print(
1748+
"[info] No local ArcadeDB wheel found in bindings/python/dist; "
1749+
"skipping Docker wrapper and running natively."
1750+
)
1751+
return False
1752+
arcadedb_wheel_mount_path = (
1753+
f"/workspace/bindings/python/dist/{wheel_candidates[0].name}"
1754+
)
1755+
17371756
image = args.docker_image or default_docker_image(args.backend)
17381757

17391758
if args.backend == "arcadedb":
@@ -1742,7 +1761,8 @@ def run_in_docker(args) -> bool:
17421761
"python -m venv /tmp/bench-venv",
17431762
". /tmp/bench-venv/bin/activate",
17441763
"python -m pip install --no-cache-dir uv",
1745-
f"uv pip install arcadedb-embedded=={args.arcadedb_version} numpy psutil",
1764+
"uv pip install numpy psutil",
1765+
f'uv pip install "{arcadedb_wheel_mount_path}"',
17461766
"echo 'Starting vector search benchmark...'",
17471767
f"python -u 12_vector_search.py {' '.join(filtered_args)}",
17481768
]

0 commit comments

Comments
 (0)