diff --git a/skydriver/database/interface.py b/skydriver/database/interface.py index 655d0063..f7f6716c 100644 --- a/skydriver/database/interface.py +++ b/skydriver/database/interface.py @@ -61,7 +61,7 @@ async def post( scanner_server_args: str, tms_args_list: list[str], env_vars: schema.EnvVars, - classifiers: dict[str, str | bool | float | int], + classifiers: dict[str, str | bool | float | int | None], priority: int, ) -> schema.Manifest: """Create `schema.Manifest` doc.""" diff --git a/skydriver/database/schema.py b/skydriver/database/schema.py index 985b18fe..8f88694c 100644 --- a/skydriver/database/schema.py +++ b/skydriver/database/schema.py @@ -255,7 +255,7 @@ class Manifest(ScanIDDataclass): ) # open to requestor - classifiers: dict[str, str | bool | float | int] = dc.field(default_factory=dict) + classifiers: dict[str, str | bool | float | int | None] = dc.field(default_factory=dict) # i3 event -- grabbed by scanner central server i3_event_id: str = "" # id to i3_event coll diff --git a/skydriver/rest_handlers.py b/skydriver/rest_handlers.py index ef217408..b803bac8 100644 --- a/skydriver/rest_handlers.py +++ b/skydriver/rest_handlers.py @@ -297,12 +297,12 @@ def _validate_request_clusters( return list_tups -def _classifiers_validator(val: Any) -> dict[str, str | bool | float | int]: +def _classifiers_validator(val: Any) -> dict[str, str | bool | float | int | None]: # type checks if not isinstance(val, dict): raise argparse.ArgumentTypeError("must be a dict") - if any(v for v in val.values() if not isinstance(v, str | bool | float | int)): - raise argparse.ArgumentTypeError("entry must be 'str | bool | float | int'") + if any(v for v in val.values() if not isinstance(v, str | bool | float | int | None)): + raise argparse.ArgumentTypeError("entry must be 'str | bool | float | int | None'") # size check if len(val) > MAX_CLASSIFIERS_LEN: