mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge pull request #4541 from mvdbeek/build_module_speedup
Speedup toolform building
This commit is contained in:
@@ -75,6 +75,7 @@ class Registry(object):
|
||||
self.xml_filename = None
|
||||
self._edam_formats_mapping = None
|
||||
self._edam_data_mapping = None
|
||||
self._converters_by_datatype = {}
|
||||
# Build sites
|
||||
self.build_sites = {}
|
||||
self.display_sites = {}
|
||||
@@ -797,16 +798,18 @@ class Registry(object):
|
||||
|
||||
def get_converters_by_datatype(self, ext):
|
||||
"""Returns available converters by source type"""
|
||||
converters = odict()
|
||||
source_datatype = type(self.get_datatype_by_extension(ext))
|
||||
for ext2, converters_dict in self.datatype_converters.items():
|
||||
converter_datatype = type(self.get_datatype_by_extension(ext2))
|
||||
if issubclass(source_datatype, converter_datatype):
|
||||
converters.update(converters_dict)
|
||||
# Ensure ext-level converters are present
|
||||
if ext in self.datatype_converters.keys():
|
||||
converters.update(self.datatype_converters[ext])
|
||||
return converters
|
||||
if ext not in self._converters_by_datatype:
|
||||
converters = odict()
|
||||
source_datatype = type(self.get_datatype_by_extension(ext))
|
||||
for ext2, converters_dict in self.datatype_converters.items():
|
||||
converter_datatype = type(self.get_datatype_by_extension(ext2))
|
||||
if issubclass(source_datatype, converter_datatype):
|
||||
converters.update(converters_dict)
|
||||
# Ensure ext-level converters are present
|
||||
if ext in self.datatype_converters.keys():
|
||||
converters.update(self.datatype_converters[ext])
|
||||
self._converters_by_datatype[ext] = converters
|
||||
return self._converters_by_datatype[ext]
|
||||
|
||||
def get_converter_by_target_type(self, source_ext, target_ext):
|
||||
"""Returns a converter based on source and target datatypes"""
|
||||
|
||||
@@ -22,6 +22,7 @@ class WorkRequestContext(ProvidesAppContext, ProvidesUserContext, ProvidesHistor
|
||||
self.app = app
|
||||
self.security = app.security
|
||||
self.__user = user
|
||||
self.__user_current_roles = None
|
||||
self.__history = history
|
||||
self.api_inherit_admin = False
|
||||
self.workflow_building_mode = workflow_building_mode
|
||||
@@ -40,6 +41,12 @@ class WorkRequestContext(ProvidesAppContext, ProvidesUserContext, ProvidesHistor
|
||||
"""Return the current user if logged in or None."""
|
||||
return self.__user
|
||||
|
||||
def get_current_user_roles(self):
|
||||
if not self.__user_current_roles:
|
||||
if self.__user:
|
||||
self.__user_current_roles = self.__user.all_roles()
|
||||
return self.__user_current_roles
|
||||
|
||||
def set_user(self, user):
|
||||
"""Set the current user."""
|
||||
raise NotImplementedError("Cannot change users from a work request context.")
|
||||
|
||||
Reference in New Issue
Block a user