fix: accept regional layer CLI lists
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-14 20:11:49 +02:00
parent 0ed214da02
commit 7af47abe2a
3 changed files with 28 additions and 4 deletions
+14 -3
View File
@@ -112,7 +112,12 @@ LAYER_BY_KEY = {definition.key: definition for definition in LAYERS}
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Provision municipality-partitioned regional GRB context layers.")
parser.add_argument("--scope", choices=sorted(GEOGRAPHIC_SCOPES), default=DEFAULT_SCOPE_KEY)
parser.add_argument("--layers", default=",".join(LAYER_BY_KEY), help="Comma-separated subset: roads,water,parcels")
parser.add_argument(
"--layers",
nargs="+",
default=list(LAYER_BY_KEY),
help="Space- or comma-separated subset: roads water parcels",
)
parser.add_argument("--observed-date", type=date.fromisoformat, default=date.today())
parser.add_argument("--base-url", default=os.environ.get("GEOINTEL_INTERNAL_API_URL", DEFAULT_API_URL))
parser.add_argument(
@@ -131,8 +136,14 @@ def parse_args() -> argparse.Namespace:
return parser.parse_args()
def selected_definitions(raw_layers: str) -> list[LayerDefinition]:
requested = {item.strip().lower() for item in raw_layers.split(",") if item.strip()}
def selected_definitions(raw_layers: str | list[str]) -> list[LayerDefinition]:
values = [raw_layers] if isinstance(raw_layers, str) else raw_layers
requested = {
item.strip().lower()
for value in values
for item in value.split(",")
if item.strip()
}
unknown = requested - set(LAYER_BY_KEY)
if unknown or not requested:
raise ValueError(f"Unsupported layers: {sorted(unknown)}")