Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion geneva_examples/core/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ class Config:
s3_endpoint: str | None = None
s3_region: str | None = None
aws_allow_http: bool = False
azure_account_name: str | None = None
azure_account_key: str | None = None
hf_token: str | None = None

@property
Expand All @@ -70,7 +72,18 @@ def is_local(self) -> bool:
return self.mode == "local"

def storage_options(self) -> dict[str, str] | None:
"""Build S3 ``storage_options``; ``None`` unless all four creds present."""
"""Build object-store ``storage_options`` for the data plane.

Azure (account name + key) takes precedence; else S3-compatible when all
four creds are present; else ``None``. Enterprise clients write Lance
data fragments directly to object storage, so the account-less
``az://<container>`` root URI needs the account named here.
"""
if self.azure_account_name and self.azure_account_key:
return {
"azure_storage_account_name": self.azure_account_name,
"azure_storage_account_key": self.azure_account_key,
}
if not (
self.s3_access_key
and self.s3_secret_key
Expand Down Expand Up @@ -155,5 +168,7 @@ def load_config(
s3_endpoint=data.get("s3_endpoint"),
s3_region=data.get("s3_region"),
aws_allow_http=_as_bool(data.get("aws_allow_http")),
azure_account_name=data.get("azure_account_name"),
azure_account_key=data.get("azure_account_key"),
hf_token=data.get("hf_token") or None,
)
16 changes: 9 additions & 7 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ dependencies = [
"typer>=0.24.0",
"pyyaml>=6.0",
# Pin the LanceDB stack to the versions the deployed cluster was built
# against (client/server must match or declare_table 500s). pylance 8.0.x
# lives on the lance-format index (see [tool.uv.sources]). pyarrow/numpy are
# left to geneva's own constraints. geneva 0.13.0b17+ adds source_task_size
# to chunker-view refresh; b18 requires pylance>=8.0.0b11.
"geneva==0.13.0b18",
"lancedb==0.33.1b2",
"pylance==8.0.0b16",
# against (client/server must match or declare_table/backfill_column 500s).
# pylance 9.0.x lives on the lance-format index (see [tool.uv.sources]).
# pyarrow/numpy are left to geneva's own constraints. This set matches the
# data plane's geneva 0.13.0b30 build (see sophon lancedb_integtest pins):
# older pylance (8.x)/lancedb (0.33) spoke a different namespace API, so
# add_columns would succeed but backfill_column returned "column not found".
"geneva==0.13.0b30",
"lancedb==0.34.0b5",
"pylance>=9.0.0b15",
"pyarrow",
"numpy",
"pillow>=10",
Expand Down
67 changes: 49 additions & 18 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.