fix: accept regional layer CLI lists
This commit is contained in:
@@ -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)}")
|
||||
|
||||
Reference in New Issue
Block a user