diff --git a/.ci/flake8_lint_include_list.txt b/.ci/flake8_lint_include_list.txt
index f8ffce86cd8..d62e01e34ee 100644
--- a/.ci/flake8_lint_include_list.txt
+++ b/.ci/flake8_lint_include_list.txt
@@ -384,45 +384,7 @@ lib/galaxy/workflow/steps.py
lib/galaxy/work/__init__.py
lib/mimeparse.py
lib/psyco_full.py
-lib/tool_shed/capsule/__init__.py
-lib/tool_shed/dependencies/__init__.py
-lib/tool_shed/dependencies/repository/__init__.py
-lib/tool_shed/dependencies/tool/
-lib/tool_shed/galaxy_install/datatypes/__init__.py
-lib/tool_shed/galaxy_install/grids/__init__.py
-lib/tool_shed/galaxy_install/__init__.py
-lib/tool_shed/galaxy_install/metadata/__init__.py
-lib/tool_shed/galaxy_install/migrate/__init__.py
-lib/tool_shed/galaxy_install/migrate/versions/
-lib/tool_shed/galaxy_install/repository_dependencies/__init__.py
-lib/tool_shed/galaxy_install/tool_dependencies/env_manager.py
-lib/tool_shed/galaxy_install/tool_dependencies/__init__.py
-lib/tool_shed/galaxy_install/tool_dependencies/recipe/asynchronous_reader.py
-lib/tool_shed/galaxy_install/tool_dependencies/recipe/env_file_builder.py
-lib/tool_shed/galaxy_install/tool_dependencies/recipe/__init__.py
-lib/tool_shed/galaxy_install/tool_dependencies/recipe/recipe_manager.py
-lib/tool_shed/galaxy_install/tools/
-lib/tool_shed/galaxy_install/utility_containers/
-lib/tool_shed/grids/__init__.py
-lib/tool_shed/grids/repository_grid_filter_manager.py
-lib/tool_shed/__init__.py
-lib/tool_shed/managers/groups.py
-lib/tool_shed/managers/__init__.py
-lib/tool_shed/metadata/__init__.py
-lib/tool_shed/repository_types/__init__.py
-lib/tool_shed/repository_types/metadata.py
-lib/tool_shed/repository_types/unrestricted.py
-lib/tool_shed/repository_types/util.py
-lib/tool_shed/tools/data_table_manager.py
-lib/tool_shed/tools/__init__.py
-lib/tool_shed/tools/tool_version_manager.py
-lib/tool_shed/util/basic_util.py
-lib/tool_shed/util/container_util.py
-lib/tool_shed/util/encoding_util.py
-lib/tool_shed/util/__init__.py
-lib/tool_shed/util/search_util.py
-lib/tool_shed/util/web_util.py
-lib/tool_shed/util/xml_util.py
+lib/tool_shed/
scripts/api/common.py
scripts/api/copy_hda_to_library_folder.py
scripts/api/create.py
diff --git a/.ci/py3_sources.txt b/.ci/py3_sources.txt
index 4a9ff5c0995..fe315bb3a18 100644
--- a/.ci/py3_sources.txt
+++ b/.ci/py3_sources.txt
@@ -50,15 +50,7 @@ lib/galaxy_ext/
lib/galaxy_utils/
lib/log_tempfile.py
lib/psyco_full.py
-lib/tool_shed/capsule/
-lib/tool_shed/dependencies/
-lib/tool_shed/grids/
-lib/tool_shed/managers/
-lib/tool_shed/metadata/
-lib/tool_shed/repository_types/
-lib/tool_shed/tools/
-lib/tool_shed/util/
-lib/tool_shed/utility_containers/
+lib/tool_shed/
scripts/api/
scripts/auth/
scripts/bootstrap_history.py
diff --git a/lib/tool_shed/capsule/capsule_manager.py b/lib/tool_shed/capsule/capsule_manager.py
index 02b4176281b..de198432d0b 100644
--- a/lib/tool_shed/capsule/capsule_manager.py
+++ b/lib/tool_shed/capsule/capsule_manager.py
@@ -5,32 +5,21 @@ import shutil
import tarfile
import tempfile
import threading
-import urllib
-from time import gmtime
-from time import strftime
+from time import gmtime, strftime
+from six.moves.urllib.request import urlopen
from sqlalchemy import and_, false
import tool_shed.repository_types.util as rt_util
from galaxy import web
-from galaxy.util import asbool
-from galaxy.util import CHUNK_SIZE
-from galaxy.util import safe_relpath
-from galaxy.util import build_url
+from galaxy.util import asbool, build_url, CHUNK_SIZE, safe_relpath
from galaxy.util.odict import odict
-from tool_shed.dependencies.repository.relation_builder import RelationBuilder
from tool_shed.dependencies import attribute_handlers
+from tool_shed.dependencies.repository.relation_builder import RelationBuilder
from tool_shed.galaxy_install.repository_dependencies.repository_dependency_manager import RepositoryDependencyInstallManager
from tool_shed.metadata import repository_metadata_manager
-from tool_shed.util import basic_util
-from tool_shed.util import commit_util
-from tool_shed.util import common_util
-from tool_shed.util import encoding_util
-from tool_shed.util import hg_util
-from tool_shed.util import metadata_util
-from tool_shed.util import repository_util
-from tool_shed.util import shed_util_common as suc
-from tool_shed.util import xml_util
+from tool_shed.util import (basic_util, commit_util, common_util, encoding_util,
+ hg_util, metadata_util, repository_util, shed_util_common as suc, xml_util)
log = logging.getLogger( __name__ )
@@ -822,7 +811,7 @@ class ImportRepositoryManager( object ):
if url:
valid_url = True
try:
- stream = urllib.urlopen( url )
+ stream = urlopen( url )
except Exception as e:
valid_url = False
return_dict['error_message'] = 'Error importing file via http: %s' % str( e )
diff --git a/lib/tool_shed/dependencies/repository/relation_builder.py b/lib/tool_shed/dependencies/repository/relation_builder.py
index 056c8f79b20..59438006945 100644
--- a/lib/tool_shed/dependencies/repository/relation_builder.py
+++ b/lib/tool_shed/dependencies/repository/relation_builder.py
@@ -1,10 +1,9 @@
import logging
-from galaxy.util import asbool, listify
-
import tool_shed.util.repository_util
-from tool_shed.util import common_util, container_util, hg_util, metadata_util
-from tool_shed.util import shed_util_common as suc
+from galaxy.util import asbool, listify
+from tool_shed.util import (common_util, container_util, hg_util, metadata_util,
+ shed_util_common as suc)
log = logging.getLogger( __name__ )
@@ -28,11 +27,11 @@ class RelationBuilder( object ):
def can_add_to_key_rd_dicts( self, key_rd_dict, key_rd_dicts ):
"""Handle the case where an update to the changeset revision was done."""
- k = key_rd_dict.keys()[ 0 ]
+ k = next(iter(key_rd_dict))
rd = key_rd_dict[ k ]
partial_rd = rd[ 0:3 ]
for kr_dict in key_rd_dicts:
- key = kr_dict.keys()[ 0 ]
+ key = next(iter(kr_dict))
if key == k:
repository_dependency = kr_dict[ key ]
if repository_dependency[ 0:3 ] == partial_rd:
@@ -175,7 +174,7 @@ class RelationBuilder( object ):
def get_updated_changeset_revisions_for_repository_dependencies( self, key_rd_dicts ):
updated_key_rd_dicts = []
for key_rd_dict in key_rd_dicts:
- key = key_rd_dict.keys()[ 0 ]
+ key = next(iter(key_rd_dict))
repository_dependency = key_rd_dict[ key ]
rd_toolshed, rd_name, rd_owner, rd_changeset_revision, \
rd_prior_installation_required, \
@@ -293,7 +292,7 @@ class RelationBuilder( object ):
def handle_next_repository_dependency( self ):
next_repository_key_rd_dict = self.key_rd_dicts_to_be_processed.pop( 0 )
next_repository_key_rd_dicts = [ next_repository_key_rd_dict ]
- next_repository_key = next_repository_key_rd_dict.keys()[ 0 ]
+ next_repository_key = next(iter(next_repository_key_rd_dict))
self.handle_key_rd_dicts_for_repository( next_repository_key, next_repository_key_rd_dicts )
return self.get_repository_dependencies_for_changeset_revision()
@@ -326,7 +325,7 @@ class RelationBuilder( object ):
def in_key_rd_dicts( self, key_rd_dict, key_rd_dicts ):
"""Return True if key_rd_dict is contained in the list of key_rd_dicts."""
- k = key_rd_dict.keys()[ 0 ]
+ k = next(iter(key_rd_dict))
v = key_rd_dict[ k ]
for key_rd_dict in key_rd_dicts:
for key, val in key_rd_dict.items():
@@ -436,11 +435,11 @@ class RelationBuilder( object ):
def remove_from_key_rd_dicts( self, key_rd_dict, key_rd_dicts ):
"""Eliminate the key_rd_dict from the list of key_rd_dicts if it is contained in the list."""
- k = key_rd_dict.keys()[ 0 ]
+ k = next(iter(key_rd_dict))
v = key_rd_dict[ k ]
clean_key_rd_dicts = []
for krd_dict in key_rd_dicts:
- key = krd_dict.keys()[ 0 ]
+ key = next(iter(krd_dict))
val = krd_dict[ key ]
if key == k and val == v:
continue
@@ -450,7 +449,7 @@ class RelationBuilder( object ):
def remove_repository_dependency_reference_to_self( self, key_rd_dicts ):
"""Remove all repository dependencies that point to a revision within its own repository."""
clean_key_rd_dicts = []
- key = key_rd_dicts[ 0 ].keys()[ 0 ]
+ key = next(iter(key_rd_dicts[ 0 ]))
repository_tup = key.split( container_util.STRSEP )
rd_toolshed, rd_name, rd_owner, rd_changeset_revision, \
rd_prior_installation_required, \
@@ -458,7 +457,7 @@ class RelationBuilder( object ):
common_util.parse_repository_dependency_tuple( repository_tup )
cleaned_rd_toolshed = common_util.remove_protocol_from_tool_shed_url( rd_toolshed )
for key_rd_dict in key_rd_dicts:
- k = key_rd_dict.keys()[ 0 ]
+ k = next(iter(key_rd_dict))
repository_dependency = key_rd_dict[ k ]
toolshed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = \
common_util.parse_repository_dependency_tuple( repository_dependency )
diff --git a/lib/tool_shed/galaxy_install/datatypes/custom_datatype_manager.py b/lib/tool_shed/galaxy_install/datatypes/custom_datatype_manager.py
index 5b150b0a8a6..3aebae96ba6 100644
--- a/lib/tool_shed/galaxy_install/datatypes/custom_datatype_manager.py
+++ b/lib/tool_shed/galaxy_install/datatypes/custom_datatype_manager.py
@@ -91,7 +91,7 @@ class CustomDatatypeLoader( object ):
os.write( fd, '%s' % xml_util.xml_to_string( sniffers ) )
os.write( fd, '\n' )
os.close( fd )
- os.chmod( proprietary_datatypes_config, 0644 )
+ os.chmod( proprietary_datatypes_config, 0o644 )
# Load custom datatypes
self.app.datatypes_registry.load_datatypes( root_dir=self.app.config.root,
config=proprietary_datatypes_config,
diff --git a/lib/tool_shed/galaxy_install/grids/admin_toolshed_grids.py b/lib/tool_shed/galaxy_install/grids/admin_toolshed_grids.py
index 35352cb4897..f3824bb2c92 100644
--- a/lib/tool_shed/galaxy_install/grids/admin_toolshed_grids.py
+++ b/lib/tool_shed/galaxy_install/grids/admin_toolshed_grids.py
@@ -5,9 +5,8 @@ from sqlalchemy import false, or_
from galaxy import util
from galaxy.model import tool_shed_install
from galaxy.web import url_for
-from galaxy.web.framework.helpers import iff, grids
-from tool_shed.util import tool_dependency_util
-from tool_shed.util import repository_util
+from galaxy.web.framework.helpers import grids, iff
+from tool_shed.util import repository_util, tool_dependency_util
log = logging.getLogger( __name__ )
diff --git a/lib/tool_shed/galaxy_install/install_manager.py b/lib/tool_shed/galaxy_install/install_manager.py
index d511f9a3166..699797dcbd9 100644
--- a/lib/tool_shed/galaxy_install/install_manager.py
+++ b/lib/tool_shed/galaxy_install/install_manager.py
@@ -11,10 +11,6 @@ from sqlalchemy import or_
from galaxy import exceptions, util
from galaxy.tools.deps import views
-from tool_shed.util import basic_util, common_util, encoding_util, hg_util, repository_util
-from tool_shed.util import shed_util_common as suc, tool_dependency_util
-from tool_shed.util import tool_util, xml_util
-
from tool_shed.galaxy_install.datatypes import custom_datatype_manager
from tool_shed.galaxy_install.metadata.installed_repository_metadata_manager import InstalledRepositoryMetadataManager
from tool_shed.galaxy_install.repository_dependencies import repository_dependency_manager
@@ -23,8 +19,10 @@ from tool_shed.galaxy_install.tool_dependencies.recipe.install_environment impor
from tool_shed.galaxy_install.tool_dependencies.recipe.recipe_manager import StepManager
from tool_shed.galaxy_install.tool_dependencies.recipe.recipe_manager import TagManager
from tool_shed.galaxy_install.tools import data_manager, tool_panel_manager
-
from tool_shed.tools import data_table_manager, tool_version_manager
+from tool_shed.util import basic_util, common_util, encoding_util, hg_util, repository_util
+from tool_shed.util import shed_util_common as suc, tool_dependency_util
+from tool_shed.util import tool_util, xml_util
log = logging.getLogger( __name__ )
@@ -478,8 +476,8 @@ class InstallRepositoryManager( object ):
repository_revision_dict = items[ 1 ]
repo_info_dict = items[ 2 ]
else:
- message = "Unable to retrieve installation information from tool shed %s for revision %s of repository %s owned by %s: %s" % \
- ( str( tool_shed_url ), str( changeset_revision ), str( name ), str( owner ), str( e ) )
+ message = "Unable to retrieve installation information from tool shed %s for revision %s of repository %s owned by %s" % \
+ ( str( tool_shed_url ), str( changeset_revision ), str( name ), str( owner ) )
log.warning( message )
raise exceptions.InternalServerError( message )
# Make sure the tool shed returned everything we need for installing the repository.
diff --git a/lib/tool_shed/galaxy_install/installed_repository_manager.py b/lib/tool_shed/galaxy_install/installed_repository_manager.py
index 76f42eeb2bf..c541bd9b13c 100644
--- a/lib/tool_shed/galaxy_install/installed_repository_manager.py
+++ b/lib/tool_shed/galaxy_install/installed_repository_manager.py
@@ -8,6 +8,11 @@ import os
from sqlalchemy import and_, false, true
from galaxy import util
+from tool_shed.galaxy_install.datatypes import custom_datatype_manager
+from tool_shed.galaxy_install.metadata.installed_repository_metadata_manager import InstalledRepositoryMetadataManager
+from tool_shed.galaxy_install.repository_dependencies import repository_dependency_manager
+from tool_shed.galaxy_install.tools import data_manager
+from tool_shed.galaxy_install.tools import tool_panel_manager
from tool_shed.util import common_util
from tool_shed.util import container_util
from tool_shed.util import repository_util
@@ -15,12 +20,6 @@ from tool_shed.util import shed_util_common as suc
from tool_shed.util import tool_dependency_util
from tool_shed.util import xml_util
-from tool_shed.galaxy_install.datatypes import custom_datatype_manager
-from tool_shed.galaxy_install.metadata.installed_repository_metadata_manager import InstalledRepositoryMetadataManager
-from tool_shed.galaxy_install.repository_dependencies import repository_dependency_manager
-from tool_shed.galaxy_install.tools import data_manager
-from tool_shed.galaxy_install.tools import tool_panel_manager
-
log = logging.getLogger( __name__ )
@@ -242,7 +241,7 @@ class InstalledRepositoryManager( object ):
installed_td = {}
missing_rd = {}
missing_td = {}
- name = repo_info_dict.keys()[ 0 ]
+ name = next(iter(repo_info_dict))
repo_info_tuple = repo_info_dict[ name ]
description, repository_clone_url, changeset_revision, ctx_rev, repository_owner, repository_dependencies, tool_dependencies = \
repository_util.get_repo_info_tuple_contents( repo_info_tuple )
diff --git a/lib/tool_shed/galaxy_install/migrate/common.py b/lib/tool_shed/galaxy_install/migrate/common.py
index befeb604e7e..1c705129830 100644
--- a/lib/tool_shed/galaxy_install/migrate/common.py
+++ b/lib/tool_shed/galaxy_install/migrate/common.py
@@ -1,9 +1,12 @@
-import ConfigParser
+from __future__ import print_function
+
import os
import sys
+from six.moves import configparser
+
import galaxy.config
-from tool_shed.galaxy_install import tool_migration_manager, installed_repository_manager
+from tool_shed.galaxy_install import installed_repository_manager, tool_migration_manager
class MigrateToolsApplication( object, galaxy.config.ConfiguresGalaxyMixin ):
@@ -18,9 +21,9 @@ class MigrateToolsApplication( object, galaxy.config.ConfiguresGalaxyMixin ):
sys.argv.pop( pos )
galaxy_config_file = sys.argv.pop( pos )
if not os.path.exists( galaxy_config_file ):
- print "Galaxy config file does not exist (hint: use '-c config.ini' for non-standard locations): %s" % galaxy_config_file
+ print("Galaxy config file does not exist (hint: use '-c config.ini' for non-standard locations): %s" % galaxy_config_file)
sys.exit( 1 )
- config_parser = ConfigParser.ConfigParser( { 'here': os.getcwd() } )
+ config_parser = configparser.ConfigParser( { 'here': os.getcwd() } )
config_parser.read( galaxy_config_file )
galaxy_config_dict = {}
for key, value in config_parser.items( "app:main" ):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0001_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0001_tools.py
index e90ebe9ad56..40f651a0e3d 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0001_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0001_tools.py
@@ -1,10 +1,11 @@
"""
Initialize the version column of the migrate_tools database table to 1. No tool migrations are handled in this version.
"""
+from __future__ import print_function
def upgrade(migrate_engine):
- print __doc__
+ print(__doc__)
def downgrade(migrate_engine):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0002_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0002_tools.py
index 034750d437e..085f10c863f 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0002_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0002_tools.py
@@ -4,10 +4,11 @@ datatypes_conf.xml.sample. You should remove the Emboss datatypes from your ver
repositories named emboss_5 and emboss_datatypes from the main Galaxy tool shed at http://toolshed.g2.bx.psu.edu
will be installed into your local Galaxy instance at the location discussed above by running the following command.
"""
+from __future__ import print_function
def upgrade(migrate_engine):
- print __doc__
+ print(__doc__)
def downgrade(migrate_engine):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0003_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0003_tools.py
index b98427fc222..5b6a2f4de63 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0003_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0003_tools.py
@@ -3,10 +3,11 @@ The freebayes tool has been eliminated from the distribution . The repository n
Galaxy tool shed at http://toolshed.g2.bx.psu.edu will be installed into your local Galaxy instance at the
location discussed above by running the following command.
"""
+from __future__ import print_function
def upgrade(migrate_engine):
- print __doc__
+ print(__doc__)
def downgrade(migrate_engine):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0004_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0004_tools.py
index 81c333d8c3d..6df2facc7ce 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0004_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0004_tools.py
@@ -5,10 +5,11 @@ blast_datatypes, in the main Galaxy tool shed at http://toolshed.g2.bx.psu.edu.
These repositories will be installed into your local Galaxy instance at the
location discussed above by running the following command.
"""
+from __future__ import print_function
def upgrade(migrate_engine):
- print __doc__
+ print(__doc__)
def downgrade(migrate_engine):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0005_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0005_tools.py
index c791ae43990..78e13aba292 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0005_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0005_tools.py
@@ -6,10 +6,11 @@ http://toolshed.g2.bx.psu.edu, and will be installed into your local
Galaxy instance at the location discussed above by running the following
command.
"""
+from __future__ import print_function
def upgrade(migrate_engine):
- print __doc__
+ print(__doc__)
def downgrade(migrate_engine):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0006_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0006_tools.py
index 39c44ddd9d6..4e068e5e637 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0006_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0006_tools.py
@@ -11,10 +11,11 @@ http://toolshed.g2.bx.psu.edu, and will be installed into your
local Galaxy instance at the location discussed above by running
the following command.
"""
+from __future__ import print_function
def upgrade(migrate_engine):
- print __doc__
+ print(__doc__)
def downgrade(migrate_engine):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0007_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0007_tools.py
index 247ebee1bf0..a66771bb053 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0007_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0007_tools.py
@@ -8,10 +8,11 @@ http://toolshed.g2.bx.psu.edu, and will be installed into your
local Galaxy instance at the location discussed above by running
the following command.
"""
+from __future__ import print_function
def upgrade(migrate_engine):
- print __doc__
+ print(__doc__)
def downgrade(migrate_engine):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0008_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0008_tools.py
index d833b4c4adb..1422465498a 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0008_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0008_tools.py
@@ -105,10 +105,11 @@ from the main Galaxy tool shed at http://toolshed.g2.bx.psu.edu
and will be installed into your local Galaxy instance at the
location discussed above by running the following command.
"""
+from __future__ import print_function
def upgrade( migrate_engine ):
- print __doc__
+ print(__doc__)
def downgrade( migrate_engine ):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0009_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0009_tools.py
index 5e8dc905e72..a2a30977e30 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0009_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0009_tools.py
@@ -95,10 +95,11 @@ from the main Galaxy tool shed at http://toolshed.g2.bx.psu.edu
and will be installed into your local Galaxy instance at the
location discussed above by running the following command.
"""
+from __future__ import print_function
def upgrade( migrate_engine ):
- print __doc__
+ print(__doc__)
def downgrade( migrate_engine ):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0010_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0010_tools.py
index 36cff137b3d..ca069236d66 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0010_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0010_tools.py
@@ -101,10 +101,11 @@ from the main Galaxy tool shed at http://toolshed.g2.bx.psu.edu
and will be installed into your local Galaxy instance at the
location discussed above by running the following command.
"""
+from __future__ import print_function
def upgrade( migrate_engine ):
- print __doc__
+ print(__doc__)
def downgrade( migrate_engine ):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0011_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0011_tools.py
index 79a2c52ce4a..a9bf26f0a5c 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0011_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0011_tools.py
@@ -53,10 +53,11 @@ from the main Galaxy tool shed at http://toolshed.g2.bx.psu.edu
and will be installed into your local Galaxy instance at the
location discussed above by running the following command.
"""
+from __future__ import print_function
def upgrade( migrate_engine ):
- print __doc__
+ print(__doc__)
def downgrade( migrate_engine ):
diff --git a/lib/tool_shed/galaxy_install/migrate/versions/0012_tools.py b/lib/tool_shed/galaxy_install/migrate/versions/0012_tools.py
index 6df36179075..98dd979f3f9 100644
--- a/lib/tool_shed/galaxy_install/migrate/versions/0012_tools.py
+++ b/lib/tool_shed/galaxy_install/migrate/versions/0012_tools.py
@@ -39,10 +39,11 @@ from the main Galaxy tool shed at http://toolshed.g2.bx.psu.edu
and will be installed into your local Galaxy instance at the
location discussed above by running the following command.
"""
+from __future__ import print_function
def upgrade( migrate_engine ):
- print __doc__
+ print(__doc__)
def downgrade( migrate_engine ):
diff --git a/lib/tool_shed/galaxy_install/repair_repository_manager.py b/lib/tool_shed/galaxy_install/repair_repository_manager.py
index 20f298a2291..2c444ee9cf9 100644
--- a/lib/tool_shed/galaxy_install/repair_repository_manager.py
+++ b/lib/tool_shed/galaxy_install/repair_repository_manager.py
@@ -1,20 +1,19 @@
-import tempfile
import logging
-
-log = logging.getLogger( __name__ )
+import tempfile
from tool_shed.galaxy_install import install_manager
from tool_shed.galaxy_install.repository_dependencies import repository_dependency_manager
from tool_shed.galaxy_install.tools import tool_panel_manager
-
-from tool_shed.util import hg_util
from tool_shed.util import basic_util
from tool_shed.util import common_util
from tool_shed.util import container_util
-from tool_shed.util import shed_util_common as suc
+from tool_shed.util import hg_util
from tool_shed.util import repository_util
+from tool_shed.util import shed_util_common as suc
from tool_shed.util import tool_dependency_util
+log = logging.getLogger( __name__ )
+
class RepairRepositoryManager():
@@ -118,7 +117,7 @@ class RepairRepositoryManager():
# Currently all tools contained within an installed tool shed repository must be loaded into the same
# section in the tool panel, so we can get the section id of the first guid in the tool_panel_section_dict.
# In the future, we'll have to handle different sections per guid.
- guid = tool_panel_section_dict.keys()[ 0 ]
+ guid = next(iter(tool_panel_section_dict))
section_dicts = tool_panel_section_dict[ guid ]
section_dict = section_dicts[ 0 ]
tool_panel_section_id = section_dict[ 'id' ]
diff --git a/lib/tool_shed/galaxy_install/repository_dependencies/repository_dependency_manager.py b/lib/tool_shed/galaxy_install/repository_dependencies/repository_dependency_manager.py
index 5730739a319..82accd5af62 100644
--- a/lib/tool_shed/galaxy_install/repository_dependencies/repository_dependency_manager.py
+++ b/lib/tool_shed/galaxy_install/repository_dependencies/repository_dependency_manager.py
@@ -5,13 +5,12 @@ into Galaxy from the Tool Shed.
import json
import logging
import os
-import urllib
-import urllib2
-from galaxy.util import asbool, url_get, build_url
+from six.moves.urllib.parse import urlencode
+from six.moves.urllib.request import Request, urlopen
+from galaxy.util import asbool, build_url, url_get
from tool_shed.galaxy_install.tools import tool_panel_manager
-
from tool_shed.util import common_util
from tool_shed.util import container_util
from tool_shed.util import encoding_util
@@ -380,10 +379,10 @@ class RepositoryDependencyInstallManager( object ):
tool_shed_url = common_util.get_tool_shed_url_from_tool_shed_registry( self.app, tool_shed_url )
pathspec = [ 'repository', 'get_required_repo_info_dict' ]
url = build_url( tool_shed_url, pathspec=pathspec )
- # Fix for handling 307 redirect not being handled nicely by urllib2.urlopen when the urllib2.Request has data provided
- url = urllib2.urlopen( urllib2.Request( url ) ).geturl()
- request = urllib2.Request( url, data=urllib.urlencode( dict( encoded_str=encoded_required_repository_str ) ) )
- response = urllib2.urlopen( request ).read()
+ # Fix for handling 307 redirect not being handled nicely by urlopen() when the Request() has data provided
+ url = urlopen( Request( url ) ).geturl()
+ request = Request( url, data=urlencode( dict( encoded_str=encoded_required_repository_str ) ) )
+ response = urlopen( request ).read()
if response:
try:
required_repo_info_dict = json.loads( response )
@@ -411,8 +410,8 @@ class RepositoryDependencyInstallManager( object ):
# lists of discovered repository dependencies, but these lists will be empty in the
# required_repo_info_dict since dependency discovery has not yet been performed for these
# dictionaries.
- required_repo_info_dict_key = required_repo_info_dict.keys()[ 0 ]
- all_repo_info_dicts_keys = [ d.keys()[ 0 ] for d in all_repo_info_dicts ]
+ required_repo_info_dict_key = next(iter(required_repo_info_dict))
+ all_repo_info_dicts_keys = [ next(iter(d)) for d in all_repo_info_dicts ]
if required_repo_info_dict_key not in all_repo_info_dicts_keys:
all_repo_info_dicts.append( required_repo_info_dict )
else:
diff --git a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/install_environment.py b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/install_environment.py
index 05e3603141f..56c0dd2dcc7 100644
--- a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/install_environment.py
+++ b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/install_environment.py
@@ -1,6 +1,5 @@
import logging
import os
-import Queue
import shutil
import subprocess
import tempfile
@@ -9,8 +8,9 @@ import time
from contextlib import contextmanager
# TODO: eliminate the use of fabric here.
-from fabric.operations import _AttributeString
from fabric import state
+from fabric.operations import _AttributeString
+from six.moves import queue
from galaxy.util import DATABASE_MAX_STRING_SIZE
from galaxy.util import DATABASE_MAX_STRING_SIZE_PRETTY
@@ -63,10 +63,10 @@ class InstallEnvironment( object ):
# Undoubtedly close() was called during a concurrent operation on the same file object.
log.debug( 'Error closing file descriptor: %s' % str( e ) )
time.sleep( .5 )
- current_wait_time = time.time() - start_timer
- if current_wait_time >= 600:
- error = 'Error closing file descriptor: %s' % str( e )
- break
+ current_wait_time = time.time() - start_timer
+ if current_wait_time >= 600:
+ error = 'Error closing file descriptor: %s' % str( e )
+ break
return error
def enqueue_output( self, stdout, stdout_queue, stderr, stderr_queue ):
@@ -169,10 +169,10 @@ class InstallEnvironment( object ):
cwd=state.env[ 'lcwd' ] )
pid = process_handle.pid
# Launch the asynchronous readers of the process' stdout and stderr.
- stdout_queue = Queue.Queue()
+ stdout_queue = queue.Queue()
stdout_reader = asynchronous_reader.AsynchronousReader( process_handle.stdout, stdout_queue )
stdout_reader.start()
- stderr_queue = Queue.Queue()
+ stderr_queue = queue.Queue()
stderr_reader = asynchronous_reader.AsynchronousReader( process_handle.stderr, stderr_queue )
stderr_reader.start()
# Place streamed stdout and stderr into a threaded IPC queue target so it can
@@ -192,7 +192,7 @@ class InstallEnvironment( object ):
while not stdout_queue.empty():
try:
line = stdout_queue.get()
- except Queue.Empty:
+ except queue.Empty:
line = None
break
if line:
@@ -204,7 +204,7 @@ class InstallEnvironment( object ):
while not stderr_queue.empty():
try:
line = stderr_queue.get()
- except Queue.Empty:
+ except queue.Empty:
line = None
break
if line:
diff --git a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py
old mode 100755
new mode 100644
index 2591812249b..938048f4122
--- a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py
+++ b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py
@@ -1,26 +1,23 @@
+import hashlib
import logging
import os
import re
import shutil
import stat
-from string import Template
import tarfile
import tempfile
import time
import urllib2
import zipfile
-import hashlib
+from string import Template
+
+# TODO: eliminate the use of fabric here.
+from fabric.api import lcd, settings
from galaxy.util import asbool
from galaxy.util.template import fill_template
-
-from tool_shed.util import basic_util
-from tool_shed.util import tool_dependency_util
from tool_shed.galaxy_install.tool_dependencies.env_manager import EnvManager
-
-# TODO: eliminate the use of fabric here.
-from fabric.api import settings
-from fabric.api import lcd
+from tool_shed.util import basic_util, tool_dependency_util
log = logging.getLogger( __name__ )
diff --git a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py
index 4e4421a4e35..f5e19cdafdc 100644
--- a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py
+++ b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py
@@ -4,6 +4,9 @@ import tempfile
from galaxy.tools.deps.resolvers import NullDependency
from galaxy.util import listify, url_get
+from tool_shed.galaxy_install.tool_dependencies.env_manager import EnvManager
+from tool_shed.galaxy_install.tool_dependencies.recipe.env_file_builder import EnvFileBuilder
+from tool_shed.galaxy_install.tool_dependencies.recipe.install_environment import InstallEnvironment
from tool_shed.util import basic_util
from tool_shed.util import common_util
from tool_shed.util import metadata_util
@@ -11,10 +14,6 @@ from tool_shed.util import repository_util
from tool_shed.util import tool_dependency_util
from tool_shed.util import xml_util
-from tool_shed.galaxy_install.tool_dependencies.env_manager import EnvManager
-from tool_shed.galaxy_install.tool_dependencies.recipe.env_file_builder import EnvFileBuilder
-from tool_shed.galaxy_install.tool_dependencies.recipe.install_environment import InstallEnvironment
-
log = logging.getLogger( __name__ )
diff --git a/lib/tool_shed/galaxy_install/tool_migration_manager.py b/lib/tool_shed/galaxy_install/tool_migration_manager.py
index 39c33470230..fe00d902ff9 100644
--- a/lib/tool_shed/galaxy_install/tool_migration_manager.py
+++ b/lib/tool_shed/galaxy_install/tool_migration_manager.py
@@ -3,11 +3,11 @@ Manage automatic installation of tools configured in the xxx.xml files in ~/scri
All of the tools were at some point included in the Galaxy distribution, but are now hosted in the main Galaxy tool shed.
"""
import json
+import logging
import os
import shutil
import tempfile
import threading
-import logging
from galaxy import util
from galaxy.tools.toolbox import ToolSection
@@ -248,7 +248,7 @@ class ToolMigrationManager( object ):
tree.write( tmp_filename, encoding='utf-8', xml_declaration=True )
fh.close()
shutil.move( tmp_filename, os.path.abspath( proprietary_tool_conf ) )
- os.chmod( proprietary_tool_conf, 0644 )
+ os.chmod( proprietary_tool_conf, 0o644 )
def get_containing_tool_sections( self, tool_config ):
"""
diff --git a/lib/tool_shed/galaxy_install/tools/data_manager.py b/lib/tool_shed/galaxy_install/tools/data_manager.py
index 7acf0bec5ca..f0728427ba4 100644
--- a/lib/tool_shed/galaxy_install/tools/data_manager.py
+++ b/lib/tool_shed/galaxy_install/tools/data_manager.py
@@ -124,7 +124,7 @@ class DataManagerHandler( object ):
if tree:
root = tree.getroot()
assert root.tag == 'data_managers', 'The file provided (%s) for removing data managers from is not a valid data manager xml file.' % ( shed_data_manager_conf_filename )
- guids = [ data_manager_dict.get( 'guid' ) for data_manager_dict in metadata_dict.get( 'data_manager', {} ).get( 'data_managers', {} ).itervalues() if 'guid' in data_manager_dict ]
+ guids = [ data_manager_dict.get( 'guid' ) for data_manager_dict in metadata_dict.get( 'data_manager', {} ).get( 'data_managers', {} ).values() if 'guid' in data_manager_dict ]
load_old_data_managers_by_guid = {}
data_manager_config_has_changes = False
config_elems = []
@@ -150,7 +150,7 @@ class DataManagerHandler( object ):
# Remove data managers from in memory
self.app.data_managers.remove_manager( guids )
# Load other versions of any now uninstalled data managers, if any
- for elem in load_old_data_managers_by_guid.itervalues():
+ for elem in load_old_data_managers_by_guid.values():
self.app.data_managers.load_manager_from_elem( elem )
# Persist the altered shed_data_manager_config file.
if data_manager_config_has_changes:
diff --git a/lib/tool_shed/galaxy_install/tools/tool_panel_manager.py b/lib/tool_shed/galaxy_install/tools/tool_panel_manager.py
index 204ed0f2749..3b116651bdb 100644
--- a/lib/tool_shed/galaxy_install/tools/tool_panel_manager.py
+++ b/lib/tool_shed/galaxy_install/tools/tool_panel_manager.py
@@ -356,7 +356,7 @@ class ToolPanelManager( object ):
tool_panel_dict = self.generate_tool_panel_dict_for_new_install( metadata[ 'tools' ] )
if tool_panel_dict:
# The tool_panel_dict is empty when tools exist but are not installed into a tool panel section.
- tool_section_dicts = tool_panel_dict[ tool_panel_dict.keys()[ 0 ] ]
+ tool_section_dicts = tool_panel_dict[ next(iter(tool_panel_dict)) ]
tool_section_dict = tool_section_dicts[ 0 ]
original_section_id = tool_section_dict[ 'id' ]
if original_section_id:
@@ -423,7 +423,7 @@ class ToolPanelManager( object ):
self.app.install_model.context.flush()
# Create a list of guids for all tools that will be removed from the in-memory tool panel
# and config file on disk.
- guids_to_remove = [ k for k in tool_panel_dict.keys() ]
+ guids_to_remove = list(tool_panel_dict.keys())
self.remove_guids( guids_to_remove, shed_tool_conf, uninstall )
def remove_guids( self, guids_to_remove, shed_tool_conf, uninstall ):
diff --git a/lib/tool_shed/galaxy_install/update_repository_manager.py b/lib/tool_shed/galaxy_install/update_repository_manager.py
index 6f487aaf5f0..befbde9b284 100644
--- a/lib/tool_shed/galaxy_install/update_repository_manager.py
+++ b/lib/tool_shed/galaxy_install/update_repository_manager.py
@@ -7,10 +7,10 @@ import threading
from sqlalchemy import false
import tool_shed.util.shed_util_common as suc
+from galaxy import util
from tool_shed.util import common_util
from tool_shed.util import encoding_util
from tool_shed.util import repository_util
-from galaxy import util
log = logging.getLogger( __name__ )
diff --git a/lib/tool_shed/grids/admin_grids.py b/lib/tool_shed/grids/admin_grids.py
index 8fdeb09b22f..da1c9f08c18 100644
--- a/lib/tool_shed/grids/admin_grids.py
+++ b/lib/tool_shed/grids/admin_grids.py
@@ -1,14 +1,11 @@
import logging
+from markupsafe import escape
from sqlalchemy import and_
-from markupsafe import escape
-
-from galaxy.web.framework.helpers import grids
-from galaxy.web.framework.helpers import time_ago
+from galaxy.web.framework.helpers import grids, time_ago
from galaxy.webapps.tool_shed import model
-from tool_shed.grids.repository_grids import CategoryGrid
-from tool_shed.grids.repository_grids import RepositoryGrid
+from tool_shed.grids.repository_grids import CategoryGrid, RepositoryGrid
from tool_shed.util import hg_util
log = logging.getLogger( __name__ )
diff --git a/lib/tool_shed/grids/repository_grids.py b/lib/tool_shed/grids/repository_grids.py
index 4d2fc88f726..f74994d95ba 100644
--- a/lib/tool_shed/grids/repository_grids.py
+++ b/lib/tool_shed/grids/repository_grids.py
@@ -1140,7 +1140,7 @@ class ToolDependenciesGrid( RepositoryMetadataGrid ):
tds_dict = metadata.get( 'tool_dependencies', {} )
if tds_dict:
# Example: {"bwa/0.5.9": {"name": "bwa", "type": "package", "version": "0.5.9"}}
- sorted_keys = sorted( [ k for k in tds_dict.keys() ] )
+ sorted_keys = sorted( tds_dict.keys() )
num_keys = len( sorted_keys )
# Handle environment settings first.
if 'set_environment' in sorted_keys:
diff --git a/lib/tool_shed/grids/repository_review_grids.py b/lib/tool_shed/grids/repository_review_grids.py
index 3abb9e86cd0..4f16e37631e 100644
--- a/lib/tool_shed/grids/repository_review_grids.py
+++ b/lib/tool_shed/grids/repository_review_grids.py
@@ -1,14 +1,12 @@
import logging
-from sqlalchemy import and_, false, null, or_, true
-
from markupsafe import escape
+from sqlalchemy import and_, false, null, or_, true
from galaxy.web.framework.helpers import grids
from galaxy.webapps.tool_shed import model
from tool_shed.grids.repository_grids import RepositoryGrid
-from tool_shed.util import hg_util
-from tool_shed.util import metadata_util
+from tool_shed.util import hg_util, metadata_util
log = logging.getLogger( __name__ )
diff --git a/lib/tool_shed/managers/repositories.py b/lib/tool_shed/managers/repositories.py
index e0b79070ee8..d74845d330c 100644
--- a/lib/tool_shed/managers/repositories.py
+++ b/lib/tool_shed/managers/repositories.py
@@ -1,13 +1,13 @@
"""
Manager and Serializer for TS repositories.
"""
-from galaxy.exceptions import InconsistentDatabase
-from galaxy.exceptions import RequestParameterInvalidException
-from galaxy.exceptions import InternalServerError
-from sqlalchemy.orm.exc import MultipleResultsFound
-from sqlalchemy.orm.exc import NoResultFound
-
import logging
+
+from sqlalchemy.orm.exc import MultipleResultsFound, NoResultFound
+
+from galaxy.exceptions import (InconsistentDatabase, InternalServerError,
+ RequestParameterInvalidException)
+
log = logging.getLogger( __name__ )
diff --git a/lib/tool_shed/metadata/metadata_generator.py b/lib/tool_shed/metadata/metadata_generator.py
index 2b3b76bf668..dabd917da54 100644
--- a/lib/tool_shed/metadata/metadata_generator.py
+++ b/lib/tool_shed/metadata/metadata_generator.py
@@ -638,7 +638,7 @@ class MetadataGenerator( object ):
value, extra = required_file
required_files.append( ( value ) )
inputs = []
- for param_name, values in ttb.inputs.iteritems():
+ for param_name, values in ttb.inputs.items():
# Handle improperly defined or strange test parameters and values.
if param_name is not None:
if values in [ None, False ]:
diff --git a/lib/tool_shed/metadata/repository_metadata_manager.py b/lib/tool_shed/metadata/repository_metadata_manager.py
index 543b70e8057..5e3f45108ea 100644
--- a/lib/tool_shed/metadata/repository_metadata_manager.py
+++ b/lib/tool_shed/metadata/repository_metadata_manager.py
@@ -6,17 +6,11 @@ from sqlalchemy import false, or_
from galaxy import util
from galaxy.util import inflector
from galaxy.web.form_builder import SelectField
-
from tool_shed.metadata import metadata_generator
-from tool_shed.repository_types.metadata import TipOnly
from tool_shed.repository_types import util as rt_util
-from tool_shed.util import basic_util
-from tool_shed.util import common_util
-from tool_shed.util import hg_util
-from tool_shed.util import metadata_util
-from tool_shed.util import repository_util
-from tool_shed.util import shed_util_common as suc
-from tool_shed.util import tool_util
+from tool_shed.repository_types.metadata import TipOnly
+from tool_shed.util import (basic_util, common_util, hg_util, metadata_util,
+ repository_util, shed_util_common as suc, tool_util)
log = logging.getLogger( __name__ )
@@ -175,7 +169,7 @@ class RepositoryMetadataManager( metadata_generator.MetadataGenerator ):
value.get( 'guid' ),
value.get( 'version' ),
value.get( 'name' ),
- value.get( 'id' ) ) for name, value in metadata_dict.iteritems() ] ) )
+ value.get( 'id' ) ) for name, value in metadata_dict.items() ] ) )
# only compare valid entries, any invalid entries are ignored
ancestor_metadata = __data_manager_dict_to_tuple_list( ancestor_metadata.get( 'data_managers', {} ) )
current_metadata = __data_manager_dict_to_tuple_list( current_metadata.get( 'data_managers', {} ) )
diff --git a/lib/tool_shed/repository_types/registry.py b/lib/tool_shed/repository_types/registry.py
index a3973a9675b..722de90a9c7 100644
--- a/lib/tool_shed/repository_types/registry.py
+++ b/lib/tool_shed/repository_types/registry.py
@@ -1,9 +1,11 @@
import logging
-import unrestricted
-import repository_suite_definition
-import tool_dependency_definition
+
from galaxy.util.odict import odict
+from . import repository_suite_definition
+from . import tool_dependency_definition
+from . import unrestricted
+
log = logging.getLogger( __name__ )
diff --git a/lib/tool_shed/tool_shed_registry.py b/lib/tool_shed/tool_shed_registry.py
index 56023004923..83e2c391c91 100644
--- a/lib/tool_shed/tool_shed_registry.py
+++ b/lib/tool_shed/tool_shed_registry.py
@@ -1,8 +1,9 @@
import logging
+from six.moves.urllib import request as urlrequest
+
from galaxy.util.odict import odict
from tool_shed.util import common_util, xml_util
-from six.moves.urllib import request as urlrequest
log = logging.getLogger( __name__ )
diff --git a/lib/tool_shed/tools/data_table_manager.py b/lib/tool_shed/tools/data_table_manager.py
index b6137f41e85..413ad25c008 100644
--- a/lib/tool_shed/tools/data_table_manager.py
+++ b/lib/tool_shed/tools/data_table_manager.py
@@ -31,7 +31,7 @@ class ToolDataTableManager( object ):
changeset_revision_elem.text = changeset_revision
# add additional values
# TODO: enhance additional values to allow e.g. use of dict values that will recurse
- for key, value in kwd.iteritems():
+ for key, value in kwd.items():
new_elem = XmlET.SubElement( elem, key )
new_elem.text = value
return elem
diff --git a/lib/tool_shed/util/hg_util.py b/lib/tool_shed/util/hg_util.py
index 3aab52994c2..b0afd910f99 100644
--- a/lib/tool_shed/util/hg_util.py
+++ b/lib/tool_shed/util/hg_util.py
@@ -201,7 +201,7 @@ def get_mercurial_default_options_dict( command, command_table=None, **kwd ):
possible = possible[0]
if len( possible ) != 1:
raise Exception('unable to find mercurial command "%s"' % command)
- default_options_dict = dict( ( r[1].replace( '-', '_' ), r[2] ) for r in possible.values()[0][1][1] )
+ default_options_dict = dict( ( r[1].replace( '-', '_' ), r[2] ) for r in next(iter(possible.values()))[1][1] )
for option in kwd:
default_options_dict[ option ] = kwd[ option ]
return default_options_dict
diff --git a/lib/tool_shed/util/readme_util.py b/lib/tool_shed/util/readme_util.py
index d4364557094..59333f2457f 100644
--- a/lib/tool_shed/util/readme_util.py
+++ b/lib/tool_shed/util/readme_util.py
@@ -93,7 +93,7 @@ def get_readme_files_dict_for_display( app, tool_shed_url, repo_info_dict ):
Return a dictionary of README files contained in the single repository being installed so they can be displayed on the tool panel section
selection page.
"""
- name = repo_info_dict.keys()[ 0 ]
+ name = next(iter(repo_info_dict))
repo_info_tuple = repo_info_dict[ name ]
description, repository_clone_url, changeset_revision, ctx_rev, repository_owner, repository_dependencies, installed_td = \
repository_util.get_repo_info_tuple_contents( repo_info_tuple )
@@ -109,8 +109,8 @@ def get_readme_files_dict_for_display( app, tool_shed_url, repo_info_dict ):
def get_readme_file_names( repository_name ):
"""Return a list of file names that will be categorized as README files for the received repository_name."""
readme_files = [ 'readme', 'read_me', 'install' ]
- valid_filenames = map( lambda f: '%s.txt' % f, readme_files )
- valid_filenames.extend( map( lambda f: '%s.rst' % f, readme_files ) )
+ valid_filenames = ['%s.txt' % f for f in readme_files]
+ valid_filenames.extend( ['%s.rst' % f for f in readme_files] )
valid_filenames.extend( readme_files )
valid_filenames.append( '%s.txt' % repository_name )
valid_filenames.append( '%s.rst' % repository_name )
diff --git a/lib/tool_shed/util/repository_content_util.py b/lib/tool_shed/util/repository_content_util.py
index 1cf6660278c..15e9f591c0d 100644
--- a/lib/tool_shed/util/repository_content_util.py
+++ b/lib/tool_shed/util/repository_content_util.py
@@ -1,11 +1,8 @@
import os
import shutil
-from tool_shed.util import commit_util
-from tool_shed.util import hg_util
-from tool_shed.util import xml_util
-
import tool_shed.repository_types.util as rt_util
+from tool_shed.util import commit_util, hg_util, xml_util
def upload_tar( trans, rdah, tdah, repository, tar, uploaded_file, upload_point, remove_repo_files_not_in_tar,
diff --git a/lib/tool_shed/util/repository_util.py b/lib/tool_shed/util/repository_util.py
index c0a4db4e1b6..b25b0016fff 100644
--- a/lib/tool_shed/util/repository_util.py
+++ b/lib/tool_shed/util/repository_util.py
@@ -5,18 +5,15 @@ import shutil
from six.moves import configparser
from six.moves.urllib.error import HTTPError
-from sqlalchemy import false, and_, or_
+from sqlalchemy import and_, false, or_
+import tool_shed.dependencies.repository
+import tool_shed.util.metadata_util as metadata_util
from galaxy import util
from galaxy import web
from galaxy.web.form_builder import build_select_field
-from tool_shed.util import basic_util
-from tool_shed.util import common_util
-from tool_shed.util import encoding_util
-from tool_shed.util import hg_util
-import tool_shed.util.metadata_util as metadata_util
+from tool_shed.util import basic_util, common_util, encoding_util, hg_util
from tool_shed.util.web_util import escape
-import tool_shed.dependencies.repository
log = logging.getLogger( __name__ )
diff --git a/lib/tool_shed/util/shed_util_common.py b/lib/tool_shed/util/shed_util_common.py
index 2084bcd7a42..eaa59140496 100644
--- a/lib/tool_shed/util/shed_util_common.py
+++ b/lib/tool_shed/util/shed_util_common.py
@@ -10,11 +10,9 @@ from sqlalchemy import and_, false, true
import tool_shed.util.repository_util
from galaxy import util
-from galaxy.web import url_for
from galaxy.util import checkers
-from tool_shed.util import basic_util
-from tool_shed.util import common_util
-from tool_shed.util import hg_util
+from galaxy.web import url_for
+from tool_shed.util import basic_util, common_util, hg_util
log = logging.getLogger( __name__ )
@@ -227,7 +225,7 @@ def get_unique_requirements(requirements):
if not type == "package":
continue
uniq_reqs["%s_%s" % (name, version)] = {'name': name, 'version': version, 'type': type}
- return uniq_reqs.values()
+ return list(uniq_reqs.values())
def get_unique_requirements_from_repository(repository):
diff --git a/lib/tool_shed/util/tool_util.py b/lib/tool_shed/util/tool_util.py
index 9173cca1fbc..d145a69915e 100644
--- a/lib/tool_shed/util/tool_util.py
+++ b/lib/tool_shed/util/tool_util.py
@@ -246,7 +246,7 @@ def new_state( trans, tool, invalid=False ):
log.debug( 'Failed to build tool state for tool "%s" using standard method, will try to fall back on custom method: %s', tool.id, e )
inputs = tool.inputs_by_page[ 0 ]
context = ExpressionContext( state.inputs, parent=None )
- for input in inputs.itervalues():
+ for input in inputs.values():
try:
state.inputs[ input.name ] = input.get_initial_value( trans, context )
except:
diff --git a/lib/tool_shed/util/web_util.py b/lib/tool_shed/util/web_util.py
index 075a654ee4c..1f1c9a65d8b 100644
--- a/lib/tool_shed/util/web_util.py
+++ b/lib/tool_shed/util/web_util.py
@@ -2,7 +2,7 @@ from markupsafe import escape as raw_escape
from galaxy.util import smart_str
ALLOWED_ELEMENTS = ["", "", "
"]
-ALLOWED_MAP = dict(map(lambda x: (x, raw_escape(x)), ALLOWED_ELEMENTS))
+ALLOWED_MAP = dict((x, raw_escape(x)) for x in ALLOWED_ELEMENTS)
def escape( string ):
@@ -17,6 +17,6 @@ def escape( string ):
"""
escaped = smart_str( raw_escape( string ), encoding="ascii", errors="replace" )
# Unescape few selected tags.
- for key, value in ALLOWED_MAP.iteritems():
+ for key, value in ALLOWED_MAP.items():
escaped = escaped.replace(value, key)
return escaped
diff --git a/lib/tool_shed/util/workflow_util.py b/lib/tool_shed/util/workflow_util.py
index a1b3adb6682..e9f35263cbf 100644
--- a/lib/tool_shed/util/workflow_util.py
+++ b/lib/tool_shed/util/workflow_util.py
@@ -95,7 +95,7 @@ class RepoToolModule( ToolModule ):
data_outputs = []
if self.tool:
data_inputs = None
- for name, tool_output in self.tool.outputs.iteritems():
+ for name, tool_output in self.tool.outputs.items():
if tool_output.format_source is not None:
# Default to special name "input" which remove restrictions on connections
formats = [ 'input' ]
@@ -264,7 +264,7 @@ def get_workflow_from_dict( trans, workflow_dict, tools_metadata, repository_id,
# will be ( tool_id, tool_name, tool_version ).
missing_tool_tups = []
# First pass to build step objects and populate basic values
- for step_dict in workflow_dict[ 'steps' ].itervalues():
+ for step_dict in workflow_dict[ 'steps' ].values():
# Create the model class for the step
step = trans.model.WorkflowStep()
step.label = step_dict.get('label', None)
@@ -302,7 +302,7 @@ def get_workflow_from_dict( trans, workflow_dict, tools_metadata, repository_id,
# Second pass to deal with connections between steps.
for step in steps:
# Input connections.
- for input_name, conn_dict in step.temp_input_connections.iteritems():
+ for input_name, conn_dict in step.temp_input_connections.items():
if conn_dict:
output_step = steps_by_external_id[ conn_dict[ 'id' ] ]
conn = trans.model.WorkflowStepConnection()
diff --git a/lib/tool_shed/utility_containers/utility_container_manager.py b/lib/tool_shed/utility_containers/utility_container_manager.py
index 97918d5f877..0000b9792d3 100644
--- a/lib/tool_shed/utility_containers/utility_container_manager.py
+++ b/lib/tool_shed/utility_containers/utility_container_manager.py
@@ -212,7 +212,7 @@ class UtilityContainerManager( object ):
version='Version',
data_tables='Data Tables' )
folder.valid_data_managers.append( data_manager )
- for data_manager_dict in data_managers.itervalues():
+ for data_manager_dict in data_managers.values():
data_manager_id += 1
try:
name = data_manager_dict.get( 'name', '' )
diff --git a/scripts/tool_shed/api/common.py b/scripts/tool_shed/api/common.py
index 21d73f81cbd..bf3153322be 100644
--- a/scripts/tool_shed/api/common.py
+++ b/scripts/tool_shed/api/common.py
@@ -6,8 +6,8 @@ import urllib2
sys.path.insert( 1, os.path.join( os.path.dirname( __file__ ), os.pardir, os.pardir, os.pardir, 'lib' ) )
-from tool_shed.util import hg_util
from galaxy import util
+from tool_shed.util import hg_util
class HTTPRedirectWithDataHandler( urllib2.HTTPRedirectHandler ):
diff --git a/setup.cfg b/setup.cfg
index 4ae1306d579..b8e6fb512c1 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -11,4 +11,4 @@ ignore = E128,E201,E202,E203,E501,E402,W503
# For flake8-import-order
# https://github.com/PyCQA/flake8-import-order/blob/master/tests/test_cases/complete_smarkets.py
import-order-style = smarkets
-application-import-names = galaxy
+application-import-names = galaxy,tool_shed