diff --git a/queenbee/io/inputs/function.py b/queenbee/io/inputs/function.py index 65b7f665..25856c86 100644 --- a/queenbee/io/inputs/function.py +++ b/queenbee/io/inputs/function.py @@ -5,7 +5,7 @@ import os from typing import Union, List, Dict -from pydantic import constr, Field +from pydantic import constr, Field, validator from jsonschema import validate as json_schema_validator from .dag import DAGStringInput, DAGIntegerInput, DAGNumberInput, DAGBooleanInput, \ @@ -98,6 +98,12 @@ class FunctionFolderInput(DAGFolderInput): ' This path is relative to the working directory where the command is executed.' ) + @validator('path') + def not_workspace_path(cls, v): + if v == '.': + raise ValueError('Input path for a function file cannot be "."') + return v + @property def referenced_values(self) -> Dict[str, List[str]]: """Get referenced variables if any diff --git a/tests/assets/functions/invalid/invalid_input_path.error b/tests/assets/functions/invalid/invalid_input_path.error new file mode 100644 index 00000000..e211f36a --- /dev/null +++ b/tests/assets/functions/invalid/invalid_input_path.error @@ -0,0 +1 @@ +Input path for a function file cannot be "." \ No newline at end of file diff --git a/tests/assets/functions/invalid/invalid_input_path.yaml b/tests/assets/functions/invalid/invalid_input_path.yaml new file mode 100644 index 00000000..64ef5a66 --- /dev/null +++ b/tests/assets/functions/invalid/invalid_input_path.yaml @@ -0,0 +1,20 @@ +--- +type: Function +name: split-grid-from-folder +inputs: +- type: FunctionFolderInput + annotations: {} + name: input-grid + description: Path to sensor grids folder. + default: + alias: [] + required: true + spec: + path: "." +outputs: +- type: FunctionFolderOutput + name: output-folder + description: Output folder with new sensor grids. + path: "." + required: true +command: honeybee-radiance grid split --folder . --log-file output/grids_info.json