From 05cad6df38b072718e78f0fc21ac01d3eb8dc93a Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Tue, 23 Aug 2022 15:47:56 +0200 Subject: [PATCH 1/6] Fix finding repository directory if repository directory is repeated in path As happens for instance for toolshed.g2.bx.psu.edu/repos/devteam/ncbi_blast_plus/0e3cf9594bb7/ncbi_blast_plus/tools/ncbi_blast_plus --- lib/galaxy/tools/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index 13323f40103..10dae2bd941 100644 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -1063,7 +1063,7 @@ class Tool(Dictifiable): if getattr(self, 'tool_shed', None): tool_dir = Path(self.tool_dir) for repo_dir in itertools.chain([tool_dir], tool_dir.parents): - if repo_dir.name == self.repository_name: + if repo_dir.name == self.repository_name and repo_dir.parent.name == self.installed_changeset_revision: return str(repo_dir) else: log.error("Problem finding repository dir for tool '%s'" % self.id) From 59f77048ceff0ae98f5e62fc40e63e4d6ab73ce5 Mon Sep 17 00:00:00 2001 From: Matthias Bernt Date: Thu, 25 Aug 2022 16:43:31 +0200 Subject: [PATCH 2/6] test case showing failing set_meta broke in https://github.com/galaxyproject/galaxy/commit/7d0ec29fa06ae6f04c0ae6fc193a390bc11cddcd --- test/functional/tools/metadata_bed.xml | 28 +++++++++++++++++++++ test/functional/tools/samples_tool_conf.xml | 1 + 2 files changed, 29 insertions(+) create mode 100644 test/functional/tools/metadata_bed.xml diff --git a/test/functional/tools/metadata_bed.xml b/test/functional/tools/metadata_bed.xml new file mode 100644 index 00000000000..e8b354fc2be --- /dev/null +++ b/test/functional/tools/metadata_bed.xml @@ -0,0 +1,28 @@ + + + $out_file1 && + echo "startCol $input1.metadata.startCol" >> $out_file1 && + echo "endCol $input1.metadata.endCol" >> $out_file1 && + echo "strandCol $input1.metadata.strandCol" >> $out_file1 + ]]> + + + + + + + + + + + + + + + + + + + + diff --git a/test/functional/tools/samples_tool_conf.xml b/test/functional/tools/samples_tool_conf.xml index ae5ae08fa4c..607fad0f5ef 100644 --- a/test/functional/tools/samples_tool_conf.xml +++ b/test/functional/tools/samples_tool_conf.xml @@ -57,6 +57,7 @@ + From dff9d4087bdcd500912eb4a7e5512b9b26ab9879 Mon Sep 17 00:00:00 2001 From: Matthias Bernt Date: Thu, 25 Aug 2022 17:30:13 +0200 Subject: [PATCH 3/6] set metadata default to no_value if default is None --- lib/galaxy/model/metadata.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/model/metadata.py b/lib/galaxy/model/metadata.py index bdd3d47fa21..553f6c92594 100644 --- a/lib/galaxy/model/metadata.py +++ b/lib/galaxy/model/metadata.py @@ -347,7 +347,10 @@ class MetadataElementSpec: visible=True, set_in_upload=False, **kwargs): self.name = name self.desc = desc or name - self.default = default + if default is None and no_value is not None: + self.default = no_value + else: + self.default = default self.no_value = no_value self.visible = visible self.set_in_upload = set_in_upload From 4e23fbb0b17600476398c8140b02cf1108c0ffb3 Mon Sep 17 00:00:00 2001 From: Matthias Bernt Date: Fri, 26 Aug 2022 12:01:54 +0200 Subject: [PATCH 4/6] Revert "set metadata default to no_value if default is None" This reverts commit dff9d4087bdcd500912eb4a7e5512b9b26ab9879. --- lib/galaxy/model/metadata.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/galaxy/model/metadata.py b/lib/galaxy/model/metadata.py index 553f6c92594..bdd3d47fa21 100644 --- a/lib/galaxy/model/metadata.py +++ b/lib/galaxy/model/metadata.py @@ -347,10 +347,7 @@ class MetadataElementSpec: visible=True, set_in_upload=False, **kwargs): self.name = name self.desc = desc or name - if default is None and no_value is not None: - self.default = no_value - else: - self.default = default + self.default = default self.no_value = no_value self.visible = visible self.set_in_upload = set_in_upload From fe303085b0c8f132dfa07ce7ab5b38941a1a8d86 Mon Sep 17 00:00:00 2001 From: Matthias Bernt Date: Fri, 26 Aug 2022 12:55:08 +0200 Subject: [PATCH 5/6] bed, interval: set default for strandCol bed and interval datatypes `check element_is_set` before overwriting metadata. since the having `default=None` and `no_value=0` makes `element_is_set` return True (since `None!=0`). Therefore metadata values are never set --- lib/galaxy/datatypes/interval.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/datatypes/interval.py b/lib/galaxy/datatypes/interval.py index 5aa21dcf169..62d0bc24a19 100644 --- a/lib/galaxy/datatypes/interval.py +++ b/lib/galaxy/datatypes/interval.py @@ -66,7 +66,7 @@ class Interval(Tabular): MetadataElement(name="chromCol", default=1, desc="Chrom column", param=metadata.ColumnParameter) MetadataElement(name="startCol", default=2, desc="Start column", param=metadata.ColumnParameter) MetadataElement(name="endCol", default=3, desc="End column", param=metadata.ColumnParameter) - MetadataElement(name="strandCol", desc="Strand column (click box & select)", param=metadata.ColumnParameter, optional=True, no_value=0) + MetadataElement(name="strandCol", default=0, desc="Strand column (click box & select)", param=metadata.ColumnParameter, optional=True, no_value=0) MetadataElement(name="nameCol", desc="Name/Identifier column (click box & select)", param=metadata.ColumnParameter, optional=True, no_value=0) MetadataElement(name="columns", default=3, desc="Number of columns", readonly=True, visible=False) @@ -386,7 +386,7 @@ class Bed(Interval): MetadataElement(name="chromCol", default=1, desc="Chrom column", param=metadata.ColumnParameter) MetadataElement(name="startCol", default=2, desc="Start column", param=metadata.ColumnParameter) MetadataElement(name="endCol", default=3, desc="End column", param=metadata.ColumnParameter) - MetadataElement(name="strandCol", desc="Strand column (click box & select)", param=metadata.ColumnParameter, optional=True, no_value=0) + MetadataElement(name="strandCol", default=0, desc="Strand column (click box & select)", param=metadata.ColumnParameter, optional=True, no_value=0) MetadataElement(name="columns", default=3, desc="Number of columns", readonly=True, visible=False) MetadataElement(name="viz_filter_cols", desc="Score column for visualization", default=[4], param=metadata.ColumnParameter, optional=True, multiple=True) # do we need to repeat these? they are the same as should be inherited from interval type From 9b66e46aa0c654e9a5593f4fc704aec066e86eca Mon Sep 17 00:00:00 2001 From: Matthias Bernt Date: Fri, 26 Aug 2022 17:04:01 +0200 Subject: [PATCH 6/6] always use default=0 for strandCol just for consistency --- lib/galaxy/datatypes/interval.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/datatypes/interval.py b/lib/galaxy/datatypes/interval.py index 62d0bc24a19..3f170e76e9c 100644 --- a/lib/galaxy/datatypes/interval.py +++ b/lib/galaxy/datatypes/interval.py @@ -567,7 +567,7 @@ class BedStrict(Bed): MetadataElement(name="chromCol", default=1, desc="Chrom column", readonly=True, param=metadata.MetadataParameter) MetadataElement(name="startCol", default=2, desc="Start column", readonly=True, param=metadata.MetadataParameter) # TODO: start and end should be able to be set to these or the proper thick[start/end]? MetadataElement(name="endCol", default=3, desc="End column", readonly=True, param=metadata.MetadataParameter) - MetadataElement(name="strandCol", desc="Strand column (click box & select)", readonly=True, param=metadata.MetadataParameter, no_value=0, optional=True) + MetadataElement(name="strandCol", default=0, desc="Strand column (click box & select)", readonly=True, param=metadata.MetadataParameter, no_value=0, optional=True) MetadataElement(name="nameCol", desc="Name/Identifier column (click box & select)", readonly=True, param=metadata.MetadataParameter, no_value=0, optional=True) MetadataElement(name="columns", default=3, desc="Number of columns", readonly=True, visible=False) @@ -1423,7 +1423,7 @@ class ENCODEPeak(Interval): MetadataElement(name="chromCol", default=1, desc="Chrom column", param=metadata.ColumnParameter) MetadataElement(name="startCol", default=2, desc="Start column", param=metadata.ColumnParameter) MetadataElement(name="endCol", default=3, desc="End column", param=metadata.ColumnParameter) - MetadataElement(name="strandCol", desc="Strand column (click box & select)", param=metadata.ColumnParameter, optional=True, no_value=0) + MetadataElement(name="strandCol", default=0, desc="Strand column (click box & select)", param=metadata.ColumnParameter, optional=True, no_value=0) MetadataElement(name="columns", default=3, desc="Number of columns", readonly=True, visible=False) def sniff(self, filename):