Unverified Commit 4b1558b2 authored by Nicola Soranzo's avatar Nicola Soranzo
Browse files

Move definition of DatasetCollectionDescriptionT before its use

Fix the following error on py37-test_galaxy_packages_for_pulsar tests:

```
FAILED tests/tool_util/test_input_models.py::test_input_collection_type - pydantic.errors.PydanticUserError: `ParsedTool` is not fully defined; you should define `DatasetCollectionDescriptionT`, then call `ParsedTool.model_rebuild()`.
```

Backport of commit bb87560d .
parent 36ef67be
Loading
Loading
Loading
Loading
+29 −29
Original line number Diff line number Diff line
@@ -29,6 +29,35 @@ class ToolOutputBaseModel(BaseModel):
    hidden: bool


DiscoverViaT = Literal["tool_provided_metadata", "pattern"]
SortKeyT = Literal["filename", "name", "designation", "dbkey"]
SortCompT = Literal["lexical", "numeric"]


class DatasetCollectionDescription(BaseModel):
    discover_via: DiscoverViaT
    format: Optional[str]
    visible: bool
    assign_primary_output: bool
    directory: Optional[str]
    recurse: bool
    match_relative_path: bool


class ToolProvidedMetadataDatasetCollection(DatasetCollectionDescription):
    discover_via: Literal["tool_provided_metadata"]


class FilePatternDatasetCollectionDescription(DatasetCollectionDescription):
    discover_via: Literal["pattern"]
    sort_key: SortKeyT
    sort_comp: SortCompT
    pattern: str


DatasetCollectionDescriptionT = Union[FilePatternDatasetCollectionDescription, ToolProvidedMetadataDatasetCollection]


class ToolOutputDataset(ToolOutputBaseModel):
    type: Literal["data"]
    format: str
@@ -70,35 +99,6 @@ class ToolOutputBoolean(ToolOutputSimple):
    type: Literal["boolean"]


DiscoverViaT = Literal["tool_provided_metadata", "pattern"]
SortKeyT = Literal["filename", "name", "designation", "dbkey"]
SortCompT = Literal["lexical", "numeric"]


class DatasetCollectionDescription(BaseModel):
    discover_via: DiscoverViaT
    format: Optional[str]
    visible: bool
    assign_primary_output: bool
    directory: Optional[str]
    recurse: bool
    match_relative_path: bool


class ToolProvidedMetadataDatasetCollection(DatasetCollectionDescription):
    discover_via: Literal["tool_provided_metadata"]


class FilePatternDatasetCollectionDescription(DatasetCollectionDescription):
    discover_via: Literal["pattern"]
    sort_key: SortKeyT
    sort_comp: SortCompT
    pattern: str


DatasetCollectionDescriptionT = Union[FilePatternDatasetCollectionDescription, ToolProvidedMetadataDatasetCollection]


ToolOutputT = Union[
    ToolOutputDataset, ToolOutputCollection, ToolOutputText, ToolOutputInteger, ToolOutputFloat, ToolOutputBoolean
]