Merge branch 'release_26.0' into dev

This commit is contained in:
mvdbeek
2026-02-03 14:54:21 +01:00
5 changed files with 78 additions and 6 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
.k8s_ci.Dockerfile
.venv
database
node_modules
**/node_modules
@@ -44,6 +44,7 @@
<tool file="${model_tools_path}/merge_collection.xml" />
<tool file="${model_tools_path}/relabel_from_file.xml" />
<tool file="${model_tools_path}/filter_from_file.xml" />
<tool file="${model_tools_path}/filter_from_file_1.1.0.xml" />
<tool file="${model_tools_path}/sort_collection_list.xml" />
<tool file="${model_tools_path}/harmonize_two_collections_list.xml" />
<tool file="${model_tools_path}/cross_product_flat.xml" />
+8 -1
View File
@@ -3,6 +3,7 @@ Determine what optional dependencies are needed.
"""
import os
import re
import sys
from os.path import (
dirname,
@@ -350,6 +351,12 @@ class ConditionalDependencies:
return "omero" in self.file_sources
def strip_comment(line):
# lifted from https://github.com/tox-dev/tox/commit/3c6b4f204e89852c4b7536b246a66d20be6d39ec
# xref https://github.com/pyupio/dparse/issues/34
return re.sub(r"\s+#.*", "", line).strip()
def optional(config_file=None):
if not config_file:
config_file = find_config_file(["galaxy", "universe_wsgi"], include_samples=True)
@@ -360,5 +367,5 @@ def optional(config_file=None):
conditional = ConditionalDependencies(config_file)
for dependency in conditional.conditional_reqs:
if conditional.check(dependency.name):
rval.append(dependency.line)
rval.append(strip_comment(dependency.line))
return rval
@@ -0,0 +1,66 @@
<tool id="__FILTER_FAILED_DATASETS__"
name="Filter failed datasets"
version="1.1.0"
tool_type="filter_failed_datasets_collection">
<description></description>
<type class="FilterFailedDatasetsTool" module="galaxy.tools" />
<action module="galaxy.tools.actions.model_operations"
class="ModelOperationToolAction"/>
<edam_operations>
<edam_operation>operation_3695</edam_operation>
</edam_operations>
<inputs>
<param type="data_collection" collection_type="list,list:paired" name="input" label="Input Collection" />
<param type="data" name="replacement" optional="true" label="Replace failed elements with this dataset" help="If provided, failed elements will be replaced with this dataset"/>
</inputs>
<outputs>
<collection name="output" format_source="input" type_source="input" label="${on_string} (filtered failed datasets)" >
</collection>
</outputs>
<tests>
<!-- Test framework has no way of creating a collection with
failed elements, so best we can do is verify identity on
an okay collection. API tests verify this tool works
though.
-->
<test>
<param name="input">
<collection type="list">
<element name="e1" value="simple_line.txt" />
</collection>
</param>
<output_collection name="output" type="list">
<element name="e1">
<assert_contents>
<has_text_matching expression="^This is a line of text.\n$" />
</assert_contents>
</element>
</output_collection>
</test>
</tests>
<help><![CDATA[
========
Synopsis
========
Removes datasets in error (red) from a collection.
===========
Description
===========
This tool takes a dataset collection and filters out (removes) datasets in the failed (red) state. This is useful for continuing a multi-sample analysis when one or more of the samples fails at some point.
.. image:: ${static_path}/images/tools/collection_ops/filter_error.svg
:width: 500
:alt: Filter failed datasets
-----
.. class:: infomark
This tool will create new history datasets from your collection but your quota usage will not increase.
]]></help>
</tool>
+2 -4
View File
@@ -7972,8 +7972,7 @@ steps:
# Regression test for https://github.com/galaxyproject/galaxy/issues/21602
# When a workflow input with restrictOnConnections connects to multiple subworkflows,
# the options should be the intersection of all connected subworkflow options.
workflow_id = self.workflow_populator.upload_yaml_workflow(
"""
workflow_id = self.workflow_populator.upload_yaml_workflow("""
class: GalaxyWorkflow
inputs:
Outer input parameter:
@@ -8013,8 +8012,7 @@ steps:
in:
select_ex:
source: inner input parameter
"""
)
""")
with self.dataset_populator.test_history() as history_id:
run_workflow = self._download_workflow(workflow_id, style="run", history_id=history_id)
options = run_workflow["steps"][0]["inputs"][0]["options"]