Skip to content

Commit d191577

Browse files
committed
feat: update version handling and cleanup in example scripts
- Removed the `--arcadedb-version` and `--duckdb-version` arguments from various scripts to simplify version management. - Updated the way versions are retrieved for `arcadedb`, `duckdb`, `ladybug`, and `graphqlite` to use the module's `__version__` attribute directly. - Adjusted Docker run commands to remove unnecessary version specifications. - Modified matrix scripts to handle version reporting more efficiently, replacing specific version strings with "auto" where applicable. - Improved memory limits and batch sizes in several scripts for better performance.
1 parent 9c5fd93 commit d191577

18 files changed

Lines changed: 105 additions & 199 deletions

bindings/python/examples/07_stackoverflow_tables_oltp.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1906,6 +1906,12 @@ def write_results(db_path: Path, args: argparse.Namespace, summary: dict):
19061906
)
19071907
duckdb_module = get_duckdb_module()
19081908
duckdb_version = duckdb_module.__version__ if duckdb_module is not None else None
1909+
arcadedb_module, _ = get_arcadedb_module()
1910+
arcadedb_version = (
1911+
getattr(arcadedb_module, "__version__", None)
1912+
if arcadedb_module is not None
1913+
else None
1914+
)
19091915

19101916
payload = {
19111917
"dataset": args.dataset,
@@ -1916,8 +1922,8 @@ def write_results(db_path: Path, args: argparse.Namespace, summary: dict):
19161922
"batch_size": args.batch_size,
19171923
"mem_limit": args.mem_limit,
19181924
"heap_size": args.heap_size_effective,
1919-
"arcadedb_version": args.arcadedb_version,
1920-
"duckdb_version": args.duckdb_version,
1925+
"arcadedb_version": arcadedb_version,
1926+
"duckdb_version": duckdb_version,
19211927
"docker_image": args.docker_image,
19221928
"sqlite_version": sqlite3.sqlite_version,
19231929
"sqlite_profile": summary.get("sqlite_profile"),
@@ -2053,7 +2059,7 @@ def run_in_docker(args):
20532059

20542060
packages = ["lxml"]
20552061
if args.db == "duckdb":
2056-
packages.append(f"duckdb=={args.duckdb_version}")
2062+
packages.append("duckdb")
20572063
if args.db == "postgresql":
20582064
packages.append("psycopg[binary]")
20592065

@@ -2169,15 +2175,6 @@ def main():
21692175
default=0.80,
21702176
help="JVM heap fraction of --mem-limit (default: 0.80)",
21712177
)
2172-
parser.add_argument(
2173-
"--arcadedb-version",
2174-
type=str,
2175-
default="26.3.1.dev1",
2176-
help="arcadedb-embedded version to install in Docker",
2177-
)
2178-
parser.add_argument(
2179-
"--duckdb-version", type=str, default="1.4.4", help="duckdb version"
2180-
)
21812178
parser.add_argument(
21822179
"--docker-image", type=str, default="python:3.12-slim", help="Docker image"
21832180
)

bindings/python/examples/08_stackoverflow_tables_olap.py

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,6 +1201,12 @@ def write_results(db_path: Path, args: argparse.Namespace, summary: dict):
12011201
results_path = db_path / "results.json"
12021202
duckdb_module = get_duckdb_module()
12031203
duckdb_runtime_version = duckdb_module.__version__ if duckdb_module else None
1204+
arcadedb_module, _ = get_arcadedb_module()
1205+
arcadedb_runtime_version = (
1206+
getattr(arcadedb_module, "__version__", None)
1207+
if arcadedb_module is not None
1208+
else None
1209+
)
12041210
query_telemetry = build_query_telemetry(summary.get("queries", {}).get("items", []))
12051211
payload = {
12061212
"dataset": args.dataset,
@@ -1209,8 +1215,8 @@ def write_results(db_path: Path, args: argparse.Namespace, summary: dict):
12091215
"batch_size": args.batch_size,
12101216
"mem_limit": args.mem_limit,
12111217
"heap_size": args.heap_size_effective,
1212-
"arcadedb_version": args.arcadedb_version,
1213-
"duckdb_version": args.duckdb_version,
1218+
"arcadedb_version": arcadedb_runtime_version,
1219+
"duckdb_version": duckdb_runtime_version,
12141220
"docker_image": args.docker_image,
12151221
"seed": args.seed,
12161222
"run_label": args.run_label,
@@ -1363,7 +1369,7 @@ def run_in_docker(args):
13631369

13641370
packages = ["lxml"]
13651371
if args.db == "duckdb":
1366-
packages.append(f"duckdb=={args.duckdb_version}")
1372+
packages.append("duckdb")
13671373
if args.db == "postgresql":
13681374
packages.append("psycopg[binary]")
13691375
packages_str = " ".join(packages)
@@ -2017,18 +2023,6 @@ def main():
20172023
default=0.80,
20182024
help="JVM heap fraction of --mem-limit (default: 0.80)",
20192025
)
2020-
parser.add_argument(
2021-
"--arcadedb-version",
2022-
type=str,
2023-
default="26.3.1.dev1",
2024-
help="arcadedb-embedded version to install in Docker (default: 26.3.1.dev1)",
2025-
)
2026-
parser.add_argument(
2027-
"--duckdb-version",
2028-
type=str,
2029-
default="1.4.4",
2030-
help="duckdb version to install in Docker (default: 1.4.4)",
2031-
)
20322026
parser.add_argument(
20332027
"--docker-image",
20342028
type=str,

bindings/python/examples/09_stackoverflow_graph_oltp.py

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7607,6 +7607,9 @@ def write_results(db_path: Path, args: argparse.Namespace, summary: dict):
76077607
results_path = db_path / f"results_{args.run_label}.json"
76087608
else:
76097609
results_path = db_path / "results.json"
7610+
arcadedb_module, _ = get_arcadedb_module()
7611+
ladybug_module = get_ladybug_module()
7612+
graphqlite_module = get_graphqlite_module()
76107613
payload = {
76117614
"dataset": args.dataset,
76127615
"db": args.db,
@@ -7615,9 +7618,21 @@ def write_results(db_path: Path, args: argparse.Namespace, summary: dict):
76157618
"batch_size": args.batch_size,
76167619
"mem_limit": args.mem_limit,
76177620
"heap_size": args.heap_size_effective,
7618-
"arcadedb_version": args.arcadedb_version,
7619-
"ladybug_version": args.ladybug_version,
7620-
"graphqlite_version": args.graphqlite_version,
7621+
"arcadedb_version": (
7622+
getattr(arcadedb_module, "__version__", None)
7623+
if arcadedb_module is not None
7624+
else None
7625+
),
7626+
"ladybug_version": (
7627+
getattr(ladybug_module, "__version__", None)
7628+
if ladybug_module is not None
7629+
else None
7630+
),
7631+
"graphqlite_version": (
7632+
getattr(graphqlite_module, "__version__", None)
7633+
if graphqlite_module is not None
7634+
else None
7635+
),
76217636
"sqlite_profile": summary.get("sqlite_profile"),
76227637
"sqlite_pragmas": summary.get("sqlite_pragmas"),
76237638
"sqlite_version": sqlite3.sqlite_version,
@@ -7762,12 +7777,9 @@ def run_in_docker(args) -> bool:
77627777

77637778
packages = ["lxml"]
77647779
if args.db in ("ladybug", "ladybugdb"):
7765-
if args.ladybug_version:
7766-
packages.append(f"real_ladybug=={args.ladybug_version}")
7767-
else:
7768-
packages.append("real_ladybug")
7780+
packages.append("real_ladybug")
77697781
if args.db == "graphqlite":
7770-
packages.append(f"graphqlite=={args.graphqlite_version}")
7782+
packages.append("graphqlite")
77717783

77727784
packages_str = " ".join(packages)
77737785

@@ -7873,24 +7885,6 @@ def main():
78737885
default=0.80,
78747886
help="JVM heap fraction of --mem-limit (default: 0.80)",
78757887
)
7876-
parser.add_argument(
7877-
"--arcadedb-version",
7878-
type=str,
7879-
default="26.3.1.dev1",
7880-
help="arcadedb-embedded version to install in Docker (default: 26.3.1.dev1)",
7881-
)
7882-
parser.add_argument(
7883-
"--ladybug-version",
7884-
type=str,
7885-
default="0.15.1",
7886-
help="real_ladybug version to install in Docker (default: 0.15.1)",
7887-
)
7888-
parser.add_argument(
7889-
"--graphqlite-version",
7890-
type=str,
7891-
default="0.3.5",
7892-
help="graphqlite version to install in Docker (default: 0.3.5)",
7893-
)
78947888
parser.add_argument(
78957889
"--docker-image",
78967890
type=str,

bindings/python/examples/10_stackoverflow_graph_olap.py

Lines changed: 20 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4781,13 +4781,20 @@ def write_results(db_path: Path, args: argparse.Namespace, summary: dict):
47814781
else:
47824782
results_path = db_path / "results.json"
47834783
query_telemetry = build_query_telemetry(summary.get("queries", []))
4784+
arcadedb_module, _ = get_arcadedb_module()
4785+
ladybug_module = get_ladybug_module()
4786+
graphqlite_module = get_graphqlite_module()
47844787
payload = {
47854788
"dataset": args.dataset,
47864789
"db": args.db,
47874790
"batch_size": args.batch_size,
47884791
"mem_limit": args.mem_limit,
47894792
"heap_size": args.heap_size_effective,
4790-
"arcadedb_version": args.arcadedb_version,
4793+
"arcadedb_version": (
4794+
getattr(arcadedb_module, "__version__", None)
4795+
if arcadedb_module is not None
4796+
else None
4797+
),
47914798
"arcadedb_olap_language": summary.get(
47924799
"arcadedb_olap_language",
47934800
(
@@ -4796,8 +4803,16 @@ def write_results(db_path: Path, args: argparse.Namespace, summary: dict):
47964803
else None
47974804
),
47984805
),
4799-
"ladybug_version": args.ladybug_version,
4800-
"graphqlite_version": args.graphqlite_version,
4806+
"ladybug_version": (
4807+
getattr(ladybug_module, "__version__", None)
4808+
if ladybug_module is not None
4809+
else None
4810+
),
4811+
"graphqlite_version": (
4812+
getattr(graphqlite_module, "__version__", None)
4813+
if graphqlite_module is not None
4814+
else None
4815+
),
48014816
"sqlite_profile": args.sqlite_profile,
48024817
"docker_image": args.docker_image,
48034818
"threads": args.threads,
@@ -4950,15 +4965,9 @@ def run_in_docker(args) -> bool:
49504965

49514966
packages = ["lxml"]
49524967
if args.db in ("ladybug", "ladybugdb"):
4953-
if args.ladybug_version:
4954-
packages.append(f"real_ladybug=={args.ladybug_version}")
4955-
else:
4956-
packages.append("real_ladybug")
4968+
packages.append("real_ladybug")
49574969
if args.db == "graphqlite":
4958-
if args.graphqlite_version:
4959-
packages.append(f"graphqlite=={args.graphqlite_version}")
4960-
else:
4961-
packages.append("graphqlite")
4970+
packages.append("graphqlite")
49624971

49634972
packages_str = " ".join(packages)
49644973

@@ -5059,24 +5068,6 @@ def main():
50595068
default=0.80,
50605069
help="JVM heap fraction of --mem-limit (default: 0.80)",
50615070
)
5062-
parser.add_argument(
5063-
"--arcadedb-version",
5064-
type=str,
5065-
default="26.3.1.dev1",
5066-
help="arcadedb-embedded version to install in Docker (default: 26.3.1.dev1)",
5067-
)
5068-
parser.add_argument(
5069-
"--ladybug-version",
5070-
type=str,
5071-
default="0.15.1",
5072-
help="real_ladybug version to install in Docker (default: 0.15.1)",
5073-
)
5074-
parser.add_argument(
5075-
"--graphqlite-version",
5076-
type=str,
5077-
default="0.3.5",
5078-
help="graphqlite version to install in Docker (default: 0.3.5)",
5079-
)
50805071
parser.add_argument(
50815072
"--sqlite-profile",
50825073
choices=SQLITE_PROFILE_CHOICES,

bindings/python/examples/11_vector_index_build.py

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1389,7 +1389,7 @@ def run_in_docker(args) -> bool:
13891389

13901390
filtered_args: list[str] = []
13911391
skip_next = False
1392-
hidden_args = {"--docker-image", "--arcadedb-version"}
1392+
hidden_args = {"--docker-image"}
13931393
custom_docker_image = False
13941394
for arg in sys.argv[1:]:
13951395
if skip_next:
@@ -1400,9 +1400,8 @@ def run_in_docker(args) -> bool:
14001400
custom_docker_image = True
14011401
skip_next = True
14021402
continue
1403-
if arg.startswith("--docker-image=") or arg.startswith("--arcadedb-version="):
1404-
if arg.startswith("--docker-image="):
1405-
custom_docker_image = True
1403+
if arg.startswith("--docker-image="):
1404+
custom_docker_image = True
14061405
continue
14071406
filtered_args.append(arg)
14081407

@@ -1463,7 +1462,7 @@ def run_in_docker(args) -> bool:
14631462
"python -m venv /tmp/bench-venv",
14641463
". /tmp/bench-venv/bin/activate",
14651464
"python -m pip install --no-cache-dir uv",
1466-
f"uv pip install faiss-cpu=={args.faiss_version} numpy psutil",
1465+
"uv pip install faiss-cpu numpy psutil",
14671466
"echo 'Starting vector build benchmark...'",
14681467
f"python -u 11_vector_index_build.py {' '.join(filtered_args)}",
14691468
]
@@ -1475,7 +1474,7 @@ def run_in_docker(args) -> bool:
14751474
"python -m venv /tmp/bench-venv",
14761475
". /tmp/bench-venv/bin/activate",
14771476
"python -m pip install --no-cache-dir uv",
1478-
f"uv pip install lancedb=={args.lancedb_version} numpy psutil",
1477+
"uv pip install lancedb numpy psutil",
14791478
"echo 'Starting vector build benchmark...'",
14801479
f"python -u 11_vector_index_build.py {' '.join(filtered_args)}",
14811480
]
@@ -1608,9 +1607,6 @@ def collect_runtime_metadata(
16081607
"docker_image": args.docker_image or default_docker_image(args.backend),
16091608
"docker_version": get_docker_version(),
16101609
"backend": args.backend,
1611-
"arcadedb_requested_version": args.arcadedb_version,
1612-
"faiss_requested_version": args.faiss_version,
1613-
"lancedb_requested_version": args.lancedb_version,
16141610
"runtime_versions": runtime_versions,
16151611
"is_running_in_docker": is_running_in_docker(),
16161612
}
@@ -1701,9 +1697,6 @@ def main() -> None:
17011697
help="JVM heap fraction of --mem-limit (default: 0.80)",
17021698
)
17031699
parser.add_argument("--jvm-args", default=None)
1704-
parser.add_argument("--arcadedb-version", type=str, default="26.3.1.dev1")
1705-
parser.add_argument("--faiss-version", type=str, default="1.13.2")
1706-
parser.add_argument("--lancedb-version", type=str, default="0.29.2")
17071700
parser.add_argument(
17081701
"--docker-image",
17091702
type=str,
@@ -2373,15 +2366,13 @@ def server_pid_provider() -> int | None:
23732366
},
23742367
"faiss": {
23752368
"index_file": str(db_path / "faiss.index"),
2376-
"requested_version": args.faiss_version,
23772369
"metric": "cosine_via_inner_product_normalized",
23782370
"hnsw_m": args.max_connections,
23792371
"hnsw_ef_construct": args.beam_width,
23802372
},
23812373
"lancedb": {
23822374
"data_dir": str(db_path / "lancedb-data"),
23832375
"table": "vectordata",
2384-
"requested_version": args.lancedb_version,
23852376
"metric": "cosine",
23862377
"index_type": "IVF_HNSW_SQ",
23872378
"hnsw_m": args.max_connections,

bindings/python/examples/12_vector_search.py

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1705,7 +1705,7 @@ def run_in_docker(args) -> bool:
17051705

17061706
filtered_args: List[str] = []
17071707
skip_next = False
1708-
hidden_args = {"--docker-image", "--arcadedb-version"}
1708+
hidden_args = {"--docker-image"}
17091709
custom_docker_image = False
17101710
for arg in sys.argv[1:]:
17111711
if skip_next:
@@ -1716,9 +1716,8 @@ def run_in_docker(args) -> bool:
17161716
custom_docker_image = True
17171717
skip_next = True
17181718
continue
1719-
if arg.startswith("--docker-image=") or arg.startswith("--arcadedb-version="):
1720-
if arg.startswith("--docker-image="):
1721-
custom_docker_image = True
1719+
if arg.startswith("--docker-image="):
1720+
custom_docker_image = True
17221721
continue
17231722
filtered_args.append(arg)
17241723

@@ -1777,7 +1776,7 @@ def run_in_docker(args) -> bool:
17771776
"python -m venv /tmp/bench-venv",
17781777
". /tmp/bench-venv/bin/activate",
17791778
"python -m pip install --no-cache-dir uv",
1780-
f"uv pip install faiss-cpu=={args.faiss_version} numpy psutil",
1779+
"uv pip install faiss-cpu numpy psutil",
17811780
"echo 'Starting vector search benchmark...'",
17821781
f"python -u 12_vector_search.py {' '.join(filtered_args)}",
17831782
]
@@ -1789,7 +1788,7 @@ def run_in_docker(args) -> bool:
17891788
"python -m venv /tmp/bench-venv",
17901789
". /tmp/bench-venv/bin/activate",
17911790
"python -m pip install --no-cache-dir uv",
1792-
f"uv pip install lancedb=={args.lancedb_version} numpy psutil",
1791+
"uv pip install lancedb numpy psutil",
17931792
"echo 'Starting vector search benchmark...'",
17941793
f"python -u 12_vector_search.py {' '.join(filtered_args)}",
17951794
]
@@ -1923,9 +1922,6 @@ def collect_runtime_metadata(
19231922
"docker_image": args.docker_image or default_docker_image(args.backend),
19241923
"docker_version": get_docker_version(),
19251924
"backend": args.backend,
1926-
"arcadedb_requested_version": args.arcadedb_version,
1927-
"faiss_requested_version": args.faiss_version,
1928-
"lancedb_requested_version": args.lancedb_version,
19291925
"runtime_versions": runtime_versions,
19301926
"is_running_in_docker": is_running_in_docker(),
19311927
"quantization": quantization,
@@ -2004,9 +2000,6 @@ def main() -> None:
20042000
help="JVM heap fraction of --mem-limit (default: 0.80)",
20052001
)
20062002
parser.add_argument("--jvm-args", default=None)
2007-
parser.add_argument("--arcadedb-version", type=str, default="26.3.1.dev1")
2008-
parser.add_argument("--faiss-version", type=str, default="1.13.2")
2009-
parser.add_argument("--lancedb-version", type=str, default="0.29.2")
20102003
parser.add_argument("--docker-image", type=str, default=None)
20112004

20122005
parser.add_argument("--pg-host", default="127.0.0.1")

0 commit comments

Comments
 (0)