diff --git a/lib/galaxy/webapps/tool_shed/api/repositories.py b/lib/galaxy/webapps/tool_shed/api/repositories.py index d09aca9051b1..5d855434769e 100644 --- a/lib/galaxy/webapps/tool_shed/api/repositories.py +++ b/lib/galaxy/webapps/tool_shed/api/repositories.py @@ -782,7 +782,7 @@ def metadata( self, trans, id, **kwd ): else: metadata_dict[ 'repository_dependencies' ] = [] if metadata.includes_tool_dependencies and recursive: - metadata_dict[ 'tool_dependencies' ] = repository.get_tool_dependencies( changehash ) + metadata_dict[ 'tool_dependencies' ] = repository.get_tool_dependencies( self.app, changehash ) else: metadata_dict[ 'tool_dependencies' ] = {} if metadata.includes_tools: diff --git a/lib/galaxy/webapps/tool_shed/controllers/repository.py b/lib/galaxy/webapps/tool_shed/controllers/repository.py index 5a26fa02d997..83381395aea1 100644 --- a/lib/galaxy/webapps/tool_shed/controllers/repository.py +++ b/lib/galaxy/webapps/tool_shed/controllers/repository.py @@ -1713,8 +1713,8 @@ def get_tool_dependencies( self, trans, **kwd ): owner = kwd.get( 'owner', None ) changeset_revision = kwd.get( 'changeset_revision', None ) repository = suc.get_repository_by_name_and_owner( trans.app, name, owner ) - dependencies = repository.get_tool_dependencies( changeset_revision ) - if dependencies is not None: + dependencies = repository.get_tool_dependencies( trans.app, changeset_revision ) + if len( dependencies ) > 0: return encoding_util.tool_shed_encode( dependencies ) return '' diff --git a/lib/galaxy/webapps/tool_shed/model/__init__.py b/lib/galaxy/webapps/tool_shed/model/__init__.py index 04e909e95cd0..57627376603f 100644 --- a/lib/galaxy/webapps/tool_shed/model/__init__.py +++ b/lib/galaxy/webapps/tool_shed/model/__init__.py @@ -244,11 +244,13 @@ def get_repository_dependencies( self, app, changeset, toolshed_url ): def get_type_class( self, app ): return app.repository_types_registry.get_class_by_label( self.type ) - def get_tool_dependencies( self, changeset_revision ): + def get_tool_dependencies( self, app, changeset_revision ): + repo = hg.repository( ui.ui(), self.repo_path( app ) ) + changeset_revision = metadata_util.get_next_downloadable_changeset_revision( self, repo, changeset_revision ) for downloadable_revision in self.downloadable_revisions: if downloadable_revision.changeset_revision == changeset_revision: - return downloadable_revision.metadata.get( 'tool_dependencies', [] ) - return [] + return downloadable_revision.metadata.get( 'tool_dependencies', {} ) + return {} def installable_revisions( self, app, sort_revisions=True ): return suc.get_metadata_revisions( self, diff --git a/lib/tool_shed/util/metadata_util.py b/lib/tool_shed/util/metadata_util.py index 19f430a59d78..5cc81f6de4e6 100644 --- a/lib/tool_shed/util/metadata_util.py +++ b/lib/tool_shed/util/metadata_util.py @@ -26,7 +26,7 @@ def get_all_dependencies( app, metadata_entry, processed_dependency_links=[] ): dependency_dict[ 'tools' ] = dependency_metadata.metadata[ 'tools' ] dependency_dict[ 'repository_dependencies' ] = [] if dependency_dict['includes_tool_dependencies']: - dependency_dict['tool_dependencies'] = repository.get_tool_dependencies( dependency_dict['changeset_revision'] ) + dependency_dict['tool_dependencies'] = repository.get_tool_dependencies( app, dependency_dict['changeset_revision'] ) if dependency_dict['has_repository_dependencies']: dependency_dict['repository_dependencies'] = get_all_dependencies( app, dependency_metadata, processed_dependency_links ) else: