Unverified Commit 53dec0c5 authored by Marius van den Beek's avatar Marius van den Beek Committed by GitHub
Browse files

Merge pull request #19790 from mvdbeek/fix_converter_linting

[24.2] Fix parameter model constructions with leading underscores, fixes converter linting
parents bd75278e 773301a6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ jobs:
      - name: Lint converters
        run: |
          mapfile -t TOOL_ARRAY < tool_list.txt
          planemo lint --skip citations,stdio,help --report_level warn "${TOOL_ARRAY[@]}"
          planemo lint --skip CitationsMissing,HelpEmpty,HelpMissing --report_level warn "${TOOL_ARRAY[@]}"
      - name: Run tests
        run: |
          mapfile -t TOOL_ARRAY < tool_list.txt
+9 −3
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@
    <tests>
        <test>
            <param name="input1" ftype="bed" value="droPer1.bed"/>
            <param name="bgzip" ftype="bgzip" value="droPer1.bed.gz"/>
            <output name="output1" ftype="tabix">
                <assert_contents>
                    <has_size value="133"/>
@@ -55,6 +56,7 @@
        </test>
        <test>
            <param name="input1" ftype="encodepeak" value="encode.broad.peak"/>
            <param name="bgzip" ftype="bgzip" value="encode.broad.peak.gz"/>
            <output name="output1" ftype="tabix">
                <assert_contents>
                    <has_size value="110" delta="10"/>
@@ -69,6 +71,7 @@
        </test>
        <test>
            <param name="input1" ftype="gff" value="gff_filter_by_feature_count_out2.gff"/>
            <param name="bgzip" ftype="bgzip" value="gff_filter_by_feature_count_out2.gff.gz"/>
            <output name="output1" ftype="tabix">
                <assert_contents>
                    <has_size value="120"/>
@@ -83,6 +86,7 @@
        </test>
        <test>
            <param name="input1" ftype="interval" value="2.interval"/>
            <param name="bgzip" ftype="bgzip" value="2.interval.gz"/>
            <output name="output1" ftype="tabix">
                <assert_contents>
                    <has_size value="247"/>
@@ -97,6 +101,7 @@
        </test>
        <test>
            <param name="input1" ftype="vcf" value="vcf_to_maf_in.vcf"/>
            <param name="bgzip" ftype="bgzip" value="vcf_to_maf_in.vcf.gz"/>
            <output name="output1" ftype="tabix">
                <assert_contents>
                    <has_size value="143"/>
@@ -111,6 +116,7 @@
        </test>
        <test>
            <param name="input1" ftype="gtf" value="cufflinks_out1.gtf"/>
            <param name="bgzip" ftype="bgzip" value="cufflinks_out1.gtf.gz"/>
            <output name="output1" ftype="tabix">
                <assert_contents>
                    <has_size value="125"/>
+9 −3
Original line number Diff line number Diff line
@@ -145,10 +145,16 @@ class ParamModel(Protocol):
        ...


def safe_field_name(name: str) -> str:
    if name.startswith("_"):
        return f"X{name}"
    return name


def dynamic_model_information_from_py_type(
    param_model: ParamModel, py_type: Type, requires_value: Optional[bool] = None, validators=None
):
    name = param_model.name
    name = safe_field_name(param_model.name)
    if requires_value is None:
        requires_value = param_model.request_requires_value
    initialize = ... if requires_value else None
@@ -159,7 +165,7 @@ def dynamic_model_information_from_py_type(

    return DynamicModelInformation(
        name,
        (py_type, initialize),
        (py_type, Field(initialize, alias=param_model.name if param_model.name != name else None)),
        validators,
    )

@@ -1520,8 +1526,8 @@ def create_field_model(

    for input_model in tool_parameter_models:
        input_model = to_simple_model(input_model)
        input_name = input_model.name
        pydantic_request_template = input_model.pydantic_template(state_representation)
        input_name = pydantic_request_template.name
        kwd[input_name] = pydantic_request_template.definition
        input_validators = pydantic_request_template.validators
        for validator_name, validator_callable in input_validators.items():