Unverified Commit 8c4149b0 authored by mvdbeek's avatar mvdbeek
Browse files

Fix dependency structure for ParameterOption

parent be3db670
Loading
Loading
Loading
Loading
+0 −25
Original line number Diff line number Diff line
@@ -13,7 +13,6 @@ from typing import (
    Optional,
    Sequence,
    Type,
    TYPE_CHECKING,
    TypeVar,
    Union,
)
@@ -43,7 +42,6 @@ from typing_extensions import (
)

from galaxy.exceptions import RequestParameterInvalidException
from galaxy.model import HistoryDatasetAssociation
from galaxy.tool_util.parser.interface import (
    DrillDownOptionsDict,
    JsonTestCollectionDefDict,
@@ -68,10 +66,6 @@ from ._types import (
    union_type,
)

if TYPE_CHECKING:
    from galaxy.model import DatasetInstance
    from galaxy.security.idencoding import IdEncodingHelper

# TODO:
# - implement data_ref on rules and implement some cross model validation

@@ -112,25 +106,6 @@ class ConnectedValue(BaseModel):
    discriminator: Literal["ConnectedValue"] = Field(alias="__class__")


class ParameterOption(NamedTuple):
    name: str
    value: str
    selected: bool = False
    dataset: Optional["DatasetInstance"] = None

    def serialize(self, security: "IdEncodingHelper"):
        if self.dataset:
            return (
                self.name,
                {
                    "src": "hda" if isinstance(self.dataset, HistoryDatasetAssociation) else "ldda",
                    "id": security.encode_id(self.dataset.id),
                },
                self.selected,
            )
        return (self.name, self.value, self.selected)


def allow_connected_value(type: Type):
    return union_type([type, ConnectedValue])

+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@ from galaxy.model import (
from galaxy.model.dataset_collections import builder
from galaxy.schema.fetch_data import FilesPayload
from galaxy.tool_util.parameters.factory import get_color_value
from galaxy.tool_util.parameters.models import ParameterOption
from galaxy.tool_util.parser import get_input_source as ensure_input_source
from galaxy.tool_util.parser.interface import DrillDownOptionsDict
from galaxy.tool_util.parser.util import (
@@ -52,6 +51,7 @@ from galaxy.tool_util.parser.util import (
    ParameterParseException,
    text_input_is_optional,
)
from galaxy.tools.parameters.options import ParameterOption
from galaxy.tools.parameters.workflow_utils import (
    NO_REPLACEMENT,
    workflow_building_modes,
+1 −1
Original line number Diff line number Diff line
@@ -31,8 +31,8 @@ from galaxy.model import (
    MetadataFile,
    User,
)
from galaxy.tool_util.parameters.models import ParameterOption
from galaxy.tools.expressions import do_eval
from galaxy.tools.parameters.options import ParameterOption
from galaxy.tools.parameters.workflow_utils import (
    is_runtime_value,
    workflow_building_modes,
+29 −0
Original line number Diff line number Diff line
from typing import (
    NamedTuple,
    Optional,
)

from galaxy.model import (
    DatasetInstance,
    HistoryDatasetAssociation,
)
from galaxy.security.idencoding import IdEncodingHelper


class ParameterOption(NamedTuple):
    name: str
    value: str
    selected: bool = False
    dataset: Optional["DatasetInstance"] = None

    def serialize(self, security: "IdEncodingHelper"):
        if self.dataset:
            return (
                self.name,
                {
                    "src": "hda" if isinstance(self.dataset, HistoryDatasetAssociation) else "ldda",
                    "id": security.encode_id(self.dataset.id),
                },
                self.selected,
            )
        return (self.name, self.value, self.selected)
+1 −1
Original line number Diff line number Diff line
from galaxy.app_unittest_utils.galaxy_mock import MockApp
from galaxy.tool_util.parameters.models import ParameterOption
from galaxy.tools.parameters.dynamic_options import DynamicOptions
from galaxy.tools.parameters.options import ParameterOption
from galaxy.util import XML
from galaxy.util.bunch import Bunch
from galaxy.work.context import WorkRequestContext
Loading