diff --git a/contrib/nagios/check_galaxy.py b/contrib/nagios/check_galaxy.py index 36e310660d4..565d1d278be 100755 --- a/contrib/nagios/check_galaxy.py +++ b/contrib/nagios/check_galaxy.py @@ -136,8 +136,8 @@ class Browser: def runtool(self): path = '/api/tools' data = {'tool_id' : self.tool, - 'history_id' : self.history_id, - 'inputs' : {'echo' : self.handler}} + 'history_id' : self.history_id, + 'inputs' : {'echo' : self.handler}} res = self.req(path, data=data) dprint(json.loads(res.read())) diff --git a/lib/galaxy/config.py b/lib/galaxy/config.py index ad2d0ad842f..b810d89cf8a 100644 --- a/lib/galaxy/config.py +++ b/lib/galaxy/config.py @@ -273,7 +273,7 @@ class Configuration(object): self.user_activation_on = string_as_bool(kwargs.get('user_activation_on', False)) self.activation_grace_period = int(kwargs.get('activation_grace_period', 3)) default_inactivity_box_content = ("Your account has not been activated yet. Feel free to browse around and see what's available, but" - " you won't be able to upload data or run jobs until you have verified your email address.") + " you won't be able to upload data or run jobs until you have verified your email address.") self.inactivity_box_content = kwargs.get('inactivity_box_content', default_inactivity_box_content) self.terms_url = kwargs.get('terms_url', None) self.instance_resource_url = kwargs.get('instance_resource_url', None) @@ -970,11 +970,11 @@ class ConfiguresGalaxyMixin: # Initialize tool data tables using the config defined by self.config.tool_data_table_config_path. self.tool_data_tables = ToolDataTableManager(tool_data_path=self.config.tool_data_path, - config_filename=self.config.tool_data_table_config_path) + config_filename=self.config.tool_data_table_config_path) # Load additional entries defined by self.config.shed_tool_data_table_config into tool data tables. self.tool_data_tables.load_from_config_file(config_filename=self.config.shed_tool_data_table_config, - tool_data_path=self.tool_data_tables.tool_data_path, - from_shed_config=from_shed_config) + tool_data_path=self.tool_data_tables.tool_data_path, + from_shed_config=from_shed_config) def _configure_datatypes_registry(self, installed_repository_manager=None): from galaxy.datatypes import registry @@ -1047,14 +1047,14 @@ class ConfiguresGalaxyMixin: from galaxy.model import mapping self.model = mapping.init(self.config.file_path, - db_url, - self.config.database_engine_options, - map_install_models=combined_install_database, - database_query_profiling_proxy=self.config.database_query_profiling_proxy, - object_store=self.object_store, - trace_logger=getattr(self, "trace_logger", None), - use_pbkdf2=self.config.get_bool('use_pbkdf2', True), - slow_query_log_threshold=self.config.slow_query_log_threshold) + db_url, + self.config.database_engine_options, + map_install_models=combined_install_database, + database_query_profiling_proxy=self.config.database_query_profiling_proxy, + object_store=self.object_store, + trace_logger=getattr(self, "trace_logger", None), + use_pbkdf2=self.config.get_bool('use_pbkdf2', True), + slow_query_log_threshold=self.config.slow_query_log_threshold) if combined_install_database: log.info("Install database targetting Galaxy's database configuration.") @@ -1065,7 +1065,7 @@ class ConfiguresGalaxyMixin: log.info("Install database using its own connection %s" % install_db_url) install_db_engine_options = self.config.install_database_engine_options self.install_model = install_mapping.init(install_db_url, - install_db_engine_options) + install_db_engine_options) def _configure_signal_handlers(self, handlers): for sig, handler in handlers.items(): diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index dbdebe8a13d..83139b65a08 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -250,8 +250,8 @@ class Bam(Binary): # Get the version of samtools via --version-only, if available p = subprocess.Popen(['samtools', '--version-only'], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) output, error = p.communicate() # --version-only is available @@ -398,7 +398,7 @@ class Bam(Binary): if exit_code == -6: # SIGABRT, most likely samtools 1.0+ which does not accept the index name parameter. dataset_symlink = os.path.join(os.path.dirname(index_file.file_name), - '__dataset_%d_%s' % (dataset.id, os.path.basename(index_file.file_name))) + '__dataset_%d_%s' % (dataset.id, os.path.basename(index_file.file_name))) os.symlink(dataset.file_name, dataset_symlink) try: command = ['samtools', 'index', dataset_symlink] @@ -491,7 +491,7 @@ class Bam(Binary): bamline_modified = ('\t').join(bamline.split()[:11] + [(' ').join(bamline.split()[11:])]) ck_data = "%s\n%s" % (ck_data, bamline_modified) return dumps({'ck_data': util.unicodify(ck_data), - 'offset': offset}) + 'offset': offset}) def display_data(self, trans, dataset, preview=False, filename=None, to_ext=None, offset=None, ck_size=None, **kwd): preview = util.string_as_bool(preview) @@ -510,11 +510,11 @@ class Bam(Binary): if column_number is None: column_number = 1 return trans.fill_template("/dataset/tabular_chunked.mako", - dataset=dataset, - chunk=self.get_chunk(trans, dataset, 0), - column_number=column_number, - column_names=column_names, - column_types=column_types) + dataset=dataset, + chunk=self.get_chunk(trans, dataset, 0), + column_number=column_number, + column_names=column_names, + column_types=column_types) # ------------- Dataproviders # pipe through samtools view @@ -704,7 +704,7 @@ class Bcf(Binary): # Usage: bcftools index dataset_symlink = os.path.join(os.path.dirname(index_file.file_name), - '__dataset_%d_%s' % (dataset.id, os.path.basename(index_file.file_name))) + '__dataset_%d_%s' % (dataset.id, os.path.basename(index_file.file_name))) os.symlink(dataset.file_name, dataset_symlink) stderr_name = tempfile.NamedTemporaryFile(prefix="bcf_index_stderr").name @@ -1022,7 +1022,7 @@ class SQlite (Binary): class GeminiSQLite(SQlite): """Class describing a Gemini Sqlite database """ MetadataElement(name="gemini_version", default='0.10.0', param=MetadataParameter, desc="Gemini Version", - readonly=True, visible=True, no_value='0.10.0') + readonly=True, visible=True, no_value='0.10.0') file_ext = "gemini.sqlite" edam_format = "format_3622" edam_data = "data_3498" @@ -1043,7 +1043,7 @@ class GeminiSQLite(SQlite): def sniff(self, filename): if super(GeminiSQLite, self).sniff(filename): gemini_table_names = ["gene_detailed", "gene_summary", "resources", "sample_genotype_counts", "sample_genotypes", "samples", - "variant_impacts", "variants", "version"] + "variant_impacts", "variants", "version"] try: conn = sqlite.connect(filename) c = conn.cursor() @@ -1450,9 +1450,9 @@ Binary.register_sniffable_binary_format("oxli.graphlabels", "oxligl", class SearchGuiArchive (CompressedArchive): """Class describing a SearchGUI archive """ MetadataElement(name="searchgui_version", default='1.28.0', param=MetadataParameter, desc="SearchGui Version", - readonly=True, visible=True, no_value=None) + readonly=True, visible=True, no_value=None) MetadataElement(name="searchgui_major_version", default='1', param=MetadataParameter, desc="SearchGui Major Version", - readonly=True, visible=True, no_value=None) + readonly=True, visible=True, no_value=None) file_ext = "searchgui_archive" def set_meta(self, dataset, overwrite=True, **kwd): diff --git a/lib/galaxy/datatypes/converters/interval_to_coverage.py b/lib/galaxy/datatypes/converters/interval_to_coverage.py index ef1b8dc2fec..b0b8bb4695c 100644 --- a/lib/galaxy/datatypes/converters/interval_to_coverage.py +++ b/lib/galaxy/datatypes/converters/interval_to_coverage.py @@ -137,15 +137,15 @@ if __name__ == "__main__": subprocess.check_call(commandline, shell=True) coverage = CoverageWriter(out_stream=open(out_fname, "a"), - chromCol=chr_col_2, positionCol=position_col_2, - forwardCol=forward_col_2, reverseCol=reverse_col_2, ) + chromCol=chr_col_2, positionCol=position_col_2, + forwardCol=forward_col_2, reverseCol=reverse_col_2, ) temp_file.seek(0) interval = io.NiceReaderWrapper(temp_file, - chrom_col=chr_col_1, - start_col=start_col_1, - end_col=end_col_1, - strand_col=strand_col_1, - fix_strand=True) + chrom_col=chr_col_1, + start_col=start_col_1, + end_col=end_col_1, + strand_col=strand_col_1, + fix_strand=True) main(interval, coverage) temp_file.close() coverage.close() diff --git a/lib/galaxy/datatypes/converters/sam_to_bam.py b/lib/galaxy/datatypes/converters/sam_to_bam.py index dbb37cdbde1..dcc84b6c518 100644 --- a/lib/galaxy/datatypes/converters/sam_to_bam.py +++ b/lib/galaxy/datatypes/converters/sam_to_bam.py @@ -35,8 +35,8 @@ def _get_samtools_version(): raise Exception('This tool needs samtools, but it is not on PATH.') # Get the version of samtools via --version-only, if available p = subprocess.Popen(['samtools', '--version-only'], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) output, error = p.communicate() # --version-only is available diff --git a/lib/galaxy/datatypes/data.py b/lib/galaxy/datatypes/data.py index d38fe5854ee..14b5ec0f022 100644 --- a/lib/galaxy/datatypes/data.py +++ b/lib/galaxy/datatypes/data.py @@ -434,8 +434,8 @@ class Data(object): else: trans.response.set_content_type("text/html") return trans.stream_template_mako("/dataset/large_file.mako", - truncated_data=open(data.file_name).read(max_peek_size), - data=data) + truncated_data=open(data.file_name).read(max_peek_size), + data=data) def _download_filename(self, dataset, to_ext, hdca=None, element_identifier=None): def escape(raw_identifier): @@ -569,7 +569,7 @@ class Data(object): return target_frame, getattr(self, self.supported_display_apps[type]['links_function'])(dataset, type, app, base_url, **kwd) except: log.exception('Function %s is referred to in datatype %s for generating links for type %s, but is not accessible', - self.supported_display_apps[type]['links_function'], self.__class__.__name__, type) + self.supported_display_apps[type]['links_function'], self.__class__.__name__, type) return target_frame, [] def get_converter_types(self, original_dataset, datatypes_registry): diff --git a/lib/galaxy/datatypes/dataproviders/column.py b/lib/galaxy/datatypes/dataproviders/column.py index eed9215e72c..a8248fab562 100644 --- a/lib/galaxy/datatypes/dataproviders/column.py +++ b/lib/galaxy/datatypes/dataproviders/column.py @@ -42,8 +42,8 @@ class ColumnarDataProvider(line.RegexLineDataProvider): } def __init__(self, source, indeces=None, - column_count=None, column_types=None, parsers=None, parse_columns=True, - deliminator='\t', filters=None, **kwargs): + column_count=None, column_types=None, parsers=None, parse_columns=True, + deliminator='\t', filters=None, **kwargs): """ :param indeces: a list of indeces of columns to gather from each row Optional: will default to `None`. diff --git a/lib/galaxy/datatypes/dataproviders/dataset.py b/lib/galaxy/datatypes/dataproviders/dataset.py index a574fd9a35e..51994802be7 100644 --- a/lib/galaxy/datatypes/dataproviders/dataset.py +++ b/lib/galaxy/datatypes/dataproviders/dataset.py @@ -80,7 +80,7 @@ class DatasetDataProvider(base.DataProvider): :type indeces: list of ints """ metadata_column_types = (self.dataset.metadata.column_types or - getattr(self.dataset.datatype, 'column_types', None) or None) + getattr(self.dataset.datatype, 'column_types', None) or None) if not metadata_column_types: return metadata_column_types if indeces: @@ -100,7 +100,7 @@ class DatasetDataProvider(base.DataProvider): :type indeces: list of ints """ metadata_column_names = (self.dataset.metadata.column_names or - getattr(self.dataset.datatype, 'column_names', None) or None) + getattr(self.dataset.datatype, 'column_names', None) or None) if not metadata_column_names: return metadata_column_names if indeces: @@ -123,10 +123,10 @@ class DatasetDataProvider(base.DataProvider): :raises ValueError: if an entry in list_of_column_names is not in column_names """ metadata_column_names = (self.dataset.metadata.column_names or - getattr(self.dataset.datatype, 'column_names', None) or None) + getattr(self.dataset.datatype, 'column_names', None) or None) if not metadata_column_names: raise KeyError('No column_names found for ' + - 'datatype: %s, dataset: %s' % (str(self.dataset.datatype), str(self.dataset))) + 'datatype: %s, dataset: %s' % (str(self.dataset.datatype), str(self.dataset))) indeces = [] # if indeces and column_names: # pull using indeces and re-name with given names - no need to alter (does as super would) # pass @@ -302,7 +302,7 @@ class GenomicRegionDataProvider(column.ColumnarDataProvider): indeces = [chrom_column, start_column, end_column] if not all(_ is not None for _ in indeces): raise ValueError("Could not determine proper column indeces for" + - " chrom, start, end: %s" % (str(indeces))) + " chrom, start, end: %s" % (str(indeces))) kwargs.update({'indeces' : indeces}) if not kwargs.get('column_types', None): @@ -344,7 +344,7 @@ class IntervalDataProvider(column.ColumnarDataProvider): } def __init__(self, dataset, chrom_column=None, start_column=None, end_column=None, - strand_column=None, name_column=None, named_columns=False, **kwargs): + strand_column=None, name_column=None, named_columns=False, **kwargs): """ :param dataset: the Galaxy dataset whose file will be the source :type dataset: model.DatasetInstance diff --git a/lib/galaxy/datatypes/dataproviders/hierarchy.py b/lib/galaxy/datatypes/dataproviders/hierarchy.py index 07479d44d14..0c6cbd1066d 100644 --- a/lib/galaxy/datatypes/dataproviders/hierarchy.py +++ b/lib/galaxy/datatypes/dataproviders/hierarchy.py @@ -67,7 +67,7 @@ class XMLDataProvider(HierarchalDataProvider): # TODO: fails with '#' - browser thinks it's an anchor - use urlencode # TODO: need removal/replacement of etree namespacing here - then move to string match return bool((selector is None) or - (isinstance(element, Element) and selector in element.tag)) + (isinstance(element, Element) and selector in element.tag)) def element_as_dict(self, element): """ diff --git a/lib/galaxy/datatypes/dataproviders/line.py b/lib/galaxy/datatypes/dataproviders/line.py index caf893d9daf..a4526e4c18b 100644 --- a/lib/galaxy/datatypes/dataproviders/line.py +++ b/lib/galaxy/datatypes/dataproviders/line.py @@ -32,7 +32,7 @@ class FilteredLineDataProvider(base.LimitedOffsetDataProvider): } def __init__(self, source, strip_lines=True, strip_newlines=False, provide_blank=False, - comment_char=DEFAULT_COMMENT_CHAR, **kwargs): + comment_char=DEFAULT_COMMENT_CHAR, **kwargs): """ :param strip_lines: remove whitespace from the beginning an ending of each line (or not). @@ -153,7 +153,7 @@ class BlockDataProvider(base.LimitedOffsetDataProvider): # composition - not inheritance # TODO: not a fan of this: (filter_fn, limit, offset) = (kwargs.pop('filter_fn', None), - kwargs.pop('limit', None), kwargs.pop('offset', 0)) + kwargs.pop('limit', None), kwargs.pop('offset', 0)) line_provider = FilteredLineDataProvider(source, **kwargs) super(BlockDataProvider, self).__init__(line_provider, filter_fn=filter_fn, limit=limit, offset=offset) diff --git a/lib/galaxy/datatypes/display_applications/application.py b/lib/galaxy/datatypes/display_applications/application.py index 5170cb77b8a..1759241b73d 100644 --- a/lib/galaxy/datatypes/display_applications/application.py +++ b/lib/galaxy/datatypes/display_applications/application.py @@ -55,12 +55,12 @@ class DisplayApplicationLink(object): def get_display_url(self, data, trans): dataset_hash, user_hash = encode_dataset_user(trans, data, None) return url_for(controller='dataset', - action="display_application", - dataset_id=dataset_hash, - user_id=user_hash, - app_name=quote_plus(self.display_application.id), - link_name=quote_plus(self.id), - app_action=None) + action="display_application", + dataset_id=dataset_hash, + user_id=user_hash, + app_name=quote_plus(self.display_application.id), + link_name=quote_plus(self.id), + app_action=None) def get_inital_values(self, data, trans): if self.other_values: diff --git a/lib/galaxy/datatypes/display_applications/parameters.py b/lib/galaxy/datatypes/display_applications/parameters.py index a333916bedc..40e5a77c379 100644 --- a/lib/galaxy/datatypes/display_applications/parameters.py +++ b/lib/galaxy/datatypes/display_applications/parameters.py @@ -156,7 +156,7 @@ class DisplayApplicationTemplateParameter(DisplayApplicationParameter): parameter_type_to_class = {DisplayApplicationDataParameter.type: DisplayApplicationDataParameter, - DisplayApplicationTemplateParameter.type: DisplayApplicationTemplateParameter} + DisplayApplicationTemplateParameter.type: DisplayApplicationTemplateParameter} class DisplayParameterValueWrapper(object): @@ -191,14 +191,14 @@ class DisplayParameterValueWrapper(object): if self.parameter.strip_https and base_url[: 5].lower() == 'https': base_url = "http%s" % base_url[5:] return "%s%s" % (base_url, - url_for(controller='dataset', - action="display_application", - dataset_id=self._dataset_hash, - user_id=self._user_hash, - app_name=quote_plus(self.parameter.link.display_application.id), - link_name=quote_plus(self.parameter.link.id), - app_action=self.action_name, - action_param=self._url)) + url_for(controller='dataset', + action="display_application", + dataset_id=self._dataset_hash, + user_id=self._user_hash, + app_name=quote_plus(self.parameter.link.display_application.id), + link_name=quote_plus(self.parameter.link.id), + app_action=self.action_name, + action_param=self._url)) @property def action_name(self): diff --git a/lib/galaxy/datatypes/genetics.py b/lib/galaxy/datatypes/genetics.py index d230fdcde74..3205b4de9b1 100644 --- a/lib/galaxy/datatypes/genetics.py +++ b/lib/galaxy/datatypes/genetics.py @@ -91,9 +91,9 @@ class GenomeGraphs(Tabular): if site_name in app.datatypes_registry.get_display_sites('ucsc'): site_url = site_url.replace('/hgTracks?', '/hgGenome?') # for genome graphs internal_url = "%s" % url_for(controller='dataset', - dataset_id=dataset.id, - action='display_at', - filename='ucsc_' + site_name) + dataset_id=dataset.id, + action='display_at', + filename='ucsc_' + site_name) display_url = "%s%s/display_as?id=%i&display_app=%s&authz_method=display_at" % (base_url, url_for(controller='root'), dataset.id, type) display_url = quote_plus(display_url) # was display_url = quote_plus( "%s/display_as?id=%i&display_app=%s" % (base_url, dataset.id, type) ) @@ -278,7 +278,7 @@ class Rgenetics(Html): """ MetadataElement(name="base_name", desc="base name for all transformed versions of this genetic dataset", default='RgeneticsData', - readonly=True, set_in_upload=True) + readonly=True, set_in_upload=True) composite_type = 'auto_primary_file' allow_datatype_change = False @@ -389,13 +389,13 @@ class Lped(Rgenetics): def __init__(self, **kwd): Rgenetics.__init__(self, **kwd) self.add_composite_file('%s.ped', - description='Pedigree File', - substitute_name_with_metadata='base_name', - is_binary=False) + description='Pedigree File', + substitute_name_with_metadata='base_name', + is_binary=False) self.add_composite_file('%s.map', - description='Map File', - substitute_name_with_metadata='base_name', - is_binary=False) + description='Map File', + substitute_name_with_metadata='base_name', + is_binary=False) class Pphe(Rgenetics): @@ -407,9 +407,9 @@ class Pphe(Rgenetics): def __init__(self, **kwd): Rgenetics.__init__(self, **kwd) self.add_composite_file('%s.pphe', - description='Plink Phenotype File', - substitute_name_with_metadata='base_name', - is_binary=False) + description='Plink Phenotype File', + substitute_name_with_metadata='base_name', + is_binary=False) class Fphe(Rgenetics): @@ -422,8 +422,8 @@ class Fphe(Rgenetics): def __init__(self, **kwd): Rgenetics.__init__(self, **kwd) self.add_composite_file('%s.fphe', - description='FBAT Phenotype File', - substitute_name_with_metadata='base_name') + description='FBAT Phenotype File', + substitute_name_with_metadata='base_name') class Phe(Rgenetics): @@ -435,9 +435,9 @@ class Phe(Rgenetics): def __init__(self, **kwd): Rgenetics.__init__(self, **kwd) self.add_composite_file('%s.phe', - description='Phenotype File', - substitute_name_with_metadata='base_name', - is_binary=False) + description='Phenotype File', + substitute_name_with_metadata='base_name', + is_binary=False) class Fped(Rgenetics): @@ -450,8 +450,8 @@ class Fped(Rgenetics): def __init__(self, **kwd): Rgenetics.__init__(self, **kwd) self.add_composite_file('%s.fped', description='FBAT format pedfile', - substitute_name_with_metadata='base_name', - is_binary=False) + substitute_name_with_metadata='base_name', + is_binary=False) class Pbed(Rgenetics): @@ -507,7 +507,7 @@ class Eigenstratpca(Rgenetics): def __init__(self, **kwd): Rgenetics.__init__(self, **kwd) self.add_composite_file('%s.eigenstratpca', - description='Eigenstrat PCA file', substitute_name_with_metadata='base_name') + description='Eigenstrat PCA file', substitute_name_with_metadata='base_name') class Snptest(Rgenetics): @@ -534,7 +534,7 @@ class RexpBase(Html): MetadataElement(name="column_names", default=[], desc="Column names", visible=True) MetadataElement(name="pheCols", default=[], desc="Select list for potentially interesting variables", visible=True) MetadataElement(name="base_name", - desc="base name for all transformed versions of this expression dataset", default='rexpression', set_in_upload=True) + desc="base name for all transformed versions of this expression dataset", default='rexpression', set_in_upload=True) MetadataElement(name="pheno_path", desc="Path to phenotype data for this experiment", default="rexpression.pheno", visible=True) file_ext = 'rexpbase' html_table = None @@ -545,7 +545,7 @@ class RexpBase(Html): def __init__(self, **kwd): Html.__init__(self, **kwd) self.add_composite_file('%s.pheno', description='Phenodata tab text file', - substitute_name_with_metadata='base_name', is_binary=False) + substitute_name_with_metadata='base_name', is_binary=False) def generate_primary_file(self, dataset=None): """ @@ -799,8 +799,8 @@ class Affybatch(RexpBase): def __init__(self, **kwd): RexpBase.__init__(self, **kwd) self.add_composite_file('%s.affybatch', - description='AffyBatch R object saved to file', - substitute_name_with_metadata='base_name', is_binary=True) + description='AffyBatch R object saved to file', + substitute_name_with_metadata='base_name', is_binary=True) class Eset(RexpBase): @@ -812,8 +812,8 @@ class Eset(RexpBase): def __init__(self, **kwd): RexpBase.__init__(self, **kwd) self.add_composite_file('%s.eset', - description='ESet R object saved to file', - substitute_name_with_metadata='base_name', is_binary=True) + description='ESet R object saved to file', + substitute_name_with_metadata='base_name', is_binary=True) class MAlist(RexpBase): @@ -825,8 +825,8 @@ class MAlist(RexpBase): def __init__(self, **kwd): RexpBase.__init__(self, **kwd) self.add_composite_file('%s.malist', - description='MAlist R object saved to file', - substitute_name_with_metadata='base_name', is_binary=True) + description='MAlist R object saved to file', + substitute_name_with_metadata='base_name', is_binary=True) if __name__ == '__main__': diff --git a/lib/galaxy/datatypes/graph.py b/lib/galaxy/datatypes/graph.py index 5da3a0b9999..f0d5e4773e8 100644 --- a/lib/galaxy/datatypes/graph.py +++ b/lib/galaxy/datatypes/graph.py @@ -47,7 +47,7 @@ class Xgmml(xml.GenericXml): """ if len(split_files) > 1: raise NotImplementedError("Merging multiple XML files is non-trivial " + - "and must be implemented for each XML type") + "and must be implemented for each XML type") # For one file only, use base class method (move/copy) data.Text.merge(split_files, output_file) diff --git a/lib/galaxy/datatypes/interval.py b/lib/galaxy/datatypes/interval.py index 960e3ecb9e9..9d9a86a1c01 100644 --- a/lib/galaxy/datatypes/interval.py +++ b/lib/galaxy/datatypes/interval.py @@ -253,8 +253,8 @@ class Interval(Tabular): # Filter UCSC sites to only those that are supported by this build and # enabled. valid_sites = [(name, url) - for name, url in app.datatypes_registry.get_legacy_sites_by_build('ucsc', dataset.dbkey) - if name in app.datatypes_registry.get_display_sites('ucsc')] + for name, url in app.datatypes_registry.get_legacy_sites_by_build('ucsc', dataset.dbkey) + if name in app.datatypes_registry.get_display_sites('ucsc')] if not valid_sites: return [] # If there are any valid sites, we need to generate the estimated @@ -266,11 +266,11 @@ class Interval(Tabular): ret_val = [] for site_name, site_url in valid_sites: internal_url = url_for(controller='dataset', dataset_id=dataset.id, - action='display_at', filename='ucsc_' + site_name) + action='display_at', filename='ucsc_' + site_name) display_url = quote_plus("%s%s/display_as?id=%i&display_app=%s&authz_method=display_at" % - (base_url, url_for(controller='root'), dataset.id, type)) + (base_url, url_for(controller='root'), dataset.id, type)) redirect_url = quote_plus("%sdb=%s&position=%s:%s-%s&hgt.customText=%%s" % - (site_url, dataset.dbkey, chrom, start, stop)) + (site_url, dataset.dbkey, chrom, start, stop)) link = '%s?redirect_url=%s&display_url=%s' % (internal_url, redirect_url, display_url) ret_val.append((site_name, link)) return ret_val @@ -342,23 +342,23 @@ class Interval(Tabular): # ------------- Dataproviders @dataproviders.decorators.dataprovider_factory('genomic-region', - dataproviders.dataset.GenomicRegionDataProvider.settings) + dataproviders.dataset.GenomicRegionDataProvider.settings) def genomic_region_dataprovider(self, dataset, **settings): return dataproviders.dataset.GenomicRegionDataProvider(dataset, **settings) @dataproviders.decorators.dataprovider_factory('genomic-region-dict', - dataproviders.dataset.GenomicRegionDataProvider.settings) + dataproviders.dataset.GenomicRegionDataProvider.settings) def genomic_region_dict_dataprovider(self, dataset, **settings): settings['named_columns'] = True return self.genomic_region_dataprovider(dataset, **settings) @dataproviders.decorators.dataprovider_factory('interval', - dataproviders.dataset.IntervalDataProvider.settings) + dataproviders.dataset.IntervalDataProvider.settings) def interval_dataprovider(self, dataset, **settings): return dataproviders.dataset.IntervalDataProvider(dataset, **settings) @dataproviders.decorators.dataprovider_factory('interval-dict', - dataproviders.dataset.IntervalDataProvider.settings) + dataproviders.dataset.IntervalDataProvider.settings) def interval_dict_dataprovider(self, dataset, **settings): settings['named_columns'] = True return self.interval_dataprovider(dataset, **settings) @@ -626,7 +626,7 @@ class _RemoteCallMixin: internal_url = "%s" % url_for(controller='dataset', dataset_id=dataset.id, action='display_at', filename='%s_%s' % (type, site_name)) base_url = app.config.get("display_at_callback", base_url) display_url = quote_plus("%s%s/display_as?id=%i&display_app=%s&authz_method=display_at" % - (base_url, url_for(controller='root'), dataset.id, type)) + (base_url, url_for(controller='root'), dataset.id, type)) link = '%s?redirect_url=%s&display_url=%s' % (internal_url, redirect_url, display_url) return link @@ -645,7 +645,7 @@ class Gff(Tabular, _RemoteCallMixin): """Add metadata elements""" MetadataElement(name="columns", default=9, desc="Number of columns", readonly=True, visible=False) MetadataElement(name="column_types", default=['str', 'str', 'str', 'int', 'int', 'int', 'str', 'str', 'str'], - param=metadata.ColumnTypesParameter, desc="Column types", readonly=True, visible=False) + param=metadata.ColumnTypesParameter, desc="Column types", readonly=True, visible=False) MetadataElement(name="attributes", default=0, desc="Number of attributes", readonly=True, visible=False, no_value=0) MetadataElement(name="attribute_types", default={}, desc="Attribute types", param=metadata.DictParameter, readonly=True, visible=False, no_value=[]) @@ -866,23 +866,23 @@ class Gff(Tabular, _RemoteCallMixin): # ------------- Dataproviders # redefine bc super is Tabular @dataproviders.decorators.dataprovider_factory('genomic-region', - dataproviders.dataset.GenomicRegionDataProvider.settings) + dataproviders.dataset.GenomicRegionDataProvider.settings) def genomic_region_dataprovider(self, dataset, **settings): return dataproviders.dataset.GenomicRegionDataProvider(dataset, 0, 3, 4, **settings) @dataproviders.decorators.dataprovider_factory('genomic-region-dict', - dataproviders.dataset.GenomicRegionDataProvider.settings) + dataproviders.dataset.GenomicRegionDataProvider.settings) def genomic_region_dict_dataprovider(self, dataset, **settings): settings['named_columns'] = True return self.genomic_region_dataprovider(dataset, **settings) @dataproviders.decorators.dataprovider_factory('interval', - dataproviders.dataset.IntervalDataProvider.settings) + dataproviders.dataset.IntervalDataProvider.settings) def interval_dataprovider(self, dataset, **settings): return dataproviders.dataset.IntervalDataProvider(dataset, 0, 3, 4, 6, 2, **settings) @dataproviders.decorators.dataprovider_factory('interval-dict', - dataproviders.dataset.IntervalDataProvider.settings) + dataproviders.dataset.IntervalDataProvider.settings) def interval_dict_dataprovider(self, dataset, **settings): settings['named_columns'] = True return self.interval_dataprovider(dataset, **settings) @@ -899,7 +899,7 @@ class Gff3(Gff): """Add metadata elements""" MetadataElement(name="column_types", default=['str', 'str', 'str', 'int', 'int', 'float', 'str', 'int', 'list'], - param=metadata.ColumnTypesParameter, desc="Column types", readonly=True, visible=False) + param=metadata.ColumnTypesParameter, desc="Column types", readonly=True, visible=False) def __init__(self, **kwd): """Initialize datatype, by adding GBrowse display app""" @@ -1015,7 +1015,7 @@ class Gtf(Gff): """Add metadata elements""" MetadataElement(name="columns", default=9, desc="Number of columns", readonly=True, visible=False) MetadataElement(name="column_types", default=['str', 'str', 'str', 'int', 'int', 'float', 'str', 'int', 'list'], - param=metadata.ColumnTypesParameter, desc="Column types", readonly=True, visible=False) + param=metadata.ColumnTypesParameter, desc="Column types", readonly=True, visible=False) def sniff(self, filename): """ diff --git a/lib/galaxy/datatypes/registry.py b/lib/galaxy/datatypes/registry.py index 6ba58b8bad8..b4d352cb359 100644 --- a/lib/galaxy/datatypes/registry.py +++ b/lib/galaxy/datatypes/registry.py @@ -202,8 +202,8 @@ class Registry(object): # the sys.path, probably true but the previous lock wasn't doing that. try: imported_module = __import_module(proprietary_path, - proprietary_datatype_module, - datatype_class_name) + proprietary_datatype_module, + datatype_class_name) if imported_module not in self.imported_modules: self.imported_modules.append(imported_module) if hasattr(imported_module, datatype_class_name): @@ -240,7 +240,7 @@ class Registry(object): # Because of the way that the value of can_process_datatype was set above, we know that the value of # override is True. self.log.debug("Overriding conflicting datatype with extension '%s', using datatype from %s." % - (str(extension), str(config))) + (str(extension), str(config))) if make_subclass: datatype_class = type(datatype_class_name, (datatype_class, ), {}) if edam_format: @@ -301,9 +301,9 @@ class Registry(object): # Load datatype sniffers from the config - we'll do this even if one or more datatypes were not properly processed in the config # since sniffers are not tightly coupled with datatypes. self.load_datatype_sniffers(root, - deactivate=deactivate, - handling_proprietary_datatypes=handling_proprietary_datatypes, - override=override) + deactivate=deactivate, + handling_proprietary_datatypes=handling_proprietary_datatypes, + override=override) self.upload_file_formats.sort() # Load build sites self._load_build_sites(root) diff --git a/lib/galaxy/datatypes/sequence.py b/lib/galaxy/datatypes/sequence.py index c0fa134e29e..980ede31099 100644 --- a/lib/galaxy/datatypes/sequence.py +++ b/lib/galaxy/datatypes/sequence.py @@ -644,8 +644,8 @@ class BaseFastq (Sequence): self._clean_and_set_mime_type(trans, mime) return fh.read() return trans.stream_template_mako("/dataset/large_file.mako", - truncated_data=fh.read(max_peek_size), - data=dataset) + truncated_data=fh.read(max_peek_size), + data=dataset) else: return Sequence.display_data(self, trans, dataset, preview, filename, to_ext, **kwd) diff --git a/lib/galaxy/datatypes/tabular.py b/lib/galaxy/datatypes/tabular.py index 77c5b0299ee..ca2547c7900 100644 --- a/lib/galaxy/datatypes/tabular.py +++ b/lib/galaxy/datatypes/tabular.py @@ -76,7 +76,7 @@ class TabularData(data.Text): cursor = f.read(1) last_read = f.tell() return dumps({'ck_data': util.unicodify(ck_data), - 'offset': last_read}) + 'offset': last_read}) def display_data(self, trans, dataset, preview=False, filename=None, to_ext=None, offset=None, ck_size=None, **kwd): preview = util.string_as_bool(preview) @@ -96,8 +96,8 @@ class TabularData(data.Text): else: trans.response.set_content_type("text/html") return trans.stream_template_mako("/dataset/large_file.mako", - truncated_data=open(dataset.file_name).read(max_peek_size), - data=dataset) + truncated_data=open(dataset.file_name).read(max_peek_size), + data=dataset) else: column_names = 'null' if dataset.metadata.column_names: @@ -111,11 +111,11 @@ class TabularData(data.Text): if column_number is None: column_number = 'null' return trans.fill_template("/dataset/tabular_chunked.mako", - dataset=dataset, - chunk=self.get_chunk(trans, dataset, 0), - column_number=column_number, - column_names=column_names, - column_types=column_types) + dataset=dataset, + chunk=self.get_chunk(trans, dataset, 0), + column_number=column_number, + column_names=column_names, + column_types=column_types) def make_html_table(self, dataset, **kwargs): """Create HTML table, used for displaying peek""" @@ -219,7 +219,7 @@ class TabularData(data.Text): return dataproviders.column.ColumnarDataProvider(dataset_source, deliminator=delimiter, **settings) @dataproviders.decorators.dataprovider_factory('dataset-column', - dataproviders.column.ColumnarDataProvider.settings) + dataproviders.column.ColumnarDataProvider.settings) def dataset_column_dataprovider(self, dataset, **settings): """Attempts to get column settings from dataset.metadata""" delimiter = dataset.metadata.delimiter @@ -551,7 +551,7 @@ class Sam(Tabular): return super(Sam, self).column_dataprovider(dataset, **settings) @dataproviders.decorators.dataprovider_factory('dataset-column', - dataproviders.column.ColumnarDataProvider.settings) + dataproviders.column.ColumnarDataProvider.settings) def dataset_column_dataprovider(self, dataset, **settings): settings['comment_char'] = '@' return super(Sam, self).dataset_column_dataprovider(dataset, **settings) @@ -580,13 +580,13 @@ class Sam(Tabular): return self.dict_dataprovider(dataset, **settings) @dataproviders.decorators.dataprovider_factory('genomic-region', - dataproviders.dataset.GenomicRegionDataProvider.settings) + dataproviders.dataset.GenomicRegionDataProvider.settings) def genomic_region_dataprovider(self, dataset, **settings): settings['comment_char'] = '@' return dataproviders.dataset.GenomicRegionDataProvider(dataset, 2, 3, 3, **settings) @dataproviders.decorators.dataprovider_factory('genomic-region-dict', - dataproviders.dataset.GenomicRegionDataProvider.settings) + dataproviders.dataset.GenomicRegionDataProvider.settings) def genomic_region_dict_dataprovider(self, dataset, **settings): settings['comment_char'] = '@' return dataproviders.dataset.GenomicRegionDataProvider(dataset, 2, 3, 3, True, **settings) @@ -661,12 +661,12 @@ class Pileup(Tabular): # Dataproviders @dataproviders.decorators.dataprovider_factory('genomic-region', - dataproviders.dataset.GenomicRegionDataProvider.settings) + dataproviders.dataset.GenomicRegionDataProvider.settings) def genomic_region_dataprovider(self, dataset, **settings): return dataproviders.dataset.GenomicRegionDataProvider(dataset, **settings) @dataproviders.decorators.dataprovider_factory('genomic-region-dict', - dataproviders.dataset.GenomicRegionDataProvider.settings) + dataproviders.dataset.GenomicRegionDataProvider.settings) def genomic_region_dict_dataprovider(self, dataset, **settings): settings['named_columns'] = True return self.genomic_region_dataprovider(dataset, **settings) @@ -724,12 +724,12 @@ class BaseVcf(Tabular): # Dataproviders @dataproviders.decorators.dataprovider_factory('genomic-region', - dataproviders.dataset.GenomicRegionDataProvider.settings) + dataproviders.dataset.GenomicRegionDataProvider.settings) def genomic_region_dataprovider(self, dataset, **settings): return dataproviders.dataset.GenomicRegionDataProvider(dataset, 0, 1, 1, **settings) @dataproviders.decorators.dataprovider_factory('genomic-region-dict', - dataproviders.dataset.GenomicRegionDataProvider.settings) + dataproviders.dataset.GenomicRegionDataProvider.settings) def genomic_region_dict_dataprovider(self, dataset, **settings): settings['named_columns'] = True return self.genomic_region_dataprovider(dataset, **settings) @@ -757,7 +757,7 @@ class VcfGz(BaseVcf, binary.Binary): # Usage: bcftools index dataset_symlink = os.path.join(os.path.dirname(index_file.file_name), - '__dataset_%d_%s' % (dataset.id, os.path.basename(index_file.file_name))) + ".vcf.gz" + '__dataset_%d_%s' % (dataset.id, os.path.basename(index_file.file_name))) + ".vcf.gz" os.symlink(dataset.file_name, dataset_symlink) stderr_name = tempfile.NamedTemporaryFile(prefix="bcf_index_stderr").name diff --git a/lib/galaxy/datatypes/text.py b/lib/galaxy/datatypes/text.py index f79583cf179..ac6069e9a53 100644 --- a/lib/galaxy/datatypes/text.py +++ b/lib/galaxy/datatypes/text.py @@ -238,16 +238,16 @@ class Biom1(Json): b_transform = {'rows': _transform_dict_list_ids, 'columns': _transform_dict_list_ids} for (m_name, b_name) in [('table_rows', 'rows'), - ('table_matrix_element_type', 'matrix_element_type'), - ('table_format', 'format'), - ('table_generated_by', 'generated_by'), - ('table_matrix_type', 'matrix_type'), - ('table_shape', 'shape'), - ('table_format_url', 'format_url'), - ('table_date', 'date'), - ('table_type', 'type'), - ('table_id', 'id'), - ('table_columns', 'columns')]: + ('table_matrix_element_type', 'matrix_element_type'), + ('table_format', 'format'), + ('table_generated_by', 'generated_by'), + ('table_matrix_type', 'matrix_type'), + ('table_shape', 'shape'), + ('table_format_url', 'format_url'), + ('table_date', 'date'), + ('table_type', 'type'), + ('table_id', 'id'), + ('table_columns', 'columns')]: try: metadata_value = json_dict.get(b_name, None) if b_name in b_transform: diff --git a/lib/galaxy/datatypes/util/gff_util.py b/lib/galaxy/datatypes/util/gff_util.py index a1bf4c981fc..b2d409a3e78 100644 --- a/lib/galaxy/datatypes/util/gff_util.py +++ b/lib/galaxy/datatypes/util/gff_util.py @@ -17,7 +17,7 @@ class GFFInterval(GenomicInterval): only attribute is 'group.' """ def __init__(self, reader, fields, chrom_col=0, feature_col=2, start_col=3, end_col=4, - strand_col=6, score_col=5, default_strand='.', fix_strand=False): + strand_col=6, score_col=5, default_strand='.', fix_strand=False): # HACK: GFF format allows '.' for strand but GenomicInterval does not. To get around this, # temporarily set strand and then unset after initing GenomicInterval. unknown_strand = False @@ -25,7 +25,7 @@ class GFFInterval(GenomicInterval): unknown_strand = True fields[strand_col] = '+' GenomicInterval.__init__(self, reader, fields, chrom_col, start_col, end_col, strand_col, - default_strand, fix_strand=fix_strand) + default_strand, fix_strand=fix_strand) if unknown_strand: self.strand = '.' self.fields[strand_col] = '.' @@ -53,12 +53,12 @@ class GFFFeature(GFFInterval): A GFF feature, which can include multiple intervals. """ def __init__(self, reader, chrom_col=0, feature_col=2, start_col=3, end_col=4, - strand_col=6, score_col=5, default_strand='.', fix_strand=False, intervals=[], - raw_size=0): + strand_col=6, score_col=5, default_strand='.', fix_strand=False, intervals=[], + raw_size=0): # Use copy so that first interval and feature do not share fields. GFFInterval.__init__(self, reader, copy.deepcopy(intervals[0].fields), chrom_col, feature_col, - start_col, end_col, strand_col, score_col, default_strand, - fix_strand=fix_strand) + start_col, end_col, strand_col, score_col, default_strand, + fix_strand=fix_strand) self.intervals = intervals self.raw_size = raw_size # Use intervals to set feature attributes. @@ -66,7 +66,7 @@ class GFFFeature(GFFInterval): # Error checking. NOTE: intervals need not share the same strand. if interval.chrom != self.chrom: raise ValueError("interval chrom does not match self chrom: %s != %s" % - (interval.chrom, self.chrom)) + (interval.chrom, self.chrom)) # Set start, end of interval. if interval.start < self.start: self.start = interval.start @@ -113,8 +113,8 @@ class GFFIntervalToBEDReaderWrapper(NiceReaderWrapper): # HACK: this should return a GFF interval, but bx-python operations # require GenomicInterval objects and subclasses will not work. interval = GenomicInterval(self, line.split("\t"), self.chrom_col, self.start_col, - self.end_col, self.strand_col, self.default_strand, - fix_strand=self.fix_strand) + self.end_col, self.strand_col, self.default_strand, + fix_strand=self.fix_strand) interval = convert_gff_coords_to_bed(interval) return interval @@ -134,9 +134,9 @@ class GFFReaderWrapper(Iterator, NiceReaderWrapper): # Iterator can be removed """ def __init__(self, reader, chrom_col=0, feature_col=2, start_col=3, - end_col=4, strand_col=6, score_col=5, fix_strand=False, convert_to_bed_coord=False, **kwargs): + end_col=4, strand_col=6, score_col=5, fix_strand=False, convert_to_bed_coord=False, **kwargs): NiceReaderWrapper.__init__(self, reader, chrom_col=chrom_col, start_col=start_col, end_col=end_col, - strand_col=strand_col, fix_strand=fix_strand, **kwargs) + strand_col=strand_col, fix_strand=fix_strand, **kwargs) self.feature_col = feature_col self.score_col = score_col self.convert_to_bed_coord = convert_to_bed_coord @@ -147,8 +147,8 @@ class GFFReaderWrapper(Iterator, NiceReaderWrapper): # Iterator can be removed def parse_row(self, line): interval = GFFInterval(self, line.split("\t"), self.chrom_col, self.feature_col, - self.start_col, self.end_col, self.strand_col, self.score_col, - self.default_strand, fix_strand=self.fix_strand) + self.start_col, self.end_col, self.strand_col, self.score_col, + self.default_strand, fix_strand=self.fix_strand) return interval def __next__(self): @@ -261,9 +261,9 @@ class GFFReaderWrapper(Iterator, NiceReaderWrapper): # Iterator can be removed # Return feature. feature = GFFFeature(self, self.chrom_col, self.feature_col, self.start_col, - self.end_col, self.strand_col, self.score_col, - self.default_strand, fix_strand=self.fix_strand, - intervals=feature_intervals, raw_size=raw_size) + self.end_col, self.strand_col, self.score_col, + self.default_strand, fix_strand=self.fix_strand, + intervals=feature_intervals, raw_size=raw_size) # Convert to BED coords? if self.convert_to_bed_coord: diff --git a/lib/galaxy/dependencies/__init__.py b/lib/galaxy/dependencies/__init__.py index a303e74e155..78bf347b9ce 100644 --- a/lib/galaxy/dependencies/__init__.py +++ b/lib/galaxy/dependencies/__init__.py @@ -96,7 +96,7 @@ class ConditionalDependencies(object): def check_weberror(self): return (asbool(self.config["debug"]) and - asbool(self.config["use_interactive"])) + asbool(self.config["use_interactive"])) def check_pygments(self): # pygments is a dependency of weberror and only weberror diff --git a/lib/galaxy/external_services/actions.py b/lib/galaxy/external_services/actions.py index 9db202dbfa9..69fd20ca57b 100644 --- a/lib/galaxy/external_services/actions.py +++ b/lib/galaxy/external_services/actions.py @@ -65,10 +65,10 @@ class ExternalServiceAction(object): def get_action_access_link(self, trans, param_dict): return url_for(controller='/external_services', - action="access_action", - external_service_action=self.__action_url_id(param_dict), - item=param_dict['item'].id, - item_type=param_dict['item'].__class__.__name__) + action="access_action", + external_service_action=self.__action_url_id(param_dict), + item=param_dict['item'].id, + item_type=param_dict['item'].__class__.__name__) def populate_action(self, param_dict): return PopulatedExternalServiceAction(self, param_dict) diff --git a/lib/galaxy/forms/forms.py b/lib/galaxy/forms/forms.py index 3358c735498..60bba718e11 100644 --- a/lib/galaxy/forms/forms.py +++ b/lib/galaxy/forms/forms.py @@ -30,11 +30,11 @@ class FormDefinitionFactory(object): if form_definition_current is None: form_definition_current = FormDefinitionCurrent() rval = FormDefinition(name=name, - desc=description, - form_type=self.form_types[form_type], - form_definition_current=form_definition_current, - layout=layout, - fields=fields) + desc=description, + form_type=self.form_types[form_type], + form_definition_current=form_definition_current, + layout=layout, + fields=fields) form_definition_current.latest_form = rval return rval @@ -129,9 +129,9 @@ class FormDefinitionTextFieldFactory(FormDefinitionFieldFactory): Return new FormDefinition field. """ rval = super(FormDefinitionTextFieldFactory, self).new(name=name, label=label, - required=required, helptext=helptext, - default=default, visible=visible, - layout=layout) + required=required, helptext=helptext, + default=default, visible=visible, + layout=layout) rval['type'] = self.__get_stored_field_type(area) return rval @@ -155,9 +155,9 @@ class FormDefinitionPasswordFieldFactory(FormDefinitionFieldFactory): Return new FormDefinition field. """ rval = super(FormDefinitionPasswordFieldFactory, self).new(name=name, label=label, - required=required, helptext=helptext, - default=default, visible=visible, - layout=layout) + required=required, helptext=helptext, + default=default, visible=visible, + layout=layout) rval['type'] = self.__get_stored_field_type() return rval @@ -181,9 +181,9 @@ class FormDefinitionAddressFieldFactory(FormDefinitionFieldFactory): Return new FormDefinition field. """ rval = super(FormDefinitionAddressFieldFactory, self).new(name=name, label=label, - required=required, helptext=helptext, - default=default, visible=visible, - layout=layout) + required=required, helptext=helptext, + default=default, visible=visible, + layout=layout) rval['type'] = self.__get_stored_field_type() return rval @@ -207,9 +207,9 @@ class FormDefinitionWorkflowFieldFactory(FormDefinitionFieldFactory): Return new FormDefinition field. """ rval = super(FormDefinitionWorkflowFieldFactory, self).new(name=name, label=label, - required=required, helptext=helptext, - default=default, visible=visible, - layout=layout) + required=required, helptext=helptext, + default=default, visible=visible, + layout=layout) rval['type'] = self.__get_stored_field_type() return rval @@ -233,9 +233,9 @@ class FormDefinitionWorkflowMappingFieldFactory(FormDefinitionFieldFactory): Return new FormDefinition field. """ rval = super(FormDefinitionWorkflowMappingFieldFactory, self).new(name=name, label=label, - required=required, helptext=helptext, - default=default, visible=visible, - layout=layout) + required=required, helptext=helptext, + default=default, visible=visible, + layout=layout) rval['type'] = self.__get_stored_field_type() return rval @@ -259,9 +259,9 @@ class FormDefinitionHistoryFieldFactory(FormDefinitionFieldFactory): Return new FormDefinition field. """ rval = super(FormDefinitionHistoryFieldFactory, self).new(name=name, label=label, - required=required, helptext=helptext, - default=default, visible=visible, - layout=layout) + required=required, helptext=helptext, + default=default, visible=visible, + layout=layout) rval['type'] = self.__get_stored_field_type() return rval @@ -288,9 +288,9 @@ class FormDefinitionSelectFieldFactory(FormDefinitionFieldFactory): Return new FormDefinition field. """ rval = super(FormDefinitionSelectFieldFactory, self).new(name=name, label=label, - required=required, helptext=helptext, - default=default, visible=visible, - layout=layout) + required=required, helptext=helptext, + default=default, visible=visible, + layout=layout) rval['type'] = self.__get_stored_field_type(checkboxes) if options is None: options = [] @@ -313,11 +313,11 @@ class FormDefinitionSelectFieldFactory(FormDefinitionFieldFactory): field_type_factories = dict([(field.type, field()) for field in (FormDefinitionTextFieldFactory, - FormDefinitionPasswordFieldFactory, - FormDefinitionAddressFieldFactory, - FormDefinitionSelectFieldFactory, - FormDefinitionWorkflowFieldFactory, - FormDefinitionWorkflowMappingFieldFactory, - FormDefinitionHistoryFieldFactory)]) + FormDefinitionPasswordFieldFactory, + FormDefinitionAddressFieldFactory, + FormDefinitionSelectFieldFactory, + FormDefinitionWorkflowFieldFactory, + FormDefinitionWorkflowMappingFieldFactory, + FormDefinitionHistoryFieldFactory)]) form_factory = FormDefinitionFactory(FORM_TYPES, field_type_factories) diff --git a/lib/galaxy/jobs/__init__.py b/lib/galaxy/jobs/__init__.py index 269f2d16fd9..55112430cf1 100644 --- a/lib/galaxy/jobs/__init__.py +++ b/lib/galaxy/jobs/__init__.py @@ -159,8 +159,8 @@ class JobConfiguration(object, ConfiguresHandlers): self.__parse_job_conf_xml(tree) except IOError: log.warning('Job configuration "%s" does not exist, using legacy' - ' job configuration from Galaxy config file "%s" instead' - % (self.app.config.job_config_file, self.app.config.config_file)) + ' job configuration from Galaxy config file "%s" instead' + % (self.app.config.job_config_file, self.app.config.config_file)) self.__parse_job_conf_legacy() except Exception as e: raise config_exception(e, job_config_file) @@ -313,7 +313,7 @@ class JobConfiguration(object, ConfiguresHandlers): if "raw" in self.limits.total_walltime: h, m, s = [int(v) for v in - self.limits.total_walltime["raw"].split(':')] + self.limits.total_walltime["raw"].split(':')] self.limits.total_walltime["delta"] = datetime.timedelta( 0, s, 0, 0, m, h ) @@ -648,7 +648,7 @@ class JobConfiguration(object, ConfiguresHandlers): rval[id] = runner_class(self.app, runner['workers'], **runner.get('kwds', {})) except TypeError: log.exception("Job runner '%s:%s' has not been converted to a new-style runner or encountered TypeError on load", - module_name, class_name) + module_name, class_name) rval[id] = runner_class(self.app) log.debug("Loaded job runner '%s:%s' as '%s'" % (module_name, class_name, id)) return rval @@ -912,18 +912,18 @@ class JobWrapper(object, HasResourceParameters): self.tool_working_directory = os.path.join(self.working_directory, "working") safe_makedirs(self.tool_working_directory) log.debug('(%s) Working directory for job is: %s', - self.job_id, self.working_directory) + self.job_id, self.working_directory) except ObjectInvalid: raise Exception('(%s) Unable to create job working directory', - job.id) + job.id) def clear_working_directory(self): job = self.get_job() if not os.path.exists(self.working_directory): log.warning('(%s): Working directory clear requested but %s does ' - 'not exist', - self.job_id, - self.working_directory) + 'not exist', + self.job_id, + self.working_directory) return self.app.object_store.create( @@ -937,7 +937,7 @@ class JobWrapper(object, HasResourceParameters): shutil.move(self.working_directory, arc_dir) self._create_working_directory() log.debug('(%s) Previous working directory moved to %s', - self.job_id, arc_dir) + self.job_id, arc_dir) def default_compute_environment(self, job=None): if not job: @@ -1084,7 +1084,7 @@ class JobWrapper(object, HasResourceParameters): if job.state in model.Job.terminal_states: log.warning("(%s) Ignoring state change from '%s' to '%s' for job " - "that is already terminal", job.id, job.state, state) + "that is already terminal", job.id, job.state, state) return for dataset_assoc in job.output_datasets + job.output_library_datasets: dataset = dataset_assoc.dataset @@ -1202,7 +1202,7 @@ class JobWrapper(object, HasResourceParameters): # and when the job is recovered, it won't be found. if os.path.exists(dataset_path.real_path) and os.stat(dataset_path.real_path).st_size > 0: log.warning("finish(): %s not found, but %s is not empty, so it will be used instead" - % (dataset_path.false_path, dataset_path.real_path)) + % (dataset_path.false_path, dataset_path.real_path)) else: # Prior to fail we need to set job.state job.set_state(final_job_state) @@ -1399,8 +1399,8 @@ class JobWrapper(object, HasResourceParameters): self.tool.exec_after_process(self.queue.app, inp_data, out_data, param_dict, job=job) # Call 'exec_after_process' hook self.tool.call_hook('exec_after_process', self.queue.app, inp_data=inp_data, - out_data=out_data, param_dict=param_dict, - tool=self.tool, stdout=job.stdout, stderr=job.stderr) + out_data=out_data, param_dict=param_dict, + tool=self.tool, stdout=job.stdout, stderr=job.stderr) job.command_line = unicodify(self.command_line) collected_bytes = 0 @@ -1509,14 +1509,14 @@ class JobWrapper(object, HasResourceParameters): if size > self.app.job_config.limits.output_size: log.warning('(%s) Job output size %s has exceeded the global output size limit', self.get_id_tag(), os.path.basename(outfile)) return (JobState.runner_states.OUTPUT_SIZE_LIMIT, - 'Job output file grew too large (greater than %s), please try different inputs or parameters' - % util.nice_size(self.app.job_config.limits.output_size)) + 'Job output file grew too large (greater than %s), please try different inputs or parameters' + % util.nice_size(self.app.job_config.limits.output_size)) if self.app.job_config.limits.walltime_delta is not None and runtime is not None: if runtime > self.app.job_config.limits.walltime_delta: log.warning('(%s) Job runtime %s has exceeded the global walltime, it will be terminated', self.get_id_tag(), runtime) return (JobState.runner_states.GLOBAL_WALLTIME_REACHED, - 'Job ran longer than the maximum allowed execution time (runtime: %s, limit: %s), please try different inputs or parameters' - % (str(runtime).split('.')[0], self.app.job_config.limits.walltime)) + 'Job ran longer than the maximum allowed execution time (runtime: %s, limit: %s), please try different inputs or parameters' + % (str(runtime).split('.')[0], self.app.job_config.limits.walltime)) return None def has_limits(self): @@ -1657,15 +1657,15 @@ class JobWrapper(object, HasResourceParameters): def invalidate_external_metadata(self): job = self.get_job() self.external_output_metadata.invalidate_external_metadata([output_dataset_assoc.dataset for - output_dataset_assoc in - job.output_datasets + job.output_library_datasets], - self.sa_session) + output_dataset_assoc in + job.output_datasets + job.output_library_datasets], + self.sa_session) def setup_external_metadata(self, exec_dir=None, tmp_dir=None, - dataset_files_path=None, config_root=None, - config_file=None, datatypes_config=None, - resolve_metadata_dependencies=False, - set_extension=True, **kwds): + dataset_files_path=None, config_root=None, + config_file=None, datatypes_config=None, + resolve_metadata_dependencies=False, + set_extension=True, **kwds): # extension could still be 'auto' if this is the upload tool. job = self.get_job() if set_extension: @@ -1686,18 +1686,18 @@ class JobWrapper(object, HasResourceParameters): if datatypes_config is None: datatypes_config = self.app.datatypes_registry.integrated_datatypes_configs command = self.external_output_metadata.setup_external_metadata([output_dataset_assoc.dataset for - output_dataset_assoc in - job.output_datasets + job.output_library_datasets], - self.sa_session, - exec_dir=exec_dir, - tmp_dir=tmp_dir, - dataset_files_path=dataset_files_path, - config_root=config_root, - config_file=config_file, - datatypes_config=datatypes_config, - job_metadata=os.path.join(self.tool_working_directory, TOOL_PROVIDED_JOB_METADATA_FILE), - max_metadata_value_size=self.app.config.max_metadata_value_size, - **kwds) + output_dataset_assoc in + job.output_datasets + job.output_library_datasets], + self.sa_session, + exec_dir=exec_dir, + tmp_dir=tmp_dir, + dataset_files_path=dataset_files_path, + config_root=config_root, + config_file=config_file, + datatypes_config=datatypes_config, + job_metadata=os.path.join(self.tool_working_directory, TOOL_PROVIDED_JOB_METADATA_FILE), + max_metadata_value_size=self.app.config.max_metadata_value_size, + **kwds) if resolve_metadata_dependencies: metadata_tool = self.app.toolbox.get_tool("__SET_METADATA__") if metadata_tool is not None: @@ -1940,7 +1940,7 @@ class TaskWrapper(JobWrapper): # This may have ended too soon log.debug('task %s for job %d ended; exit code: %d' - % (self.task_id, self.job_id, + % (self.task_id, self.job_id, tool_exit_code if tool_exit_code is not None else -256)) # default post job setup_external_metadata self.sa_session.expunge_all() @@ -1993,8 +1993,8 @@ class TaskWrapper(JobWrapper): pass def setup_external_metadata(self, exec_dir=None, tmp_dir=None, dataset_files_path=None, - config_root=None, config_file=None, datatypes_config=None, - set_extension=True, **kwds): + config_root=None, config_file=None, datatypes_config=None, + set_extension=True, **kwds): # There is no metadata setting for tasks. This is handled after the merge, at the job level. return "" diff --git a/lib/galaxy/jobs/actions/post.py b/lib/galaxy/jobs/actions/post.py index 1503e9a8c17..0aa9d22335b 100644 --- a/lib/galaxy/jobs/actions/post.py +++ b/lib/galaxy/jobs/actions/post.py @@ -347,9 +347,9 @@ class TagDatasetAction(DefaultJobAction): def get_short_str(cls, pja): if pja.action_arguments and pja.action_arguments.get('tags', ''): return "%s tag(s) '%s' %s '%s'." % (cls.action, - escape(pja.action_arguments['tags']), - cls.direction, - escape(pja.output_name)) + escape(pja.action_arguments['tags']), + cls.direction, + escape(pja.output_name)) else: return "%s Tag action used without a tag specified. No tag will be added." % cls.action @@ -368,13 +368,13 @@ class RemoveTagDatasetAction(TagDatasetAction): class ActionBox(object): actions = {"RenameDatasetAction": RenameDatasetAction, - "HideDatasetAction": HideDatasetAction, - "ChangeDatatypeAction": ChangeDatatypeAction, - "ColumnSetAction": ColumnSetAction, - "EmailAction": EmailAction, - "DeleteIntermediatesAction": DeleteIntermediatesAction, - "TagDatasetAction": TagDatasetAction, - "RemoveTagDatasetAction": RemoveTagDatasetAction, + "HideDatasetAction": HideDatasetAction, + "ChangeDatatypeAction": ChangeDatatypeAction, + "ColumnSetAction": ColumnSetAction, + "EmailAction": EmailAction, + "DeleteIntermediatesAction": DeleteIntermediatesAction, + "TagDatasetAction": TagDatasetAction, + "RemoveTagDatasetAction": RemoveTagDatasetAction, } public_actions = ['RenameDatasetAction', 'ChangeDatatypeAction', 'ColumnSetAction', 'EmailAction', diff --git a/lib/galaxy/jobs/deferred/__init__.py b/lib/galaxy/jobs/deferred/__init__.py index b6e4b1b7b0b..e083c82d6f9 100644 --- a/lib/galaxy/jobs/deferred/__init__.py +++ b/lib/galaxy/jobs/deferred/__init__.py @@ -15,8 +15,8 @@ log = logging.getLogger(__name__) class DeferredJobQueue(object): job_states = Bunch(READY='ready', - WAIT='wait', - INVALID='invalid') + WAIT='wait', + INVALID='invalid') def __init__(self, app): self.app = app diff --git a/lib/galaxy/jobs/deferred/data_transfer.py b/lib/galaxy/jobs/deferred/data_transfer.py index 9c72c63e0b4..4b7e93d8ce2 100644 --- a/lib/galaxy/jobs/deferred/data_transfer.py +++ b/lib/galaxy/jobs/deferred/data_transfer.py @@ -43,9 +43,9 @@ class DataTransfer(object): results = [] for result in job.params['results'].values(): result['transfer_job'] = self.app.transfer_manager.new(protocol=job.params['protocol'], - name=result['name'], - datatype=result['datatype'], - url=result['url']) + name=result['name'], + datatype=result['datatype'], + url=result['url']) results.append(result) elif job.params['protocol'] == 'scp': results = [] @@ -57,32 +57,32 @@ class DataTransfer(object): for sample_dataset_id, sample_dataset_info_dict in sample_datasets_dict.items(): result = {} result['transfer_job'] = self.app.transfer_manager.new(protocol=job.params['protocol'], - host=job.params['host'], - user_name=job.params['user_name'], - password=job.params['password'], - sample_dataset_id=sample_dataset_id, - status=sample_dataset_info_dict['status'], - name=sample_dataset_info_dict['name'], - file_path=sample_dataset_info_dict['file_path'], - sample_id=sample_dataset_info_dict['sample_id'], - external_service_id=sample_dataset_info_dict['external_service_id'], - error_msg=sample_dataset_info_dict['error_msg'], - size=sample_dataset_info_dict['size']) + host=job.params['host'], + user_name=job.params['user_name'], + password=job.params['password'], + sample_dataset_id=sample_dataset_id, + status=sample_dataset_info_dict['status'], + name=sample_dataset_info_dict['name'], + file_path=sample_dataset_info_dict['file_path'], + sample_id=sample_dataset_info_dict['sample_id'], + external_service_id=sample_dataset_info_dict['external_service_id'], + error_msg=sample_dataset_info_dict['error_msg'], + size=sample_dataset_info_dict['size']) results.append(result) self.app.transfer_manager.run([r['transfer_job'] for r in results]) for result in results: transfer_job = result.pop('transfer_job') self.create_job(None, - transfer_job_id=transfer_job.id, - result=transfer_job.params, - sample_id=job.params['sample_id']) + transfer_job_id=transfer_job.id, + result=transfer_job.params, + sample_id=job.params['sample_id']) # Update the state of the relevant SampleDataset new_status = self.app.model.SampleDataset.transfer_status.IN_QUEUE self._update_sample_dataset_status(protocol=job.params['protocol'], - sample_id=job.params['sample_id'], - result_dict=transfer_job.params, - new_status=new_status, - error_msg='') + sample_id=job.params['sample_id'], + result_dict=transfer_job.params, + new_status=new_status, + error_msg='') job.state = self.app.model.DeferredJob.states.OK self.sa_session.add(job) self.sa_session.flush() @@ -112,21 +112,21 @@ class DataTransfer(object): # Determine the data format (see the relevant TODO item in the manual_data_transfer plugin).. extension = sniff.guess_ext(result_dict['local_path'], sniff_order=self.app.datatypes_registry.sniff_order) self._update_sample_dataset_status(protocol=job.params['protocol'], - sample_id=int(job.params['sample_id']), - result_dict=result_dict, - new_status=new_status, - error_msg='') + sample_id=int(job.params['sample_id']), + result_dict=result_dict, + new_status=new_status, + error_msg='') sample = self.sa_session.query(self.app.model.Sample).get(int(job.params['sample_id'])) ld = self.app.model.LibraryDataset(folder=sample.folder, name=library_dataset_name) self.sa_session.add(ld) self.sa_session.flush() self.app.security_agent.copy_library_permissions(FakeTrans(self.app), sample.folder, ld) ldda = self.app.model.LibraryDatasetDatasetAssociation(name=library_dataset_name, - extension=extension, - dbkey='?', - library_dataset=ld, - create_dataset=True, - sa_session=self.sa_session) + extension=extension, + dbkey='?', + library_dataset=ld, + create_dataset=True, + sa_session=self.sa_session) ldda.message = 'Transferred by the Data Transfer Plugin' self.sa_session.add(ldda) self.sa_session.flush() @@ -143,17 +143,17 @@ class DataTransfer(object): if spec.get('default'): setattr(ldda.metadata, name, spec.unwrap(spec.get('default'))) self.app.datatypes_registry.set_external_metadata_tool.tool_action.execute(self.app.datatypes_registry.set_external_metadata_tool, - FakeTrans(self.app, - history=sample.history, - user=sample.request.user), - incoming={'input1': ldda}) + FakeTrans(self.app, + history=sample.history, + user=sample.request.user), + incoming={'input1': ldda}) ldda.state = ldda.states.OK # TODO: not sure if this flush is necessary self.sa_session.add(ldda) self.sa_session.flush() except Exception as e: log.exception('Failure preparing library dataset for finished transfer job (id: %s) via deferred job (id: %s):' % - (str(job.transfer_job.id), str(job.id))) + (str(job.transfer_job.id), str(job.id))) ldda.state = ldda.states.ERROR if sample.workflow: log.debug("\n\nLogging sample mappings as: %s" % sample.workflow['mappings']) @@ -199,10 +199,10 @@ class DataTransfer(object): # Update the state of the relevant SampleDataset new_status = self.app.model.SampleDataset.transfer_status.COMPLETE self._update_sample_dataset_status(protocol=job.params['protocol'], - sample_id=int(job.params['sample_id']), - result_dict=job.params['result'], - new_status=new_status, - error_msg='') + sample_id=int(job.params['sample_id']), + result_dict=job.params['result'], + new_status=new_status, + error_msg='') if sample.datasets and not sample.untransferred_dataset_files: # Update the state of the sample to the sample's request type's final state. new_state = sample.request.type.final_sample_state @@ -225,8 +225,8 @@ class DataTransfer(object): if protocol in ['http', 'https']: sample_dataset = self.sa_session.query(self.app.model.SampleDataset) \ .filter(and_(self.app.model.SampleDataset.table.c.sample_id == sample_id, - self.app.model.SampleDataset.table.c.name == result_dict['name'], - self.app.model.SampleDataset.table.c.file_path == result_dict['url'])) \ + self.app.model.SampleDataset.table.c.name == result_dict['name'], + self.app.model.SampleDataset.table.c.file_path == result_dict['url'])) \ .first() elif protocol in ['scp']: sample_dataset = self.sa_session.query(self.app.model.SampleDataset).get(int(result_dict['sample_dataset_id'])) diff --git a/lib/galaxy/jobs/deferred/manual_data_transfer.py b/lib/galaxy/jobs/deferred/manual_data_transfer.py index c9c8840d6a4..2b3abaee68a 100644 --- a/lib/galaxy/jobs/deferred/manual_data_transfer.py +++ b/lib/galaxy/jobs/deferred/manual_data_transfer.py @@ -45,32 +45,32 @@ class ManualDataTransferPlugin(DataTransfer): for sample_dataset in sample_datasets: sample_dataset_id = sample_dataset.id sample_dataset_dict = dict(sample_id=sample_dataset.sample.id, - name=sample_dataset.name, - file_path=sample_dataset.file_path, - status=sample_dataset.status, - error_msg=sample_dataset.error_msg, - size=sample_dataset.size, - external_service_id=sample_dataset.external_service.id) + name=sample_dataset.name, + file_path=sample_dataset.file_path, + status=sample_dataset.status, + error_msg=sample_dataset.error_msg, + size=sample_dataset.size, + external_service_id=sample_dataset.external_service.id) sample_datasets_dict[sample_dataset_id] = sample_dataset_dict params = {'type' : 'init_transfer', - 'sample_id' : sample.id, - 'sample_datasets_dict' : sample_datasets_dict, - 'protocol' : protocol, - 'host' : host, - 'user_name' : user_name, - 'password' : password} + 'sample_id' : sample.id, + 'sample_datasets_dict' : sample_datasets_dict, + 'protocol' : protocol, + 'host' : host, + 'user_name' : user_name, + 'password' : password} elif 'transfer_job_id' in kwd: params = {'type' : 'finish_transfer', - 'protocol' : kwd['result']['protocol'], - 'sample_id' : kwd['sample_id'], - 'result' : kwd['result'], - 'transfer_job_id' : kwd['transfer_job_id']} + 'protocol' : kwd['result']['protocol'], + 'sample_id' : kwd['sample_id'], + 'result' : kwd['result'], + 'transfer_job_id' : kwd['transfer_job_id']} else: log.error('No job was created because kwd does not include "samples" and "sample_datasets" or "transfer_job_id".') return deferred_job = self.app.model.DeferredJob(state=self.app.model.DeferredJob.states.NEW, - plugin='ManualDataTransferPlugin', - params=params) + plugin='ManualDataTransferPlugin', + params=params) self.sa_session.add(deferred_job) self.sa_session.flush() log.debug('Created a deferred job in the ManualDataTransferPlugin of type: %s' % params['type']) diff --git a/lib/galaxy/jobs/deferred/pacific_biosciences_smrt_portal.py b/lib/galaxy/jobs/deferred/pacific_biosciences_smrt_portal.py index 8598b061919..a0e2707c951 100644 --- a/lib/galaxy/jobs/deferred/pacific_biosciences_smrt_portal.py +++ b/lib/galaxy/jobs/deferred/pacific_biosciences_smrt_portal.py @@ -57,25 +57,25 @@ class SMRTPortalPlugin(DataTransfer): self.sa_session.add(sample) self.sa_session.flush() params = {'type' : 'init_transfer', - 'protocol' : protocol, - 'sample_id' : sample.id, - 'results' : results, - 'smrt_host' : smrt_host, - 'smrt_job_id' : smrt_job_id} + 'protocol' : protocol, + 'sample_id' : sample.id, + 'results' : results, + 'smrt_host' : smrt_host, + 'smrt_job_id' : smrt_job_id} # Create a new SampleDataset for each run result dataset self._associate_untransferred_datasets_with_sample(sample, external_service, results) elif 'transfer_job_id' in kwd: params = {'type' : 'finish_transfer', - 'protocol' : kwd['result']['protocol'], - 'sample_id' : kwd['sample_id'], - 'result' : kwd['result'], - 'transfer_job_id' : kwd['transfer_job_id']} + 'protocol' : kwd['result']['protocol'], + 'sample_id' : kwd['sample_id'], + 'result' : kwd['result'], + 'transfer_job_id' : kwd['transfer_job_id']} else: log.error('No job was created because kwd does not include "secondary_analysis_job_id" or "transfer_job_id".') return deferred_job = self.app.model.DeferredJob(state=self.app.model.DeferredJob.states.NEW, - plugin='SMRTPortalPlugin', - params=params) + plugin='SMRTPortalPlugin', + params=params) self.sa_session.add(deferred_job) self.sa_session.flush() log.debug('Created a deferred job in the SMRTPortalPlugin of type: %s' % params['type']) @@ -122,11 +122,11 @@ class SMRTPortalPlugin(DataTransfer): name = val['name'] size = 'unknown' sample_dataset = self.app.model.SampleDataset(sample=sample, - file_path=file_path, - status=status, - name=name, - error_msg='', - size=size, - external_service=external_service) + file_path=file_path, + status=status, + name=name, + error_msg='', + size=size, + external_service=external_service) self.sa_session.add(sample_dataset) self.sa_session.flush() diff --git a/lib/galaxy/jobs/error_level.py b/lib/galaxy/jobs/error_level.py index 509c5a93869..9125103ad8f 100644 --- a/lib/galaxy/jobs/error_level.py +++ b/lib/galaxy/jobs/error_level.py @@ -20,6 +20,6 @@ class StdioErrorLevel(object): def desc(error_level): err_msg = "Unknown error" if (error_level > 0 and - error_level <= StdioErrorLevel.MAX): + error_level <= StdioErrorLevel.MAX): err_msg = StdioErrorLevel.descs[error_level] return err_msg diff --git a/lib/galaxy/jobs/handler.py b/lib/galaxy/jobs/handler.py index 76d077006c1..692f615b3bb 100644 --- a/lib/galaxy/jobs/handler.py +++ b/lib/galaxy/jobs/handler.py @@ -103,21 +103,21 @@ class JobHandlerQueue(object): jobs_at_startup = [] if self.track_jobs_in_database: in_list = (model.Job.states.QUEUED, - model.Job.states.RUNNING) + model.Job.states.RUNNING) else: in_list = (model.Job.states.NEW, - model.Job.states.QUEUED, - model.Job.states.RUNNING) + model.Job.states.QUEUED, + model.Job.states.RUNNING) if self.app.config.user_activation_on: jobs_at_startup = self.sa_session.query(model.Job).enable_eagerloads(False) \ .outerjoin(model.User) \ .filter(model.Job.state.in_(in_list) & - (model.Job.handler == self.app.config.server_name) & - or_((model.Job.user_id == null()), (model.User.active == true()))).all() + (model.Job.handler == self.app.config.server_name) & + or_((model.Job.user_id == null()), (model.User.active == true()))).all() else: jobs_at_startup = self.sa_session.query(model.Job).enable_eagerloads(False) \ .filter(model.Job.state.in_(in_list) & - (model.Job.handler == self.app.config.server_name)).all() + (model.Job.handler == self.app.config.server_name)).all() for job in jobs_at_startup: if not self.app.toolbox.has_tool(job.tool_id, job.tool_version, exact=True): @@ -209,10 +209,10 @@ class JobHandlerQueue(object): .join(model.HistoryDatasetAssociation) \ .join(model.Dataset) \ .filter(and_((model.Job.state == model.Job.states.NEW), - or_((model.HistoryDatasetAssociation._state == model.HistoryDatasetAssociation.states.FAILED_METADATA), - (model.HistoryDatasetAssociation.deleted == true()), - (model.Dataset.state != model.Dataset.states.OK), - (model.Dataset.deleted == true())))).subquery() + or_((model.HistoryDatasetAssociation._state == model.HistoryDatasetAssociation.states.FAILED_METADATA), + (model.HistoryDatasetAssociation.deleted == true()), + (model.Dataset.state != model.Dataset.states.OK), + (model.Dataset.deleted == true())))).subquery() ldda_not_ready = self.sa_session.query(model.Job.id).enable_eagerloads(False) \ .join(model.JobToInputLibraryDatasetAssociation) \ .join(model.LibraryDatasetDatasetAssociation) \ @@ -291,7 +291,7 @@ class JobHandlerQueue(object): elif job_state == JOB_ADMIN_DELETED: log.info("(%d) Job deleted by admin while still queued" % job.id) elif job_state in (JOB_USER_OVER_QUOTA, - JOB_USER_OVER_TOTAL_WALLTIME): + JOB_USER_OVER_TOTAL_WALLTIME): if job_state == JOB_USER_OVER_QUOTA: log.info("(%d) User (%s) is over quota: job paused" % (job.id, job.user_id)) else: @@ -400,7 +400,7 @@ class JobHandlerQueue(object): pass # No history, should not happen with an anon user # Check total walltime limits if (state == JOB_READY and - "delta" in self.app.job_config.limits.total_walltime): + "delta" in self.app.job_config.limits.total_walltime): jobs_to_check = self.sa_session.query(model.Job).filter( model.Job.user_id == job.user.id, model.Job.update_time >= datetime.datetime.now() - @@ -581,8 +581,8 @@ class JobHandlerQueue(object): if self.app.job_config.limits.anonymous_user_concurrent_jobs: count = self.sa_session.query(model.Job).enable_eagerloads(False) \ .filter(and_(model.Job.session_id == job.galaxy_session.id, - or_(model.Job.state == model.Job.states.RUNNING, - model.Job.state == model.Job.states.QUEUED))).count() + or_(model.Job.state == model.Job.states.RUNNING, + model.Job.state == model.Job.states.QUEUED))).count() if count >= self.app.job_config.limits.anonymous_user_concurrent_jobs: return JOB_WAIT else: @@ -705,7 +705,7 @@ class JobHandlerStopQueue(object): # Fetch all new jobs newly_deleted_jobs = self.sa_session.query(model.Job).enable_eagerloads(False) \ .filter((model.Job.state == model.Job.states.DELETED_NEW) & - (model.Job.handler == self.app.config.server_name)).all() + (model.Job.handler == self.app.config.server_name)).all() for job in newly_deleted_jobs: jobs_to_check.append((job, job.stderr)) # Also pull from the queue (in the case of Administrative stopped jobs) @@ -723,7 +723,7 @@ class JobHandlerStopQueue(object): for job, error_msg in jobs_to_check: if (job.state not in (job.states.DELETED_NEW, - job.states.DELETED) and + job.states.DELETED) and job.finished): # terminated before it got here log.debug('Job %s already finished, not deleting or stopping', job.id) @@ -814,7 +814,7 @@ class DefaultJobDispatcher(object): log.debug("Stopping job %d:", job.get_id()) elif(isinstance(job, model.Task)): log.debug("Stopping job %d, task %d" - % (job.get_job().get_id(), job.get_id())) + % (job.get_job().get_id(), job.get_id())) else: log.debug("Unknown job to stop") @@ -827,7 +827,7 @@ class DefaultJobDispatcher(object): log.debug("stopping job %d in %s runner" % (job.get_id(), runner_name)) elif (isinstance(job, model.Task)): log.debug("Stopping job %d, task %d in %s runner" - % (job.get_job().get_id(), job.get_id(), runner_name)) + % (job.get_job().get_id(), job.get_id(), runner_name)) try: self.job_runners[runner_name].stop_job(job) except KeyError: diff --git a/lib/galaxy/jobs/output_checker.py b/lib/galaxy/jobs/output_checker.py index ec47bbb007b..3e72323c7cb 100644 --- a/lib/galaxy/jobs/output_checker.py +++ b/lib/galaxy/jobs/output_checker.py @@ -32,7 +32,7 @@ def check_output(tool, stdout, stderr, tool_exit_code, job): # behavior of just setting an error if there is *anything* on # stderr. if (len(tool.stdio_regexes) > 0 or - len(tool.stdio_exit_codes) > 0): + len(tool.stdio_exit_codes) > 0): # Check the exit code ranges in the order in which # they were specified. Each exit_code is a StdioExitCode # that includes an applicable range. If the exit code was in @@ -42,7 +42,7 @@ def check_output(tool, stdout, stderr, tool_exit_code, job): if tool_exit_code is not None: for stdio_exit_code in tool.stdio_exit_codes: if (tool_exit_code >= stdio_exit_code.range_start and - tool_exit_code <= stdio_exit_code.range_end): + tool_exit_code <= stdio_exit_code.range_end): # Tack on a generic description of the code # plus a specific code description. For example, # this might prepend "Job 42: Warning (Out of Memory)\n". @@ -56,9 +56,9 @@ def check_output(tool, stdout, stderr, tool_exit_code, job): log.info("Job %s: %s" % (job.get_id_tag(), tool_msg)) stderr = tool_msg + "\n" + stderr max_error_level = max(max_error_level, - stdio_exit_code.error_level) + stdio_exit_code.error_level) if (max_error_level >= - StdioErrorLevel.FATAL): + StdioErrorLevel.FATAL): break if max_error_level < StdioErrorLevel.FATAL: @@ -80,30 +80,30 @@ def check_output(tool, stdout, stderr, tool_exit_code, job): # TODO: Collapse this into a single function. if (regex.stdout_match): regex_match = re.search(regex.match, stdout, - re.IGNORECASE) + re.IGNORECASE) if (regex_match): rexmsg = __regex_err_msg(regex_match, regex) log.info("Job %s: %s" - % (job.get_id_tag(), rexmsg)) + % (job.get_id_tag(), rexmsg)) stdout = rexmsg + "\n" + stdout max_error_level = max(max_error_level, - regex.error_level) + regex.error_level) if (max_error_level >= - StdioErrorLevel.FATAL): + StdioErrorLevel.FATAL): break if (regex.stderr_match): regex_match = re.search(regex.match, stderr, - re.IGNORECASE) + re.IGNORECASE) if (regex_match): rexmsg = __regex_err_msg(regex_match, regex) log.info("Job %s: %s" - % (job.get_id_tag(), rexmsg)) + % (job.get_id_tag(), rexmsg)) stderr = rexmsg + "\n" + stderr max_error_level = max(max_error_level, - regex.error_level) + regex.error_level) if (max_error_level >= - StdioErrorLevel.FATAL): + StdioErrorLevel.FATAL): break # If we encountered a fatal error, then we'll need to set the @@ -132,7 +132,7 @@ def check_output(tool, stdout, stderr, tool_exit_code, job): except: tb = traceback.format_exc() log.warning("Tool check encountered unexpected exception; " + - "assuming tool was successful: " + tb) + "assuming tool was successful: " + tb) success = True # Store the modified stdout and stderr in the job: diff --git a/lib/galaxy/jobs/runners/__init__.py b/lib/galaxy/jobs/runners/__init__.py index d5a992a2397..cd30907061d 100644 --- a/lib/galaxy/jobs/runners/__init__.py +++ b/lib/galaxy/jobs/runners/__init__.py @@ -196,7 +196,7 @@ class BaseJobRunner(object): raise NotImplementedError() def build_command_line(self, job_wrapper, include_metadata=False, include_work_dir_outputs=True, - modify_command_for_container=True): + modify_command_for_container=True): container = self._find_container(job_wrapper) if not container and job_wrapper.requires_containerization: raise Exception("Failed to find a container when required, contact Galaxy admin.") @@ -273,10 +273,10 @@ class BaseJobRunner(object): lib_adjust = GALAXY_LIB_ADJUST_TEMPLATE % job_wrapper.galaxy_lib_dir venv = GALAXY_VENV_TEMPLATE % job_wrapper.galaxy_virtual_env external_metadata_script = job_wrapper.setup_external_metadata(output_fnames=job_wrapper.get_output_fnames(), - set_extension=True, - tmp_dir=job_wrapper.working_directory, - # We don't want to overwrite metadata that was copied over in init_meta(), as per established behavior - kwds={'overwrite' : False}) + set_extension=True, + tmp_dir=job_wrapper.working_directory, + # We don't want to overwrite metadata that was copied over in init_meta(), as per established behavior + kwds={'overwrite' : False}) external_metadata_script = "%s %s %s" % (lib_adjust, venv, external_metadata_script) if resolve_requirements: dependency_shell_commands = self.app.datatypes_registry.set_external_metadata_tool.build_dependency_shell_commands(job_directory=job_wrapper.working_directory) @@ -286,10 +286,10 @@ class BaseJobRunner(object): external_metadata_script = "%s&&%s" % (dependency_shell_commands, external_metadata_script) log.debug('executing external set_meta script for job %d: %s' % (job_wrapper.job_id, external_metadata_script)) external_metadata_proc = subprocess.Popen(args=external_metadata_script, - shell=True, - cwd=job_wrapper.working_directory, - env=os.environ, - preexec_fn=os.setpgrp) + shell=True, + cwd=job_wrapper.working_directory, + env=os.environ, + preexec_fn=os.setpgrp) job_wrapper.external_output_metadata.set_job_runner_external_pid(external_metadata_proc.pid, self.sa_session) external_metadata_proc.wait() log.debug('execution of external set_meta for job %d finished' % job_wrapper.job_id) diff --git a/lib/galaxy/jobs/runners/local.py b/lib/galaxy/jobs/runners/local.py index c79e1b25a38..aed42306a4a 100644 --- a/lib/galaxy/jobs/runners/local.py +++ b/lib/galaxy/jobs/runners/local.py @@ -92,12 +92,12 @@ class LocalJobRunner(BaseJobRunner): stderr_file = tempfile.NamedTemporaryFile(suffix='_stderr', dir=job_wrapper.working_directory) log.debug('(%s) executing job script: %s' % (job_id, command_line)) proc = subprocess.Popen(args=command_line, - shell=True, - cwd=job_wrapper.working_directory, - stdout=stdout_file, - stderr=stderr_file, - env=self._environ, - preexec_fn=os.setpgrp) + shell=True, + cwd=job_wrapper.working_directory, + stdout=stdout_file, + stderr=stderr_file, + env=self._environ, + preexec_fn=os.setpgrp) job_wrapper.set_job_destination(job_wrapper.job_destination, proc.pid) job_wrapper.change_state(model.Job.states.RUNNING) diff --git a/lib/galaxy/jobs/runners/pbs.py b/lib/galaxy/jobs/runners/pbs.py index 60767856ed8..9961717b660 100644 --- a/lib/galaxy/jobs/runners/pbs.py +++ b/lib/galaxy/jobs/runners/pbs.py @@ -524,7 +524,7 @@ class PBSJobRunner(AsynchronousJobRunner): return pbs.pbs_deljob(c, job_id, '') log.debug("%s Removed from PBS queue before job completion" - % job_tag) + % job_tag) except: e = traceback.format_exc() log.debug("%s Unable to stop job: %s" % (job_tag, e)) diff --git a/lib/galaxy/jobs/runners/pulsar.py b/lib/galaxy/jobs/runners/pulsar.py index baa49d2a034..7c3e96806e1 100644 --- a/lib/galaxy/jobs/runners/pulsar.py +++ b/lib/galaxy/jobs/runners/pulsar.py @@ -478,10 +478,10 @@ class PulsarJobRunner(AsynchronousJobRunner): cleanup_job = job_wrapper.cleanup_job client_outputs = self.__client_outputs(client, job_wrapper) finish_args = dict(client=client, - job_completed_normally=completed_normally, - cleanup_job=cleanup_job, - client_outputs=client_outputs, - pulsar_outputs=pulsar_outputs) + job_completed_normally=completed_normally, + cleanup_job=cleanup_job, + client_outputs=client_outputs, + pulsar_outputs=pulsar_outputs) failed = pulsar_finish_job(**finish_args) if failed: job_wrapper.fail("Failed to find or download one or more job outputs from remote server.", exception=True) diff --git a/lib/galaxy/jobs/runners/tasks.py b/lib/galaxy/jobs/runners/tasks.py index 344224a755b..5362e7254f0 100644 --- a/lib/galaxy/jobs/runners/tasks.py +++ b/lib/galaxy/jobs/runners/tasks.py @@ -76,8 +76,8 @@ class TaskedJobRunner(BaseJobRunner): # sleep/loop until no more progress can be made. That is when # all tasks are one of { OK, ERROR, DELETED }. If a task completed_states = [model.Task.states.OK, - model.Task.states.ERROR, - model.Task.states.DELETED] + model.Task.states.ERROR, + model.Task.states.DELETED] # TODO: Should we report an error (and not merge outputs) if # one of the subtasks errored out? Should we prevent any that @@ -97,7 +97,7 @@ class TaskedJobRunner(BaseJobRunner): if (model.Task.states.ERROR == task_state): job_exit_code = tw.get_exit_code() log.debug("Canceling job %d: Task %s returned an error" - % (tw.job_id, tw.task_id)) + % (tw.job_id, tw.task_id)) self._cancel_job(job_wrapper, task_wrappers) tasks_complete = True break @@ -188,7 +188,7 @@ class TaskedJobRunner(BaseJobRunner): task_state = task.get_state() if (model.Task.states.QUEUED == task_state): log.debug("_cancel_job for job %d: Task %d is not running; setting state to DELETED" - % (job.get_id(), task.get_id())) + % (job.get_id(), task.get_id())) task_wrapper.change_state(task.states.DELETED) # If a task failed, then the caller will have waited a few seconds # before recognizing the failure. In that time, a queued task could @@ -200,7 +200,7 @@ class TaskedJobRunner(BaseJobRunner): if (model.Task.states.RUNNING == task_wrapper.get_state()): task = task_wrapper.get_task() log.debug("_cancel_job for job %d: Stopping running task %d" - % (job.get_id(), task.get_id())) + % (job.get_id(), task.get_id())) job_wrapper.app.job_manager.job_handler.dispatcher.stop(task) def _check_pid(self, pid): diff --git a/lib/galaxy/managers/base.py b/lib/galaxy/managers/base.py index 14660d0c684..cffe8a03a3a 100644 --- a/lib/galaxy/managers/base.py +++ b/lib/galaxy/managers/base.py @@ -147,10 +147,10 @@ def get_object(trans, id, class_name, check_ownership=False, check_accessible=Fa security_check(trans, item, check_ownership, check_accessible) if deleted is True and not item.deleted: raise exceptions.ItemDeletionException('%s "%s" is not deleted' - % (class_name, getattr(item, 'name', id)), type="warning") + % (class_name, getattr(item, 'name', id)), type="warning") elif deleted is False and item.deleted: raise exceptions.ItemDeletionException('%s "%s" is deleted' - % (class_name, getattr(item, 'name', id)), type="warning") + % (class_name, getattr(item, 'name', id)), type="warning") return item diff --git a/lib/galaxy/managers/collections.py b/lib/galaxy/managers/collections.py index e81c5b49394..286aa4e8f70 100644 --- a/lib/galaxy/managers/collections.py +++ b/lib/galaxy/managers/collections.py @@ -40,8 +40,8 @@ class DatasetCollectionManager(object): self.ldda_manager = lddas.LDDAManager(app) def create(self, trans, parent, name, collection_type, element_identifiers=None, - elements=None, implicit_collection_info=None, trusted_identifiers=None, - hide_source_items=False, tags=None): + elements=None, implicit_collection_info=None, trusted_identifiers=None, + hide_source_items=False, tags=None): """ PRECONDITION: security checks on ability to add to parent occurred during load. @@ -109,7 +109,7 @@ class DatasetCollectionManager(object): return self.__persist(dataset_collection_instance) def create_dataset_collection(self, trans, collection_type, element_identifiers=None, elements=None, - hide_source_items=None): + hide_source_items=None): if element_identifiers is None and elements is None: raise RequestParameterInvalidException(ERROR_INVALID_ELEMENTS_SPECIFICATION) if not collection_type: diff --git a/lib/galaxy/managers/datasets.py b/lib/galaxy/managers/datasets.py index 287f0f8059f..82b5d831f4e 100644 --- a/lib/galaxy/managers/datasets.py +++ b/lib/galaxy/managers/datasets.py @@ -271,8 +271,8 @@ class DatasetDeserializer(base.ModelDeserializer, deletable.PurgableDeserializer # ============================================================================= AKA DatasetInstanceManager class DatasetAssociationManager(base.ModelManager, - secured.AccessibleManagerMixin, - deletable.PurgableManagerMixin): + secured.AccessibleManagerMixin, + deletable.PurgableManagerMixin): """ DatasetAssociation/DatasetInstances are intended to be working proxies to a Dataset, associated with either a library or a @@ -363,7 +363,7 @@ class DatasetAssociationManager(base.ModelManager, class _UnflattenedMetadataDatasetAssociationSerializer(base.ModelSerializer, - deletable.PurgableSerializerMixin): + deletable.PurgableSerializerMixin): def __init__(self, app): self.dataset_serializer = DatasetSerializer(app) @@ -442,10 +442,10 @@ class _UnflattenedMetadataDatasetAssociationSerializer(base.ModelSerializer, if isinstance(dataset_assoc.metadata.spec[meta_type].param, galaxy.datatypes.metadata.FileParameter): meta_files.append( dict(file_type=meta_type, - download_url=self.url_for('history_contents_metadata_file', - history_id=self.app.security.encode_id(dataset_assoc.history_id), - history_content_id=self.app.security.encode_id(dataset_assoc.id), - metadata_file=meta_type))) + download_url=self.url_for('history_contents_metadata_file', + history_id=self.app.security.encode_id(dataset_assoc.history_id), + history_content_id=self.app.security.encode_id(dataset_assoc.id), + metadata_file=meta_type))) return meta_files def serialize_metadata(self, dataset_assoc, key, excluded=None, **context): diff --git a/lib/galaxy/managers/folders.py b/lib/galaxy/managers/folders.py index 07f047caa24..d681e6a78da 100644 --- a/lib/galaxy/managers/folders.py +++ b/lib/galaxy/managers/folders.py @@ -223,8 +223,8 @@ class FolderManager(object): manage_folder_role_list = [(manage_role.name, trans.security.encode_id(manage_role.id)) for manage_role in manage_roles] add_library_item_role_list = [(add_role.name, trans.security.encode_id(add_role.id)) for add_role in add_roles] return dict(modify_folder_role_list=modify_folder_role_list, - manage_folder_role_list=manage_folder_role_list, - add_library_item_role_list=add_library_item_role_list) + manage_folder_role_list=manage_folder_role_list, + add_library_item_role_list=add_library_item_role_list) def can_add_item(self, trans, folder): """ diff --git a/lib/galaxy/managers/hdas.py b/lib/galaxy/managers/hdas.py index 0ddc6fe089e..feb132d3f76 100644 --- a/lib/galaxy/managers/hdas.py +++ b/lib/galaxy/managers/hdas.py @@ -22,9 +22,9 @@ log = logging.getLogger(__name__) class HDAManager(datasets.DatasetAssociationManager, - secured.OwnableManagerMixin, - taggable.TaggableManagerMixin, - annotatable.AnnotatableManagerMixin): + secured.OwnableManagerMixin, + taggable.TaggableManagerMixin, + annotatable.AnnotatableManagerMixin): """ Interface/service object for interacting with HDAs. """ @@ -83,7 +83,7 @@ class HDAManager(datasets.DatasetAssociationManager, if not dataset: kwargs['create_dataset'] = True hda = model.HistoryDatasetAssociation(history=history, dataset=dataset, - sa_session=self.app.model.context, **kwargs) + sa_session=self.app.model.context, **kwargs) if history: history.add_dataset(hda, set_hid=('hid' not in kwargs)) @@ -179,7 +179,7 @@ class HDAManager(datasets.DatasetAssociationManager, """ job_states = model.Job.states query = (self._job_state_history_query(hda) - .filter(model.JobStateHistory.state == job_states.RESUBMITTED)) + .filter(model.JobStateHistory.state == job_states.RESUBMITTED)) return self.app.model.context.query(query.exists()).scalar() def _job_state_history_query(self, hda): @@ -194,9 +194,9 @@ class HDAManager(datasets.DatasetAssociationManager, # NOTE: don't eagerload (JODA will load the hda were using!) hda_id = hda.id query = (session.query(JobToOutputDatasetAssociation, JobStateHistory) - .filter(JobToOutputDatasetAssociation.dataset_id == hda_id) - .filter(JobStateHistory.job_id == JobToOutputDatasetAssociation.job_id) - .enable_eagerloads(False)) + .filter(JobToOutputDatasetAssociation.dataset_id == hda_id) + .filter(JobStateHistory.job_id == JobToOutputDatasetAssociation.job_id) + .enable_eagerloads(False)) return query def data_conversion_status(self, hda): @@ -341,14 +341,14 @@ class HDASerializer( # datasets._UnflattenedMetadataDatasetAssociationSerialize # see also: https://trello.com/c/5d6j4X5y # see also: https://sentry.galaxyproject.org/galaxy/galaxy-main/group/20769/events/9352883/ 'url' : lambda i, k, **c: self.url_for('history_content', - history_id=self.app.security.encode_id(i.history_id), - id=self.app.security.encode_id(i.id)), + history_id=self.app.security.encode_id(i.history_id), + id=self.app.security.encode_id(i.id)), 'urls' : self.serialize_urls, # TODO: backwards compat: need to go away 'download_url' : lambda i, k, **c: self.url_for('history_contents_display', - history_id=self.app.security.encode_id(i.history.id), - history_content_id=self.app.security.encode_id(i.id)), + history_id=self.app.security.encode_id(i.history.id), + history_content_id=self.app.security.encode_id(i.id)), 'parent_id' : self.serialize_id, # TODO: to DatasetAssociationSerializer 'accessible' : lambda i, k, user=None, **c: self.manager.is_accessible(i, user), @@ -432,21 +432,21 @@ class HDASerializer( # datasets._UnflattenedMetadataDatasetAssociationSerialize 'display' : url_for(controller='dataset', action='display', dataset_id=encoded_id, preview=True), 'edit' : url_for(controller='dataset', action='edit', dataset_id=encoded_id), 'download' : url_for(controller='dataset', action='display', - dataset_id=encoded_id, to_ext=hda.extension), + dataset_id=encoded_id, to_ext=hda.extension), 'report_error' : url_for(controller='dataset', action='errors', id=encoded_id), 'rerun' : url_for(controller='tool_runner', action='rerun', id=encoded_id), 'show_params' : url_for(controller='dataset', action='show_params', dataset_id=encoded_id), 'visualization' : url_for(controller='visualization', action='index', - id=encoded_id, model='HistoryDatasetAssociation'), + id=encoded_id, model='HistoryDatasetAssociation'), 'meta_download' : url_for(controller='dataset', action='get_metadata_file', - hda_id=encoded_id, metadata_name=''), + hda_id=encoded_id, metadata_name=''), } return urls class HDADeserializer(datasets.DatasetAssociationDeserializer, - taggable.TaggableDeserializerMixin, - annotatable.AnnotatableDeserializerMixin): + taggable.TaggableDeserializerMixin, + annotatable.AnnotatableDeserializerMixin): """ Interface/service object for validating and deserializing dictionaries into histories. """ @@ -466,14 +466,14 @@ class HDADeserializer(datasets.DatasetAssociationDeserializer, # remapped 'genome_build' : lambda i, k, v, **c: self.deserialize_genome_build(i, 'dbkey', v), 'misc_info' : lambda i, k, v, **c: self.deserialize_basestring(i, 'info', v, - convert_none_to_empty=True), + convert_none_to_empty=True), }) self.deserializable_keyset.update(self.deserializers.keys()) class HDAFilterParser(datasets.DatasetAssociationFilterParser, - taggable.TaggableFilterMixin, - annotatable.AnnotatableFilterMixin): + taggable.TaggableFilterMixin, + annotatable.AnnotatableFilterMixin): model_manager_class = HDAManager model_class = model.HistoryDatasetAssociation diff --git a/lib/galaxy/managers/hdcas.py b/lib/galaxy/managers/hdcas.py index afc8b33ba8c..a6f1ac8159b 100644 --- a/lib/galaxy/managers/hdcas.py +++ b/lib/galaxy/managers/hdcas.py @@ -256,7 +256,7 @@ class HDCASerializer( 'type_id' : self.serialize_type_id, 'url' : lambda i, k, **c: self.url_for('history_content_typed', - history_id=self.app.security.encode_id(i.history_id), - id=self.app.security.encode_id(i.id), - type=self.hdca_manager.model_class.content_type), + history_id=self.app.security.encode_id(i.history_id), + id=self.app.security.encode_id(i.id), + type=self.hdca_manager.model_class.content_type), }) diff --git a/lib/galaxy/managers/histories.py b/lib/galaxy/managers/histories.py index a6e510f9d00..ec2b92d07f4 100644 --- a/lib/galaxy/managers/histories.py +++ b/lib/galaxy/managers/histories.py @@ -242,7 +242,7 @@ class HistorySerializer(sharable.SharableModelSerializer, deletable.PurgableSeri 'url' : lambda i, k, **c: self.url_for('history', id=self.app.security.encode_id(i.id)), 'contents_url' : lambda i, k, **c: self.url_for('history_contents', - history_id=self.app.security.encode_id(i.id)), + history_id=self.app.security.encode_id(i.id)), 'empty' : lambda i, k, **c: (len(i.datasets) + len(i.dataset_collections)) <= 0, 'count' : lambda i, k, **c: len(i.datasets), @@ -251,7 +251,7 @@ class HistorySerializer(sharable.SharableModelSerializer, deletable.PurgableSeri 'state_ids' : self.serialize_state_ids, 'contents' : self.serialize_contents, 'non_ready_jobs': lambda i, k, **c: [self.app.security.encode_id(job.id) for job - in self.manager.non_ready_jobs(i)], + in self.manager.non_ready_jobs(i)], 'contents_states': self.serialize_contents_states, 'contents_active': self.serialize_contents_active, diff --git a/lib/galaxy/managers/lddas.py b/lib/galaxy/managers/lddas.py index c172522dd64..2aa5e384c57 100644 --- a/lib/galaxy/managers/lddas.py +++ b/lib/galaxy/managers/lddas.py @@ -14,6 +14,6 @@ class LDDAManager(object): def get(self, trans, id, check_accessible=True): return manager_base.get_object(trans, id, - 'LibraryDatasetDatasetAssociation', - check_ownership=False, - check_accessible=check_accessible) + 'LibraryDatasetDatasetAssociation', + check_ownership=False, + check_accessible=check_accessible) diff --git a/lib/galaxy/managers/libraries.py b/lib/galaxy/managers/libraries.py index de32773abda..37ad6947ff6 100644 --- a/lib/galaxy/managers/libraries.py +++ b/lib/galaxy/managers/libraries.py @@ -211,9 +211,9 @@ class LibraryManager(object): manage_library_role_list = [(manage_role.name, trans.security.encode_id(manage_role.id)) for manage_role in self.get_manage_roles(trans, library)] add_library_item_role_list = [(add_role.name, trans.security.encode_id(add_role.id)) for add_role in self.get_add_roles(trans, library)] return dict(access_library_role_list=access_library_role_list, - modify_library_role_list=modify_library_role_list, - manage_library_role_list=manage_library_role_list, - add_library_item_role_list=add_library_item_role_list) + modify_library_role_list=modify_library_role_list, + manage_library_role_list=manage_library_role_list, + add_library_item_role_list=add_library_item_role_list) def get_access_roles(self, trans, library): """ diff --git a/lib/galaxy/managers/rbac_secured.py b/lib/galaxy/managers/rbac_secured.py index 63b5a222172..45d92ff57c5 100644 --- a/lib/galaxy/managers/rbac_secured.py +++ b/lib/galaxy/managers/rbac_secured.py @@ -231,9 +231,9 @@ class AccessDatasetRBACPermission(DatasetRBACPermission): # NOTE: that because of short circuiting this allows # anonymous access to public datasets return (self._is_public_based_on_roles(current_roles) or - # admin is always permitted - self.user_manager.is_admin(user) or - self._user_has_all_roles(user, current_roles)) + # admin is always permitted + self.user_manager.is_admin(user) or + self._user_has_all_roles(user, current_roles)) def grant(self, item, user): pass @@ -267,5 +267,5 @@ class AccessDatasetRBACPermission(DatasetRBACPermission): def _role_is_permitted(self, dataset, role): current_roles = self._roles(dataset) return (self._is_public_based_on_roles(current_roles) or - # if there's only one role and this is it, let em in - ((len(current_roles) == 1) and (role == current_roles[0]))) + # if there's only one role and this is it, let em in + ((len(current_roles) == 1) and (role == current_roles[0]))) diff --git a/lib/galaxy/managers/roles.py b/lib/galaxy/managers/roles.py index 333d57ce2f3..5200e9935cf 100644 --- a/lib/galaxy/managers/roles.py +++ b/lib/galaxy/managers/roles.py @@ -39,7 +39,7 @@ class RoleManager(base.ModelManager): """ try: role = (self.session().query(self.model_class) - .filter(self.model_class.id == decoded_role_id).one()) + .filter(self.model_class.id == decoded_role_id).one()) except sqlalchemy_exceptions.MultipleResultsFound: raise galaxy.exceptions.InconsistentDatabase('Multiple roles found with the same id.') except sqlalchemy_exceptions.NoResultFound: diff --git a/lib/galaxy/managers/sharable.py b/lib/galaxy/managers/sharable.py index 79f239e98cb..8a857b761d2 100644 --- a/lib/galaxy/managers/sharable.py +++ b/lib/galaxy/managers/sharable.py @@ -247,12 +247,12 @@ class SharableModelManager(base.ModelManager, secured.OwnableManagerMixin, secur def _existing_set_of_slugs(self, user): query = (self.session().query(self.model_class.slug) - .filter_by(user=user)) + .filter_by(user=user)) return list(set(query.all())) def _slug_exists(self, user, slug): query = (self.session().query(self.model_class.slug) - .filter_by(user=user, slug=slug)) + .filter_by(user=user, slug=slug)) return query.count() != 0 def _slugify(self, start_with): @@ -289,8 +289,8 @@ class SharableModelManager(base.ModelManager, secured.OwnableManagerMixin, secur new_slug = slug_base count = 1 while (self.session().query(item.__class__) - .filter_by(user=item.user, slug=new_slug, importable=True) - .count() != 0): + .filter_by(user=item.user, slug=new_slug, importable=True) + .count() != 0): # Slug taken; choose a new slug based on count. This approach can # handle numerous items with the same name gracefully. new_slug = '%s-%i' % (slug_base, count) diff --git a/lib/galaxy/managers/tags.py b/lib/galaxy/managers/tags.py index 79e6fea92cd..74cb04f2596 100644 --- a/lib/galaxy/managers/tags.py +++ b/lib/galaxy/managers/tags.py @@ -83,11 +83,11 @@ class TagManager(object): group_by = item_tag_assoc_class.table.c.tag_id # Do query and get result set. query = select(columns=cols_to_select, - from_obj=from_obj, - whereclause=where_clause, - group_by=group_by, - order_by=order_by, - limit=limit) + from_obj=from_obj, + whereclause=where_clause, + group_by=group_by, + order_by=order_by, + limit=limit) result_set = self.sa_session.execute(query) # Return community tags. community_tags = [] @@ -98,7 +98,7 @@ class TagManager(object): def get_tool_tags(self): query = select(columns=[galaxy.model.ToolTagAssociation.table.c.tag_id], - from_obj=galaxy.model.ToolTagAssociation.table).distinct() + from_obj=galaxy.model.ToolTagAssociation.table).distinct() result_set = self.sa_session.execute(query) tags = [] @@ -314,29 +314,29 @@ class GalaxyTagManager(TagManager): from galaxy import model TagManager.__init__(self, sa_session) self.item_tag_assoc_info["History"] = ItemTagAssocInfo(model.History, - model.HistoryTagAssociation, - model.HistoryTagAssociation.table.c.history_id) + model.HistoryTagAssociation, + model.HistoryTagAssociation.table.c.history_id) self.item_tag_assoc_info["HistoryDatasetAssociation"] = \ ItemTagAssocInfo(model.HistoryDatasetAssociation, - model.HistoryDatasetAssociationTagAssociation, - model.HistoryDatasetAssociationTagAssociation.table.c.history_dataset_association_id) + model.HistoryDatasetAssociationTagAssociation, + model.HistoryDatasetAssociationTagAssociation.table.c.history_dataset_association_id) self.item_tag_assoc_info["HistoryDatasetCollectionAssociation"] = \ ItemTagAssocInfo(model.HistoryDatasetCollectionAssociation, - model.HistoryDatasetCollectionTagAssociation, - model.HistoryDatasetCollectionTagAssociation.table.c.history_dataset_collection_id) + model.HistoryDatasetCollectionTagAssociation, + model.HistoryDatasetCollectionTagAssociation.table.c.history_dataset_collection_id) self.item_tag_assoc_info["LibraryDatasetDatasetAssociation"] = \ ItemTagAssocInfo(model.LibraryDatasetDatasetAssociation, - model.LibraryDatasetDatasetAssociationTagAssociation, - model.LibraryDatasetDatasetAssociationTagAssociation.table.c.library_dataset_dataset_association_id) + model.LibraryDatasetDatasetAssociationTagAssociation, + model.LibraryDatasetDatasetAssociationTagAssociation.table.c.library_dataset_dataset_association_id) self.item_tag_assoc_info["Page"] = ItemTagAssocInfo(model.Page, - model.PageTagAssociation, - model.PageTagAssociation.table.c.page_id) + model.PageTagAssociation, + model.PageTagAssociation.table.c.page_id) self.item_tag_assoc_info["StoredWorkflow"] = ItemTagAssocInfo(model.StoredWorkflow, - model.StoredWorkflowTagAssociation, - model.StoredWorkflowTagAssociation.table.c.stored_workflow_id) + model.StoredWorkflowTagAssociation, + model.StoredWorkflowTagAssociation.table.c.stored_workflow_id) self.item_tag_assoc_info["Visualization"] = ItemTagAssocInfo(model.Visualization, - model.VisualizationTagAssociation, - model.VisualizationTagAssociation.table.c.visualization_id) + model.VisualizationTagAssociation, + model.VisualizationTagAssociation.table.c.visualization_id) class CommunityTagManager(TagManager): diff --git a/lib/galaxy/managers/users.py b/lib/galaxy/managers/users.py index 2e7b256db46..149836db847 100644 --- a/lib/galaxy/managers/users.py +++ b/lib/galaxy/managers/users.py @@ -168,8 +168,8 @@ class UserManager(base.ModelManager, deletable.PurgableManagerMixin): Return this most recent APIKey for this user or None if none have been created. """ query = (self.session().query(model.APIKeys) - .filter_by(user=user) - .order_by(sqlalchemy.desc(model.APIKeys.create_time))) + .filter_by(user=user) + .order_by(sqlalchemy.desc(model.APIKeys.create_time))) all = query.all() if len(all): return all[0] @@ -221,7 +221,7 @@ class UserManager(base.ModelManager, deletable.PurgableManagerMixin): all_tags_query = None for tag_model in tag_models: subq = (self.session().query(tag_model.user_tname, tag_model.user_value) - .filter(tag_model.user == user)) + .filter(tag_model.user == user)) all_tags_query = subq if all_tags_query is None else all_tags_query.union(subq) # if nothing init'd the query, bail diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index 666493aa305..d43c325a9d4 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -437,19 +437,19 @@ class Job(object, JobLike, Dictifiable): _text_metric = JobMetricText states = Bunch(NEW='new', - RESUBMITTED='resubmitted', - UPLOAD='upload', - WAITING='waiting', - QUEUED='queued', - RUNNING='running', - OK='ok', - ERROR='error', - PAUSED='paused', - DELETED='deleted', - DELETED_NEW='deleted_new') + RESUBMITTED='resubmitted', + UPLOAD='upload', + WAITING='waiting', + QUEUED='queued', + RUNNING='running', + OK='ok', + ERROR='error', + PAUSED='paused', + DELETED='deleted', + DELETED_NEW='deleted_new') terminal_states = [states.OK, - states.ERROR, - states.DELETED] + states.ERROR, + states.DELETED] #: job states where the job hasn't finished and the model may still change non_ready_states = [ states.NEW, @@ -819,12 +819,12 @@ class Task(object, JobLike): _text_metric = TaskMetricText states = Bunch(NEW='new', - WAITING='waiting', - QUEUED='queued', - RUNNING='running', - OK='ok', - ERROR='error', - DELETED='deleted') + WAITING='waiting', + QUEUED='queued', + RUNNING='running', + OK='ok', + ERROR='error', + DELETED='deleted') # Please include an accessor (get/set pair) for any new columns/members. def __init__(self, job, working_directory, prepare_files_cmd): @@ -960,7 +960,7 @@ class Task(object, JobLike): # differentiate between the kinds of Runnable things (Jobs and Tasks) # that they're using. log.debug("Task %d: Set external id to %s" - % (self.id, task_runner_external_id)) + % (self.id, task_runner_external_id)) self.task_runner_external_id = task_runner_external_id def set_task_runner_external_id(self, task_runner_external_id): @@ -1083,8 +1083,8 @@ class JobExternalOutputMetadata(object): class JobExportHistoryArchive(object): def __init__(self, job=None, history=None, dataset=None, compressed=False, - history_attrs_filename=None, datasets_attrs_filename=None, - jobs_attrs_filename=None): + history_attrs_filename=None, datasets_attrs_filename=None, + jobs_attrs_filename=None): self.job = job self.history = history self.dataset = dataset @@ -1129,8 +1129,8 @@ class JobImportHistoryArchive(object): class GenomeIndexToolData(object): def __init__(self, job=None, params=None, dataset=None, deferred_job=None, - transfer_job=None, fasta_path=None, created_time=None, modified_time=None, - dbkey=None, user=None, indexer=None): + transfer_job=None, fasta_path=None, created_time=None, modified_time=None, + dbkey=None, user=None, indexer=None): self.job = job self.dataset = dataset self.fasta_path = fasta_path @@ -1144,11 +1144,11 @@ class GenomeIndexToolData(object): class DeferredJob(object): states = Bunch(NEW='new', - WAITING='waiting', - QUEUED='queued', - RUNNING='running', - OK='ok', - ERROR='error') + WAITING='waiting', + QUEUED='queued', + RUNNING='running', + OK='ok', + ERROR='error') def __init__(self, state=None, plugin=None, params=None): self.state = state @@ -1209,7 +1209,7 @@ class History(HasTags, Dictifiable, UsesAnnotations, HasName): dict_collection_visible_keys = ('id', 'name', 'published', 'deleted') dict_element_visible_keys = ('id', 'name', 'genome_build', 'deleted', 'purged', 'update_time', - 'published', 'importable', 'slug', 'empty') + 'published', 'importable', 'slug', 'empty') default_name = 'Unnamed history' def __init__(self, id=None, name=None, user=None): @@ -1254,7 +1254,7 @@ class History(HasTags, Dictifiable, UsesAnnotations, HasName): object_session(self).flush() elif not isinstance(dataset, HistoryDatasetAssociation): raise TypeError("You can only add Dataset and HistoryDatasetAssociation instances to a history" + - " ( you tried to add %s )." % str(dataset)) + " ( you tried to add %s )." % str(dataset)) if parent_id: for data in self.datasets: if data.id == parent_id: @@ -1475,13 +1475,13 @@ class History(HasTags, Dictifiable, UsesAnnotations, HasName): if not hasattr(self, '_active_datasets_and_roles'): db_session = object_session(self) query = (db_session.query(HistoryDatasetAssociation) - .filter(HistoryDatasetAssociation.table.c.history_id == self.id) - .filter(not_(HistoryDatasetAssociation.deleted)) - .order_by(HistoryDatasetAssociation.table.c.hid.asc()) - .options(joinedload("dataset"), - joinedload("dataset.actions"), - joinedload("dataset.actions.role"), - joinedload("tags"), + .filter(HistoryDatasetAssociation.table.c.history_id == self.id) + .filter(not_(HistoryDatasetAssociation.deleted)) + .order_by(HistoryDatasetAssociation.table.c.hid.asc()) + .options(joinedload("dataset"), + joinedload("dataset.actions"), + joinedload("dataset.actions.role"), + joinedload("tags"), )) self._active_datasets_and_roles = query.all() return self._active_datasets_and_roles @@ -1712,16 +1712,16 @@ class StorableObject(object): class Dataset(StorableObject): states = Bunch(NEW='new', - UPLOAD='upload', - QUEUED='queued', - RUNNING='running', - OK='ok', - EMPTY='empty', - ERROR='error', - DISCARDED='discarded', - PAUSED='paused', - SETTING_METADATA='setting_metadata', - FAILED_METADATA='failed_metadata') + UPLOAD='upload', + QUEUED='queued', + RUNNING='running', + OK='ok', + EMPTY='empty', + ERROR='error', + DISCARDED='discarded', + PAUSED='paused', + SETTING_METADATA='setting_metadata', + FAILED_METADATA='failed_metadata') # failed_metadata is only valid as DatasetInstance state currently non_ready_states = ( @@ -1744,13 +1744,13 @@ class Dataset(StorableObject): ) conversion_messages = Bunch(PENDING="pending", - NO_DATA="no data", - NO_CHROMOSOME="no chromosome", - NO_CONVERTER="no converter", - NO_TOOL="no tool", - DATA="data", - ERROR="error", - OK="ok") + NO_DATA="no data", + NO_CHROMOSOME="no chromosome", + NO_CONVERTER="no converter", + NO_TOOL="no tool", + DATA="data", + ERROR="error", + OK="ok") permitted_actions = get_permitted_actions(filter='DATASET') file_path = "/tmp/" @@ -1919,9 +1919,9 @@ class DatasetInstance(object): permitted_actions = Dataset.permitted_actions def __init__(self, id=None, hid=None, name=None, info=None, blurb=None, peek=None, tool_version=None, extension=None, - dbkey=None, metadata=None, history=None, dataset=None, deleted=False, designation=None, - parent_id=None, validation_errors=None, visible=True, create_dataset=False, sa_session=None, - extended_metadata=None, flush=True): + dbkey=None, metadata=None, history=None, dataset=None, deleted=False, designation=None, + parent_id=None, validation_errors=None, visible=True, create_dataset=False, sa_session=None, + extended_metadata=None, flush=True): self.name = name or "Unnamed dataset" self.id = id self.info = info @@ -2245,8 +2245,8 @@ class DatasetInstance(object): Return true if the dataset is neither ready nor in error """ return self.state in (self.states.NEW, self.states.UPLOAD, - self.states.QUEUED, self.states.RUNNING, - self.states.SETTING_METADATA) + self.states.QUEUED, self.states.RUNNING, + self.states.SETTING_METADATA) @property def source_library_dataset(self): @@ -2367,18 +2367,18 @@ class DatasetInstance(object): class HistoryDatasetAssociation(DatasetInstance, HasTags, Dictifiable, UsesAnnotations, - HasName): + HasName): """ Resource class that creates a relation between a dataset and a user history. """ def __init__(self, - hid=None, - history=None, - copied_from_history_dataset_association=None, - copied_from_library_dataset_dataset_association=None, - sa_session=None, - **kwd): + hid=None, + history=None, + copied_from_history_dataset_association=None, + copied_from_library_dataset_dataset_association=None, + sa_session=None, + **kwd): """ Create a a new HDA and associate it with the given history. """ @@ -2396,18 +2396,18 @@ class HistoryDatasetAssociation(DatasetInstance, HasTags, Dictifiable, UsesAnnot Create a copy of this HDA. """ hda = HistoryDatasetAssociation(hid=self.hid, - name=self.name, - info=self.info, - blurb=self.blurb, - peek=self.peek, - tool_version=self.tool_version, - extension=self.extension, - dbkey=self.dbkey, - dataset=self.dataset, - visible=self.visible, - deleted=self.deleted, - parent_id=parent_id, - copied_from_history_dataset_association=self) + name=self.name, + info=self.info, + blurb=self.blurb, + peek=self.peek, + tool_version=self.tool_version, + extension=self.extension, + dbkey=self.dbkey, + dataset=self.dataset, + visible=self.visible, + deleted=self.deleted, + parent_id=parent_id, + copied_from_history_dataset_association=self) # update init non-keywords as well hda.purged = self.purged @@ -2429,7 +2429,7 @@ class HistoryDatasetAssociation(DatasetInstance, HasTags, Dictifiable, UsesAnnot new_dataset.hid = self.hid def to_library_dataset_dataset_association(self, trans, target_folder, replace_dataset=None, - parent_id=None, user=None, roles=None, ldda_message='', element_identifier=None): + parent_id=None, user=None, roles=None, ldda_message='', element_identifier=None): """ Copy this HDA to a library optionally replacing an existing LDDA. """ @@ -2448,26 +2448,26 @@ class HistoryDatasetAssociation(DatasetInstance, HasTags, Dictifiable, UsesAnnot # This should never happen since users must be authenticated to upload to a data library user = self.history.user ldda = LibraryDatasetDatasetAssociation(name=element_identifier or self.name, - info=self.info, - blurb=self.blurb, - peek=self.peek, - tool_version=self.tool_version, - extension=self.extension, - dbkey=self.dbkey, - dataset=self.dataset, - library_dataset=library_dataset, - visible=self.visible, - deleted=self.deleted, - parent_id=parent_id, - copied_from_history_dataset_association=self, - user=user) + info=self.info, + blurb=self.blurb, + peek=self.peek, + tool_version=self.tool_version, + extension=self.extension, + dbkey=self.dbkey, + dataset=self.dataset, + library_dataset=library_dataset, + visible=self.visible, + deleted=self.deleted, + parent_id=parent_id, + copied_from_history_dataset_association=self, + user=user) object_session(self).add(ldda) object_session(self).flush() # If roles were selected on the upload form, restrict access to the Dataset to those roles roles = roles or [] for role in roles: dp = trans.model.DatasetPermissions(trans.app.security_agent.permitted_actions.DATASET_ACCESS.action, - ldda.dataset, role) + ldda.dataset, role) trans.sa_session.add(dp) trans.sa_session.flush() # Must set metadata after ldda flushed, as MetadataFiles require ldda.id @@ -2484,10 +2484,10 @@ class HistoryDatasetAssociation(DatasetInstance, HasTags, Dictifiable, UsesAnnot object_session(self).flush() for child in self.children: child.to_library_dataset_dataset_association(trans, - target_folder=target_folder, - replace_dataset=replace_dataset, - parent_id=ldda.id, - user=ldda.user) + target_folder=target_folder, + replace_dataset=replace_dataset, + parent_id=ldda.id, + user=ldda.user) if not self.datatype.copy_safe_peek: # In some instances peek relies on dataset_id, i.e. gmaj.zip for viewing MAFs ldda.set_peek() @@ -2545,25 +2545,25 @@ class HistoryDatasetAssociation(DatasetInstance, HasTags, Dictifiable, UsesAnnot original_rval = super(HistoryDatasetAssociation, self).to_dict(view=view) hda = self rval = dict(id=hda.id, - hda_ldda='hda', - uuid=(lambda uuid: str(uuid) if uuid else None)(hda.dataset.uuid), - hid=hda.hid, - file_ext=hda.ext, - peek=(lambda hda: hda.display_peek() if hda.peek and hda.peek != 'no peek' else None)(hda), - model_class=self.__class__.__name__, - name=hda.name, - deleted=hda.deleted, - purged=hda.purged, - visible=hda.visible, - state=hda.state, - history_content_type=hda.history_content_type, - file_size=int(hda.get_size()), - create_time=hda.create_time.isoformat(), - update_time=hda.update_time.isoformat(), - data_type=hda.datatype.__class__.__module__ + '.' + hda.datatype.__class__.__name__, - genome_build=hda.dbkey, - misc_info=hda.info.strip() if isinstance(hda.info, string_types) else hda.info, - misc_blurb=hda.blurb) + hda_ldda='hda', + uuid=(lambda uuid: str(uuid) if uuid else None)(hda.dataset.uuid), + hid=hda.hid, + file_ext=hda.ext, + peek=(lambda hda: hda.display_peek() if hda.peek and hda.peek != 'no peek' else None)(hda), + model_class=self.__class__.__name__, + name=hda.name, + deleted=hda.deleted, + purged=hda.purged, + visible=hda.visible, + state=hda.state, + history_content_type=hda.history_content_type, + file_size=int(hda.get_size()), + create_time=hda.create_time.isoformat(), + update_time=hda.update_time.isoformat(), + data_type=hda.datatype.__class__.__module__ + '.' + hda.datatype.__class__.__name__, + genome_build=hda.dbkey, + misc_info=hda.info.strip() if isinstance(hda.info, string_types) else hda.info, + misc_blurb=hda.blurb) rval.update(original_rval) @@ -2605,7 +2605,7 @@ class HistoryDatasetAssociation(DatasetInstance, HasTags, Dictifiable, UsesAnnot @type_id.expression def type_id(cls): return ((type_coerce(cls.content_type, types.Unicode) + u'-' + - type_coerce(cls.id, types.Unicode)).label('type_id')) + type_coerce(cls.id, types.Unicode)).label('type_id')) def copy_tags_from(self, target_user, source_hda): """ @@ -2813,9 +2813,9 @@ class LibraryFolder(object, Dictifiable, HasName): class LibraryDataset(object): # This class acts as a proxy to the currently selected LDDA upload_options = [('upload_file', 'Upload files'), - ('upload_directory', 'Upload directory of files'), - ('upload_paths', 'Upload files from filesystem paths'), - ('import_from_history', 'Import datasets from your current history')] + ('upload_directory', 'Upload directory of files'), + ('upload_paths', 'Upload files from filesystem paths'), + ('import_from_history', 'Import datasets from your current history')] def __init__(self, folder=None, order_id=None, name=None, info=None, library_dataset_dataset_association=None, **kwd): self.folder = folder @@ -2872,24 +2872,24 @@ class LibraryDataset(object): template_data[template.name] = tmp_dict rval = dict(id=self.id, - ldda_id=ldda.id, - parent_library_id=self.folder.parent_library.id, - folder_id=self.folder_id, - model_class=self.__class__.__name__, - state=ldda.state, - name=ldda.name, - file_name=ldda.file_name, - uploaded_by=ldda.user.email, - message=ldda.message, - date_uploaded=ldda.create_time.isoformat(), - file_size=int(ldda.get_size()), - file_ext=ldda.ext, - data_type=ldda.datatype.__class__.__module__ + '.' + ldda.datatype.__class__.__name__, - genome_build=ldda.dbkey, - misc_info=ldda.info, - misc_blurb=ldda.blurb, - peek=(lambda ldda: ldda.display_peek() if ldda.peek and ldda.peek != 'no peek' else None)(ldda), - template_data=template_data) + ldda_id=ldda.id, + parent_library_id=self.folder.parent_library.id, + folder_id=self.folder_id, + model_class=self.__class__.__name__, + state=ldda.state, + name=ldda.name, + file_name=ldda.file_name, + uploaded_by=ldda.user.email, + message=ldda.message, + date_uploaded=ldda.create_time.isoformat(), + file_size=int(ldda.get_size()), + file_ext=ldda.ext, + data_type=ldda.datatype.__class__.__module__ + '.' + ldda.datatype.__class__.__name__, + genome_build=ldda.dbkey, + misc_info=ldda.info, + misc_blurb=ldda.blurb, + peek=(lambda ldda: ldda.display_peek() if ldda.peek and ldda.peek != 'no peek' else None)(ldda), + template_data=template_data) if ldda.dataset.uuid is None: rval['uuid'] = None else: @@ -2906,12 +2906,12 @@ class LibraryDataset(object): class LibraryDatasetDatasetAssociation(DatasetInstance, HasName): def __init__(self, - copied_from_history_dataset_association=None, - copied_from_library_dataset_dataset_association=None, - library_dataset=None, - user=None, - sa_session=None, - **kwd): + copied_from_history_dataset_association=None, + copied_from_library_dataset_dataset_association=None, + library_dataset=None, + user=None, + sa_session=None, + **kwd): # FIXME: sa_session is must be passed to DataSetInstance if the create_dataset # parameter in kwd is True so that the new object can be flushed. Is there a better way? DatasetInstance.__init__(self, sa_session=sa_session, **kwd) @@ -2925,18 +2925,18 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName): def to_history_dataset_association(self, target_history, parent_id=None, add_to_history=False): sa_session = object_session(self) hda = HistoryDatasetAssociation(name=self.name, - info=self.info, - blurb=self.blurb, - peek=self.peek, - tool_version=self.tool_version, - extension=self.extension, - dbkey=self.dbkey, - dataset=self.dataset, - visible=self.visible, - deleted=self.deleted, - parent_id=parent_id, - copied_from_library_dataset_dataset_association=self, - history=target_history) + info=self.info, + blurb=self.blurb, + peek=self.peek, + tool_version=self.tool_version, + extension=self.extension, + dbkey=self.dbkey, + dataset=self.dataset, + visible=self.visible, + deleted=self.deleted, + parent_id=parent_id, + copied_from_library_dataset_dataset_association=self, + history=target_history) tag_manager = tags.GalaxyTagManager(sa_session) src_ldda_tags = tag_manager.get_tags_str(self.tags) @@ -2957,18 +2957,18 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName): def copy(self, copy_children=False, parent_id=None, target_folder=None): sa_session = object_session(self) ldda = LibraryDatasetDatasetAssociation(name=self.name, - info=self.info, - blurb=self.blurb, - peek=self.peek, - tool_version=self.tool_version, - extension=self.extension, - dbkey=self.dbkey, - dataset=self.dataset, - visible=self.visible, - deleted=self.deleted, - parent_id=parent_id, - copied_from_library_dataset_dataset_association=self, - folder=target_folder) + info=self.info, + blurb=self.blurb, + peek=self.peek, + tool_version=self.tool_version, + extension=self.extension, + dbkey=self.dbkey, + dataset=self.dataset, + visible=self.visible, + deleted=self.deleted, + parent_id=parent_id, + copied_from_library_dataset_dataset_association=self, + folder=target_folder) tag_manager = tags.GalaxyTagManager(sa_session) src_ldda_tags = tag_manager.get_tags_str(self.tags) @@ -3024,21 +3024,21 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName): # TODO: render tags here rval = dict(id=ldda.id, - hda_ldda='ldda', - model_class=self.__class__.__name__, - name=ldda.name, - deleted=ldda.deleted, - visible=ldda.visible, - state=ldda.state, - library_dataset_id=ldda.library_dataset_id, - file_size=file_size, - file_name=ldda.file_name, - update_time=ldda.update_time.isoformat(), - file_ext=ldda.ext, - data_type=ldda.datatype.__class__.__module__ + '.' + ldda.datatype.__class__.__name__, - genome_build=ldda.dbkey, - misc_info=ldda.info, - misc_blurb=ldda.blurb) + hda_ldda='ldda', + model_class=self.__class__.__name__, + name=ldda.name, + deleted=ldda.deleted, + visible=ldda.visible, + state=ldda.state, + library_dataset_id=ldda.library_dataset_id, + file_size=file_size, + file_name=ldda.file_name, + update_time=ldda.update_time.isoformat(), + file_ext=ldda.ext, + data_type=ldda.datatype.__class__.__module__ + '.' + ldda.datatype.__class__.__name__, + genome_build=ldda.dbkey, + misc_info=ldda.info, + misc_blurb=ldda.blurb) if ldda.dataset.uuid is None: rval['uuid'] = None else: @@ -3367,9 +3367,9 @@ class DatasetCollectionInstance(object, HasName): class HistoryDatasetCollectionAssociation(DatasetCollectionInstance, - HasTags, - Dictifiable, - UsesAnnotations): + HasTags, + Dictifiable, + UsesAnnotations): """ Associates a DatasetCollection with a History. """ editable_keys = ('name', 'deleted', 'visible') @@ -3413,7 +3413,7 @@ class HistoryDatasetCollectionAssociation(DatasetCollectionInstance, @type_id.expression def type_id(cls): return ((type_coerce(cls.content_type, types.Unicode) + u'-' + - type_coerce(cls.id, types.Unicode)).label('type_id')) + type_coerce(cls.id, types.Unicode)).label('type_id')) def to_hda_representative(self, multiple=False): rval = [] @@ -3620,16 +3620,16 @@ class Event(object): class GalaxySession(object): def __init__(self, - id=None, - user=None, - remote_host=None, - remote_addr=None, - referer=None, - current_history=None, - session_key=None, - is_valid=False, - prev_session_id=None, - last_action=None): + id=None, + user=None, + remote_host=None, + remote_addr=None, + referer=None, + current_history=None, + session_key=None, + is_valid=False, + prev_session_id=None, + last_action=None): self.id = id self.user = user self.remote_host = remote_host @@ -3911,9 +3911,9 @@ class WorkflowStep(object): new_conn.input_subworkflow_step = subworkflow_step_mapping[old_conn.input_subworkflow_step_id] for orig_pja in self.post_job_actions: PostJobAction(orig_pja.action_type, - copied_step, - output_name=orig_pja.output_name, - action_arguments=orig_pja.action_arguments) + copied_step, + output_name=orig_pja.output_name, + action_arguments=orig_pja.action_arguments) copied_step.workflow_outputs = copy_list(self.workflow_outputs, copied_step) def log_str(self): @@ -4290,11 +4290,11 @@ class FormDefinition(object, Dictifiable): # The following form_builder classes are supported by the FormDefinition class. supported_field_types = [AddressField, CheckboxField, PasswordField, SelectField, TextArea, TextField, WorkflowField, WorkflowMappingField, HistoryField] types = Bunch(REQUEST='Sequencing Request Form', - SAMPLE='Sequencing Sample Form', - EXTERNAL_SERVICE='External Service Information Form', - RUN_DETAILS_TEMPLATE='Sample run details template', - LIBRARY_INFO_TEMPLATE='Library information template', - USER_INFO='User Information') + SAMPLE='Sequencing Sample Form', + EXTERNAL_SERVICE='External Service Information Form', + RUN_DETAILS_TEMPLATE='Sample run details template', + LIBRARY_INFO_TEMPLATE='Library information template', + USER_INFO='User Information') dict_collection_visible_keys = ('id', 'name') dict_element_visible_keys = ('id', 'name', 'desc', 'form_definition_current_id', 'fields', 'layout') @@ -4311,13 +4311,13 @@ class FormDefinition(object, Dictifiable): form_def = {'id': security.encode_id(self.id) if security else self.id, 'name': self.name, 'inputs': []} for field in self.fields: FieldClass = ({'AddressField' : AddressField, - 'CheckboxField' : CheckboxField, - 'HistoryField' : HistoryField, - 'PasswordField' : PasswordField, - 'SelectField' : SelectField, - 'TextArea' : TextArea, - 'TextField' : TextField, - 'WorkflowField' : WorkflowField}).get(field['type'], TextField) + 'CheckboxField' : CheckboxField, + 'HistoryField' : HistoryField, + 'PasswordField' : PasswordField, + 'SelectField' : SelectField, + 'TextArea' : TextArea, + 'TextField' : TextField, + 'WorkflowField' : WorkflowField}).get(field['type'], TextField) form_def['inputs'].append(FieldClass(user=user, value=values.get(field['name'], field['default']), security=security, **field).to_dict()) return form_def @@ -4436,9 +4436,9 @@ class FormValues(object): class Request(object, Dictifiable): states = Bunch(NEW='New', - SUBMITTED='In Progress', - REJECTED='Rejected', - COMPLETE='Complete') + SUBMITTED='In Progress', + REJECTED='Rejected', + COMPLETE='Complete') dict_collection_visible_keys = ('id', 'name', 'state') def __init__(self, name=None, desc=None, request_type=None, user=None, form_values=None, notification=None): @@ -4556,13 +4556,13 @@ All samples in state: %(sample_state)s """ values = dict(user=self.user.email, - request_name=self.name, - request_type=self.type.name, - request_state=self.state, - num_samples=str(len(self.samples)), - sample_state=common_state.name, - create_time=self.create_time, - submit_time=self.create_time) + request_name=self.name, + request_type=self.type.name, + request_state=self.state, + num_samples=str(len(self.samples)), + sample_state=common_state.name, + create_time=self.create_time, + submit_time=self.create_time) body = body % values # check if this is the final state of the samples if final_state: @@ -4608,8 +4608,8 @@ class RequestEvent(object): class ExternalService(object): data_transfer_protocol = Bunch(HTTP='http', - HTTPS='https', - SCP='scp') + HTTPS='https', + SCP='scp') def __init__(self, name=None, description=None, external_service_type_id=None, version=None, form_definition_id=None, form_values_id=None, deleted=None): self.name = name @@ -4653,9 +4653,9 @@ class RequestType(object, Dictifiable): dict_collection_visible_keys = ('id', 'name', 'desc') dict_element_visible_keys = ('id', 'name', 'desc', 'request_form_id', 'sample_form_id') rename_dataset_options = Bunch(NO='Do not rename', - SAMPLE_NAME='Preprend sample name', - EXPERIMENT_NAME='Prepend experiment name', - EXPERIMENT_AND_SAMPLE_NAME='Prepend experiment and sample name') + SAMPLE_NAME='Preprend sample name', + EXPERIMENT_NAME='Prepend experiment name', + EXPERIMENT_AND_SAMPLE_NAME='Prepend experiment and sample name') permitted_actions = get_permitted_actions(filter='REQUEST_TYPE') def __init__(self, name=None, desc=None, request_form=None, sample_form=None): @@ -4751,7 +4751,7 @@ class Sample(object, Dictifiable): # The following form_builder classes are supported by the Sample class. supported_field_types = [CheckboxField, SelectField, TextField, WorkflowField, WorkflowMappingField, HistoryField] bulk_operations = Bunch(CHANGE_STATE='Change state', - SELECT_LIBRARY='Select data library and folder') + SELECT_LIBRARY='Select data library and folder') dict_collection_visible_keys = ('id', 'name') def __init__(self, name=None, desc=None, request=None, form_values=None, bar_code=None, library=None, folder=None, workflow=None, history=None): @@ -4890,11 +4890,11 @@ class SampleEvent(object): class SampleDataset(object): transfer_status = Bunch(NOT_STARTED='Not started', - IN_QUEUE='In queue', - TRANSFERRING='Transferring dataset', - ADD_TO_LIBRARY='Adding to data library', - COMPLETE='Complete', - ERROR='Error') + IN_QUEUE='In queue', + TRANSFERRING='Transferring dataset', + ADD_TO_LIBRARY='Adding to data library', + COMPLETE='Complete', + ERROR='Error') def __init__(self, sample=None, name=None, file_path=None, status=None, error_msg=None, size=None, external_service=None): self.sample = sample @@ -4927,8 +4927,8 @@ class SampleRunAssociation(object): class UserAddress(object): def __init__(self, user=None, desc=None, name=None, institution=None, - address=None, city=None, state=None, postal_code=None, - country=None, phone=None): + address=None, city=None, state=None, postal_code=None, + country=None, phone=None): self.user = user self.desc = desc self.name = name @@ -4942,15 +4942,15 @@ class UserAddress(object): def to_dict(self, trans): return {'id' : trans.security.encode_id(self.id), - 'name' : sanitize_html(self.name), - 'desc' : sanitize_html(self.desc), - 'institution' : sanitize_html(self.institution), - 'address' : sanitize_html(self.address), - 'city' : sanitize_html(self.city), - 'state' : sanitize_html(self.state), - 'postal_code' : sanitize_html(self.postal_code), - 'country' : sanitize_html(self.country), - 'phone' : sanitize_html(self.phone)} + 'name' : sanitize_html(self.name), + 'desc' : sanitize_html(self.desc), + 'institution' : sanitize_html(self.institution), + 'address' : sanitize_html(self.address), + 'city' : sanitize_html(self.city), + 'state' : sanitize_html(self.state), + 'postal_code' : sanitize_html(self.postal_code), + 'country' : sanitize_html(self.country), + 'phone' : sanitize_html(self.phone)} def get_html(self): # This should probably be deprecated eventually. It should currently @@ -5095,13 +5095,13 @@ class TransferJob(object): # These states are used both by the transfer manager's IPC and the object # state in the database. Not all states are used by both. states = Bunch(NEW='new', - UNKNOWN='unknown', - PROGRESS='progress', - RUNNING='running', - ERROR='error', - DONE='done') + UNKNOWN='unknown', + PROGRESS='progress', + RUNNING='running', + ERROR='error', + DONE='done') terminal_states = [states.ERROR, - states.DONE] + states.DONE] def __init__(self, state=None, path=None, info=None, pid=None, socket=None, params=None): self.state = state diff --git a/lib/galaxy/model/custom_types.py b/lib/galaxy/model/custom_types.py index 9c0be1a8e17..a60c8c33f80 100644 --- a/lib/galaxy/model/custom_types.py +++ b/lib/galaxy/model/custom_types.py @@ -240,11 +240,11 @@ def total_size(o, handlers={}, verbose=False): return chain.from_iterable(d.items()) all_handlers = {tuple: iter, - list: iter, - deque: iter, - dict: dict_handler, - set: iter, - frozenset: iter} + list: iter, + deque: iter, + dict: dict_handler, + set: iter, + frozenset: iter} all_handlers.update(handlers) # user handlers take precedence seen = set() # track which object id's have already been seen default_size = getsizeof(0) # estimate sizeof object without __sizeof__ diff --git a/lib/galaxy/model/mapping.py b/lib/galaxy/model/mapping.py index 6dcd7c1444e..d4f0e0c245e 100644 --- a/lib/galaxy/model/mapping.py +++ b/lib/galaxy/model/mapping.py @@ -127,9 +127,9 @@ model.HistoryDatasetAssociation.table = Table( Column("update_time", DateTime, default=now, onupdate=now), Column("state", TrimmedString(64), index=True, key="_state"), Column("copied_from_history_dataset_association_id", Integer, - ForeignKey("history_dataset_association.id"), nullable=True), + ForeignKey("history_dataset_association.id"), nullable=True), Column("copied_from_library_dataset_dataset_association_id", Integer, - ForeignKey("library_dataset_dataset_association.id"), nullable=True), + ForeignKey("library_dataset_dataset_association.id"), nullable=True), Column("name", TrimmedString(255)), Column("info", TrimmedString(255)), Column("blurb", TrimmedString(255)), @@ -145,7 +145,7 @@ model.HistoryDatasetAssociation.table = Table( Column("hid", Integer), Column("purged", Boolean, index=True, default=False), Column("hidden_beneath_collection_instance_id", - ForeignKey("history_dataset_collection_association.id"), nullable=True)) + ForeignKey("history_dataset_collection_association.id"), nullable=True)) model.Dataset.table = Table( "dataset", metadata, @@ -1585,32 +1585,32 @@ simple_mapping(model.HistoryDatasetAssociation, # .history defined in History mapper copied_from_history_dataset_association=relation(model.HistoryDatasetAssociation, primaryjoin=(model.HistoryDatasetAssociation.table.c.copied_from_history_dataset_association_id == - model.HistoryDatasetAssociation.table.c.id), + model.HistoryDatasetAssociation.table.c.id), remote_side=[model.HistoryDatasetAssociation.table.c.id], uselist=False), copied_to_history_dataset_associations=relation(model.HistoryDatasetAssociation, primaryjoin=(model.HistoryDatasetAssociation.table.c.copied_from_history_dataset_association_id == - model.HistoryDatasetAssociation.table.c.id)), + model.HistoryDatasetAssociation.table.c.id)), copied_from_library_dataset_dataset_association=relation( model.LibraryDatasetDatasetAssociation, primaryjoin=(model.HistoryDatasetAssociation.table.c.copied_from_library_dataset_dataset_association_id == - model.LibraryDatasetDatasetAssociation.table.c.id), + model.LibraryDatasetDatasetAssociation.table.c.id), uselist=False), copied_to_library_dataset_dataset_associations=relation(model.LibraryDatasetDatasetAssociation, primaryjoin=(model.HistoryDatasetAssociation.table.c.copied_from_library_dataset_dataset_association_id == - model.LibraryDatasetDatasetAssociation.table.c.id)), + model.LibraryDatasetDatasetAssociation.table.c.id)), implicitly_converted_datasets=relation(model.ImplicitlyConvertedDatasetAssociation, primaryjoin=(model.ImplicitlyConvertedDatasetAssociation.table.c.hda_parent_id == - model.HistoryDatasetAssociation.table.c.id)), + model.HistoryDatasetAssociation.table.c.id)), implicitly_converted_parent_datasets=relation(model.ImplicitlyConvertedDatasetAssociation, primaryjoin=(model.ImplicitlyConvertedDatasetAssociation.table.c.hda_id == - model.HistoryDatasetAssociation.table.c.id)), + model.HistoryDatasetAssociation.table.c.id)), children=relation(model.HistoryDatasetAssociation, primaryjoin=(model.HistoryDatasetAssociation.table.c.parent_id == model.HistoryDatasetAssociation.table.c.id), backref=backref("parent", primaryjoin=(model.HistoryDatasetAssociation.table.c.parent_id == - model.HistoryDatasetAssociation.table.c.id), + model.HistoryDatasetAssociation.table.c.id), remote_side=[model.HistoryDatasetAssociation.table.c.id], uselist=False)), visible_children=relation(model.HistoryDatasetAssociation, primaryjoin=( @@ -1628,10 +1628,10 @@ simple_mapping(model.HistoryDatasetAssociation, backref="hdas"), extended_metadata=relation(model.ExtendedMetadata, primaryjoin=((model.HistoryDatasetAssociation.table.c.extended_metadata_id == - model.ExtendedMetadata.table.c.id))), + model.ExtendedMetadata.table.c.id))), hidden_beneath_collection_instance=relation(model.HistoryDatasetCollectionAssociation, primaryjoin=((model.HistoryDatasetAssociation.table.c.hidden_beneath_collection_instance_id == - model.HistoryDatasetCollectionAssociation.table.c.id)), + model.HistoryDatasetCollectionAssociation.table.c.id)), uselist=False, backref="hidden_dataset_instances"), _metadata=deferred(model.HistoryDatasetAssociation.table.c._metadata) @@ -1668,25 +1668,25 @@ mapper(model.HistoryDatasetAssociationDisplayAtAuthorization, model.HistoryDatas mapper(model.HistoryDatasetAssociationSubset, model.HistoryDatasetAssociationSubset.table, properties=dict( hda=relation(model.HistoryDatasetAssociation, primaryjoin=(model.HistoryDatasetAssociationSubset.table.c.history_dataset_association_id == - model.HistoryDatasetAssociation.table.c.id)), + model.HistoryDatasetAssociation.table.c.id)), subset=relation(model.HistoryDatasetAssociation, primaryjoin=(model.HistoryDatasetAssociationSubset.table.c.history_dataset_association_subset_id == - model.HistoryDatasetAssociation.table.c.id)) + model.HistoryDatasetAssociation.table.c.id)) )) mapper(model.ImplicitlyConvertedDatasetAssociation, model.ImplicitlyConvertedDatasetAssociation.table, properties=dict( parent_hda=relation(model.HistoryDatasetAssociation, primaryjoin=(model.ImplicitlyConvertedDatasetAssociation.table.c.hda_parent_id == - model.HistoryDatasetAssociation.table.c.id)), + model.HistoryDatasetAssociation.table.c.id)), parent_ldda=relation(model.LibraryDatasetDatasetAssociation, primaryjoin=(model.ImplicitlyConvertedDatasetAssociation.table.c.ldda_parent_id == - model.LibraryDatasetDatasetAssociation.table.c.id)), + model.LibraryDatasetDatasetAssociation.table.c.id)), dataset_ldda=relation(model.LibraryDatasetDatasetAssociation, primaryjoin=(model.ImplicitlyConvertedDatasetAssociation.table.c.ldda_id == - model.LibraryDatasetDatasetAssociation.table.c.id)), + model.LibraryDatasetDatasetAssociation.table.c.id)), dataset=relation(model.HistoryDatasetAssociation, primaryjoin=(model.ImplicitlyConvertedDatasetAssociation.table.c.hda_id == - model.HistoryDatasetAssociation.table.c.id)) + model.HistoryDatasetAssociation.table.c.id)) )) mapper(model.History, model.History.table, properties=dict( @@ -1778,7 +1778,7 @@ mapper(model.User, model.User.table, properties=dict( )) mapper(model.PasswordResetToken, model.PasswordResetToken.table, - properties=dict(user=relation(model.User, backref="reset_tokens"))) + properties=dict(user=relation(model.User, backref="reset_tokens"))) # Set up proxy so that this syntax is possible: @@ -1951,13 +1951,13 @@ mapper(model.LibraryDataset, model.LibraryDataset.table, properties=dict( folder=relation(model.LibraryFolder), library_dataset_dataset_association=relation(model.LibraryDatasetDatasetAssociation, primaryjoin=(model.LibraryDataset.table.c.library_dataset_dataset_association_id == - model.LibraryDatasetDatasetAssociation.table.c.id)), + model.LibraryDatasetDatasetAssociation.table.c.id)), expired_datasets=relation(model.LibraryDatasetDatasetAssociation, foreign_keys=[model.LibraryDataset.table.c.id, model.LibraryDataset.table.c.library_dataset_dataset_association_id], primaryjoin=( (model.LibraryDataset.table.c.id == model.LibraryDatasetDatasetAssociation.table.c.library_dataset_id) & (not_(model.LibraryDataset.table.c.library_dataset_dataset_association_id == - model.LibraryDatasetDatasetAssociation.table.c.id)) + model.LibraryDatasetDatasetAssociation.table.c.id)) ), viewonly=True, uselist=True) @@ -1971,28 +1971,28 @@ mapper(model.LibraryDatasetDatasetAssociation, model.LibraryDatasetDatasetAssoci user=relation(model.User), copied_from_library_dataset_dataset_association=relation(model.LibraryDatasetDatasetAssociation, primaryjoin=(model.LibraryDatasetDatasetAssociation.table.c.copied_from_library_dataset_dataset_association_id == - model.LibraryDatasetDatasetAssociation.table.c.id), + model.LibraryDatasetDatasetAssociation.table.c.id), remote_side=[model.LibraryDatasetDatasetAssociation.table.c.id], uselist=False), copied_to_library_dataset_dataset_associations=relation(model.LibraryDatasetDatasetAssociation, primaryjoin=(model.LibraryDatasetDatasetAssociation.table.c.copied_from_library_dataset_dataset_association_id == - model.LibraryDatasetDatasetAssociation.table.c.id)), + model.LibraryDatasetDatasetAssociation.table.c.id)), copied_from_history_dataset_association=relation(model.HistoryDatasetAssociation, primaryjoin=(model.LibraryDatasetDatasetAssociation.table.c.copied_from_history_dataset_association_id == - model.HistoryDatasetAssociation.table.c.id), + model.HistoryDatasetAssociation.table.c.id), uselist=False), copied_to_history_dataset_associations=relation(model.HistoryDatasetAssociation, primaryjoin=(model.HistoryDatasetAssociation.table.c.copied_from_library_dataset_dataset_association_id == - model.LibraryDatasetDatasetAssociation.table.c.id)), + model.LibraryDatasetDatasetAssociation.table.c.id)), implicitly_converted_datasets=relation(model.ImplicitlyConvertedDatasetAssociation, primaryjoin=(model.ImplicitlyConvertedDatasetAssociation.table.c.ldda_parent_id == - model.LibraryDatasetDatasetAssociation.table.c.id)), + model.LibraryDatasetDatasetAssociation.table.c.id)), children=relation(model.LibraryDatasetDatasetAssociation, primaryjoin=(model.LibraryDatasetDatasetAssociation.table.c.parent_id == model.LibraryDatasetDatasetAssociation.table.c.id), backref=backref("parent", primaryjoin=(model.LibraryDatasetDatasetAssociation.table.c.parent_id == - model.LibraryDatasetDatasetAssociation.table.c.id), + model.LibraryDatasetDatasetAssociation.table.c.id), remote_side=[model.LibraryDatasetDatasetAssociation.table.c.id])), visible_children=relation(model.LibraryDatasetDatasetAssociation, primaryjoin=( @@ -2013,7 +2013,7 @@ mapper(model.LibraryDatasetDatasetInfoAssociation, model.LibraryDatasetDatasetIn library_dataset_dataset_association=relation(model.LibraryDatasetDatasetAssociation, primaryjoin=( (model.LibraryDatasetDatasetInfoAssociation.table.c.library_dataset_dataset_association_id == - model.LibraryDatasetDatasetAssociation.table.c.id) & + model.LibraryDatasetDatasetAssociation.table.c.id) & (not_(model.LibraryDatasetDatasetInfoAssociation.table.c.deleted)) ), backref="info_association"), @@ -2086,7 +2086,7 @@ simple_mapping(model.TaskMetricNumeric, simple_mapping(model.ImplicitlyCreatedDatasetCollectionInput, input_dataset_collection=relation(model.HistoryDatasetCollectionAssociation, primaryjoin=((model.HistoryDatasetCollectionAssociation.table.c.id == - model.ImplicitlyCreatedDatasetCollectionInput.table.c.input_dataset_collection_id)), + model.ImplicitlyCreatedDatasetCollectionInput.table.c.input_dataset_collection_id)), # backref="implicitly_created_dataset_collections", ), ) @@ -2170,15 +2170,15 @@ simple_mapping(model.HistoryDatasetCollectionAssociation, backref='dataset_collections'), copied_from_history_dataset_collection_association=relation(model.HistoryDatasetCollectionAssociation, primaryjoin=(model.HistoryDatasetCollectionAssociation.table.c.copied_from_history_dataset_collection_association_id == - model.HistoryDatasetCollectionAssociation.table.c.id), + model.HistoryDatasetCollectionAssociation.table.c.id), remote_side=[model.HistoryDatasetCollectionAssociation.table.c.id], uselist=False), copied_to_history_dataset_collection_associations=relation(model.HistoryDatasetCollectionAssociation, primaryjoin=(model.HistoryDatasetCollectionAssociation.table.c.copied_from_history_dataset_collection_association_id == - model.HistoryDatasetCollectionAssociation.table.c.id)), + model.HistoryDatasetCollectionAssociation.table.c.id)), implicit_input_collections=relation(model.ImplicitlyCreatedDatasetCollectionInput, primaryjoin=((model.HistoryDatasetCollectionAssociation.table.c.id == - model.ImplicitlyCreatedDatasetCollectionInput.table.c.dataset_collection_id)), + model.ImplicitlyCreatedDatasetCollectionInput.table.c.dataset_collection_id)), backref="dataset_collection", ), tags=relation(model.HistoryDatasetCollectionTagAssociation, @@ -2294,7 +2294,7 @@ mapper(model.StoredWorkflow, model.StoredWorkflow.table, properties=dict( owner_tags=relation(model.StoredWorkflowTagAssociation, primaryjoin=( and_(model.StoredWorkflow.table.c.id == model.StoredWorkflowTagAssociation.table.c.stored_workflow_id, - model.StoredWorkflow.table.c.user_id == model.StoredWorkflowTagAssociation.table.c.user_id) + model.StoredWorkflow.table.c.user_id == model.StoredWorkflowTagAssociation.table.c.user_id) ), order_by=model.StoredWorkflowTagAssociation.table.c.id), annotations=relation(model.StoredWorkflowAnnotationAssociation, @@ -2411,8 +2411,8 @@ mapper(model.Page, model.Page.table, properties=dict( model.Page.users_shared_with_dot_users = association_proxy('users_shared_with', 'user') mapper(model.PageUserShareAssociation, model.PageUserShareAssociation.table, - properties=dict(user=relation(model.User, backref='pages_shared_by_others'), - page=relation(model.Page, backref='users_shared_with'))) + properties=dict(user=relation(model.User, backref='pages_shared_by_others'), + page=relation(model.Page, backref='users_shared_with'))) mapper(model.VisualizationRevision, model.VisualizationRevision.table) diff --git a/lib/galaxy/model/metadata.py b/lib/galaxy/model/metadata.py index c1d7dd79e1d..9e661bee75b 100644 --- a/lib/galaxy/model/metadata.py +++ b/lib/galaxy/model/metadata.py @@ -310,8 +310,8 @@ class MetadataElementSpec(object): is a MetadataSpecCollection) of datatype. """ def __init__(self, datatype, name=None, desc=None, - param=MetadataParameter, default=None, no_value=None, - visible=True, set_in_upload=False, **kwargs): + param=MetadataParameter, default=None, no_value=None, + visible=True, set_in_upload=False, **kwargs): self.name = name self.desc = desc or name self.default = default @@ -605,10 +605,10 @@ class FileParameter(MetadataParameter): # directory. Correct. file_name = path_rewriter(file_name) parent.dataset.object_store.update_from_file(mf, - file_name=file_name, - extra_dir='_metadata_files', - extra_dir_at_root=True, - alt_name=os.path.basename(mf.file_name)) + file_name=file_name, + extra_dir='_metadata_files', + extra_dir_at_root=True, + alt_name=os.path.basename(mf.file_name)) os.unlink(file_name) value = mf.id return value @@ -654,8 +654,8 @@ class MetadataTempFile(object): def to_JSON(self): return {'__class__': self.__class__.__name__, - 'filename': self.file_name, - 'kwds': self.kwds} + 'filename': self.file_name, + 'kwds': self.kwds} @classmethod def from_JSON(cls, json_dict): @@ -699,14 +699,14 @@ class JobExternalOutputMetadataWrapper(object): if isinstance(dataset, galaxy.model.HistoryDatasetAssociation): return sa_session.query(galaxy.model.JobExternalOutputMetadata) \ .filter_by(job_id=self.job_id, - history_dataset_association_id=dataset.id, - is_valid=True) \ + history_dataset_association_id=dataset.id, + is_valid=True) \ .first() # there should only be one or None elif isinstance(dataset, galaxy.model.LibraryDatasetDatasetAssociation): return sa_session.query(galaxy.model.JobExternalOutputMetadata) \ .filter_by(job_id=self.job_id, - library_dataset_dataset_association_id=dataset.id, - is_valid=True) \ + library_dataset_dataset_association_id=dataset.id, + is_valid=True) \ .first() # there should only be one or None return None @@ -726,12 +726,12 @@ class JobExternalOutputMetadataWrapper(object): jeom = self.get_output_filenames_by_dataset(dataset, sa_session) def setup_external_metadata(self, datasets, sa_session, exec_dir=None, - tmp_dir=None, dataset_files_path=None, - output_fnames=None, config_root=None, - config_file=None, datatypes_config=None, - job_metadata=None, compute_tmp_dir=None, - include_command=True, max_metadata_value_size=0, - kwds=None): + tmp_dir=None, dataset_files_path=None, + output_fnames=None, config_root=None, + config_file=None, datatypes_config=None, + job_metadata=None, compute_tmp_dir=None, + include_command=True, max_metadata_value_size=0, + kwds=None): kwds = kwds or {} if tmp_dir is None: tmp_dir = MetadataTempFile.tmp_dir @@ -834,9 +834,9 @@ class JobExternalOutputMetadataWrapper(object): sa_session.flush() metadata_files_list.append(metadata_files) args = '"%s" "%s" %s %s' % (datatypes_config, - job_metadata, - " ".join(map(__metadata_files_list_to_cmd_line, metadata_files_list)), - max_metadata_value_size) + job_metadata, + " ".join(map(__metadata_files_list_to_cmd_line, metadata_files_list)), + max_metadata_value_size) if include_command: # return command required to build fd, fp = tempfile.mkstemp(suffix='.py', dir=tmp_dir, prefix="set_metadata_") @@ -864,10 +864,10 @@ class JobExternalOutputMetadataWrapper(object): MetadataTempFile.cleanup_from_JSON_dict_filename(metadata_files.filename_out) dataset_key = self.get_dataset_metadata_key(metadata_files.dataset) for key, fname in [('filename_in', metadata_files.filename_in), - ('filename_out', metadata_files.filename_out), - ('filename_results_code', metadata_files.filename_results_code), - ('filename_kwds', metadata_files.filename_kwds), - ('filename_override_metadata', metadata_files.filename_override_metadata)]: + ('filename_out', metadata_files.filename_out), + ('filename_results_code', metadata_files.filename_results_code), + ('filename_kwds', metadata_files.filename_kwds), + ('filename_override_metadata', metadata_files.filename_override_metadata)]: try: os.remove(fname) except Exception as e: diff --git a/lib/galaxy/model/migrate/check.py b/lib/galaxy/model/migrate/check.py index 8c82dc896c5..9674b75c0cb 100644 --- a/lib/galaxy/model/migrate/check.py +++ b/lib/galaxy/model/migrate/check.py @@ -94,7 +94,7 @@ def create_or_verify_database(url, galaxy_config_file, engine_options={}, app=No if galaxy_config_file and os.path.abspath(os.path.join(os.getcwd(), 'config', 'galaxy.ini')) != galaxy_config_file: config_arg = ' -c %s' % galaxy_config_file.replace(os.path.abspath(os.getcwd()), '.') raise Exception("Your database has version '%d' but this code expects version '%d'. Please backup your database and then migrate the schema by running 'sh manage_db.sh%s upgrade'." - % (db_schema.version, migrate_repository.versions.latest, config_arg)) + % (db_schema.version, migrate_repository.versions.latest, config_arg)) else: log.info("At database version %d" % db_schema.version) diff --git a/lib/galaxy/model/migrate/versions/0001_initial_tables.py b/lib/galaxy/model/migrate/versions/0001_initial_tables.py index 3d4d66f57bf..426cb5e17cf 100644 --- a/lib/galaxy/model/migrate/versions/0001_initial_tables.py +++ b/lib/galaxy/model/migrate/versions/0001_initial_tables.py @@ -150,7 +150,7 @@ StoredWorkflow_table = Table("stored_workflow", metadata, Column("update_time", DateTime, default=now, onupdate=now), Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), Column("latest_workflow_id", Integer, - ForeignKey("workflow.id", use_alter=True, name='stored_workflow_latest_workflow_id_fk'), index=True), + ForeignKey("workflow.id", use_alter=True, name='stored_workflow_latest_workflow_id_fk'), index=True), Column("name", TEXT), Column("deleted", Boolean, default=False)) diff --git a/lib/galaxy/model/migrate/versions/0003_security_and_libraries.py b/lib/galaxy/model/migrate/versions/0003_security_and_libraries.py index 98e55308099..576ac169b2e 100644 --- a/lib/galaxy/model/migrate/versions/0003_security_and_libraries.py +++ b/lib/galaxy/model/migrate/versions/0003_security_and_libraries.py @@ -423,8 +423,8 @@ def upgrade(migrate_engine): if HistoryDatasetAssociation_table is not None and LibraryDatasetDatasetAssociation_table is not None: try: cons = ForeignKeyConstraint([HistoryDatasetAssociation_table.c.copied_from_library_dataset_dataset_association_id], - [LibraryDatasetDatasetAssociation_table.c.id], - name='history_dataset_association_copied_from_library_dataset_da_fkey') + [LibraryDatasetDatasetAssociation_table.c.id], + name='history_dataset_association_copied_from_library_dataset_da_fkey') # Create the constraint cons.create() except Exception: @@ -445,8 +445,8 @@ def upgrade(migrate_engine): if MetadataFile_table is not None and LibraryDatasetDatasetAssociation_table is not None: try: cons = ForeignKeyConstraint([MetadataFile_table.c.lda_id], - [LibraryDatasetDatasetAssociation_table.c.id], - name='metadata_file_lda_id_fkey') + [LibraryDatasetDatasetAssociation_table.c.id], + name='metadata_file_lda_id_fkey') # Create the constraint cons.create() except Exception: @@ -553,8 +553,8 @@ def downgrade(migrate_engine): if MetadataFile_table is not None and LibraryDatasetDatasetAssociation_table is not None: try: cons = ForeignKeyConstraint([MetadataFile_table.c.lda_id], - [LibraryDatasetDatasetAssociation_table.c.id], - name='metadata_file_lda_id_fkey') + [LibraryDatasetDatasetAssociation_table.c.id], + name='metadata_file_lda_id_fkey') # Drop the constraint cons.drop() except Exception: @@ -573,8 +573,8 @@ def downgrade(migrate_engine): if HistoryDatasetAssociation_table is not None and LibraryDatasetDatasetAssociation_table is not None: try: cons = ForeignKeyConstraint([HistoryDatasetAssociation_table.c.copied_from_library_dataset_dataset_association_id], - [LibraryDatasetDatasetAssociation_table.c.id], - name='history_dataset_association_copied_from_library_dataset_da_fkey') + [LibraryDatasetDatasetAssociation_table.c.id], + name='history_dataset_association_copied_from_library_dataset_da_fkey') # Drop the constraint cons.drop() except Exception: diff --git a/lib/galaxy/model/migrate/versions/0005_cleanup_datasets_fix.py b/lib/galaxy/model/migrate/versions/0005_cleanup_datasets_fix.py index 78fd25a3711..485a9904d07 100644 --- a/lib/galaxy/model/migrate/versions/0005_cleanup_datasets_fix.py +++ b/lib/galaxy/model/migrate/versions/0005_cleanup_datasets_fix.py @@ -39,13 +39,13 @@ def directory_hash_id(id): class Dataset(object): states = Bunch(NEW='new', - UPLOAD='upload', - QUEUED='queued', - RUNNING='running', - OK='ok', - EMPTY='empty', - ERROR='error', - DISCARDED='discarded') + UPLOAD='upload', + QUEUED='queued', + RUNNING='running', + OK='ok', + EMPTY='empty', + ERROR='error', + DISCARDED='discarded') permitted_actions = get_permitted_actions(filter='DATASET') file_path = "/tmp/" engine = None @@ -142,8 +142,8 @@ class DatasetInstance(object): permitted_actions = Dataset.permitted_actions def __init__(self, id=None, hid=None, name=None, info=None, blurb=None, peek=None, extension=None, - dbkey=None, metadata=None, history=None, dataset=None, deleted=False, designation=None, - parent_id=None, validation_errors=None, visible=True, create_dataset=False): + dbkey=None, metadata=None, history=None, dataset=None, deleted=False, designation=None, + parent_id=None, validation_errors=None, visible=True, create_dataset=False): self.name = name or "Unnamed dataset" self.id = id self.info = info @@ -325,11 +325,11 @@ class DatasetInstance(object): class HistoryDatasetAssociation(DatasetInstance): def __init__(self, - hid=None, - history=None, - copied_from_history_dataset_association=None, - copied_from_library_dataset_dataset_association=None, - **kwd): + hid=None, + history=None, + copied_from_history_dataset_association=None, + copied_from_library_dataset_dataset_association=None, + **kwd): DatasetInstance.__init__(self, **kwd) self.hid = hid # Relationships @@ -339,18 +339,18 @@ class HistoryDatasetAssociation(DatasetInstance): def copy(self, copy_children=False, parent_id=None, target_history=None): hda = HistoryDatasetAssociation(hid=self.hid, - name=self.name, - info=self.info, - blurb=self.blurb, - peek=self.peek, - extension=self.extension, - dbkey=self.dbkey, - dataset=self.dataset, - visible=self.visible, - deleted=self.deleted, - parent_id=parent_id, - copied_from_history_dataset_association=self, - history=target_history) + name=self.name, + info=self.info, + blurb=self.blurb, + peek=self.peek, + extension=self.extension, + dbkey=self.dbkey, + dataset=self.dataset, + visible=self.visible, + deleted=self.deleted, + parent_id=parent_id, + copied_from_history_dataset_association=self, + history=target_history) context.add(hda) context.flush() hda.set_size() @@ -376,18 +376,18 @@ class HistoryDatasetAssociation(DatasetInstance): context.add(library_dataset) context.flush() ldda = LibraryDatasetDatasetAssociation(name=self.name, - info=self.info, - blurb=self.blurb, - peek=self.peek, - extension=self.extension, - dbkey=self.dbkey, - dataset=self.dataset, - library_dataset=library_dataset, - visible=self.visible, - deleted=self.deleted, - parent_id=parent_id, - copied_from_history_dataset_association=self, - user=self.history.user) + info=self.info, + blurb=self.blurb, + peek=self.peek, + extension=self.extension, + dbkey=self.dbkey, + dataset=self.dataset, + library_dataset=library_dataset, + visible=self.visible, + deleted=self.deleted, + parent_id=parent_id, + copied_from_history_dataset_association=self, + user=self.history.user) context.add(ldda) context.flush() # Permissions must be the same on the LibraryDatasetDatasetAssociation and the associated LibraryDataset @@ -417,11 +417,11 @@ class HistoryDatasetAssociation(DatasetInstance): class LibraryDatasetDatasetAssociation(DatasetInstance): def __init__(self, - copied_from_history_dataset_association=None, - copied_from_library_dataset_dataset_association=None, - library_dataset=None, - user=None, - **kwd): + copied_from_history_dataset_association=None, + copied_from_library_dataset_dataset_association=None, + library_dataset=None, + user=None, + **kwd): DatasetInstance.__init__(self, **kwd) self.copied_from_history_dataset_association = copied_from_history_dataset_association self.copied_from_library_dataset_dataset_association = copied_from_library_dataset_dataset_association @@ -431,18 +431,18 @@ class LibraryDatasetDatasetAssociation(DatasetInstance): def to_history_dataset_association(self, target_history, parent_id=None): hid = target_history._next_hid() hda = HistoryDatasetAssociation(name=self.name, - info=self.info, - blurb=self.blurb, - peek=self.peek, - extension=self.extension, - dbkey=self.dbkey, - dataset=self.dataset, - visible=self.visible, - deleted=self.deleted, - parent_id=parent_id, - copied_from_library_dataset_dataset_association=self, - history=target_history, - hid=hid) + info=self.info, + blurb=self.blurb, + peek=self.peek, + extension=self.extension, + dbkey=self.dbkey, + dataset=self.dataset, + visible=self.visible, + deleted=self.deleted, + parent_id=parent_id, + copied_from_library_dataset_dataset_association=self, + history=target_history, + hid=hid) context.add(hda) context.flush() hda.metadata = self.metadata # need to set after flushed, as MetadataFiles require dataset.id @@ -455,17 +455,17 @@ class LibraryDatasetDatasetAssociation(DatasetInstance): def copy(self, copy_children=False, parent_id=None, target_folder=None): ldda = LibraryDatasetDatasetAssociation(name=self.name, - info=self.info, - blurb=self.blurb, - peek=self.peek, - extension=self.extension, - dbkey=self.dbkey, - dataset=self.dataset, - visible=self.visible, - deleted=self.deleted, - parent_id=parent_id, - copied_from_library_dataset_dataset_association=self, - folder=target_folder) + info=self.info, + blurb=self.blurb, + peek=self.peek, + extension=self.extension, + dbkey=self.dbkey, + dataset=self.dataset, + visible=self.visible, + deleted=self.deleted, + parent_id=parent_id, + copied_from_library_dataset_dataset_association=self, + folder=target_folder) context.add(ldda) context.flush() # Need to set after flushed, as MetadataFiles require dataset.id diff --git a/lib/galaxy/model/migrate/versions/0007_sharing_histories.py b/lib/galaxy/model/migrate/versions/0007_sharing_histories.py index 08abd1d11d3..1d6d3051e43 100644 --- a/lib/galaxy/model/migrate/versions/0007_sharing_histories.py +++ b/lib/galaxy/model/migrate/versions/0007_sharing_histories.py @@ -22,9 +22,9 @@ log.addHandler(handler) metadata = MetaData() HistoryUserShareAssociation_table = Table("history_user_share_association", metadata, - Column("id", Integer, primary_key=True), - Column("history_id", Integer, ForeignKey("history.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("history_id", Integer, ForeignKey("history.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0008_galaxy_forms.py b/lib/galaxy/model/migrate/versions/0008_galaxy_forms.py index b78d35caf30..59d80835b4d 100644 --- a/lib/galaxy/model/migrate/versions/0008_galaxy_forms.py +++ b/lib/galaxy/model/migrate/versions/0008_galaxy_forms.py @@ -121,8 +121,8 @@ def upgrade(migrate_engine): if FormDefinitionCurrent_table is not None and FormDefinition_table is not None: try: cons = ForeignKeyConstraint([FormDefinitionCurrent_table.c.latest_form_id], - [FormDefinition_table.c.id], - name='form_definition_current_latest_form_id_fk') + [FormDefinition_table.c.id], + name='form_definition_current_latest_form_id_fk') # Create the constraint cons.create() except Exception: diff --git a/lib/galaxy/model/migrate/versions/0010_hda_display_at_authz_table.py b/lib/galaxy/model/migrate/versions/0010_hda_display_at_authz_table.py index d1f20de26b8..65d38a5d4a9 100644 --- a/lib/galaxy/model/migrate/versions/0010_hda_display_at_authz_table.py +++ b/lib/galaxy/model/migrate/versions/0010_hda_display_at_authz_table.py @@ -30,12 +30,12 @@ log.addHandler(handler) metadata = MetaData() HistoryDatasetAssociationDisplayAtAuthorization_table = Table("history_dataset_association_display_at_authorization", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, index=True, default=now, onupdate=now), - Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("site", TrimmedString(255))) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, index=True, default=now, onupdate=now), + Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("site", TrimmedString(255))) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0011_v0010_mysql_index_fix.py b/lib/galaxy/model/migrate/versions/0011_v0010_mysql_index_fix.py index 645d7b585f6..6f70f50794e 100644 --- a/lib/galaxy/model/migrate/versions/0011_v0010_mysql_index_fix.py +++ b/lib/galaxy/model/migrate/versions/0011_v0010_mysql_index_fix.py @@ -26,12 +26,12 @@ log.addHandler(handler) metadata = MetaData() HistoryDatasetAssociationDisplayAtAuthorization_table = Table("history_dataset_association_display_at_authorization", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, index=True, default=now, onupdate=now), - Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("site", TrimmedString(255))) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, index=True, default=now, onupdate=now), + Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("site", TrimmedString(255))) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0012_user_address.py b/lib/galaxy/model/migrate/versions/0012_user_address.py index 8dc7c85ed25..b3919c91d21 100644 --- a/lib/galaxy/model/migrate/versions/0012_user_address.py +++ b/lib/galaxy/model/migrate/versions/0012_user_address.py @@ -27,21 +27,21 @@ log.addHandler(handler) metadata = MetaData() UserAddress_table = Table("user_address", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("desc", TEXT), - Column("name", TrimmedString(255), nullable=False), - Column("institution", TrimmedString(255)), - Column("address", TrimmedString(255), nullable=False), - Column("city", TrimmedString(255), nullable=False), - Column("state", TrimmedString(255), nullable=False), - Column("postal_code", TrimmedString(255), nullable=False), - Column("country", TrimmedString(255), nullable=False), - Column("phone", TrimmedString(255)), - Column("deleted", Boolean, index=True, default=False), - Column("purged", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("desc", TEXT), + Column("name", TrimmedString(255), nullable=False), + Column("institution", TrimmedString(255)), + Column("address", TrimmedString(255), nullable=False), + Column("city", TrimmedString(255), nullable=False), + Column("state", TrimmedString(255), nullable=False), + Column("postal_code", TrimmedString(255), nullable=False), + Column("country", TrimmedString(255), nullable=False), + Column("phone", TrimmedString(255)), + Column("deleted", Boolean, index=True, default=False), + Column("purged", Boolean, index=True, default=False)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0013_change_lib_item_templates_to_forms.py b/lib/galaxy/model/migrate/versions/0013_change_lib_item_templates_to_forms.py index cbd52ac2713..3e0733e2afa 100644 --- a/lib/galaxy/model/migrate/versions/0013_change_lib_item_templates_to_forms.py +++ b/lib/galaxy/model/migrate/versions/0013_change_lib_item_templates_to_forms.py @@ -33,22 +33,22 @@ log.addHandler(handler) metadata = MetaData() LibraryInfoAssociation_table = Table('library_info_association', metadata, - Column("id", Integer, primary_key=True), - Column("library_id", Integer, ForeignKey("library.id"), index=True), - Column("form_definition_id", Integer, ForeignKey("form_definition.id"), index=True), - Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("library_id", Integer, ForeignKey("library.id"), index=True), + Column("form_definition_id", Integer, ForeignKey("form_definition.id"), index=True), + Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True)) LibraryFolderInfoAssociation_table = Table('library_folder_info_association', metadata, - Column("id", Integer, primary_key=True), - Column("library_folder_id", Integer, ForeignKey("library_folder.id"), nullable=True, index=True), - Column("form_definition_id", Integer, ForeignKey("form_definition.id"), index=True), - Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("library_folder_id", Integer, ForeignKey("library_folder.id"), nullable=True, index=True), + Column("form_definition_id", Integer, ForeignKey("form_definition.id"), index=True), + Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True)) LibraryDatasetDatasetInfoAssociation_table = Table('library_dataset_dataset_info_association', metadata, - Column("id", Integer, primary_key=True), - Column("library_dataset_dataset_association_id", Integer, ForeignKey("library_dataset_dataset_association.id"), nullable=True, index=True), - Column("form_definition_id", Integer, ForeignKey("form_definition.id"), index=True), - Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("library_dataset_dataset_association_id", Integer, ForeignKey("library_dataset_dataset_association.id"), nullable=True, index=True), + Column("form_definition_id", Integer, ForeignKey("form_definition.id"), index=True), + Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0014_pages.py b/lib/galaxy/model/migrate/versions/0014_pages.py index 22ee5d62fdd..728c22c7d53 100644 --- a/lib/galaxy/model/migrate/versions/0014_pages.py +++ b/lib/galaxy/model/migrate/versions/0014_pages.py @@ -15,22 +15,22 @@ log = logging.getLogger(__name__) metadata = MetaData() Page_table = Table("page", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("latest_revision_id", Integer, - ForeignKey("page_revision.id", use_alter=True, name='page_latest_revision_id_fk'), index=True), - Column("title", TEXT), - Column("slug", TEXT, unique=True, index=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("latest_revision_id", Integer, + ForeignKey("page_revision.id", use_alter=True, name='page_latest_revision_id_fk'), index=True), + Column("title", TEXT), + Column("slug", TEXT, unique=True, index=True)) PageRevision_table = Table("page_revision", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("page_id", Integer, ForeignKey("page.id"), index=True, nullable=False), - Column("title", TEXT), - Column("content", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("page_id", Integer, ForeignKey("page.id"), index=True, nullable=False), + Column("title", TEXT), + Column("content", TEXT)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0015_tagging.py b/lib/galaxy/model/migrate/versions/0015_tagging.py index 1a3a311a10e..6a4e6fb7a06 100644 --- a/lib/galaxy/model/migrate/versions/0015_tagging.py +++ b/lib/galaxy/model/migrate/versions/0015_tagging.py @@ -23,32 +23,32 @@ metadata = MetaData() # New tables to support tagging of histories, datasets, and history-dataset associations. Tag_table = Table("tag", metadata, - Column("id", Integer, primary_key=True), - Column("type", Integer), - Column("parent_id", Integer, ForeignKey("tag.id")), - Column("name", TrimmedString(255)), - UniqueConstraint("name")) + Column("id", Integer, primary_key=True), + Column("type", Integer), + Column("parent_id", Integer, ForeignKey("tag.id")), + Column("name", TrimmedString(255)), + UniqueConstraint("name")) HistoryTagAssociation_table = Table("history_tag_association", metadata, - Column("history_id", Integer, ForeignKey("history.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_tname", TrimmedString(255), index=True), - Column("value", TrimmedString(255), index=True), - Column("user_value", TrimmedString(255), index=True)) + Column("history_id", Integer, ForeignKey("history.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_tname", TrimmedString(255), index=True), + Column("value", TrimmedString(255), index=True), + Column("user_value", TrimmedString(255), index=True)) DatasetTagAssociation_table = Table("dataset_tag_association", metadata, - Column("dataset_id", Integer, ForeignKey("dataset.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_tname", TrimmedString(255), index=True), - Column("value", TrimmedString(255), index=True), - Column("user_value", TrimmedString(255), index=True)) + Column("dataset_id", Integer, ForeignKey("dataset.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_tname", TrimmedString(255), index=True), + Column("value", TrimmedString(255), index=True), + Column("user_value", TrimmedString(255), index=True)) HistoryDatasetAssociationTagAssociation_table = Table("history_dataset_association_tag_association", metadata, - Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_tname", TrimmedString(255), index=True), - Column("value", TrimmedString(255), index=True), - Column("user_value", TrimmedString(255), index=True)) + Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_tname", TrimmedString(255), index=True), + Column("value", TrimmedString(255), index=True), + Column("user_value", TrimmedString(255), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0016_v0015_mysql_index_fix.py b/lib/galaxy/model/migrate/versions/0016_v0015_mysql_index_fix.py index f050f4956ba..6f5214e0723 100644 --- a/lib/galaxy/model/migrate/versions/0016_v0015_mysql_index_fix.py +++ b/lib/galaxy/model/migrate/versions/0016_v0015_mysql_index_fix.py @@ -17,11 +17,11 @@ metadata = MetaData() HistoryDatasetAssociationTagAssociation_table = Table("history_dataset_association_tag_association", metadata, - Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_tname", TrimmedString(255), index=True), - Column("value", TrimmedString(255), index=True), - Column("user_value", TrimmedString(255), index=True)) + Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_tname", TrimmedString(255), index=True), + Column("value", TrimmedString(255), index=True), + Column("user_value", TrimmedString(255), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0018_ordered_tags_and_page_tags.py b/lib/galaxy/model/migrate/versions/0018_ordered_tags_and_page_tags.py index 5fc0dbc034b..7c5b4d614a0 100644 --- a/lib/galaxy/model/migrate/versions/0018_ordered_tags_and_page_tags.py +++ b/lib/galaxy/model/migrate/versions/0018_ordered_tags_and_page_tags.py @@ -16,36 +16,36 @@ log = logging.getLogger(__name__) metadata = MetaData() HistoryTagAssociation_table = Table("history_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("history_id", Integer, ForeignKey("history.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_tname", TrimmedString(255), index=True), - Column("value", TrimmedString(255), index=True), - Column("user_value", TrimmedString(255), index=True)) + Column("id", Integer, primary_key=True), + Column("history_id", Integer, ForeignKey("history.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_tname", TrimmedString(255), index=True), + Column("value", TrimmedString(255), index=True), + Column("user_value", TrimmedString(255), index=True)) DatasetTagAssociation_table = Table("dataset_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("dataset_id", Integer, ForeignKey("dataset.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_tname", TrimmedString(255), index=True), - Column("value", TrimmedString(255), index=True), - Column("user_value", TrimmedString(255), index=True)) + Column("id", Integer, primary_key=True), + Column("dataset_id", Integer, ForeignKey("dataset.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_tname", TrimmedString(255), index=True), + Column("value", TrimmedString(255), index=True), + Column("user_value", TrimmedString(255), index=True)) HistoryDatasetAssociationTagAssociation_table = Table("history_dataset_association_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_tname", TrimmedString(255), index=True), - Column("value", TrimmedString(255), index=True), - Column("user_value", TrimmedString(255), index=True)) + Column("id", Integer, primary_key=True), + Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_tname", TrimmedString(255), index=True), + Column("value", TrimmedString(255), index=True), + Column("user_value", TrimmedString(255), index=True)) PageTagAssociation_table = Table("page_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("page_id", Integer, ForeignKey("page.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_tname", TrimmedString(255), index=True), - Column("value", TrimmedString(255), index=True), - Column("user_value", TrimmedString(255), index=True)) + Column("id", Integer, primary_key=True), + Column("page_id", Integer, ForeignKey("page.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_tname", TrimmedString(255), index=True), + Column("value", TrimmedString(255), index=True), + Column("user_value", TrimmedString(255), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0019_request_library_folder.py b/lib/galaxy/model/migrate/versions/0019_request_library_folder.py index c563ef6d687..8033940322d 100644 --- a/lib/galaxy/model/migrate/versions/0019_request_library_folder.py +++ b/lib/galaxy/model/migrate/versions/0019_request_library_folder.py @@ -52,8 +52,8 @@ def upgrade(migrate_engine): if migrate_engine.name != 'sqlite' and Request_table is not None and LibraryFolder_table is not None: try: cons = ForeignKeyConstraint([Request_table.c.folder_id], - [LibraryFolder_table.c.id], - name='request_folder_id_fk') + [LibraryFolder_table.c.id], + name='request_folder_id_fk') # Create the constraint cons.create() except Exception: diff --git a/lib/galaxy/model/migrate/versions/0020_library_upload_job.py b/lib/galaxy/model/migrate/versions/0020_library_upload_job.py index d9dd5c1fcc7..ad8b07312c4 100644 --- a/lib/galaxy/model/migrate/versions/0020_library_upload_job.py +++ b/lib/galaxy/model/migrate/versions/0020_library_upload_job.py @@ -25,10 +25,10 @@ log.addHandler(handler) metadata = MetaData() JobToOutputLibraryDatasetAssociation_table = Table("job_to_output_library_dataset", metadata, - Column("id", Integer, primary_key=True), - Column("job_id", Integer, ForeignKey("job.id"), index=True), - Column("ldda_id", Integer, ForeignKey("library_dataset_dataset_association.id"), index=True), - Column("name", String(255))) + Column("id", Integer, primary_key=True), + Column("job_id", Integer, ForeignKey("job.id"), index=True), + Column("ldda_id", Integer, ForeignKey("library_dataset_dataset_association.id"), index=True), + Column("name", String(255))) def upgrade(migrate_engine): @@ -65,8 +65,8 @@ def upgrade(migrate_engine): if Job_table is not None and LibraryFolder_table is not None: try: cons = ForeignKeyConstraint([Job_table.c.library_folder_id], - [LibraryFolder_table.c.id], - name='job_library_folder_id_fk') + [LibraryFolder_table.c.id], + name='job_library_folder_id_fk') # Create the constraint cons.create() except Exception: diff --git a/lib/galaxy/model/migrate/versions/0021_user_prefs.py b/lib/galaxy/model/migrate/versions/0021_user_prefs.py index 516c4aea0f5..56e16457f0c 100644 --- a/lib/galaxy/model/migrate/versions/0021_user_prefs.py +++ b/lib/galaxy/model/migrate/versions/0021_user_prefs.py @@ -12,10 +12,10 @@ metadata = MetaData() # New table to support user preferences. UserPreference_table = Table("user_preference", metadata, - Column("id", Integer, primary_key=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("name", Unicode(255), index=True), - Column("value", Unicode(1024))) + Column("id", Integer, primary_key=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("name", Unicode(255), index=True), + Column("value", Unicode(1024))) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0022_visualization_tables.py b/lib/galaxy/model/migrate/versions/0022_visualization_tables.py index 7b43660421e..2e4ba13736c 100644 --- a/lib/galaxy/model/migrate/versions/0022_visualization_tables.py +++ b/lib/galaxy/model/migrate/versions/0022_visualization_tables.py @@ -14,22 +14,22 @@ log = logging.getLogger(__name__) metadata = MetaData() Visualization_table = Table("visualization", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("latest_revision_id", Integer, - ForeignKey("visualization_revision.id", use_alter=True, name='visualization_latest_revision_id_fk'), index=True), - Column("title", TEXT), - Column("type", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("latest_revision_id", Integer, + ForeignKey("visualization_revision.id", use_alter=True, name='visualization_latest_revision_id_fk'), index=True), + Column("title", TEXT), + Column("type", TEXT)) VisualizationRevision_table = Table("visualization_revision", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("visualization_id", Integer, ForeignKey("visualization.id"), index=True, nullable=False), - Column("title", TEXT), - Column("config", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("visualization_id", Integer, ForeignKey("visualization.id"), index=True, nullable=False), + Column("title", TEXT), + Column("config", TEXT)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0025_user_info.py b/lib/galaxy/model/migrate/versions/0025_user_info.py index 0ac05fcb45f..001a3c687c9 100644 --- a/lib/galaxy/model/migrate/versions/0025_user_info.py +++ b/lib/galaxy/model/migrate/versions/0025_user_info.py @@ -48,8 +48,8 @@ def upgrade(migrate_engine): if User_table is not None and FormValues_table is not None: try: cons = ForeignKeyConstraint([User_table.c.form_values_id], - [FormValues_table.c.id], - name='user_form_values_id_fk') + [FormValues_table.c.id], + name='user_form_values_id_fk') # Create the constraint cons.create() except Exception: diff --git a/lib/galaxy/model/migrate/versions/0026_cloud_tables.py b/lib/galaxy/model/migrate/versions/0026_cloud_tables.py index ada3905ddec..3331a27308c 100644 --- a/lib/galaxy/model/migrate/versions/0026_cloud_tables.py +++ b/lib/galaxy/model/migrate/versions/0026_cloud_tables.py @@ -13,113 +13,113 @@ log = logging.getLogger(__name__) metadata = MetaData() CloudImage_table = Table("cloud_image", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("provider_type", TEXT), - Column("image_id", TEXT, nullable=False), - Column("manifest", TEXT), - Column("state", TEXT), - Column("architecture", TEXT), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("provider_type", TEXT), + Column("image_id", TEXT, nullable=False), + Column("manifest", TEXT), + Column("state", TEXT), + Column("architecture", TEXT), + Column("deleted", Boolean, default=False)) """ UserConfiguredInstance (UCI) table """ UCI_table = Table("cloud_uci", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("credentials_id", Integer, ForeignKey("cloud_user_credentials.id"), index=True), - Column("key_pair_name", TEXT), - Column("key_pair_material", TEXT), - Column("name", TEXT), - Column("state", TEXT), - Column("error", TEXT), - Column("total_size", Integer), - Column("launch_time", DateTime), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("credentials_id", Integer, ForeignKey("cloud_user_credentials.id"), index=True), + Column("key_pair_name", TEXT), + Column("key_pair_material", TEXT), + Column("name", TEXT), + Column("state", TEXT), + Column("error", TEXT), + Column("total_size", Integer), + Column("launch_time", DateTime), + Column("deleted", Boolean, default=False)) CloudInstance_table = Table("cloud_instance", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("launch_time", DateTime), - Column("stop_time", DateTime), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True), - Column("type", TEXT), - Column("reservation_id", TEXT), - Column("instance_id", TEXT), - Column("mi_id", Integer, ForeignKey("cloud_image.id"), index=True), - Column("state", TEXT), - Column("error", TEXT), - Column("public_dns", TEXT), - Column("private_dns", TEXT), - Column("security_group", TEXT), - Column("availability_zone", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("launch_time", DateTime), + Column("stop_time", DateTime), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True), + Column("type", TEXT), + Column("reservation_id", TEXT), + Column("instance_id", TEXT), + Column("mi_id", Integer, ForeignKey("cloud_image.id"), index=True), + Column("state", TEXT), + Column("error", TEXT), + Column("public_dns", TEXT), + Column("private_dns", TEXT), + Column("security_group", TEXT), + Column("availability_zone", TEXT)) CloudStore_table = Table("cloud_store", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("attach_time", DateTime), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True, nullable=False), - Column("volume_id", TEXT), - Column("size", Integer, nullable=False), - Column("availability_zone", TEXT), - Column("inst_id", Integer, ForeignKey("cloud_instance.id")), - Column("status", TEXT), - Column("device", TEXT), - Column("space_consumed", Integer), - Column("error", TEXT), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("attach_time", DateTime), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True, nullable=False), + Column("volume_id", TEXT), + Column("size", Integer, nullable=False), + Column("availability_zone", TEXT), + Column("inst_id", Integer, ForeignKey("cloud_instance.id")), + Column("status", TEXT), + Column("device", TEXT), + Column("space_consumed", Integer), + Column("error", TEXT), + Column("deleted", Boolean, default=False)) CloudSnapshot_table = Table("cloud_snapshot", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True), - Column("store_id", Integer, ForeignKey("cloud_store.id"), index=True, nullable=False), - Column("snapshot_id", TEXT), - Column("status", TEXT), - Column("description", TEXT), - Column("error", TEXT), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True), + Column("store_id", Integer, ForeignKey("cloud_store.id"), index=True, nullable=False), + Column("snapshot_id", TEXT), + Column("status", TEXT), + Column("description", TEXT), + Column("error", TEXT), + Column("deleted", Boolean, default=False)) CloudUserCredentials_table = Table("cloud_user_credentials", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("provider_id", Integer, ForeignKey("cloud_provider.id"), index=True, nullable=False), - Column("name", TEXT), - Column("access_key", TEXT), - Column("secret_key", TEXT), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("provider_id", Integer, ForeignKey("cloud_provider.id"), index=True, nullable=False), + Column("name", TEXT), + Column("access_key", TEXT), + Column("secret_key", TEXT), + Column("deleted", Boolean, default=False)) CloudProvider_table = Table("cloud_provider", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("type", TEXT, nullable=False), - Column("name", TEXT), - Column("region_connection", TEXT), - Column("region_name", TEXT), - Column("region_endpoint", TEXT), - Column("is_secure", Boolean), - Column("host", TEXT), - Column("port", Integer), - Column("proxy", TEXT), - Column("proxy_port", TEXT), - Column("proxy_user", TEXT), - Column("proxy_pass", TEXT), - Column("debug", Integer), - Column("https_connection_factory", TEXT), - Column("path", TEXT), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("type", TEXT, nullable=False), + Column("name", TEXT), + Column("region_connection", TEXT), + Column("region_name", TEXT), + Column("region_endpoint", TEXT), + Column("is_secure", Boolean), + Column("host", TEXT), + Column("port", Integer), + Column("proxy", TEXT), + Column("proxy_port", TEXT), + Column("proxy_user", TEXT), + Column("proxy_pass", TEXT), + Column("debug", Integer), + Column("https_connection_factory", TEXT), + Column("path", TEXT), + Column("deleted", Boolean, default=False)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0029_user_actions.py b/lib/galaxy/model/migrate/versions/0029_user_actions.py index 9d6847fef9f..cf34cfe5111 100644 --- a/lib/galaxy/model/migrate/versions/0029_user_actions.py +++ b/lib/galaxy/model/migrate/versions/0029_user_actions.py @@ -14,13 +14,13 @@ metadata = MetaData() # New table to store user actions. UserAction_table = Table("user_action", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("session_id", Integer, ForeignKey("galaxy_session.id"), index=True), - Column("action", Unicode(255)), - Column("context", Unicode(512)), - Column("params", Unicode(1024))) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("session_id", Integer, ForeignKey("galaxy_session.id"), index=True), + Column("action", Unicode(255)), + Column("context", Unicode(512)), + Column("params", Unicode(1024))) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0031_community_and_workflow_tags.py b/lib/galaxy/model/migrate/versions/0031_community_and_workflow_tags.py index a3a8190add1..96f031b8a4a 100644 --- a/lib/galaxy/model/migrate/versions/0031_community_and_workflow_tags.py +++ b/lib/galaxy/model/migrate/versions/0031_community_and_workflow_tags.py @@ -12,22 +12,22 @@ log = logging.getLogger(__name__) metadata = MetaData() StoredWorkflowTagAssociation_table = Table("stored_workflow_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("stored_workflow_id", Integer, ForeignKey("stored_workflow.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("user_tname", Unicode(255), index=True), - Column("value", Unicode(255), index=True), - Column("user_value", Unicode(255), index=True)) + Column("id", Integer, primary_key=True), + Column("stored_workflow_id", Integer, ForeignKey("stored_workflow.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("user_tname", Unicode(255), index=True), + Column("value", Unicode(255), index=True), + Column("user_value", Unicode(255), index=True)) WorkflowTagAssociation_table = Table("workflow_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("workflow_id", Integer, ForeignKey("workflow.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("user_tname", Unicode(255), index=True), - Column("value", Unicode(255), index=True), - Column("user_value", Unicode(255), index=True)) + Column("id", Integer, primary_key=True), + Column("workflow_id", Integer, ForeignKey("workflow.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("user_tname", Unicode(255), index=True), + Column("value", Unicode(255), index=True), + Column("user_value", Unicode(255), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0034_page_user_share_association.py b/lib/galaxy/model/migrate/versions/0034_page_user_share_association.py index 866b8a6486f..b949e724d73 100644 --- a/lib/galaxy/model/migrate/versions/0034_page_user_share_association.py +++ b/lib/galaxy/model/migrate/versions/0034_page_user_share_association.py @@ -11,9 +11,9 @@ log = logging.getLogger(__name__) metadata = MetaData() PageUserShareAssociation_table = Table("page_user_share_association", metadata, - Column("id", Integer, primary_key=True), - Column("page_id", Integer, ForeignKey("page.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("page_id", Integer, ForeignKey("page.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0035_item_annotations_and_workflow_step_tags.py b/lib/galaxy/model/migrate/versions/0035_item_annotations_and_workflow_step_tags.py index b9366f3de81..2e675724e43 100644 --- a/lib/galaxy/model/migrate/versions/0035_item_annotations_and_workflow_step_tags.py +++ b/lib/galaxy/model/migrate/versions/0035_item_annotations_and_workflow_step_tags.py @@ -13,39 +13,39 @@ metadata = MetaData() # Annotation tables. HistoryAnnotationAssociation_table = Table("history_annotation_association", metadata, - Column("id", Integer, primary_key=True), - Column("history_id", Integer, ForeignKey("history.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("annotation", TEXT)) + Column("id", Integer, primary_key=True), + Column("history_id", Integer, ForeignKey("history.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("annotation", TEXT)) HistoryDatasetAssociationAnnotationAssociation_table = Table("history_dataset_association_annotation_association", metadata, - Column("id", Integer, primary_key=True), - Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("annotation", TEXT)) + Column("id", Integer, primary_key=True), + Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("annotation", TEXT)) StoredWorkflowAnnotationAssociation_table = Table("stored_workflow_annotation_association", metadata, - Column("id", Integer, primary_key=True), - Column("stored_workflow_id", Integer, ForeignKey("stored_workflow.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("annotation", TEXT)) + Column("id", Integer, primary_key=True), + Column("stored_workflow_id", Integer, ForeignKey("stored_workflow.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("annotation", TEXT)) WorkflowStepAnnotationAssociation_table = Table("workflow_step_annotation_association", metadata, - Column("id", Integer, primary_key=True), - Column("workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("annotation", TEXT)) + Column("id", Integer, primary_key=True), + Column("workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("annotation", TEXT)) # Tagging tables. WorkflowStepTagAssociation_table = Table("workflow_step_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("user_tname", Unicode(255), index=True), - Column("value", Unicode(255), index=True), - Column("user_value", Unicode(255), index=True)) + Column("id", Integer, primary_key=True), + Column("workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("user_tname", Unicode(255), index=True), + Column("value", Unicode(255), index=True), + Column("user_value", Unicode(255), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0037_samples_library.py b/lib/galaxy/model/migrate/versions/0037_samples_library.py index cc3608f94bc..6d3f935a4f0 100644 --- a/lib/galaxy/model/migrate/versions/0037_samples_library.py +++ b/lib/galaxy/model/migrate/versions/0037_samples_library.py @@ -59,15 +59,15 @@ def upgrade(migrate_engine): if migrate_engine.name == 'sqlite': # create a temporary table RequestTemp_table = Table('request_temp', metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("name", TrimmedString(255), nullable=False), - Column("desc", TEXT), - Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True), - Column("request_type_id", Integer, ForeignKey("request_type.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("deleted", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("name", TrimmedString(255), nullable=False), + Column("desc", TEXT), + Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True), + Column("request_type_id", Integer, ForeignKey("request_type.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("deleted", Boolean, index=True, default=False)) try: RequestTemp_table.create() except Exception: diff --git a/lib/galaxy/model/migrate/versions/0038_add_inheritable_column_to_library_template_assoc_tables.py b/lib/galaxy/model/migrate/versions/0038_add_inheritable_column_to_library_template_assoc_tables.py index 5230d4052b9..6241708a948 100644 --- a/lib/galaxy/model/migrate/versions/0038_add_inheritable_column_to_library_template_assoc_tables.py +++ b/lib/galaxy/model/migrate/versions/0038_add_inheritable_column_to_library_template_assoc_tables.py @@ -41,15 +41,15 @@ def upgrade(migrate_engine): metadata.reflect(only=['form_values', 'request_type', 'galaxy_user']) # create a temporary table Request_table = Table('request', metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("name", TrimmedString(255), nullable=False), - Column("desc", TEXT), - Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True), - Column("request_type_id", Integer, ForeignKey("request_type.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("deleted", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("name", TrimmedString(255), nullable=False), + Column("desc", TEXT), + Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True), + Column("request_type_id", Integer, ForeignKey("request_type.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("deleted", Boolean, index=True, default=False)) try: Request_table.create() except Exception: diff --git a/lib/galaxy/model/migrate/versions/0040_page_annotations.py b/lib/galaxy/model/migrate/versions/0040_page_annotations.py index 532ba6ec089..000f772fd57 100644 --- a/lib/galaxy/model/migrate/versions/0040_page_annotations.py +++ b/lib/galaxy/model/migrate/versions/0040_page_annotations.py @@ -11,10 +11,10 @@ log = logging.getLogger(__name__) metadata = MetaData() PageAnnotationAssociation_table = Table("page_annotation_association", metadata, - Column("id", Integer, primary_key=True), - Column("page_id", Integer, ForeignKey("page.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("annotation", TEXT, index=True)) + Column("id", Integer, primary_key=True), + Column("page_id", Integer, ForeignKey("page.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("annotation", TEXT, index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0041_workflow_invocation.py b/lib/galaxy/model/migrate/versions/0041_workflow_invocation.py index c103bdb9002..1060e45e445 100644 --- a/lib/galaxy/model/migrate/versions/0041_workflow_invocation.py +++ b/lib/galaxy/model/migrate/versions/0041_workflow_invocation.py @@ -14,18 +14,18 @@ now = datetime.datetime.utcnow metadata = MetaData() WorkflowInvocation_table = Table("workflow_invocation", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("workflow_id", Integer, ForeignKey("workflow.id"), index=True, nullable=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("workflow_id", Integer, ForeignKey("workflow.id"), index=True, nullable=False)) WorkflowInvocationStep_table = Table("workflow_invocation_step", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("workflow_invocation_id", Integer, ForeignKey("workflow_invocation.id"), index=True, nullable=False), - Column("workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True, nullable=False), - Column("job_id", Integer, ForeignKey("job.id"), index=True, nullable=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("workflow_invocation_id", Integer, ForeignKey("workflow_invocation.id"), index=True, nullable=False), + Column("workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True, nullable=False), + Column("job_id", Integer, ForeignKey("job.id"), index=True, nullable=False)) tables = [WorkflowInvocation_table, WorkflowInvocationStep_table] diff --git a/lib/galaxy/model/migrate/versions/0042_workflow_invocation_fix.py b/lib/galaxy/model/migrate/versions/0042_workflow_invocation_fix.py index 6ad9f6586f6..88ae7c478db 100644 --- a/lib/galaxy/model/migrate/versions/0042_workflow_invocation_fix.py +++ b/lib/galaxy/model/migrate/versions/0042_workflow_invocation_fix.py @@ -30,18 +30,18 @@ def upgrade(migrate_engine): # 2) Readd WorkflowInvocation_table = Table("workflow_invocation", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("workflow_id", Integer, ForeignKey("workflow.id"), index=True, nullable=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("workflow_id", Integer, ForeignKey("workflow.id"), index=True, nullable=False)) WorkflowInvocationStep_table = Table("workflow_invocation_step", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("workflow_invocation_id", Integer, ForeignKey("workflow_invocation.id"), index=True, nullable=False), - Column("workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True, nullable=False), - Column("job_id", Integer, ForeignKey("job.id"), index=True, nullable=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("workflow_invocation_id", Integer, ForeignKey("workflow_invocation.id"), index=True, nullable=False), + Column("workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True, nullable=False), + Column("job_id", Integer, ForeignKey("job.id"), index=True, nullable=True)) for table in [WorkflowInvocation_table, WorkflowInvocationStep_table]: try: diff --git a/lib/galaxy/model/migrate/versions/0043_visualization_sharing_tagging_annotating.py b/lib/galaxy/model/migrate/versions/0043_visualization_sharing_tagging_annotating.py index c0dc54edc30..a6937d0b993 100644 --- a/lib/galaxy/model/migrate/versions/0043_visualization_sharing_tagging_annotating.py +++ b/lib/galaxy/model/migrate/versions/0043_visualization_sharing_tagging_annotating.py @@ -13,28 +13,28 @@ metadata = MetaData() # Sharing visualizations. VisualizationUserShareAssociation_table = Table("visualization_user_share_association", metadata, - Column("id", Integer, primary_key=True), - Column("visualization_id", Integer, ForeignKey("visualization.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("visualization_id", Integer, ForeignKey("visualization.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True)) # Tagging visualizations. VisualizationTagAssociation_table = Table("visualization_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("visualization_id", Integer, ForeignKey("visualization.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("user_tname", Unicode(255), index=True), - Column("value", Unicode(255), index=True), - Column("user_value", Unicode(255), index=True)) + Column("id", Integer, primary_key=True), + Column("visualization_id", Integer, ForeignKey("visualization.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("user_tname", Unicode(255), index=True), + Column("value", Unicode(255), index=True), + Column("user_value", Unicode(255), index=True)) # Annotating visualizations. VisualizationAnnotationAssociation_table = Table("visualization_annotation_association", metadata, - Column("id", Integer, primary_key=True), - Column("visualization_id", Integer, ForeignKey("visualization.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("annotation", TEXT, index=False)) + Column("id", Integer, primary_key=True), + Column("visualization_id", Integer, ForeignKey("visualization.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("annotation", TEXT, index=False)) def engine_false(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0045_request_type_permissions_table.py b/lib/galaxy/model/migrate/versions/0045_request_type_permissions_table.py index cf75bf65253..4d729e2a2ca 100644 --- a/lib/galaxy/model/migrate/versions/0045_request_type_permissions_table.py +++ b/lib/galaxy/model/migrate/versions/0045_request_type_permissions_table.py @@ -13,12 +13,12 @@ log = logging.getLogger(__name__) metadata = MetaData() RequestTypePermissions_table = Table("request_type_permissions", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("action", TEXT), - Column("request_type_id", Integer, ForeignKey("request_type.id"), nullable=True, index=True), - Column("role_id", Integer, ForeignKey("role.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("action", TEXT), + Column("request_type_id", Integer, ForeignKey("request_type.id"), nullable=True, index=True), + Column("role_id", Integer, ForeignKey("role.id"), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0049_api_keys_table.py b/lib/galaxy/model/migrate/versions/0049_api_keys_table.py index 96446dd6edd..f833b21ad6c 100644 --- a/lib/galaxy/model/migrate/versions/0049_api_keys_table.py +++ b/lib/galaxy/model/migrate/versions/0049_api_keys_table.py @@ -15,10 +15,10 @@ log = logging.getLogger(__name__) metadata = MetaData() APIKeys_table = Table("api_keys", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("key", TrimmedString(32), index=True, unique=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("key", TrimmedString(32), index=True, unique=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0050_drop_cloud_tables.py b/lib/galaxy/model/migrate/versions/0050_drop_cloud_tables.py index b91cf6ee284..61d1187e893 100644 --- a/lib/galaxy/model/migrate/versions/0050_drop_cloud_tables.py +++ b/lib/galaxy/model/migrate/versions/0050_drop_cloud_tables.py @@ -13,113 +13,113 @@ log = logging.getLogger(__name__) metadata = MetaData() CloudImage_table = Table("cloud_image", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("provider_type", TEXT), - Column("image_id", TEXT, nullable=False), - Column("manifest", TEXT), - Column("state", TEXT), - Column("architecture", TEXT), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("provider_type", TEXT), + Column("image_id", TEXT, nullable=False), + Column("manifest", TEXT), + Column("state", TEXT), + Column("architecture", TEXT), + Column("deleted", Boolean, default=False)) """ UserConfiguredInstance (UCI) table """ UCI_table = Table("cloud_uci", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("credentials_id", Integer, ForeignKey("cloud_user_credentials.id"), index=True), - Column("key_pair_name", TEXT), - Column("key_pair_material", TEXT), - Column("name", TEXT), - Column("state", TEXT), - Column("error", TEXT), - Column("total_size", Integer), - Column("launch_time", DateTime), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("credentials_id", Integer, ForeignKey("cloud_user_credentials.id"), index=True), + Column("key_pair_name", TEXT), + Column("key_pair_material", TEXT), + Column("name", TEXT), + Column("state", TEXT), + Column("error", TEXT), + Column("total_size", Integer), + Column("launch_time", DateTime), + Column("deleted", Boolean, default=False)) CloudInstance_table = Table("cloud_instance", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("launch_time", DateTime), - Column("stop_time", DateTime), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True), - Column("type", TEXT), - Column("reservation_id", TEXT), - Column("instance_id", TEXT), - Column("mi_id", Integer, ForeignKey("cloud_image.id"), index=True), - Column("state", TEXT), - Column("error", TEXT), - Column("public_dns", TEXT), - Column("private_dns", TEXT), - Column("security_group", TEXT), - Column("availability_zone", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("launch_time", DateTime), + Column("stop_time", DateTime), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True), + Column("type", TEXT), + Column("reservation_id", TEXT), + Column("instance_id", TEXT), + Column("mi_id", Integer, ForeignKey("cloud_image.id"), index=True), + Column("state", TEXT), + Column("error", TEXT), + Column("public_dns", TEXT), + Column("private_dns", TEXT), + Column("security_group", TEXT), + Column("availability_zone", TEXT)) CloudStore_table = Table("cloud_store", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("attach_time", DateTime), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True, nullable=False), - Column("volume_id", TEXT), - Column("size", Integer, nullable=False), - Column("availability_zone", TEXT), - Column("inst_id", Integer, ForeignKey("cloud_instance.id")), - Column("status", TEXT), - Column("device", TEXT), - Column("space_consumed", Integer), - Column("error", TEXT), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("attach_time", DateTime), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True, nullable=False), + Column("volume_id", TEXT), + Column("size", Integer, nullable=False), + Column("availability_zone", TEXT), + Column("inst_id", Integer, ForeignKey("cloud_instance.id")), + Column("status", TEXT), + Column("device", TEXT), + Column("space_consumed", Integer), + Column("error", TEXT), + Column("deleted", Boolean, default=False)) CloudSnapshot_table = Table("cloud_snapshot", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True), - Column("store_id", Integer, ForeignKey("cloud_store.id"), index=True, nullable=False), - Column("snapshot_id", TEXT), - Column("status", TEXT), - Column("description", TEXT), - Column("error", TEXT), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("uci_id", Integer, ForeignKey("cloud_uci.id"), index=True), + Column("store_id", Integer, ForeignKey("cloud_store.id"), index=True, nullable=False), + Column("snapshot_id", TEXT), + Column("status", TEXT), + Column("description", TEXT), + Column("error", TEXT), + Column("deleted", Boolean, default=False)) CloudUserCredentials_table = Table("cloud_user_credentials", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("provider_id", Integer, ForeignKey("cloud_provider.id"), index=True, nullable=False), - Column("name", TEXT), - Column("access_key", TEXT), - Column("secret_key", TEXT), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("provider_id", Integer, ForeignKey("cloud_provider.id"), index=True, nullable=False), + Column("name", TEXT), + Column("access_key", TEXT), + Column("secret_key", TEXT), + Column("deleted", Boolean, default=False)) CloudProvider_table = Table("cloud_provider", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("type", TEXT, nullable=False), - Column("name", TEXT), - Column("region_connection", TEXT), - Column("region_name", TEXT), - Column("region_endpoint", TEXT), - Column("is_secure", Boolean), - Column("host", TEXT), - Column("port", Integer), - Column("proxy", TEXT), - Column("proxy_port", TEXT), - Column("proxy_user", TEXT), - Column("proxy_pass", TEXT), - Column("debug", Integer), - Column("https_connection_factory", TEXT), - Column("path", TEXT), - Column("deleted", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), + Column("type", TEXT, nullable=False), + Column("name", TEXT), + Column("region_connection", TEXT), + Column("region_name", TEXT), + Column("region_endpoint", TEXT), + Column("is_secure", Boolean), + Column("host", TEXT), + Column("port", Integer), + Column("proxy", TEXT), + Column("proxy_port", TEXT), + Column("proxy_user", TEXT), + Column("proxy_pass", TEXT), + Column("debug", Integer), + Column("https_connection_factory", TEXT), + Column("path", TEXT), + Column("deleted", Boolean, default=False)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0052_sample_dataset_table.py b/lib/galaxy/model/migrate/versions/0052_sample_dataset_table.py index b243b9e5b2e..64253415fd0 100644 --- a/lib/galaxy/model/migrate/versions/0052_sample_dataset_table.py +++ b/lib/galaxy/model/migrate/versions/0052_sample_dataset_table.py @@ -67,14 +67,14 @@ def upgrade(migrate_engine): if isinstance(df, dict): cmd = "INSERT INTO sample_dataset VALUES (%s, %s, %s, %s, '%s', '%s', '%s', '%s', '%s')" cmd = cmd % (nextval(migrate_engine, 'sample_dataset'), - localtimestamp(migrate_engine), - localtimestamp(migrate_engine), - str(sample_id), - df.get('name', ''), - df.get('filepath', ''), - df.get('status', '').replace('"', '').replace("'", ""), - "", - df.get('size', '').replace('"', '').replace("'", "").replace(df.get('filepath', ''), '').strip()) + localtimestamp(migrate_engine), + localtimestamp(migrate_engine), + str(sample_id), + df.get('name', ''), + df.get('filepath', ''), + df.get('status', '').replace('"', '').replace("'", ""), + "", + df.get('size', '').replace('"', '').replace("'", "").replace(df.get('filepath', ''), '').strip()) migrate_engine.execute(cmd) # Delete the dataset_files column in the Sample table diff --git a/lib/galaxy/model/migrate/versions/0053_item_ratings.py b/lib/galaxy/model/migrate/versions/0053_item_ratings.py index 7eab94c4621..3b0c21123cd 100644 --- a/lib/galaxy/model/migrate/versions/0053_item_ratings.py +++ b/lib/galaxy/model/migrate/versions/0053_item_ratings.py @@ -13,35 +13,35 @@ metadata = MetaData() # Rating tables. HistoryRatingAssociation_table = Table("history_rating_association", metadata, - Column("id", Integer, primary_key=True), - Column("history_id", Integer, ForeignKey("history.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("rating", Integer, index=True)) + Column("id", Integer, primary_key=True), + Column("history_id", Integer, ForeignKey("history.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("rating", Integer, index=True)) HistoryDatasetAssociationRatingAssociation_table = Table("history_dataset_association_rating_association", metadata, - Column("id", Integer, primary_key=True), - Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("rating", Integer, index=True)) + Column("id", Integer, primary_key=True), + Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("rating", Integer, index=True)) StoredWorkflowRatingAssociation_table = Table("stored_workflow_rating_association", metadata, - Column("id", Integer, primary_key=True), - Column("stored_workflow_id", Integer, ForeignKey("stored_workflow.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("rating", Integer, index=True)) - -PageRatingAssociation_table = Table("page_rating_association", metadata, - Column("id", Integer, primary_key=True), - Column("page_id", Integer, ForeignKey("page.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("rating", Integer, index=True)) - -VisualizationRatingAssociation_table = Table("visualization_rating_association", metadata, Column("id", Integer, primary_key=True), - Column("visualization_id", Integer, ForeignKey("visualization.id"), index=True), + Column("stored_workflow_id", Integer, ForeignKey("stored_workflow.id"), index=True), Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), Column("rating", Integer, index=True)) +PageRatingAssociation_table = Table("page_rating_association", metadata, + Column("id", Integer, primary_key=True), + Column("page_id", Integer, ForeignKey("page.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("rating", Integer, index=True)) + +VisualizationRatingAssociation_table = Table("visualization_rating_association", metadata, + Column("id", Integer, primary_key=True), + Column("visualization_id", Integer, ForeignKey("visualization.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("rating", Integer, index=True)) + def upgrade(migrate_engine): metadata.bind = migrate_engine diff --git a/lib/galaxy/model/migrate/versions/0056_workflow_outputs.py b/lib/galaxy/model/migrate/versions/0056_workflow_outputs.py index 6e8b4ca259f..9b354080ec2 100644 --- a/lib/galaxy/model/migrate/versions/0056_workflow_outputs.py +++ b/lib/galaxy/model/migrate/versions/0056_workflow_outputs.py @@ -13,9 +13,9 @@ log = logging.getLogger(__name__) metadata = MetaData() WorkflowOutput_table = Table("workflow_output", metadata, - Column("id", Integer, primary_key=True), - Column("workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True, nullable=False), - Column("output_name", String(255), nullable=True)) + Column("id", Integer, primary_key=True), + Column("workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True, nullable=False), + Column("output_name", String(255), nullable=True)) tables = [WorkflowOutput_table] diff --git a/lib/galaxy/model/migrate/versions/0058_history_import_export.py b/lib/galaxy/model/migrate/versions/0058_history_import_export.py index d618176e239..a4d457bbe33 100644 --- a/lib/galaxy/model/migrate/versions/0058_history_import_export.py +++ b/lib/galaxy/model/migrate/versions/0058_history_import_export.py @@ -13,14 +13,14 @@ metadata = MetaData() # Table to add. JobExportHistoryArchive_table = Table("job_export_history_archive", metadata, - Column("id", Integer, primary_key=True), - Column("job_id", Integer, ForeignKey("job.id"), index=True), - Column("history_id", Integer, ForeignKey("history.id"), index=True), - Column("dataset_id", Integer, ForeignKey("dataset.id"), index=True), - Column("compressed", Boolean, index=True, default=False), - Column("history_attrs_filename", TEXT), - Column("datasets_attrs_filename", TEXT), - Column("jobs_attrs_filename", TEXT)) + Column("id", Integer, primary_key=True), + Column("job_id", Integer, ForeignKey("job.id"), index=True), + Column("history_id", Integer, ForeignKey("history.id"), index=True), + Column("dataset_id", Integer, ForeignKey("dataset.id"), index=True), + Column("compressed", Boolean, index=True, default=False), + Column("history_attrs_filename", TEXT), + Column("datasets_attrs_filename", TEXT), + Column("jobs_attrs_filename", TEXT)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0060_history_archive_import.py b/lib/galaxy/model/migrate/versions/0060_history_archive_import.py index 350d95b44d2..27cae402d9c 100644 --- a/lib/galaxy/model/migrate/versions/0060_history_archive_import.py +++ b/lib/galaxy/model/migrate/versions/0060_history_archive_import.py @@ -19,10 +19,10 @@ ldda_parent_col = Column("ldda_parent_id", Integer, ForeignKey("library_dataset_ # Table to add. JobImportHistoryArchive_table = Table("job_import_history_archive", metadata, - Column("id", Integer, primary_key=True), - Column("job_id", Integer, ForeignKey("job.id"), index=True), - Column("history_id", Integer, ForeignKey("history.id"), index=True), - Column("archive_dir", TEXT)) + Column("id", Integer, primary_key=True), + Column("job_id", Integer, ForeignKey("job.id"), index=True), + Column("history_id", Integer, ForeignKey("history.id"), index=True), + Column("archive_dir", TEXT)) def engine_false(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0061_tasks.py b/lib/galaxy/model/migrate/versions/0061_tasks.py index 14d41c05bc4..6a067ee0ca0 100644 --- a/lib/galaxy/model/migrate/versions/0061_tasks.py +++ b/lib/galaxy/model/migrate/versions/0061_tasks.py @@ -13,21 +13,21 @@ metadata = MetaData() now = datetime.datetime.utcnow Task_table = Table("task", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("execution_time", DateTime), - Column("update_time", DateTime, default=now, onupdate=now), - Column("state", String(64), index=True), - Column("command_line", TEXT), - Column("param_filename", String(1024)), - Column("runner_name", String(255)), - Column("stdout", TEXT), - Column("stderr", TEXT), - Column("traceback", TEXT), - Column("job_id", Integer, ForeignKey("job.id"), index=True, nullable=False), - Column("part_file", String(1024)), - Column("task_runner_name", String(255)), - Column("task_runner_external_id", String(255))) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("execution_time", DateTime), + Column("update_time", DateTime, default=now, onupdate=now), + Column("state", String(64), index=True), + Column("command_line", TEXT), + Column("param_filename", String(1024)), + Column("runner_name", String(255)), + Column("stdout", TEXT), + Column("stderr", TEXT), + Column("traceback", TEXT), + Column("job_id", Integer, ForeignKey("job.id"), index=True, nullable=False), + Column("part_file", String(1024)), + Column("task_runner_name", String(255)), + Column("task_runner_external_id", String(255))) tables = [Task_table] diff --git a/lib/galaxy/model/migrate/versions/0062_user_openid_table.py b/lib/galaxy/model/migrate/versions/0062_user_openid_table.py index 224c94592ba..83378235f53 100644 --- a/lib/galaxy/model/migrate/versions/0062_user_openid_table.py +++ b/lib/galaxy/model/migrate/versions/0062_user_openid_table.py @@ -16,12 +16,12 @@ metadata = MetaData() # Table to add UserOpenID_table = Table("galaxy_user_openid", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, index=True, default=now, onupdate=now), - Column("session_id", Integer, ForeignKey("galaxy_session.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("openid", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, index=True, default=now, onupdate=now), + Column("session_id", Integer, ForeignKey("galaxy_session.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("openid", TEXT)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0063_sequencer_table.py b/lib/galaxy/model/migrate/versions/0063_sequencer_table.py index 414c6cbaf0f..12581b7de89 100644 --- a/lib/galaxy/model/migrate/versions/0063_sequencer_table.py +++ b/lib/galaxy/model/migrate/versions/0063_sequencer_table.py @@ -16,16 +16,16 @@ metadata = MetaData() # Table to add Sequencer_table = Table('sequencer', metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("name", TrimmedString(255), nullable=False), - Column("description", TEXT), - Column("sequencer_type_id", TrimmedString(255), nullable=False), - Column("version", TrimmedString(255)), - Column("form_definition_id", Integer, ForeignKey("form_definition.id"), index=True), - Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True), - Column("deleted", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("name", TrimmedString(255), nullable=False), + Column("description", TEXT), + Column("sequencer_type_id", TrimmedString(255), nullable=False), + Column("version", TrimmedString(255)), + Column("form_definition_id", Integer, ForeignKey("form_definition.id"), index=True), + Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True), + Column("deleted", Boolean, index=True, default=False)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0064_add_run_and_sample_run_association_tables.py b/lib/galaxy/model/migrate/versions/0064_add_run_and_sample_run_association_tables.py index cdef1cedf3b..c045295cadd 100644 --- a/lib/galaxy/model/migrate/versions/0064_add_run_and_sample_run_association_tables.py +++ b/lib/galaxy/model/migrate/versions/0064_add_run_and_sample_run_association_tables.py @@ -13,22 +13,22 @@ log = logging.getLogger(__name__) metadata = MetaData() Run_table = Table("run", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("form_definition_id", Integer, ForeignKey("form_definition.id"), index=True), - Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True), - Column("deleted", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("form_definition_id", Integer, ForeignKey("form_definition.id"), index=True), + Column("form_values_id", Integer, ForeignKey("form_values.id"), index=True), + Column("deleted", Boolean, index=True, default=False)) RequestTypeRunAssociation_table = Table("request_type_run_association", metadata, - Column("id", Integer, primary_key=True), - Column("request_type_id", Integer, ForeignKey("request_type.id"), index=True, nullable=False), - Column("run_id", Integer, ForeignKey("run.id"), index=True, nullable=False)) + Column("id", Integer, primary_key=True), + Column("request_type_id", Integer, ForeignKey("request_type.id"), index=True, nullable=False), + Column("run_id", Integer, ForeignKey("run.id"), index=True, nullable=False)) SampleRunAssociation_table = Table("sample_run_association", metadata, - Column("id", Integer, primary_key=True), - Column("sample_id", Integer, ForeignKey("sample.id"), index=True, nullable=False), - Column("run_id", Integer, ForeignKey("run.id"), index=True, nullable=False)) + Column("id", Integer, primary_key=True), + Column("sample_id", Integer, ForeignKey("sample.id"), index=True, nullable=False), + Column("run_id", Integer, ForeignKey("run.id"), index=True, nullable=False)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0066_deferred_job_and_transfer_job_tables.py b/lib/galaxy/model/migrate/versions/0066_deferred_job_and_transfer_job_tables.py index 508ddb88108..7ffb81b08f5 100644 --- a/lib/galaxy/model/migrate/versions/0066_deferred_job_and_transfer_job_tables.py +++ b/lib/galaxy/model/migrate/versions/0066_deferred_job_and_transfer_job_tables.py @@ -18,20 +18,20 @@ metadata = MetaData() # Table to add DeferredJob_table = Table("deferred_job", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("state", String(64), index=True), - Column("plugin", String(128), index=True), - Column("params", JSONType)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("state", String(64), index=True), + Column("plugin", String(128), index=True), + Column("params", JSONType)) TransferJob_table = Table("transfer_job", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("state", String(64), index=True), - Column("path", String(1024)), - Column("params", JSONType)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("state", String(64), index=True), + Column("path", String(1024)), + Column("params", JSONType)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0067_populate_sequencer_table.py b/lib/galaxy/model/migrate/versions/0067_populate_sequencer_table.py index 63b37eb3a84..0ec730b2deb 100644 --- a/lib/galaxy/model/migrate/versions/0067_populate_sequencer_table.py +++ b/lib/galaxy/model/migrate/versions/0067_populate_sequencer_table.py @@ -65,10 +65,10 @@ def create_sequencer_form_definition(migrate_engine): # create new form_definition_current in the db cmd = "INSERT INTO form_definition_current VALUES ( %s, %s, %s, %s, %s )" cmd = cmd % (nextval(migrate_engine, 'form_definition_current'), - localtimestamp(migrate_engine), - localtimestamp(migrate_engine), - 'NULL', - boolean(migrate_engine, 'false')) + localtimestamp(migrate_engine), + localtimestamp(migrate_engine), + 'NULL', + boolean(migrate_engine, 'false')) migrate_engine.execute(cmd) # get this form_definition_current id form_definition_current_id = get_latest_id(migrate_engine, 'form_definition_current') @@ -77,43 +77,43 @@ def create_sequencer_form_definition(migrate_engine): form_definition_desc = '' form_definition_fields = [] fields = [('Host', 'TextField'), - ('User name', 'TextField'), - ('Password', 'PasswordField'), - ('Data directory', 'TextField')] + ('User name', 'TextField'), + ('Password', 'PasswordField'), + ('Data directory', 'TextField')] for index, (label, field_type) in enumerate(fields): form_definition_fields.append({'name': 'field_%i' % index, - 'label': label, - 'helptext': '', - 'visible': True, - 'required': False, - 'type': field_type, - 'selectlist': [], - 'layout': 'none', - 'default': ''}) + 'label': label, + 'helptext': '', + 'visible': True, + 'required': False, + 'type': field_type, + 'selectlist': [], + 'layout': 'none', + 'default': ''}) form_definition_fields.append({'name': 'field_%i' % len(fields), - 'label': 'Prepend the experiment name and sample name to the dataset name?', - 'helptext': 'Galaxy datasets are renamed by prepending the experiment name and sample name to the dataset name, ensuring dataset names remain unique in Galaxy even when multiple datasets have the same name on the sequencer.', - 'visible': True, - 'required': False, - 'type': 'SelectField', - 'selectlist': ['Do not rename', - 'Preprend sample name', - 'Prepend experiment name', - 'Prepend experiment and sample name'], - 'layout': 'none', - 'default': ''}) + 'label': 'Prepend the experiment name and sample name to the dataset name?', + 'helptext': 'Galaxy datasets are renamed by prepending the experiment name and sample name to the dataset name, ensuring dataset names remain unique in Galaxy even when multiple datasets have the same name on the sequencer.', + 'visible': True, + 'required': False, + 'type': 'SelectField', + 'selectlist': ['Do not rename', + 'Preprend sample name', + 'Prepend experiment name', + 'Prepend experiment and sample name'], + 'layout': 'none', + 'default': ''}) form_definition_type = 'Sequencer Information Form' form_definition_layout = dumps('[]') cmd = "INSERT INTO form_definition VALUES ( %s, %s, %s, '%s', '%s', %s, '%s', '%s', '%s' )" cmd = cmd % (nextval(migrate_engine, 'form_definition'), - localtimestamp(migrate_engine), - localtimestamp(migrate_engine), - form_definition_name, - form_definition_desc, - form_definition_current_id, - dumps(form_definition_fields), - form_definition_type, - form_definition_layout) + localtimestamp(migrate_engine), + localtimestamp(migrate_engine), + form_definition_name, + form_definition_desc, + form_definition_current_id, + dumps(form_definition_fields), + form_definition_type, + form_definition_layout) migrate_engine.execute(cmd) # get this form_definition id form_definition_id = get_latest_id(migrate_engine, 'form_definition') @@ -150,15 +150,15 @@ def add_sequencer(migrate_engine, sequencer_index, sequencer_form_definition_id, '''Adds a new sequencer to the sequencer table along with its form values.''' # Create a new form values record with the supplied sequencer information values = dumps({'field_0': sequencer_info.get('host', ''), - 'field_1': sequencer_info.get('username', ''), - 'field_2': sequencer_info.get('password', ''), - 'field_3': sequencer_info.get('data_dir', ''), - 'field_4': sequencer_info.get('rename_dataset', '')}) + 'field_1': sequencer_info.get('username', ''), + 'field_2': sequencer_info.get('password', ''), + 'field_3': sequencer_info.get('data_dir', ''), + 'field_4': sequencer_info.get('rename_dataset', '')}) cmd = "INSERT INTO form_values VALUES ( %s, %s, %s, %s, '%s' )" % (nextval(migrate_engine, 'form_values'), - localtimestamp(migrate_engine), - localtimestamp(migrate_engine), - sequencer_form_definition_id, - values) + localtimestamp(migrate_engine), + localtimestamp(migrate_engine), + sequencer_form_definition_id, + values) migrate_engine.execute(cmd) sequencer_form_values_id = get_latest_id(migrate_engine, 'form_values') # Create a new sequencer record with reference to the form value created above. @@ -168,15 +168,15 @@ def add_sequencer(migrate_engine, sequencer_index, sequencer_form_definition_id, sequencer_type_id = 'simple_unknown_sequencer' cmd = "INSERT INTO sequencer VALUES ( %s, %s, %s, '%s', '%s', '%s', '%s', %s, %s, %s )" cmd = cmd % (nextval(migrate_engine, 'sequencer'), - localtimestamp(migrate_engine), - localtimestamp(migrate_engine), - name, - desc, - sequencer_type_id, - version, - sequencer_form_definition_id, - sequencer_form_values_id, - boolean(migrate_engine, 'false')) + localtimestamp(migrate_engine), + localtimestamp(migrate_engine), + name, + desc, + sequencer_type_id, + version, + sequencer_form_definition_id, + sequencer_form_values_id, + boolean(migrate_engine, 'false')) migrate_engine.execute(cmd) return get_latest_id(migrate_engine, 'sequencer') @@ -281,10 +281,10 @@ def downgrade(migrate_engine): seq_values = loads(str(row[1])) # create the datatx_info json dict datatx_info = dumps(dict(host=seq_values.get('field_0', ''), - username=seq_values.get('field_1', ''), - password=seq_values.get('field_2', ''), - data_dir=seq_values.get('field_3', ''), - rename_dataset=seq_values.get('field_4', ''))) + username=seq_values.get('field_1', ''), + password=seq_values.get('field_2', ''), + data_dir=seq_values.get('field_3', ''), + rename_dataset=seq_values.get('field_4', ''))) # update the column cmd = "UPDATE request_type SET datatx_info='%s' WHERE id=%i" % (datatx_info, request_type_id) migrate_engine.execute(cmd) diff --git a/lib/galaxy/model/migrate/versions/0068_rename_sequencer_to_external_services.py b/lib/galaxy/model/migrate/versions/0068_rename_sequencer_to_external_services.py index 70209fd4ce0..1514c96691a 100644 --- a/lib/galaxy/model/migrate/versions/0068_rename_sequencer_to_external_services.py +++ b/lib/galaxy/model/migrate/versions/0068_rename_sequencer_to_external_services.py @@ -51,8 +51,8 @@ def upgrade(migrate_engine): try: Sequencer_table = Table("sequencer", metadata, autoload=True) cons = ForeignKeyConstraint([SampleDataset_table.c.external_service_id], - [Sequencer_table.c.id], - name='sample_dataset_external_services_id_fk') + [Sequencer_table.c.id], + name='sample_dataset_external_services_id_fk') # Create the constraint cons.create() except Exception: @@ -97,9 +97,9 @@ def upgrade(migrate_engine): log.exception("Deleting column 'sequencer_type_id' from the 'external_service' table failed.") # create 'request_type_external_service_association' table RequestTypeExternalServiceAssociation_table = Table("request_type_external_service_association", metadata, - Column("id", Integer, primary_key=True), - Column("request_type_id", Integer, ForeignKey("request_type.id"), index=True), - Column("external_service_id", Integer, ForeignKey("external_service.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("request_type_id", Integer, ForeignKey("request_type.id"), index=True), + Column("external_service_id", Integer, ForeignKey("external_service.id"), index=True)) try: RequestTypeExternalServiceAssociation_table.create() except Exception: @@ -124,8 +124,8 @@ def upgrade(migrate_engine): sequencer_id = 'null' cmd = "INSERT INTO request_type_external_service_association VALUES ( %s, %s, %s )" cmd = cmd % (nextval(migrate_engine, 'request_type_external_service_association'), - request_type_id, - sequencer_id) + request_type_id, + sequencer_id) migrate_engine.execute(cmd) # drop the 'sequencer_id' column in the 'request_type' table try: diff --git a/lib/galaxy/model/migrate/versions/0077_create_tool_tag_association_table.py b/lib/galaxy/model/migrate/versions/0077_create_tool_tag_association_table.py index 3f5f0fbfdf2..c500e027d5e 100644 --- a/lib/galaxy/model/migrate/versions/0077_create_tool_tag_association_table.py +++ b/lib/galaxy/model/migrate/versions/0077_create_tool_tag_association_table.py @@ -15,13 +15,13 @@ metadata = MetaData() # Table to add ToolTagAssociation_table = Table("tool_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("tool_id", TrimmedString(255), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("user_tname", TrimmedString(255), index=True), - Column("value", TrimmedString(255), index=True), - Column("user_value", TrimmedString(255), index=True)) + Column("id", Integer, primary_key=True), + Column("tool_id", TrimmedString(255), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("user_tname", TrimmedString(255), index=True), + Column("value", TrimmedString(255), index=True), + Column("user_value", TrimmedString(255), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0079_input_library_to_job_table.py b/lib/galaxy/model/migrate/versions/0079_input_library_to_job_table.py index 895a61a206d..ea3f86ab2de 100644 --- a/lib/galaxy/model/migrate/versions/0079_input_library_to_job_table.py +++ b/lib/galaxy/model/migrate/versions/0079_input_library_to_job_table.py @@ -12,10 +12,10 @@ log = logging.getLogger(__name__) metadata = MetaData() JobToInputLibraryDatasetAssociation_table = Table("job_to_input_library_dataset", metadata, - Column("id", Integer, primary_key=True), - Column("job_id", Integer, ForeignKey("job.id"), index=True), - Column("ldda_id", Integer, ForeignKey("library_dataset_dataset_association.id"), index=True), - Column("name", String(255))) + Column("id", Integer, primary_key=True), + Column("job_id", Integer, ForeignKey("job.id"), index=True), + Column("ldda_id", Integer, ForeignKey("library_dataset_dataset_association.id"), index=True), + Column("name", String(255))) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0080_quota_tables.py b/lib/galaxy/model/migrate/versions/0080_quota_tables.py index b217e18d2f9..6f67964b7fd 100644 --- a/lib/galaxy/model/migrate/versions/0080_quota_tables.py +++ b/lib/galaxy/model/migrate/versions/0080_quota_tables.py @@ -15,35 +15,35 @@ metadata = MetaData() # Tables to add Quota_table = Table("quota", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("name", String(255), index=True, unique=True), - Column("description", TEXT), - Column("bytes", BigInteger), - Column("operation", String(8)), - Column("deleted", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("name", String(255), index=True, unique=True), + Column("description", TEXT), + Column("bytes", BigInteger), + Column("operation", String(8)), + Column("deleted", Boolean, index=True, default=False)) UserQuotaAssociation_table = Table("user_quota_association", metadata, + Column("id", Integer, primary_key=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("quota_id", Integer, ForeignKey("quota.id"), index=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now)) + +GroupQuotaAssociation_table = Table("group_quota_association", metadata, Column("id", Integer, primary_key=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("group_id", Integer, ForeignKey("galaxy_group.id"), index=True), Column("quota_id", Integer, ForeignKey("quota.id"), index=True), Column("create_time", DateTime, default=now), Column("update_time", DateTime, default=now, onupdate=now)) -GroupQuotaAssociation_table = Table("group_quota_association", metadata, - Column("id", Integer, primary_key=True), - Column("group_id", Integer, ForeignKey("galaxy_group.id"), index=True), - Column("quota_id", Integer, ForeignKey("quota.id"), index=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now)) - DefaultQuotaAssociation_table = Table("default_quota_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("type", String(32), index=True, unique=True), - Column("quota_id", Integer, ForeignKey("quota.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("type", String(32), index=True, unique=True), + Column("quota_id", Integer, ForeignKey("quota.id"), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0082_add_tool_shed_repository_table.py b/lib/galaxy/model/migrate/versions/0082_add_tool_shed_repository_table.py index 7dcad969454..de7160de87e 100644 --- a/lib/galaxy/model/migrate/versions/0082_add_tool_shed_repository_table.py +++ b/lib/galaxy/model/migrate/versions/0082_add_tool_shed_repository_table.py @@ -25,15 +25,15 @@ metadata = MetaData() # New table to store information about cloned tool shed repositories. ToolShedRepository_table = Table("tool_shed_repository", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_shed", TrimmedString(255), index=True), - Column("name", TrimmedString(255), index=True), - Column("description", TEXT), - Column("owner", TrimmedString(255), index=True), - Column("changeset_revision", TrimmedString(255), index=True), - Column("deleted", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_shed", TrimmedString(255), index=True), + Column("name", TrimmedString(255), index=True), + Column("description", TEXT), + Column("owner", TrimmedString(255), index=True), + Column("changeset_revision", TrimmedString(255), index=True), + Column("deleted", Boolean, index=True, default=False)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0087_tool_id_guid_map_table.py b/lib/galaxy/model/migrate/versions/0087_tool_id_guid_map_table.py index 1f6bc26bd62..01cde978ad8 100644 --- a/lib/galaxy/model/migrate/versions/0087_tool_id_guid_map_table.py +++ b/lib/galaxy/model/migrate/versions/0087_tool_id_guid_map_table.py @@ -24,15 +24,15 @@ log.addHandler(handler) metadata = MetaData() ToolIdGuidMap_table = Table("tool_id_guid_map", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_id", String(255)), - Column("tool_version", TEXT), - Column("tool_shed", TrimmedString(255)), - Column("repository_owner", TrimmedString(255)), - Column("repository_name", TrimmedString(255)), - Column("guid", TEXT, index=True, unique=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_id", String(255)), + Column("tool_version", TEXT), + Column("tool_shed", TrimmedString(255)), + Column("repository_owner", TrimmedString(255)), + Column("repository_name", TrimmedString(255)), + Column("guid", TEXT, index=True, unique=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0092_add_migrate_tools_table.py b/lib/galaxy/model/migrate/versions/0092_add_migrate_tools_table.py index f3ac2aa701c..7419ec0ea72 100644 --- a/lib/galaxy/model/migrate/versions/0092_add_migrate_tools_table.py +++ b/lib/galaxy/model/migrate/versions/0092_add_migrate_tools_table.py @@ -22,9 +22,9 @@ log.addHandler(handler) metadata = MetaData() MigrateTools_table = Table("migrate_tools", metadata, - Column("repository_id", TrimmedString(255)), - Column("repository_path", TEXT), - Column("version", Integer)) + Column("repository_id", TrimmedString(255)), + Column("repository_path", TEXT), + Column("version", Integer)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0095_hda_subsets.py b/lib/galaxy/model/migrate/versions/0095_hda_subsets.py index 93a7d83c974..0126903bfef 100644 --- a/lib/galaxy/model/migrate/versions/0095_hda_subsets.py +++ b/lib/galaxy/model/migrate/versions/0095_hda_subsets.py @@ -13,10 +13,10 @@ metadata = MetaData() # Table to add. HistoryDatasetAssociationSubset_table = Table("history_dataset_association_subset", metadata, - Column("id", Integer, primary_key=True), - Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id")), - Column("history_dataset_association_subset_id", Integer, ForeignKey("history_dataset_association.id")), - Column("location", Unicode(255), index=True)) + Column("id", Integer, primary_key=True), + Column("history_dataset_association_id", Integer, ForeignKey("history_dataset_association.id")), + Column("history_dataset_association_subset_id", Integer, ForeignKey("history_dataset_association.id")), + Column("location", Unicode(255), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0098_genome_index_tool_data_table.py b/lib/galaxy/model/migrate/versions/0098_genome_index_tool_data_table.py index 628bc6575be..d83d0fa022b 100644 --- a/lib/galaxy/model/migrate/versions/0098_genome_index_tool_data_table.py +++ b/lib/galaxy/model/migrate/versions/0098_genome_index_tool_data_table.py @@ -22,16 +22,16 @@ metadata = MetaData() # New table in changeset TODO:TODO GenomeIndexToolData_table = Table("genome_index_tool_data", metadata, - Column("id", Integer, primary_key=True), - Column("job_id", Integer, ForeignKey("job.id"), index=True), - Column("dataset_id", Integer, ForeignKey("dataset.id"), index=True), - Column("deferred_job_id", Integer, ForeignKey("deferred_job.id"), index=True), - Column("transfer_job_id", Integer, ForeignKey("transfer_job.id"), index=True), - Column("fasta_path", String(255)), - Column("created_time", DateTime, default=now), - Column("modified_time", DateTime, default=now, onupdate=now), - Column("indexer", String(64)), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("job_id", Integer, ForeignKey("job.id"), index=True), + Column("dataset_id", Integer, ForeignKey("dataset.id"), index=True), + Column("deferred_job_id", Integer, ForeignKey("deferred_job.id"), index=True), + Column("transfer_job_id", Integer, ForeignKey("transfer_job.id"), index=True), + Column("fasta_path", String(255)), + Column("created_time", DateTime, default=now), + Column("modified_time", DateTime, default=now, onupdate=now), + Column("indexer", String(64)), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0099_add_tool_dependency_table.py b/lib/galaxy/model/migrate/versions/0099_add_tool_dependency_table.py index 0e01c115655..23c951e34e7 100644 --- a/lib/galaxy/model/migrate/versions/0099_add_tool_dependency_table.py +++ b/lib/galaxy/model/migrate/versions/0099_add_tool_dependency_table.py @@ -24,15 +24,15 @@ metadata = MetaData() # New table to store information about cloned tool shed repositories. ToolDependency_table = Table("tool_dependency", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True, nullable=False), - Column("installed_changeset_revision", TrimmedString(255)), - Column("name", TrimmedString(255)), - Column("version", TrimmedString(40)), - Column("type", TrimmedString(40)), - Column("uninstalled", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True, nullable=False), + Column("installed_changeset_revision", TrimmedString(255)), + Column("name", TrimmedString(255)), + Column("version", TrimmedString(40)), + Column("type", TrimmedString(40)), + Column("uninstalled", Boolean, default=False)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0104_update_genome_downloader_job_parameters.py b/lib/galaxy/model/migrate/versions/0104_update_genome_downloader_job_parameters.py index 620a8bb5fbc..ad02c4c6878 100644 --- a/lib/galaxy/model/migrate/versions/0104_update_genome_downloader_job_parameters.py +++ b/lib/galaxy/model/migrate/versions/0104_update_genome_downloader_job_parameters.py @@ -27,11 +27,11 @@ context = scoped_session(sessionmaker(autoflush=False, autocommit=True)) class DeferredJob(object): states = Bunch(NEW='new', - WAITING='waiting', - QUEUED='queued', - RUNNING='running', - OK='ok', - ERROR='error') + WAITING='waiting', + QUEUED='queued', + RUNNING='running', + OK='ok', + ERROR='error') def __init__(self, state=None, plugin=None, params=None): self.state = state @@ -40,12 +40,12 @@ class DeferredJob(object): DeferredJob.table = Table("deferred_job", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("state", String(64), index=True), - Column("plugin", String(128), index=True), - Column("params", JSONType)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("state", String(64), index=True), + Column("plugin", String(128), index=True), + Column("params", JSONType)) mapper(DeferredJob, DeferredJob.table, properties={}) diff --git a/lib/galaxy/model/migrate/versions/0105_add_cleanup_event_table.py b/lib/galaxy/model/migrate/versions/0105_add_cleanup_event_table.py index 6b372de565b..c2caaf7fb80 100644 --- a/lib/galaxy/model/migrate/versions/0105_add_cleanup_event_table.py +++ b/lib/galaxy/model/migrate/versions/0105_add_cleanup_event_table.py @@ -24,63 +24,63 @@ metadata = MetaData() # New table to log cleanup events CleanupEvent_table = Table("cleanup_event", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("message", TrimmedString(1024))) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("message", TrimmedString(1024))) CleanupEventDatasetAssociation_table = Table("cleanup_event_dataset_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), - Column("dataset_id", Integer, ForeignKey("dataset.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), + Column("dataset_id", Integer, ForeignKey("dataset.id"), index=True)) CleanupEventMetadataFileAssociation_table = Table("cleanup_event_metadata_file_association", metadata, + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), + Column("metadata_file_id", Integer, ForeignKey("metadata_file.id"), index=True)) + +CleanupEventHistoryAssociation_table = Table("cleanup_event_history_association", metadata, + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), + Column("history_id", Integer, ForeignKey("history.id"), index=True)) + +CleanupEventHistoryDatasetAssociationAssociation_table = Table("cleanup_event_hda_association", metadata, + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), + Column("hda_id", Integer, ForeignKey("history_dataset_association.id"), index=True)) + +CleanupEventLibraryAssociation_table = Table("cleanup_event_library_association", metadata, + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), + Column("library_id", Integer, ForeignKey("library.id"), index=True)) + +CleanupEventLibraryFolderAssociation_table = Table("cleanup_event_library_folder_association", metadata, Column("id", Integer, primary_key=True), Column("create_time", DateTime, default=now), Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), - Column("metadata_file_id", Integer, ForeignKey("metadata_file.id"), index=True)) + Column("library_folder_id", Integer, ForeignKey("library_folder.id"), index=True)) -CleanupEventHistoryAssociation_table = Table("cleanup_event_history_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), - Column("history_id", Integer, ForeignKey("history.id"), index=True)) - -CleanupEventHistoryDatasetAssociationAssociation_table = Table("cleanup_event_hda_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), - Column("hda_id", Integer, ForeignKey("history_dataset_association.id"), index=True)) - -CleanupEventLibraryAssociation_table = Table("cleanup_event_library_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), - Column("library_id", Integer, ForeignKey("library.id"), index=True)) - -CleanupEventLibraryFolderAssociation_table = Table("cleanup_event_library_folder_association", metadata, +CleanupEventLibraryDatasetAssociation_table = Table("cleanup_event_library_dataset_association", metadata, Column("id", Integer, primary_key=True), Column("create_time", DateTime, default=now), Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), - Column("library_folder_id", Integer, ForeignKey("library_folder.id"), index=True)) - -CleanupEventLibraryDatasetAssociation_table = Table("cleanup_event_library_dataset_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), - Column("library_dataset_id", Integer, ForeignKey("library_dataset.id"), index=True)) + Column("library_dataset_id", Integer, ForeignKey("library_dataset.id"), index=True)) CleanupEventLibraryDatasetDatasetAssociationAssociation_table = Table("cleanup_event_ldda_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), - Column("ldda_id", Integer, ForeignKey("library_dataset_dataset_association.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), + Column("ldda_id", Integer, ForeignKey("library_dataset_dataset_association.id"), index=True)) CleanupEventImplicitlyConvertedDatasetAssociationAssociation_table = Table("cleanup_event_icda_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), - Column("icda_id", Integer, ForeignKey("implicitly_converted_dataset_association.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("cleanup_event_id", Integer, ForeignKey("cleanup_event.id"), index=True, nullable=True), + Column("icda_id", Integer, ForeignKey("implicitly_converted_dataset_association.id"), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0108_add_extended_metadata.py b/lib/galaxy/model/migrate/versions/0108_add_extended_metadata.py index af77129e6e7..3ed75586093 100644 --- a/lib/galaxy/model/migrate/versions/0108_add_extended_metadata.py +++ b/lib/galaxy/model/migrate/versions/0108_add_extended_metadata.py @@ -19,9 +19,9 @@ ExtendedMetadata_table = Table("extended_metadata", metadata, ExtendedMetadataIndex_table = Table("extended_metadata_index", metadata, Column("id", Integer, primary_key=True), Column("extended_metadata_id", Integer, ForeignKey("extended_metadata.id", - onupdate="CASCADE", - ondelete="CASCADE"), - index=True), + onupdate="CASCADE", + ondelete="CASCADE"), + index=True), Column("path", String(255)), Column("value", TEXT)) diff --git a/lib/galaxy/model/migrate/versions/0109_add_repository_dependency_tables.py b/lib/galaxy/model/migrate/versions/0109_add_repository_dependency_tables.py index 346a58b0339..bd0a9c8f60c 100644 --- a/lib/galaxy/model/migrate/versions/0109_add_repository_dependency_tables.py +++ b/lib/galaxy/model/migrate/versions/0109_add_repository_dependency_tables.py @@ -21,17 +21,17 @@ log.addHandler(handler) metadata = MetaData() RepositoryDependency_table = Table("repository_dependency", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True, nullable=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True, nullable=False)) RepositoryRepositoryDependencyAssociation_table = Table("repository_repository_dependency_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True), - Column("repository_dependency_id", Integer, ForeignKey("repository_dependency.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True), + Column("repository_dependency_id", Integer, ForeignKey("repository_dependency.id"), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0112_add_data_manager_history_association_and_data_manager_job_association_tables.py b/lib/galaxy/model/migrate/versions/0112_add_data_manager_history_association_and_data_manager_job_association_tables.py index 9a611853a2e..9babafdfab8 100644 --- a/lib/galaxy/model/migrate/versions/0112_add_data_manager_history_association_and_data_manager_job_association_tables.py +++ b/lib/galaxy/model/migrate/versions/0112_add_data_manager_history_association_and_data_manager_job_association_tables.py @@ -14,18 +14,18 @@ log.setLevel(logging.DEBUG) metadata = MetaData() DataManagerHistoryAssociation_table = Table("data_manager_history_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, index=True, default=now, onupdate=now), - Column("history_id", Integer, ForeignKey("history.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, index=True, default=now, onupdate=now), + Column("history_id", Integer, ForeignKey("history.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True)) DataManagerJobAssociation_table = Table("data_manager_job_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, index=True, default=now, onupdate=now), - Column("job_id", Integer, ForeignKey("job.id"), index=True), - Column("data_manager_id", TEXT, index=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, index=True, default=now, onupdate=now), + Column("job_id", Integer, ForeignKey("job.id"), index=True), + Column("data_manager_id", TEXT, index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/migrate/versions/0120_dataset_collections.py b/lib/galaxy/model/migrate/versions/0120_dataset_collections.py index 1fec8bcaf9d..0cffb880a33 100644 --- a/lib/galaxy/model/migrate/versions/0120_dataset_collections.py +++ b/lib/galaxy/model/migrate/versions/0120_dataset_collections.py @@ -15,97 +15,97 @@ log = logging.getLogger(__name__) metadata = MetaData() DatasetCollection_table = Table("dataset_collection", metadata, - Column("id", Integer, primary_key=True), - Column("collection_type", Unicode(255), nullable=False, ), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now)) + Column("id", Integer, primary_key=True), + Column("collection_type", Unicode(255), nullable=False, ), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now)) HistoryDatasetCollectionAssociation_table = Table("history_dataset_collection_association", metadata, - Column("id", Integer, primary_key=True), - Column("collection_id", Integer, ForeignKey("dataset_collection.id"), index=True), - Column("history_id", Integer, ForeignKey("history.id"), index=True), - Column("hid", Integer), - Column("name", TrimmedString(255)), - Column("deleted", Boolean, default=False), - Column("visible", Boolean, default=True), - Column("copied_from_history_dataset_collection_association_id", Integer, ForeignKey("history_dataset_collection_association.id"), nullable=True), - Column("implicit_output_name", Unicode(255), nullable=True)) + Column("id", Integer, primary_key=True), + Column("collection_id", Integer, ForeignKey("dataset_collection.id"), index=True), + Column("history_id", Integer, ForeignKey("history.id"), index=True), + Column("hid", Integer), + Column("name", TrimmedString(255)), + Column("deleted", Boolean, default=False), + Column("visible", Boolean, default=True), + Column("copied_from_history_dataset_collection_association_id", Integer, ForeignKey("history_dataset_collection_association.id"), nullable=True), + Column("implicit_output_name", Unicode(255), nullable=True)) LibraryDatasetCollectionAssociation_table = Table("library_dataset_collection_association", metadata, - Column("id", Integer, primary_key=True), - Column("collection_id", Integer, ForeignKey("dataset_collection.id"), index=True), - Column("name", TrimmedString(255)), - Column("deleted", Boolean, default=False), - Column("folder_id", Integer, ForeignKey("library_folder.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("collection_id", Integer, ForeignKey("dataset_collection.id"), index=True), + Column("name", TrimmedString(255)), + Column("deleted", Boolean, default=False), + Column("folder_id", Integer, ForeignKey("library_folder.id"), index=True)) DatasetCollectionElement_table = Table("dataset_collection_element", metadata, - Column("id", Integer, primary_key=True), - Column("dataset_collection_id", Integer, ForeignKey("dataset_collection.id"), index=True, nullable=False), - Column("hda_id", Integer, ForeignKey("history_dataset_association.id"), index=True, nullable=True), - Column("ldda_id", Integer, ForeignKey("library_dataset_dataset_association.id"), index=True, nullable=True), - Column("child_collection_id", Integer, ForeignKey("dataset_collection.id"), index=True, nullable=True), - Column("element_index", Integer, nullable=False), - Column("element_identifier", Unicode(255), nullable=False)) + Column("id", Integer, primary_key=True), + Column("dataset_collection_id", Integer, ForeignKey("dataset_collection.id"), index=True, nullable=False), + Column("hda_id", Integer, ForeignKey("history_dataset_association.id"), index=True, nullable=True), + Column("ldda_id", Integer, ForeignKey("library_dataset_dataset_association.id"), index=True, nullable=True), + Column("child_collection_id", Integer, ForeignKey("dataset_collection.id"), index=True, nullable=True), + Column("element_index", Integer, nullable=False), + Column("element_identifier", Unicode(255), nullable=False)) HistoryDatasetCollectionAnnotationAssociation_table = Table("history_dataset_collection_annotation_association", metadata, - Column("id", Integer, primary_key=True), - Column("history_dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("annotation", TEXT)) + Column("id", Integer, primary_key=True), + Column("history_dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("annotation", TEXT)) LibraryDatasetCollectionAnnotationAssociation_table = Table("library_dataset_collection_annotation_association", metadata, - Column("id", Integer, primary_key=True), - Column("library_dataset_collection_id", Integer, ForeignKey("library_dataset_collection_association.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("annotation", TEXT)) + Column("id", Integer, primary_key=True), + Column("library_dataset_collection_id", Integer, ForeignKey("library_dataset_collection_association.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("annotation", TEXT)) HistoryDatasetCollectionRatingAssociation_table = Table("history_dataset_collection_rating_association", metadata, - Column("id", Integer, primary_key=True), - Column("history_dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("rating", Integer, index=True)) + Column("id", Integer, primary_key=True), + Column("history_dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("rating", Integer, index=True)) LibraryDatasetCollectionRatingAssociation_table = Table("library_dataset_collection_rating_association", metadata, - Column("id", Integer, primary_key=True), - Column("library_dataset_collection_id", Integer, ForeignKey("library_dataset_collection_association.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("rating", Integer, index=True)) + Column("id", Integer, primary_key=True), + Column("library_dataset_collection_id", Integer, ForeignKey("library_dataset_collection_association.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("rating", Integer, index=True)) HistoryDatasetCollectionTagAssociation_table = Table("history_dataset_collection_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("history_dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("user_tname", Unicode(255), index=True), - Column("value", Unicode(255), index=True), - Column("user_value", Unicode(255), index=True)) + Column("id", Integer, primary_key=True), + Column("history_dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("user_tname", Unicode(255), index=True), + Column("value", Unicode(255), index=True), + Column("user_value", Unicode(255), index=True)) LibraryDatasetCollectionTagAssociation_table = Table("library_dataset_collection_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("library_dataset_collection_id", Integer, ForeignKey("library_dataset_collection_association.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("user_tname", Unicode(255), index=True), - Column("value", Unicode(255), index=True), - Column("user_value", Unicode(255), index=True)) + Column("id", Integer, primary_key=True), + Column("library_dataset_collection_id", Integer, ForeignKey("library_dataset_collection_association.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("user_tname", Unicode(255), index=True), + Column("value", Unicode(255), index=True), + Column("user_value", Unicode(255), index=True)) JobToInputDatasetCollectionAssociation_table = Table("job_to_input_dataset_collection", metadata, + Column("id", Integer, primary_key=True), + Column("job_id", Integer, ForeignKey("job.id"), index=True), + Column("dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), + Column("name", Unicode(255))) + +JobToOutputDatasetCollectionAssociation_table = Table("job_to_output_dataset_collection", metadata, Column("id", Integer, primary_key=True), Column("job_id", Integer, ForeignKey("job.id"), index=True), Column("dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), Column("name", Unicode(255))) -JobToOutputDatasetCollectionAssociation_table = Table("job_to_output_dataset_collection", metadata, - Column("id", Integer, primary_key=True), - Column("job_id", Integer, ForeignKey("job.id"), index=True), - Column("dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), - Column("name", Unicode(255))) - ImplicitlyCreatedDatasetCollectionInput_table = Table("implicitly_created_dataset_collection_inputs", metadata, - Column("id", Integer, primary_key=True), - Column("dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), - Column("input_dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), - Column("name", Unicode(255))) + Column("id", Integer, primary_key=True), + Column("dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), + Column("input_dataset_collection_id", Integer, ForeignKey("history_dataset_collection_association.id"), index=True), + Column("name", Unicode(255))) # TODO: Find a better name for this column... HiddenBeneathCollection_column = Column("hidden_beneath_collection_instance_id", Integer, ForeignKey("history_dataset_collection_association.id"), nullable=True) diff --git a/lib/galaxy/model/migrate/versions/0124_job_state_history.py b/lib/galaxy/model/migrate/versions/0124_job_state_history.py index 7322d0632a1..d7740c94157 100644 --- a/lib/galaxy/model/migrate/versions/0124_job_state_history.py +++ b/lib/galaxy/model/migrate/versions/0124_job_state_history.py @@ -15,12 +15,12 @@ log = logging.getLogger(__name__) metadata = MetaData() JobStateHistory_table = Table("job_state_history", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("job_id", Integer, ForeignKey("job.id"), index=True), - Column("state", String(64), index=True), - Column("info", TrimmedString(255))) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("job_id", Integer, ForeignKey("job.id"), index=True), + Column("state", String(64), index=True), + Column("info", TrimmedString(255))) def upgrade(migrate_engine): diff --git a/lib/galaxy/model/orm/logging_connection_proxy.py b/lib/galaxy/model/orm/logging_connection_proxy.py index a301f6a23a6..9af66ab3197 100644 --- a/lib/galaxy/model/orm/logging_connection_proxy.py +++ b/lib/galaxy/model/orm/logging_connection_proxy.py @@ -50,7 +50,7 @@ class LoggingProxy(ConnectionProxy): rval = execute(cursor, statement, parameters, context) duration = time.clock() - start log.debug("statement: %r parameters: %r executemany: %r duration: %r stack: %r thread: %r", - statement, parameters, executemany, duration, " > ".join(pretty_stack()), thread_ident) + statement, parameters, executemany, duration, " > ".join(pretty_stack()), thread_ident) return rval diff --git a/lib/galaxy/model/tool_shed_install/__init__.py b/lib/galaxy/model/tool_shed_install/__init__.py index 5b1401f08f4..f36ae712f10 100644 --- a/lib/galaxy/model/tool_shed_install/__init__.py +++ b/lib/galaxy/model/tool_shed_install/__init__.py @@ -13,28 +13,28 @@ log = logging.getLogger(__name__) class ToolShedRepository(object): dict_collection_visible_keys = ('id', 'tool_shed', 'name', 'owner', 'installed_changeset_revision', 'changeset_revision', 'ctx_rev', 'includes_datatypes', - 'tool_shed_status', 'deleted', 'uninstalled', 'dist_to_shed', 'status', 'error_message') + 'tool_shed_status', 'deleted', 'uninstalled', 'dist_to_shed', 'status', 'error_message') dict_element_visible_keys = ('id', 'tool_shed', 'name', 'owner', 'installed_changeset_revision', 'changeset_revision', 'ctx_rev', 'includes_datatypes', - 'tool_shed_status', 'deleted', 'uninstalled', 'dist_to_shed', 'status', 'error_message') + 'tool_shed_status', 'deleted', 'uninstalled', 'dist_to_shed', 'status', 'error_message') installation_status = Bunch(NEW='New', - CLONING='Cloning', - SETTING_TOOL_VERSIONS='Setting tool versions', - INSTALLING_REPOSITORY_DEPENDENCIES='Installing repository dependencies', - INSTALLING_TOOL_DEPENDENCIES='Installing tool dependencies', - LOADING_PROPRIETARY_DATATYPES='Loading proprietary datatypes', - INSTALLED='Installed', - DEACTIVATED='Deactivated', - ERROR='Error', - UNINSTALLED='Uninstalled') + CLONING='Cloning', + SETTING_TOOL_VERSIONS='Setting tool versions', + INSTALLING_REPOSITORY_DEPENDENCIES='Installing repository dependencies', + INSTALLING_TOOL_DEPENDENCIES='Installing tool dependencies', + LOADING_PROPRIETARY_DATATYPES='Loading proprietary datatypes', + INSTALLED='Installed', + DEACTIVATED='Deactivated', + ERROR='Error', + UNINSTALLED='Uninstalled') states = Bunch(INSTALLING='running', - OK='ok', - WARNING='queued', - ERROR='error', - UNINSTALLED='deleted_new') + OK='ok', + WARNING='queued', + ERROR='error', + UNINSTALLED='deleted_new') def __init__(self, id=None, create_time=None, tool_shed=None, name=None, description=None, owner=None, installed_changeset_revision=None, - changeset_revision=None, ctx_rev=None, metadata=None, includes_datatypes=False, tool_shed_status=None, deleted=False, - uninstalled=False, dist_to_shed=False, status=None, error_message=None): + changeset_revision=None, ctx_rev=None, metadata=None, includes_datatypes=False, tool_shed_status=None, deleted=False, + uninstalled=False, dist_to_shed=False, status=None, error_message=None): self.id = id self.create_time = create_time self.tool_shed = tool_shed @@ -71,8 +71,8 @@ class ToolShedRepository(object): @property def can_deactivate(self): return self.status not in [self.installation_status.DEACTIVATED, - self.installation_status.ERROR, - self.installation_status.UNINSTALLED] + self.installation_status.ERROR, + self.installation_status.UNINSTALLED] @property def can_reinstall_or_activate(self): @@ -251,7 +251,7 @@ class ToolShedRepository(object): @property def is_deactivated_or_installed(self): return self.status in [self.installation_status.DEACTIVATED, - self.installation_status.INSTALLED] + self.installation_status.INSTALLED] @property def is_installed(self): @@ -320,10 +320,10 @@ class ToolShedRepository(object): required_repositories_being_installed = [] for required_repository in self.repository_dependencies: if required_repository.status in [self.installation_status.CLONING, - self.installation_status.INSTALLING_REPOSITORY_DEPENDENCIES, - self.installation_status.INSTALLING_TOOL_DEPENDENCIES, - self.installation_status.LOADING_PROPRIETARY_DATATYPES, - self.installation_status.SETTING_TOOL_VERSIONS]: + self.installation_status.INSTALLING_REPOSITORY_DEPENDENCIES, + self.installation_status.INSTALLING_TOOL_DEPENDENCIES, + self.installation_status.LOADING_PROPRIETARY_DATATYPES, + self.installation_status.SETTING_TOOL_VERSIONS]: required_repositories_being_installed.append(required_repository) return required_repositories_being_installed @@ -333,9 +333,9 @@ class ToolShedRepository(object): required_repositories_missing_or_being_installed = [] for required_repository in self.repository_dependencies: if required_repository.status in [self.installation_status.ERROR, - self.installation_status.INSTALLING, - self.installation_status.NEVER_INSTALLED, - self.installation_status.UNINSTALLED]: + self.installation_status.INSTALLING, + self.installation_status.NEVER_INSTALLED, + self.installation_status.UNINSTALLED]: required_repositories_missing_or_being_installed.append(required_repository) return required_repositories_missing_or_being_installed @@ -425,7 +425,7 @@ class ToolShedRepository(object): installed_dependencies = [] for tool_dependency in self.tool_dependencies: if tool_dependency.status in [ToolDependency.installation_status.INSTALLED, - ToolDependency.installation_status.ERROR]: + ToolDependency.installation_status.ERROR]: installed_dependencies.append(tool_dependency) return installed_dependencies @@ -434,9 +434,9 @@ class ToolShedRepository(object): dependencies_missing_or_being_installed = [] for tool_dependency in self.tool_dependencies: if tool_dependency.status in [ToolDependency.installation_status.ERROR, - ToolDependency.installation_status.INSTALLING, - ToolDependency.installation_status.NEVER_INSTALLED, - ToolDependency.installation_status.UNINSTALLED]: + ToolDependency.installation_status.INSTALLING, + ToolDependency.installation_status.NEVER_INSTALLED, + ToolDependency.installation_status.UNINSTALLED]: dependencies_missing_or_being_installed.append(tool_dependency) return dependencies_missing_or_being_installed @@ -516,16 +516,16 @@ class RepositoryDependency(object): class ToolDependency(object): installation_status = Bunch(NEVER_INSTALLED='Never installed', - INSTALLING='Installing', - INSTALLED='Installed', - ERROR='Error', - UNINSTALLED='Uninstalled') + INSTALLING='Installing', + INSTALLED='Installed', + ERROR='Error', + UNINSTALLED='Uninstalled') states = Bunch(INSTALLING='running', - OK='ok', - WARNING='queued', - ERROR='error', - UNINSTALLED='deleted_new') + OK='ok', + WARNING='queued', + ERROR='error', + UNINSTALLED='deleted_new') def __init__(self, tool_shed_repository_id=None, name=None, version=None, type=None, status=None, error_message=None): self.tool_shed_repository_id = tool_shed_repository_id @@ -546,9 +546,9 @@ class ToolDependency(object): @property def can_update(self): return self.status in [self.installation_status.NEVER_INSTALLED, - self.installation_status.INSTALLED, - self.installation_status.ERROR, - self.installation_status.UNINSTALLED] + self.installation_status.INSTALLED, + self.installation_status.ERROR, + self.installation_status.UNINSTALLED] def get_env_shell_file_path(self, app): installation_directory = self.installation_directory(app) @@ -564,18 +564,18 @@ class ToolDependency(object): def installation_directory(self, app): if self.type == 'package': return os.path.join(app.config.tool_dependency_dir, - self.name, - self.version, - self.tool_shed_repository.owner, - self.tool_shed_repository.name, - self.tool_shed_repository.installed_changeset_revision) + self.name, + self.version, + self.tool_shed_repository.owner, + self.tool_shed_repository.name, + self.tool_shed_repository.installed_changeset_revision) if self.type == 'set_environment': return os.path.join(app.config.tool_dependency_dir, - 'environment_settings', - self.name, - self.tool_shed_repository.owner, - self.tool_shed_repository.name, - self.tool_shed_repository.installed_changeset_revision) + 'environment_settings', + self.name, + self.tool_shed_repository.owner, + self.tool_shed_repository.name, + self.tool_shed_repository.installed_changeset_revision) @property def is_installed(self): diff --git a/lib/galaxy/model/tool_shed_install/mapping.py b/lib/galaxy/model/tool_shed_install/mapping.py index 661caf67ccf..0fa04d0f6f3 100644 --- a/lib/galaxy/model/tool_shed_install/mapping.py +++ b/lib/galaxy/model/tool_shed_install/mapping.py @@ -26,95 +26,95 @@ from galaxy.model.orm.now import now metadata = MetaData() install_model.ToolShedRepository.table = Table("tool_shed_repository", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_shed", TrimmedString(255), index=True), - Column("name", TrimmedString(255), index=True), - Column("description", TEXT), - Column("owner", TrimmedString(255), index=True), - Column("installed_changeset_revision", TrimmedString(255)), - Column("changeset_revision", TrimmedString(255), index=True), - Column("ctx_rev", TrimmedString(10)), - Column("metadata", JSONType, nullable=True), - Column("includes_datatypes", Boolean, index=True, default=False), - Column("tool_shed_status", JSONType, nullable=True), - Column("deleted", Boolean, index=True, default=False), - Column("uninstalled", Boolean, default=False), - Column("dist_to_shed", Boolean, default=False), - Column("status", TrimmedString(255)), - Column("error_message", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_shed", TrimmedString(255), index=True), + Column("name", TrimmedString(255), index=True), + Column("description", TEXT), + Column("owner", TrimmedString(255), index=True), + Column("installed_changeset_revision", TrimmedString(255)), + Column("changeset_revision", TrimmedString(255), index=True), + Column("ctx_rev", TrimmedString(10)), + Column("metadata", JSONType, nullable=True), + Column("includes_datatypes", Boolean, index=True, default=False), + Column("tool_shed_status", JSONType, nullable=True), + Column("deleted", Boolean, index=True, default=False), + Column("uninstalled", Boolean, default=False), + Column("dist_to_shed", Boolean, default=False), + Column("status", TrimmedString(255)), + Column("error_message", TEXT)) install_model.RepositoryRepositoryDependencyAssociation.table = Table('repository_repository_dependency_association', metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True), - Column("repository_dependency_id", Integer, ForeignKey("repository_dependency.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True), + Column("repository_dependency_id", Integer, ForeignKey("repository_dependency.id"), index=True)) install_model.RepositoryDependency.table = Table("repository_dependency", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True, nullable=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True, nullable=False)) install_model.ToolDependency.table = Table("tool_dependency", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True, nullable=False), - Column("name", TrimmedString(255)), - Column("version", TEXT), - Column("type", TrimmedString(40)), - Column("status", TrimmedString(255), nullable=False), - Column("error_message", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True, nullable=False), + Column("name", TrimmedString(255)), + Column("version", TEXT), + Column("type", TrimmedString(40)), + Column("status", TrimmedString(255), nullable=False), + Column("error_message", TEXT)) install_model.ToolVersion.table = Table("tool_version", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_id", String(255)), - Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True, nullable=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_id", String(255)), + Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True, nullable=True)) install_model.ToolVersionAssociation.table = Table("tool_version_association", metadata, - Column("id", Integer, primary_key=True), - Column("tool_id", Integer, ForeignKey("tool_version.id"), index=True, nullable=False), - Column("parent_id", Integer, ForeignKey("tool_version.id"), index=True, nullable=False)) + Column("id", Integer, primary_key=True), + Column("tool_id", Integer, ForeignKey("tool_version.id"), index=True, nullable=False), + Column("parent_id", Integer, ForeignKey("tool_version.id"), index=True, nullable=False)) install_model.MigrateTools.table = Table("migrate_tools", metadata, - Column("repository_id", TrimmedString(255)), - Column("repository_path", TEXT), - Column("version", Integer)) + Column("repository_id", TrimmedString(255)), + Column("repository_path", TEXT), + Column("version", Integer)) mapper(install_model.ToolShedRepository, install_model.ToolShedRepository.table, - properties=dict(tool_versions=relation(install_model.ToolVersion, - primaryjoin=(install_model.ToolShedRepository.table.c.id == install_model.ToolVersion.table.c.tool_shed_repository_id), - backref='tool_shed_repository'), - tool_dependencies=relation(install_model.ToolDependency, - primaryjoin=(install_model.ToolShedRepository.table.c.id == install_model.ToolDependency.table.c.tool_shed_repository_id), - order_by=install_model.ToolDependency.table.c.name, - backref='tool_shed_repository'), - required_repositories=relation(install_model.RepositoryRepositoryDependencyAssociation, - primaryjoin=(install_model.ToolShedRepository.table.c.id == install_model.RepositoryRepositoryDependencyAssociation.table.c.tool_shed_repository_id)))) + properties=dict(tool_versions=relation(install_model.ToolVersion, + primaryjoin=(install_model.ToolShedRepository.table.c.id == install_model.ToolVersion.table.c.tool_shed_repository_id), + backref='tool_shed_repository'), + tool_dependencies=relation(install_model.ToolDependency, + primaryjoin=(install_model.ToolShedRepository.table.c.id == install_model.ToolDependency.table.c.tool_shed_repository_id), + order_by=install_model.ToolDependency.table.c.name, + backref='tool_shed_repository'), + required_repositories=relation(install_model.RepositoryRepositoryDependencyAssociation, + primaryjoin=(install_model.ToolShedRepository.table.c.id == install_model.RepositoryRepositoryDependencyAssociation.table.c.tool_shed_repository_id)))) mapper(install_model.RepositoryRepositoryDependencyAssociation, install_model.RepositoryRepositoryDependencyAssociation.table, - properties=dict(repository=relation(install_model.ToolShedRepository, - primaryjoin=(install_model.RepositoryRepositoryDependencyAssociation.table.c.tool_shed_repository_id == install_model.ToolShedRepository.table.c.id)), - repository_dependency=relation(install_model.RepositoryDependency, - primaryjoin=(install_model.RepositoryRepositoryDependencyAssociation.table.c.repository_dependency_id == install_model.RepositoryDependency.table.c.id)))) + properties=dict(repository=relation(install_model.ToolShedRepository, + primaryjoin=(install_model.RepositoryRepositoryDependencyAssociation.table.c.tool_shed_repository_id == install_model.ToolShedRepository.table.c.id)), + repository_dependency=relation(install_model.RepositoryDependency, + primaryjoin=(install_model.RepositoryRepositoryDependencyAssociation.table.c.repository_dependency_id == install_model.RepositoryDependency.table.c.id)))) mapper(install_model.RepositoryDependency, install_model.RepositoryDependency.table, - properties=dict(repository=relation(install_model.ToolShedRepository, - primaryjoin=(install_model.RepositoryDependency.table.c.tool_shed_repository_id == install_model.ToolShedRepository.table.c.id)))) + properties=dict(repository=relation(install_model.ToolShedRepository, + primaryjoin=(install_model.RepositoryDependency.table.c.tool_shed_repository_id == install_model.ToolShedRepository.table.c.id)))) mapper(install_model.ToolDependency, install_model.ToolDependency.table) mapper(install_model.ToolVersion, install_model.ToolVersion.table, - properties=dict( + properties=dict( parent_tool_association=relation(install_model.ToolVersionAssociation, - primaryjoin=(install_model.ToolVersion.table.c.id == install_model.ToolVersionAssociation.table.c.tool_id)), + primaryjoin=(install_model.ToolVersion.table.c.id == install_model.ToolVersionAssociation.table.c.tool_id)), child_tool_association=relation(install_model.ToolVersionAssociation, - primaryjoin=(install_model.ToolVersion.table.c.id == install_model.ToolVersionAssociation.table.c.parent_id)))) + primaryjoin=(install_model.ToolVersion.table.c.id == install_model.ToolVersionAssociation.table.c.parent_id)))) mapper(install_model.ToolVersionAssociation, install_model.ToolVersionAssociation.table) diff --git a/lib/galaxy/objectstore/rods.py b/lib/galaxy/objectstore/rods.py index 12be66632b0..cad636a759e 100644 --- a/lib/galaxy/objectstore/rods.py +++ b/lib/galaxy/objectstore/rods.py @@ -338,9 +338,9 @@ def rods_connect(): status, env = irods.getRodsEnv() assert status == 0, 'connect(): getRodsEnv() failed (%s): %s' % (status, irods.strerror(status)) conn, err = irods.rcConnect(env.rodsHost, - env.rodsPort, - env.rodsUserName, - env.rodsZone) + env.rodsPort, + env.rodsUserName, + env.rodsZone) assert err.status == 0, 'connect(): rcConnect() failed (%s): %s' % (err.status, err.msg) status, pw = irods.obfGetPw() assert status == 0, 'connect(): getting password with obfGetPw() failed (%s): %s' % (status, irods.strerror(status)) diff --git a/lib/galaxy/objectstore/s3.py b/lib/galaxy/objectstore/s3.py index eca2b5b5d7b..fbf4d65c683 100644 --- a/lib/galaxy/objectstore/s3.py +++ b/lib/galaxy/objectstore/s3.py @@ -480,7 +480,7 @@ class S3ObjectStore(ObjectStore): return bool(self.size(obj, **kwargs) > 0) else: raise ObjectNotFound('objectstore.empty, object does not exist: %s, kwargs: %s' - % (str(obj), str(kwargs))) + % (str(obj), str(kwargs))) def size(self, obj, **kwargs): rel_path = self._construct_path(obj, **kwargs) @@ -578,7 +578,7 @@ class S3ObjectStore(ObjectStore): # if dir_only: # return cache_path raise ObjectNotFound('objectstore.get_filename, no cache_path: %s, kwargs: %s' - % (str(obj), str(kwargs))) + % (str(obj), str(kwargs))) # return cache_path # Until the upload tool does not explicitly create the dataset, return expected path def update_from_file(self, obj, file_name=None, create=False, **kwargs): @@ -604,7 +604,7 @@ class S3ObjectStore(ObjectStore): self._push_to_os(rel_path, source_file) else: raise ObjectNotFound('objectstore.update_from_file, object does not exist: %s, kwargs: %s' - % (str(obj), str(kwargs))) + % (str(obj), str(kwargs))) def get_object_url(self, obj, **kwargs): if self.exists(obj, **kwargs): diff --git a/lib/galaxy/queue_worker.py b/lib/galaxy/queue_worker.py index cc403917f2c..777a0986544 100644 --- a/lib/galaxy/queue_worker.py +++ b/lib/galaxy/queue_worker.py @@ -179,15 +179,15 @@ def admin_job_lock(app, **kwargs): control_message_to_task = {'create_panel_section': create_panel_section, - 'reload_tool': reload_tool, - 'reload_toolbox': reload_toolbox, - 'reload_data_managers': reload_data_managers, - 'reload_display_application': reload_display_application, - 'reload_tool_data_tables': reload_tool_data_tables, - 'admin_job_lock': admin_job_lock, - 'reload_sanitize_whitelist': reload_sanitize_whitelist, - 'recalculate_user_disk_usage': recalculate_user_disk_usage, - 'rebuild_toolbox_search_index': rebuild_toolbox_search_index} + 'reload_tool': reload_tool, + 'reload_toolbox': reload_toolbox, + 'reload_data_managers': reload_data_managers, + 'reload_display_application': reload_display_application, + 'reload_tool_data_tables': reload_tool_data_tables, + 'admin_job_lock': admin_job_lock, + 'reload_sanitize_whitelist': reload_sanitize_whitelist, + 'recalculate_user_disk_usage': recalculate_user_disk_usage, + 'rebuild_toolbox_search_index': rebuild_toolbox_search_index} class GalaxyQueueWorker(ConsumerMixin, threading.Thread): diff --git a/lib/galaxy/security/__init__.py b/lib/galaxy/security/__init__.py index 1619a4b6ef5..4c99e955c16 100644 --- a/lib/galaxy/security/__init__.py +++ b/lib/galaxy/security/__init__.py @@ -439,7 +439,7 @@ class GalaxyRBACAgent(RBACAgent): ids = [item.library_dataset_id for item in permission_items] permissions = trans.sa_session.query(trans.model.LibraryDatasetPermissions) \ .filter(and_(trans.model.LibraryDatasetPermissions.library_dataset_id.in_(ids), - trans.model.LibraryDatasetPermissions.action == action.action)) \ + trans.model.LibraryDatasetPermissions.action == action.action)) \ .all() # Massage the return data. We will return a list of permissions @@ -456,7 +456,7 @@ class GalaxyRBACAgent(RBACAgent): ids = [item.id for item in permission_items] permissions = trans.sa_session.query(trans.model.DatasetPermissions) \ .filter(and_(trans.model.DatasetPermissions.dataset_id.in_(ids), - trans.model.DatasetPermissions.action == action.action)) \ + trans.model.DatasetPermissions.action == action.action)) \ .all() # Massage the return data. We will return a list of permissions @@ -484,16 +484,16 @@ class GalaxyRBACAgent(RBACAgent): common_result = set(base_result).intersection(new_result) if len(common_result) == len(base_result): log.debug("Match on permissions for id %d" % - item.library_dataset_id) + item.library_dataset_id) # TODO: Fix this failure message: else: log.debug("Error: dataset %d; originally: %s; now: %s" - % (item.library_dataset_id, - base_result, new_result)) + % (item.library_dataset_id, + base_result, new_result)) else: log.debug("Error: dataset %d: had %d entries, now %d entries" - % (item.library_dataset_id, len(base_result), - len(new_result))) + % (item.library_dataset_id, len(base_result), + len(new_result))) log.debug("get_actions_for_items: Test end") except Exception as e: log.debug("Exception in test code: %s" % e) @@ -549,7 +549,7 @@ class GalaxyRBACAgent(RBACAgent): log.debug("Item %d: success" % item.id) else: log.debug("Item %d: fail: original: %s; new: %s" - % (item.id, orig_value, ret_allow_action[item.id])) + % (item.id, orig_value, ret_allow_action[item.id])) log.debug("allow_action_for_items: test end") return ret_allow_action @@ -625,7 +625,7 @@ class GalaxyRBACAgent(RBACAgent): current_user_role_ids = [role.id for role in user.all_roles()] library_access_action = self.permitted_actions.LIBRARY_ACCESS.action restricted_library_ids = [lp.library_id for lp in trans.sa_session.query(trans.model.LibraryPermissions) - .filter(trans.model.LibraryPermissions.table.c.action == library_access_action).distinct()] + .filter(trans.model.LibraryPermissions.table.c.action == library_access_action).distinct()] accessible_restricted_library_ids = [lp.library_id for lp in trans.sa_session.query( trans.model.LibraryPermissions).filter( and_(trans.model.LibraryPermissions.table.c.action == library_access_action, @@ -634,8 +634,8 @@ class GalaxyRBACAgent(RBACAgent): # public libraries and restricted libraries accessible by the current user. for library in trans.sa_session.query(trans.model.Library) \ .filter(and_(trans.model.Library.table.c.deleted == false(), - (or_(not_(trans.model.Library.table.c.id.in_(restricted_library_ids)), - trans.model.Library.table.c.id.in_(accessible_restricted_library_ids))))) \ + (or_(not_(trans.model.Library.table.c.id.in_(restricted_library_ids)), + trans.model.Library.table.c.id.in_(accessible_restricted_library_ids))))) \ .order_by(trans.app.model.Library.name): accessible_libraries.append(library) return accessible_libraries @@ -654,7 +654,7 @@ class GalaxyRBACAgent(RBACAgent): def has_accessible_library_datasets(self, trans, folder, user, roles, search_downward=True): for library_dataset in trans.sa_session.query(trans.model.LibraryDataset) \ .filter(and_(trans.model.LibraryDataset.table.c.deleted == false(), - trans.app.model.LibraryDataset.table.c.folder_id == folder.id)): + trans.app.model.LibraryDataset.table.c.folder_id == folder.id)): if self.can_access_library_item(roles, library_dataset, user): return True if search_downward: @@ -773,7 +773,7 @@ class GalaxyRBACAgent(RBACAgent): def get_private_user_role(self, user, auto_create=False): role = self.sa_session.query(self.model.Role) \ .filter(and_(self.model.Role.table.c.name == user.email, - self.model.Role.table.c.type == self.model.Role.types.PRIVATE)) \ + self.model.Role.table.c.type == self.model.Role.types.PRIVATE)) \ .first() if not role: if auto_create: @@ -785,7 +785,7 @@ class GalaxyRBACAgent(RBACAgent): def get_sharing_roles(self, user): return self.sa_session.query(self.model.Role) \ .filter(and_((self.model.Role.table.c.name).like("Sharing role for: %" + user.email + "%"), - self.model.Role.table.c.type == self.model.Role.types.SHARING)) + self.model.Role.table.c.type == self.model.Role.types.SHARING)) def user_set_default_permissions(self, user, permissions={}, history=False, dataset=False, bypass_manage_permission=False, default_access_private=False): # bypass_manage_permission is used to change permissions of datasets in a userless history when logging in @@ -953,13 +953,13 @@ class GalaxyRBACAgent(RBACAgent): accessible_restricted_request_type_ids = [rtp.request_type_id for rtp in trans.sa_session.query( trans.model.RequestTypePermissions).filter( and_(trans.model.RequestTypePermissions.table.c.action == request_type_access_action, - trans.model.RequestTypePermissions.table.c.role_id.in_(current_user_role_ids)))] + trans.model.RequestTypePermissions.table.c.role_id.in_(current_user_role_ids)))] # Filter to get libraries accessible by the current user. Get both # public libraries and restricted libraries accessible by the current user. for request_type in trans.sa_session.query(trans.model.RequestType) \ .filter(and_(trans.model.RequestType.table.c.deleted == false(), - (or_(not_(trans.model.RequestType.table.c.id.in_(restricted_request_type_ids)), - trans.model.RequestType.table.c.id.in_(accessible_restricted_request_type_ids))))) \ + (or_(not_(trans.model.RequestType.table.c.id.in_(restricted_request_type_ids)), + trans.model.RequestType.table.c.id.in_(accessible_restricted_request_type_ids))))) \ .order_by(trans.app.model.RequestType.name): accessible_request_types.append(request_type) return accessible_request_types @@ -992,7 +992,7 @@ class GalaxyRBACAgent(RBACAgent): break if sharing_role is None: sharing_role = self.model.Role(name="Sharing role for: " + ", ".join([u.email for u in users]), - type=self.model.Role.types.SHARING) + type=self.model.Role.types.SHARING) self.sa_session.add(sharing_role) self.sa_session.flush() for user in users: @@ -1159,7 +1159,7 @@ class GalaxyRBACAgent(RBACAgent): # Now get all datasets which have DATASET_ACCESS actions: access_data_perms = trans.sa_session.query(trans.app.model.DatasetPermissions) \ .filter(and_(trans.app.model.DatasetPermissions.dataset_id.in_(dataset_ids), - trans.app.model.DatasetPermissions.action == self.permitted_actions.DATASET_ACCESS.action)) \ + trans.app.model.DatasetPermissions.action == self.permitted_actions.DATASET_ACCESS.action)) \ .all() # Every dataset returned has "access" privileges associated with it, # so it's not public. @@ -1303,7 +1303,7 @@ class GalaxyRBACAgent(RBACAgent): self.sa_session.flush() else: raise Exception('Invalid class (%s) specified for target_library_item (%s)' % - (target_library_item.__class__, target_library_item.__class__.__name__)) + (target_library_item.__class__, target_library_item.__class__.__name__)) def get_permitted_libraries(self, trans, user, actions): """ @@ -1520,7 +1520,7 @@ class HostAgent(RBACAgent): # TODO: Make sites user configurable sites = Bunch( ucsc_main=('hgw1.cse.ucsc.edu', 'hgw2.cse.ucsc.edu', 'hgw3.cse.ucsc.edu', 'hgw4.cse.ucsc.edu', - 'hgw5.cse.ucsc.edu', 'hgw6.cse.ucsc.edu', 'hgw7.cse.ucsc.edu', 'hgw8.cse.ucsc.edu'), + 'hgw5.cse.ucsc.edu', 'hgw6.cse.ucsc.edu', 'hgw7.cse.ucsc.edu', 'hgw8.cse.ucsc.edu'), ucsc_test=('hgwdev.cse.ucsc.edu', ), ucsc_archaea=('lowepub.cse.ucsc.edu', ) ) diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index 44b95f224d8..bb21ea3f05c 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -463,10 +463,10 @@ class Tool(object, Dictifiable): # If this tool is included in an installed tool shed repository, return it. if self.tool_shed: return repository_util.get_installed_repository(self.app, - tool_shed=self.tool_shed, - name=self.repository_name, - owner=self.repository_owner, - installed_changeset_revision=self.installed_changeset_revision) + tool_shed=self.tool_shed, + name=self.repository_name, + owner=self.repository_owner, + installed_changeset_revision=self.installed_changeset_revision) return None @property @@ -843,8 +843,8 @@ class Tool(object, Dictifiable): if self.nginx_upload and self.app.config.nginx_upload_path: if '?' in unquote_plus(self.action): raise Exception('URL parameters in a non-default tool action can not be used ' - 'in conjunction with nginx upload. Please convert them to ' - 'hidden POST parameters') + 'in conjunction with nginx upload. Please convert them to ' + 'hidden POST parameters') self.action = (self.app.config.nginx_upload_path + '?nginx_redir=', unquote_plus(self.action)) self.target = input_elem.get("target", self.target) @@ -1001,10 +1001,10 @@ class Tool(object, Dictifiable): possible_cases.remove(case.value) except: log.warning("Tool %s: a when tag has been defined for '%s (%s) --> %s', but does not appear to be selectable." % - (self.id, group.name, group.test_param.name, case.value)) + (self.id, group.name, group.test_param.name, case.value)) for unspecified_case in possible_cases: log.warning("Tool %s: a when tag has not been defined for '%s (%s) --> %s', assuming empty inputs." % - (self.id, group.name, group.test_param.name, unspecified_case)) + (self.id, group.name, group.test_param.name, unspecified_case)) case = ConditionalWhen() case.value = unspecified_case case.inputs = odict() @@ -1116,8 +1116,8 @@ class Tool(object, Dictifiable): log.exception("Exception in parse_help, so images may not be properly displayed") try: self.__help = Template(rst_to_html(help_text), input_encoding='utf-8', - output_encoding='utf-8', default_filters=['decode.utf8'], - encoding_errors='replace') + output_encoding='utf-8', default_filters=['decode.utf8'], + encoding_errors='replace') except: log.exception("error in help for tool %s", self.name) @@ -1134,10 +1134,10 @@ class Tool(object, Dictifiable): # Each page has to rendered all-together because of backreferences allowed by rst try: self.__help_by_page = [Template(rst_to_html(help_header + x + help_footer), - input_encoding='utf-8', output_encoding='utf-8', - default_filters=['decode.utf8'], - encoding_errors='replace') - for x in self.__help_by_page] + input_encoding='utf-8', output_encoding='utf-8', + default_filters=['decode.utf8'], + encoding_errors='replace') + for x in self.__help_by_page] except: log.exception("error in multi-page help for tool %s", self.name) # Pad out help pages to match npages ... could this be done better? @@ -1286,11 +1286,11 @@ class Tool(object, Dictifiable): execution_tracker = execute_job(trans, self, all_params, history=request_context.history, rerun_remap_job_id=rerun_remap_job_id, collection_info=collection_info) if execution_tracker.successful_jobs: return dict(out_data=execution_tracker.output_datasets, - num_jobs=len(execution_tracker.successful_jobs), - job_errors=execution_tracker.execution_errors, - jobs=execution_tracker.successful_jobs, - output_collections=execution_tracker.output_collections, - implicit_collections=execution_tracker.implicit_collections) + num_jobs=len(execution_tracker.successful_jobs), + job_errors=execution_tracker.execution_errors, + jobs=execution_tracker.successful_jobs, + output_collections=execution_tracker.output_collections, + implicit_collections=execution_tracker.implicit_collections) else: raise exceptions.MessageException(execution_tracker.execution_errors[0]) @@ -1570,12 +1570,12 @@ class Tool(object, Dictifiable): visible = False ext = fields[4].lower() child_dataset = self.app.model.HistoryDatasetAssociation(extension=ext, - parent_id=outdata.id, - designation=designation, - visible=visible, - dbkey=outdata.dbkey, - create_dataset=True, - sa_session=self.sa_session) + parent_id=outdata.id, + designation=designation, + visible=visible, + dbkey=outdata.dbkey, + create_dataset=True, + sa_session=self.sa_session) self.app.security_agent.copy_dataset_permissions(outdata.dataset, child_dataset.dataset) # Move data from temp location to dataset location self.app.object_store.update_from_file(child_dataset.dataset, file_name=filename, create=True) @@ -1698,7 +1698,7 @@ class Tool(object, Dictifiable): if not data_table.filenames[data_table_filename]['from_shed_config']: tar_file = data_table.filenames[data_table_filename]['filename'] + '.sample' sample_file = os.path.join(data_table.filenames[data_table_filename]['tool_data_path'], - tar_file) + tar_file) # Use the .sample file, if one exists. If not, skip this data table. if os.path.exists(sample_file): tarfile_path, tarfile_name = os.path.split(tar_file) @@ -1759,8 +1759,8 @@ class Tool(object, Dictifiable): # Basic information tool_dict.update({'link': link, - 'min_width': self.uihints.get('minwidth', -1), - 'target': self.target}) + 'min_width': self.uihints.get('minwidth', -1), + 'target': self.target}) # Add input and output details. if io_details: @@ -2074,11 +2074,11 @@ class OutputParameterJSONTool(Tool): file_name = str(wrapped_data) extra_files_path = str(wrapped_data.files_path) data_dict = dict(out_data_name=out_name, - ext=data.ext, - dataset_id=data.dataset.id, - hda_id=data.id, - file_name=file_name, - extra_files_path=extra_files_path) + ext=data.ext, + dataset_id=data.dataset.id, + hda_id=data.id, + file_name=file_name, + extra_files_path=extra_files_path) json_params['output_data'].append(data_dict) if json_filename is None: json_filename = file_name @@ -2139,11 +2139,11 @@ class DataSourceTool(OutputParameterJSONTool): file_name = str(wrapped_data) extra_files_path = str(wrapped_data.files_path) data_dict = dict(out_data_name=out_name, - ext=data.ext, - dataset_id=data.dataset.id, - hda_id=data.id, - file_name=file_name, - extra_files_path=extra_files_path) + ext=data.ext, + dataset_id=data.dataset.id, + hda_id=data.id, + file_name=file_name, + extra_files_path=extra_files_path) json_params['output_data'].append(data_dict) if json_filename is None: json_filename = file_name @@ -2631,9 +2631,9 @@ class FilterFromFileTool(DatabaseOperationTool): # Populate tool_type to ToolClass mappings tool_types = {} for tool_class in [Tool, SetMetadataTool, OutputParameterJSONTool, - DataManagerTool, DataSourceTool, AsyncDataSourceTool, - UnzipCollectionTool, ZipCollectionTool, MergeCollectionTool, RelabelFromFileTool, FilterFromFileTool, - DataDestinationTool]: + DataManagerTool, DataSourceTool, AsyncDataSourceTool, + UnzipCollectionTool, ZipCollectionTool, MergeCollectionTool, RelabelFromFileTool, FilterFromFileTool, + DataDestinationTool]: tool_types[tool_class.tool_type] = tool_class diff --git a/lib/galaxy/tools/actions/history_imp_exp.py b/lib/galaxy/tools/actions/history_imp_exp.py index 0cd61fdb804..a67b1b509ee 100644 --- a/lib/galaxy/tools/actions/history_imp_exp.py +++ b/lib/galaxy/tools/actions/history_imp_exp.py @@ -115,13 +115,13 @@ class ExportHistoryToolAction(ToolAction): # Add association for keeping track of job, history, archive relationship. jeha = trans.app.model.JobExportHistoryArchive(job=job, history=history, - dataset=archive_dataset, - compressed=incoming['compress']) + dataset=archive_dataset, + compressed=incoming['compress']) trans.sa_session.add(jeha) job_wrapper = JobExportHistoryArchiveWrapper(job) cmd_line = job_wrapper.setup_job(trans, jeha, include_hidden=incoming['include_hidden'], - include_deleted=incoming['include_deleted']) + include_deleted=incoming['include_deleted']) # # Add parameters to job_parameter table. diff --git a/lib/galaxy/tools/actions/metadata.py b/lib/galaxy/tools/actions/metadata.py index 21c546d09cd..a86dee634da 100644 --- a/lib/galaxy/tools/actions/metadata.py +++ b/lib/galaxy/tools/actions/metadata.py @@ -18,15 +18,15 @@ class SetMetadataToolAction(ToolAction): Execute using a web transaction. """ job, odict = self.execute_via_app(tool, trans.app, trans.get_galaxy_session().id, - trans.history.id, trans.user, incoming, set_output_hid, - overwrite, history, job_params) + trans.history.id, trans.user, incoming, set_output_hid, + overwrite, history, job_params) # FIXME: can remove this when logging in execute_via_app method. trans.log_event("Added set external metadata job to the job queue, id: %s" % str(job.id), tool_id=job.tool_id) return job, odict def execute_via_app(self, tool, app, session_id, history_id, user=None, - incoming={}, set_output_hid=False, overwrite=True, - history=None, job_params=None): + incoming={}, set_output_hid=False, overwrite=True, + history=None, job_params=None): """ Execute using application. """ @@ -74,18 +74,18 @@ class SetMetadataToolAction(ToolAction): job_working_dir = app.object_store.get_filename(job, base_dir='job_work', dir_only=True, extra_dir=str(job.id)) external_metadata_wrapper = JobExternalOutputMetadataWrapper(job) cmd_line = external_metadata_wrapper.setup_external_metadata(dataset, - sa_session, - exec_dir=None, - tmp_dir=job_working_dir, - dataset_files_path=app.model.Dataset.file_path, - output_fnames=input_paths, - config_root=app.config.root, - config_file=app.config.config_file, - datatypes_config=app.datatypes_registry.integrated_datatypes_configs, - job_metadata=None, - include_command=False, - max_metadata_value_size=app.config.max_metadata_value_size, - kwds={'overwrite' : overwrite}) + sa_session, + exec_dir=None, + tmp_dir=job_working_dir, + dataset_files_path=app.model.Dataset.file_path, + output_fnames=input_paths, + config_root=app.config.root, + config_file=app.config.config_file, + datatypes_config=app.datatypes_registry.integrated_datatypes_configs, + job_metadata=None, + include_command=False, + max_metadata_value_size=app.config.max_metadata_value_size, + kwds={'overwrite' : overwrite}) incoming['__SET_EXTERNAL_METADATA_COMMAND_LINE__'] = cmd_line for name, value in tool.params_to_strings(incoming, app).items(): job.add_parameter(name, value) diff --git a/lib/galaxy/tools/actions/upload_common.py b/lib/galaxy/tools/actions/upload_common.py index e7872b92d39..16f1a8982f6 100644 --- a/lib/galaxy/tools/actions/upload_common.py +++ b/lib/galaxy/tools/actions/upload_common.py @@ -31,7 +31,7 @@ def persist_uploads(params): local_filename = util.mkstemp_ln(f.file.name, 'upload_file_data_') f.file.close() upload_dataset['file_data'] = dict(filename=f.filename, - local_filename=local_filename) + local_filename=local_filename) elif type(f) == dict and 'local_filename' not in f: raise Exception('Uploaded file was encoded in a way not understood by Galaxy.') if upload_dataset['url_paste'] and upload_dataset['url_paste'].strip() != '': @@ -126,11 +126,11 @@ def __new_history_upload(trans, uploaded_dataset, history=None, state=None): if not history: history = trans.history hda = trans.app.model.HistoryDatasetAssociation(name=uploaded_dataset.name, - extension=uploaded_dataset.file_type, - dbkey=uploaded_dataset.dbkey, - history=history, - create_dataset=True, - sa_session=trans.sa_session) + extension=uploaded_dataset.file_type, + dbkey=uploaded_dataset.dbkey, + history=history, + create_dataset=True, + sa_session=trans.sa_session) if state: hda.state = state else: @@ -173,12 +173,12 @@ def __new_library_upload(trans, cntrller, uploaded_dataset, library_bunch, state trans.sa_session.flush() trans.app.security_agent.copy_library_permissions(trans, folder, ld) ldda = trans.app.model.LibraryDatasetDatasetAssociation(name=uploaded_dataset.name, - extension=uploaded_dataset.file_type, - dbkey=uploaded_dataset.dbkey, - library_dataset=ld, - user=trans.user, - create_dataset=True, - sa_session=trans.sa_session) + extension=uploaded_dataset.file_type, + dbkey=uploaded_dataset.dbkey, + library_dataset=ld, + user=trans.user, + create_dataset=True, + sa_session=trans.sa_session) if uploaded_dataset.get('tag_using_filenames', False): tag_from_filename = os.path.splitext(os.path.basename(uploaded_dataset.name))[0] tag_manager = tags.GalaxyTagManager(trans.sa_session) @@ -313,13 +313,13 @@ def create_paramfile(trans, uploaded_datasets): trans.sa_session.add(data) trans.sa_session.flush() json = dict(file_type=uploaded_dataset.file_type, - dataset_id=data.dataset.id, - dbkey=uploaded_dataset.dbkey, - type=uploaded_dataset.type, - metadata=uploaded_dataset.metadata, - primary_file=uploaded_dataset.primary_file, - composite_file_paths=uploaded_dataset.composite_files, - composite_files=dict((k, v.__dict__) for k, v in data.datatype.get_composite_files(data).items())) + dataset_id=data.dataset.id, + dbkey=uploaded_dataset.dbkey, + type=uploaded_dataset.type, + metadata=uploaded_dataset.metadata, + primary_file=uploaded_dataset.primary_file, + composite_file_paths=uploaded_dataset.composite_files, + composite_files=dict((k, v.__dict__) for k, v in data.datatype.get_composite_files(data).items())) else: try: is_binary = uploaded_dataset.datatype.is_binary @@ -338,21 +338,21 @@ def create_paramfile(trans, uploaded_datasets): except: purge_source = True json = dict(file_type=uploaded_dataset.file_type, - ext=uploaded_dataset.ext, - name=uploaded_dataset.name, - dataset_id=data.dataset.id, - dbkey=uploaded_dataset.dbkey, - type=uploaded_dataset.type, - is_binary=is_binary, - link_data_only=link_data_only, - uuid=uuid_str, - to_posix_lines=getattr(uploaded_dataset, "to_posix_lines", True), - auto_decompress=getattr(uploaded_dataset, "auto_decompress", True), - purge_source=purge_source, - space_to_tab=uploaded_dataset.space_to_tab, - in_place=trans.app.config.external_chown_script is None, - check_content=trans.app.config.check_upload_content, - path=uploaded_dataset.path) + ext=uploaded_dataset.ext, + name=uploaded_dataset.name, + dataset_id=data.dataset.id, + dbkey=uploaded_dataset.dbkey, + type=uploaded_dataset.type, + is_binary=is_binary, + link_data_only=link_data_only, + uuid=uuid_str, + to_posix_lines=getattr(uploaded_dataset, "to_posix_lines", True), + auto_decompress=getattr(uploaded_dataset, "auto_decompress", True), + purge_source=purge_source, + space_to_tab=uploaded_dataset.space_to_tab, + in_place=trans.app.config.external_chown_script is None, + check_content=trans.app.config.check_upload_content, + path=uploaded_dataset.path) # TODO: This will have to change when we start bundling inputs. # Also, in_place above causes the file to be left behind since the # user cannot remove it unless the parent directory is writable. diff --git a/lib/galaxy/tools/data/__init__.py b/lib/galaxy/tools/data/__init__.py index 035c0ef489d..92aa6c995ed 100644 --- a/lib/galaxy/tools/data/__init__.py +++ b/lib/galaxy/tools/data/__init__.py @@ -147,8 +147,8 @@ class ToolDataTableManager(object): error_message = '' try: table_elems = self.load_from_config_file(config_filename=config_filename, - tool_data_path=tool_data_path, - from_shed_config=True) + tool_data_path=tool_data_path, + from_shed_config=True) except Exception as e: error_message = 'Error attempting to parse file %s: %s' % (str(os.path.split(config_filename)[1]), str(e)) log.debug(error_message) @@ -327,7 +327,7 @@ class TabularToolDataTable(ToolDataTable, Dictifiable): repo_elem = config_element.find('tool_shed_repository') if repo_elem is not None: repo_info = dict(tool_shed=repo_elem.find('tool_shed').text, name=repo_elem.find('repository_name').text, - owner=repo_elem.find('repository_owner').text, installed_changeset_revision=repo_elem.find('installed_changeset_revision').text) + owner=repo_elem.find('repository_owner').text, installed_changeset_revision=repo_elem.find('installed_changeset_revision').text) else: repo_info = None # Read every file @@ -394,7 +394,7 @@ class TabularToolDataTable(ToolDataTable, Dictifiable): if filename not in self.filenames or not self.filenames[filename]['found']: self.filenames[filename] = dict(found=found, filename=filename, from_shed_config=from_shed_config, tool_data_path=tool_data_path, - config_element=config_element, tool_shed_repository=repo_info, errors=errors) + config_element=config_element, tool_shed_repository=repo_info, errors=errors) else: log.debug("Filename '%s' already exists in filenames (%s), not adding", filename, list(self.filenames.keys())) # Remove URL tmp file diff --git a/lib/galaxy/tools/data_manager/manager.py b/lib/galaxy/tools/data_manager/manager.py index eda4f674a1d..05d3a9b3e1b 100644 --- a/lib/galaxy/tools/data_manager/manager.py +++ b/lib/galaxy/tools/data_manager/manager.py @@ -159,15 +159,15 @@ class DataManager(object): repository_owner = tool_elem.find('repository_owner').text installed_changeset_revision = tool_elem.find('installed_changeset_revision').text self.tool_shed_repository_info_dict = dict(tool_shed=tool_shed, - name=repository_name, - owner=repository_owner, - installed_changeset_revision=installed_changeset_revision) + name=repository_name, + owner=repository_owner, + installed_changeset_revision=installed_changeset_revision) tool_shed_repository = \ repository_util.get_installed_repository(self.data_managers.app, - tool_shed=tool_shed, - name=repository_name, - owner=repository_owner, - installed_changeset_revision=installed_changeset_revision) + tool_shed=tool_shed, + name=repository_name, + owner=repository_owner, + installed_changeset_revision=installed_changeset_revision) if tool_shed_repository is None: log.warning('Could not determine tool shed repository from database. This should only ever happen when running tests.') # we'll set tool_path manually here from shed_conf_file @@ -186,9 +186,9 @@ class DataManager(object): tool_path = shed_conf.get("tool_path", tool_path) assert path is not None, "A tool file path could not be determined:\n%s" % (util.xml_to_string(elem)) self.load_tool(os.path.join(tool_path, path), - guid=tool_guid, - data_manager_id=self.id, - tool_shed_repository_id=tool_shed_repository_id) + guid=tool_guid, + data_manager_id=self.id, + tool_shed_repository_id=tool_shed_repository_id) self.name = elem.get('name', self.tool.name) self.description = elem.get('description', self.tool.description) self.undeclared_tables = util.asbool(elem.get('undeclared_tables', self.undeclared_tables)) @@ -250,11 +250,11 @@ class DataManager(object): self.move_by_data_table_column[data_table_name] = {} self.move_by_data_table_column[data_table_name][data_table_coumn_name] = \ dict(type=move_type, - source_base=source_base, - source_value=source_value, - target_base=target_base, - target_value=target_value, - relativize_symlinks=relativize_symlinks) + source_base=source_base, + source_value=source_value, + target_base=target_base, + target_value=target_value, + relativize_symlinks=relativize_symlinks) @property def id(self): @@ -263,10 +263,10 @@ class DataManager(object): def load_tool(self, tool_filename, guid=None, data_manager_id=None, tool_shed_repository_id=None): toolbox = self.data_managers.app.toolbox tool = toolbox.load_hidden_tool(tool_filename, - guid=guid, - data_manager_id=data_manager_id, - repository_id=tool_shed_repository_id, - use_cached=True) + guid=guid, + data_manager_id=data_manager_id, + repository_id=tool_shed_repository_id, + use_cached=True) self.data_managers.app.toolbox.data_manager_tools[tool.id] = tool self.tool = tool return tool diff --git a/lib/galaxy/tools/deps/resolvers/tool_shed_packages.py b/lib/galaxy/tools/deps/resolvers/tool_shed_packages.py index 60c42ce999b..c2c5153d126 100644 --- a/lib/galaxy/tools/deps/resolvers/tool_shed_packages.py +++ b/lib/galaxy/tools/deps/resolvers/tool_shed_packages.py @@ -52,11 +52,11 @@ class ToolShedPackageDependencyResolver(BaseGalaxyPackageDependencyResolver, Use tool_shed_repository = installed_tool_dependency.tool_shed_repository base_path = self.base_path path = abspath(join(base_path, - 'environment_settings', - name, - tool_shed_repository.owner, - tool_shed_repository.name, - tool_shed_repository.installed_changeset_revision)) + 'environment_settings', + name, + tool_shed_repository.owner, + tool_shed_repository.name, + tool_shed_repository.installed_changeset_revision)) if exists(path): script = join(path, 'env.sh') return ToolShedDependency(script, path, None, name, True) diff --git a/lib/galaxy/tools/evaluation.py b/lib/galaxy/tools/evaluation.py index 0e3cbb06501..492f491c0d0 100644 --- a/lib/galaxy/tools/evaluation.py +++ b/lib/galaxy/tools/evaluation.py @@ -116,7 +116,7 @@ class ToolEvaluator(object): self.tool.exec_before_job(self.app, inp_data, out_data, param_dict) # Run the before queue ("exec_before_job") hook self.tool.call_hook('exec_before_job', self.app, inp_data=inp_data, - out_data=out_data, tool=self.tool, param_dict=incoming) + out_data=out_data, tool=self.tool, param_dict=incoming) self.param_dict = param_dict @@ -184,11 +184,11 @@ class ToolEvaluator(object): dataset_instances = DatasetListWrapper.to_dataset_instances(value) input_values[input.name] = \ DatasetListWrapper(job_working_directory, - dataset_instances, - dataset_paths=input_dataset_paths, - datatypes_registry=self.app.datatypes_registry, - tool=self.tool, - name=input.name) + dataset_instances, + dataset_paths=input_dataset_paths, + datatypes_registry=self.app.datatypes_registry, + tool=self.tool, + name=input.name) elif isinstance(input, DataToolParameter): # FIXME: We're populating param_dict with conversions when @@ -212,15 +212,15 @@ class ToolEvaluator(object): # Input that converter is based from has a value, # but converted dataset does not exist raise Exception('A path for explicit datatype conversion has not been found: %s --/--> %s' - % (input_values[input.name].extension, conversion_extensions)) + % (input_values[input.name].extension, conversion_extensions)) else: # Trick wrapper into using target conv ext (when # None) without actually being a tool parameter input_values[conversion_name] = \ DatasetFilenameWrapper(converted_dataset, - datatypes_registry=self.app.datatypes_registry, - tool=Bunch(conversion_name=Bunch(extensions=conv_ext)), - name=conversion_name) + datatypes_registry=self.app.datatypes_registry, + tool=Bunch(conversion_name=Bunch(extensions=conv_ext)), + name=conversion_name) # Wrap actual input dataset dataset = input_values[input.name] wrapper_kwds = dict( diff --git a/lib/galaxy/tools/imp_exp/__init__.py b/lib/galaxy/tools/imp_exp/__init__.py index 88130fa9e2c..7d9559822d4 100644 --- a/lib/galaxy/tools/imp_exp/__init__.py +++ b/lib/galaxy/tools/imp_exp/__init__.py @@ -87,7 +87,7 @@ class JobImportHistoryArchiveWrapper(object, UsesAnnotations): # Create history. new_history = model.History(name='imported from archive: %s' % history_attrs['name'].encode('utf-8'), - user=user) + user=user) new_history.importing = True new_history.hid_counter = history_attrs['hid_counter'] new_history.genome_build = history_attrs['genome_build'] @@ -132,17 +132,17 @@ class JobImportHistoryArchiveWrapper(object, UsesAnnotations): # Create dataset and HDA. hda = model.HistoryDatasetAssociation(name=dataset_attrs['name'].encode('utf-8'), - extension=dataset_attrs['extension'], - info=dataset_attrs['info'].encode('utf-8'), - blurb=dataset_attrs['blurb'], - peek=dataset_attrs['peek'], - designation=dataset_attrs['designation'], - visible=dataset_attrs['visible'], - dbkey=metadata['dbkey'], - metadata=metadata, - history=new_history, - create_dataset=True, - sa_session=self.sa_session) + extension=dataset_attrs['extension'], + info=dataset_attrs['info'].encode('utf-8'), + blurb=dataset_attrs['blurb'], + peek=dataset_attrs['peek'], + designation=dataset_attrs['designation'], + visible=dataset_attrs['visible'], + dbkey=metadata['dbkey'], + metadata=metadata, + history=new_history, + create_dataset=True, + sa_session=self.sa_session) if 'uuid' in dataset_attrs: hda.dataset.uuid = dataset_attrs["uuid"] if dataset_attrs.get('exported', True) is False: @@ -317,13 +317,13 @@ class JobExportHistoryArchiveWrapper(object, UsesAnnotations): Returns history's datasets. """ query = (trans.sa_session.query(trans.model.HistoryDatasetAssociation) - .filter(trans.model.HistoryDatasetAssociation.history == history) - .options(eagerload("children")) - .join("dataset") - .options(eagerload_all("dataset.actions")) - .order_by(trans.model.HistoryDatasetAssociation.hid) - .filter(trans.model.HistoryDatasetAssociation.deleted == expression.false()) - .filter(trans.model.Dataset.purged == expression.false())) + .filter(trans.model.HistoryDatasetAssociation.history == history) + .options(eagerload("children")) + .join("dataset") + .options(eagerload_all("dataset.actions")) + .order_by(trans.model.HistoryDatasetAssociation.hid) + .filter(trans.model.HistoryDatasetAssociation.deleted == expression.false()) + .filter(trans.model.Dataset.purged == expression.false())) return query.all() # TODO: should use db_session rather than trans in this method. @@ -521,8 +521,8 @@ class JobExportHistoryArchiveWrapper(object, UsesAnnotations): if jeha.compressed: options = "-G" return "%s %s %s %s" % (options, history_attrs_filename, - datasets_attrs_filename, - jobs_attrs_filename) + datasets_attrs_filename, + jobs_attrs_filename) def cleanup_after_job(self, db_session): """ Remove temporary directory and attribute files generated during setup for this job. """ diff --git a/lib/galaxy/tools/imp_exp/export_history.py b/lib/galaxy/tools/imp_exp/export_history.py index 4dc47f2c25b..5c41387cb0c 100644 --- a/lib/galaxy/tools/imp_exp/export_history.py +++ b/lib/galaxy/tools/imp_exp/export_history.py @@ -54,7 +54,7 @@ def create_archive(history_attrs_file, datasets_attrs_file, jobs_attrs_file, out dataset_file_name = dataset_attrs['file_name'] # Full file name. dataset_hid = dataset_attrs['hid'] dataset_archive_name = os.path.join('datasets', - get_dataset_filename(dataset_attrs['name'], dataset_attrs['extension'], dataset_hid)) + get_dataset_filename(dataset_attrs['name'], dataset_attrs['extension'], dataset_hid)) history_archive.add(dataset_file_name, arcname=dataset_archive_name) # Include additional files for example, files/images included in HTML output. @@ -69,7 +69,7 @@ def create_archive(history_attrs_file, datasets_attrs_file, jobs_attrs_file, out dataset_extra_files_path = 'datasets/extra_files_path_%s' % dataset_hid for fname in file_list: history_archive.add(os.path.join(extra_files_path, fname), - arcname=(os.path.join(dataset_extra_files_path, fname))) + arcname=(os.path.join(dataset_extra_files_path, fname))) dataset_attrs['extra_files_path'] = dataset_extra_files_path else: dataset_attrs['extra_files_path'] = '' diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index 8e835a31850..6c797dbbf86 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -1778,11 +1778,11 @@ class DataToolParameter(BaseDataToolParameter): # build and append a new select option def append(list, hda, name, src, keep=False): return list.append({'id' : trans.security.encode_id(hda.id), - 'hid' : hda.hid, - 'name' : name, - 'tags' : [t.user_tname if not t.value else "%s:%s" % (t.user_tname, t.value) for t in hda.tags], - 'src' : src, - 'keep' : keep}) + 'hid' : hda.hid, + 'name' : name, + 'tags' : [t.user_tname if not t.value else "%s:%s" % (t.user_tname, t.value) for t in hda.tags], + 'src' : src, + 'keep' : keep}) # add datasets hda_list = util.listify(other_values.get(self.name)) diff --git a/lib/galaxy/tools/parameters/dynamic_options.py b/lib/galaxy/tools/parameters/dynamic_options.py index d1cec1bc4b6..69fbad60db9 100644 --- a/lib/galaxy/tools/parameters/dynamic_options.py +++ b/lib/galaxy/tools/parameters/dynamic_options.py @@ -443,14 +443,14 @@ class SortByColumnFilter(Filter): filter_types = dict(data_meta=DataMetaFilter, - param_value=ParamValueFilter, - static_value=StaticValueFilter, - unique_value=UniqueValueFilter, - multiple_splitter=MultipleSplitterFilter, - attribute_value_splitter=AttributeValueSplitterFilter, - add_value=AdditionalValueFilter, - remove_value=RemoveValueFilter, - sort_by=SortByColumnFilter) + param_value=ParamValueFilter, + static_value=StaticValueFilter, + unique_value=UniqueValueFilter, + multiple_splitter=MultipleSplitterFilter, + attribute_value_splitter=AttributeValueSplitterFilter, + add_value=AdditionalValueFilter, + remove_value=RemoveValueFilter, + sort_by=SortByColumnFilter) class DynamicOptions(object): diff --git a/lib/galaxy/tools/parameters/grouping.py b/lib/galaxy/tools/parameters/grouping.py index 2f49703a014..1531bcef598 100644 --- a/lib/galaxy/tools/parameters/grouping.py +++ b/lib/galaxy/tools/parameters/grouping.py @@ -387,7 +387,7 @@ class UploadDataset(Group): path = relpath(os.path.join(dirpath, filename), user_ftp_dir) if not os.path.islink(os.path.join(dirpath, filename)): ftp_data_file = {'local_filename' : os.path.abspath(os.path.join(user_ftp_dir, path)), - 'filename' : os.path.basename(path)} + 'filename' : os.path.basename(path)} purge = getattr(trans.app.config, 'ftp_upload_purge', True) file_bunch = get_data_file_filename( ftp_data_file, @@ -467,7 +467,7 @@ class UploadDataset(Group): continue # TODO: warning to the user (could happen if file is already imported) ftp_data_file = {'local_filename' : os.path.abspath(os.path.join(user_ftp_dir, ftp_file)), - 'filename' : os.path.basename(ftp_file)} + 'filename' : os.path.basename(ftp_file)} purge = getattr(trans.app.config, 'ftp_upload_purge', True) file_bunch = get_data_file_filename(ftp_data_file, override_name=name, override_info=info, purge=purge) if file_bunch.path: diff --git a/lib/galaxy/tools/parameters/output_collect.py b/lib/galaxy/tools/parameters/output_collect.py index bb42ba933b6..3b68868aa42 100644 --- a/lib/galaxy/tools/parameters/output_collect.py +++ b/lib/galaxy/tools/parameters/output_collect.py @@ -515,12 +515,12 @@ def _new_hda( """ # Create new primary dataset primary_data = app.model.HistoryDatasetAssociation(extension=ext, - designation=designation, - visible=visible, - dbkey=dbkey, - create_dataset=True, - flush=False, - sa_session=sa_session) + designation=designation, + visible=visible, + dbkey=dbkey, + create_dataset=True, + flush=False, + sa_session=sa_session) if permissions is not UNSET: app.security_agent.set_all_dataset_permissions(primary_data.dataset, permissions, new=True, flush=False) sa_session.add(primary_data) diff --git a/lib/galaxy/tools/parameters/validation.py b/lib/galaxy/tools/parameters/validation.py index 3b9c273792c..85998d3cf96 100644 --- a/lib/galaxy/tools/parameters/validation.py +++ b/lib/galaxy/tools/parameters/validation.py @@ -127,8 +127,8 @@ class InRangeValidator(Validator): @classmethod def from_element(cls, param, elem): return cls(elem.get('message', None), elem.get('min'), - elem.get('max'), elem.get('exclude_min', 'false'), - elem.get('exclude_max', 'false')) + elem.get('max'), elem.get('exclude_min', 'false'), + elem.get('exclude_max', 'false')) def __init__(self, message, range_min, range_max, exclude_min=False, exclude_max=False): """ @@ -447,18 +447,18 @@ class MetadataInDataTableColumnValidator(Validator): validator_types = dict(expression=ExpressionValidator, - regex=RegexValidator, - in_range=InRangeValidator, - length=LengthValidator, - metadata=MetadataValidator, - unspecified_build=UnspecifiedBuildValidator, - no_options=NoOptionsValidator, - empty_field=EmptyTextfieldValidator, - empty_dataset=DatasetEmptyValidator, - empty_extra_files_path=DatasetExtraFilesPathEmptyValidator, - dataset_metadata_in_file=MetadataInFileColumnValidator, - dataset_metadata_in_data_table=MetadataInDataTableColumnValidator, - dataset_ok_validator=DatasetOkValidator, ) + regex=RegexValidator, + in_range=InRangeValidator, + length=LengthValidator, + metadata=MetadataValidator, + unspecified_build=UnspecifiedBuildValidator, + no_options=NoOptionsValidator, + empty_field=EmptyTextfieldValidator, + empty_dataset=DatasetEmptyValidator, + empty_extra_files_path=DatasetExtraFilesPathEmptyValidator, + dataset_metadata_in_file=MetadataInFileColumnValidator, + dataset_metadata_in_data_table=MetadataInDataTableColumnValidator, + dataset_ok_validator=DatasetOkValidator, ) def get_suite(): diff --git a/lib/galaxy/tools/parameters/wrapped.py b/lib/galaxy/tools/parameters/wrapped.py index 3fb154dc6be..c93b69e065b 100644 --- a/lib/galaxy/tools/parameters/wrapped.py +++ b/lib/galaxy/tools/parameters/wrapped.py @@ -59,16 +59,16 @@ class WrappedParameters(object): dataset_instances = DatasetListWrapper.to_dataset_instances(value) input_values[input.name] = \ DatasetListWrapper(None, - dataset_instances, - datatypes_registry=trans.app.datatypes_registry, - tool=tool, - name=input.name) + dataset_instances, + datatypes_registry=trans.app.datatypes_registry, + tool=tool, + name=input.name) elif isinstance(input, DataToolParameter): input_values[input.name] = \ DatasetFilenameWrapper(value, - datatypes_registry=trans.app.datatypes_registry, - tool=tool, - name=input.name) + datatypes_registry=trans.app.datatypes_registry, + tool=tool, + name=input.name) elif isinstance(input, SelectToolParameter): input_values[input.name] = SelectToolParameterWrapper(input, input_values[input.name], other_values=incoming) elif isinstance(input, DataCollectionToolParameter): diff --git a/lib/galaxy/tools/parser/output_objects.py b/lib/galaxy/tools/parser/output_objects.py index ea1e59d5dc7..605eb807c78 100644 --- a/lib/galaxy/tools/parser/output_objects.py +++ b/lib/galaxy/tools/parser/output_objects.py @@ -24,8 +24,8 @@ class ToolOutput(ToolOutputBase): dict_collection_visible_keys = ('name', 'format', 'label', 'hidden') def __init__(self, name, format=None, format_source=None, metadata_source=None, - parent=None, label=None, filters=None, actions=None, hidden=False, - implicit=False): + parent=None, label=None, filters=None, actions=None, hidden=False, + implicit=False): super(ToolOutput, self).__init__(name, label=label, filters=filters, hidden=hidden) self.format = format self.format_source = format_source diff --git a/lib/galaxy/tools/parser/xml.py b/lib/galaxy/tools/parser/xml.py index 1217e03d7cd..792dbc7cf09 100644 --- a/lib/galaxy/tools/parser/xml.py +++ b/lib/galaxy/tools/parser/xml.py @@ -674,7 +674,7 @@ class StdioParser(object): code_range = exit_code_elem.get("value", "") if code_range is None: log.warning("Tool stdio exit codes must have " + - "a range or value") + "a range or value") continue # Parse the range. We look for: # :Y @@ -698,7 +698,7 @@ class StdioParser(object): # If we got more than one colon, then ignore the exit code. elif (len(code_ranges) > 2): log.warning("Invalid tool exit_code range %s - ignored" - % code_range) + % code_range) continue # Else we have a singular value. If it's not an integer, then # we'll just write a log message and skip this exit_code. @@ -716,13 +716,13 @@ class StdioParser(object): # the start must be -inf and the end must be +inf. # So at least warn about this situation: if (isinf(exit_code.range_start) and - isinf(exit_code.range_end)): + isinf(exit_code.range_end)): log.warning("Tool exit_code range %s will match on " + - "all exit codes" % code_range) + "all exit codes" % code_range) self.stdio_exit_codes.append(exit_code) except Exception: log.error("Exception in parse_stdio_exit_codes! " + - str(sys.exc_info())) + str(sys.exc_info())) trace = sys.exc_info()[2] if trace is not None: trace_msg = repr(traceback.format_tb(trace)) @@ -753,7 +753,7 @@ class StdioParser(object): if regex.match is None: # TODO: Convert the offending XML element to a string log.warning("Ignoring tool's stdio regex element %s - " - "the 'match' attribute must exist") + "the 'match' attribute must exist") continue # Parse the output sources. We look for the "src", "source", # and "sources" attributes, in that order. If there is no @@ -783,14 +783,14 @@ class StdioParser(object): regex.stderr_match = True if (not regex.stdout_match and not regex.stderr_match): log.warning("Tool id %s: unable to determine if tool " - "stream source scanning is output, error, " - "or both. Defaulting to use both." % self.id) + "stream source scanning is output, error, " + "or both. Defaulting to use both." % self.id) regex.stdout_match = True regex.stderr_match = True self.stdio_regexes.append(regex) except Exception: log.error("Exception in parse_stdio_exit_codes! " + - str(sys.exc_info())) + str(sys.exc_info())) trace = sys.exc_info()[2] if trace is not None: trace_msg = repr(traceback.format_tb(trace)) @@ -814,10 +814,10 @@ class StdioParser(object): return_level = StdioErrorLevel.FATAL else: log.debug("Tool %s: error level %s did not match log/warning/fatal" % - (self.id, err_level)) + (self.id, err_level)) except Exception: log.error("Exception in parse_error_level " + - str(sys.exc_info())) + str(sys.exc_info())) trace = sys.exc_info()[2] if trace is not None: trace_msg = repr(traceback.format_tb(trace)) diff --git a/lib/galaxy/tools/search/__init__.py b/lib/galaxy/tools/search/__init__.py index 530e90c374e..fe59c89d0d0 100644 --- a/lib/galaxy/tools/search/__init__.py +++ b/lib/galaxy/tools/search/__init__.py @@ -38,12 +38,12 @@ class ToolBoxSearch(object): Create a searcher for `toolbox`. """ self.schema = Schema(id=STORED, - stub=KEYWORD, - name=TEXT(analyzer=analysis.SimpleAnalyzer()), - description=TEXT, - section=TEXT, - help=TEXT, - labels=KEYWORD) + stub=KEYWORD, + name=TEXT(analyzer=analysis.SimpleAnalyzer()), + description=TEXT, + section=TEXT, + help=TEXT, + labels=KEYWORD) self.rex = analysis.RegexTokenizer() self.toolbox = toolbox self.storage, self.index = self._index_setup() @@ -120,11 +120,11 @@ class ToolBoxSearch(object): searcher = self.index.searcher( weighting=BM25F( field_B={'name_B': float(tool_name_boost), - 'section_B': float(tool_section_boost), - 'description_B': float(tool_description_boost), - 'labels_B': float(tool_label_boost), - 'stub_B': float(tool_stub_boost), - 'help_B': float(tool_help_boost)} + 'section_B': float(tool_section_boost), + 'description_B': float(tool_description_boost), + 'labels_B': float(tool_label_boost), + 'stub_B': float(tool_stub_boost), + 'help_B': float(tool_help_boost)} ) ) # Set query to search name, description, section, help, and labels. diff --git a/lib/galaxy/tools/toolbox/base.py b/lib/galaxy/tools/toolbox/base.py index f684d54e552..f6ea1e88768 100644 --- a/lib/galaxy/tools/toolbox/base.py +++ b/lib/galaxy/tools/toolbox/base.py @@ -168,8 +168,8 @@ class AbstractToolBox(Dictifiable, ManagesIntegratedToolPanelMixin, object): if parsing_shed_tool_conf: shed_tool_conf_dict = dict(config_filename=config_filename, - tool_path=tool_path, - config_elems=config_elems) + tool_path=tool_path, + config_elems=config_elems) self._dynamic_tool_confs.append(shed_tool_conf_dict) def load_item(self, item, tool_path, panel_dict=None, integrated_panel_dict=None, load_panel_dict=True, guid=None, index=None, internal=False): diff --git a/lib/galaxy/util/__init__.py b/lib/galaxy/util/__init__.py index c7d01620799..b57889d98ea 100644 --- a/lib/galaxy/util/__init__.py +++ b/lib/galaxy/util/__init__.py @@ -453,18 +453,18 @@ valid_chars = set(string.ascii_letters + string.digits + " -=_.()/+*^,:?!") # characters that are allowed but need to be escaped mapped_chars = {'>': '__gt__', - '<': '__lt__', - "'": '__sq__', - '"': '__dq__', - '[': '__ob__', - ']': '__cb__', - '{': '__oc__', - '}': '__cc__', - '@': '__at__', - '\n': '__cn__', - '\r': '__cr__', - '\t': '__tc__', - '#': '__pd__'} + '<': '__lt__', + "'": '__sq__', + '"': '__dq__', + '[': '__ob__', + ']': '__cb__', + '{': '__oc__', + '}': '__cc__', + '@': '__at__', + '\n': '__cn__', + '\r': '__cr__', + '\t': '__tc__', + '#': '__pd__'} def restore_text(text, character_map=mapped_chars): @@ -507,9 +507,9 @@ def sanitize_lists_to_string(values, valid_characters=valid_chars, character_map rval = [] for value in values: rval.append(sanitize_lists_to_string(value, - valid_characters=valid_characters, - character_map=character_map, - invalid_character=invalid_character)) + valid_characters=valid_characters, + character_map=character_map, + invalid_character=invalid_character)) values = ",".join(rval) else: values = sanitize_text(values, valid_characters=valid_characters, character_map=character_map, invalid_character=invalid_character) @@ -720,7 +720,7 @@ class Params(object): if (value is not None and key not in self.NEVER_SANITIZE and True not in [key.endswith("|%s" % nonsanitize_parameter) for - nonsanitize_parameter in self.NEVER_SANITIZE]): + nonsanitize_parameter in self.NEVER_SANITIZE]): self.__dict__[key] = sanitize_param(value) else: self.__dict__[key] = value @@ -1147,10 +1147,10 @@ def umask_fix_perms(path, umask, unmasked_perms, gid=None): os.chmod(path, perms) except Exception as e: log.warning('Unable to honor umask (%s) for %s, tried to set: %s but mode remains %s, error was: %s' % (oct(umask), - path, - oct(perms), - oct(stat.S_IMODE(st.st_mode)), - e)) + path, + oct(perms), + oct(stat.S_IMODE(st.st_mode)), + e)) # fix group if gid is not None and st.st_gid != gid: try: @@ -1163,9 +1163,9 @@ def umask_fix_perms(path, umask, unmasked_perms, gid=None): desired_group = gid current_group = st.st_gid log.warning('Unable to honor primary group (%s) for %s, group remains %s, error was: %s' % (desired_group, - path, - current_group, - e)) + path, + current_group, + e)) def docstring_trim(docstring): diff --git a/lib/galaxy/util/json.py b/lib/galaxy/util/json.py index c62b17f221b..80d3a66f1c1 100644 --- a/lib/galaxy/util/json.py +++ b/lib/galaxy/util/json.py @@ -92,9 +92,9 @@ def validate_jsonrpc_request(request, regular_methods, notification_methods): request = json.loads(request) except Exception as e: return False, request, jsonrpc_response(id=None, - error=dict(code=-32700, - message='Parse error', - data=str(e))) + error=dict(code=-32700, + message='Parse error', + data=str(e))) try: assert 'jsonrpc' in request, \ 'This server requires JSON-RPC 2.0 and no "jsonrpc" member was sent with the Request object as per the JSON-RPC 2.0 Specification.' @@ -103,24 +103,24 @@ def validate_jsonrpc_request(request, regular_methods, notification_methods): assert 'method' in request, 'No "method" member was sent with the Request object' except AssertionError as e: return False, request, jsonrpc_response(request=request, - error=dict(code=-32600, - message='Invalid Request', - data=str(e))) + error=dict(code=-32600, + message='Invalid Request', + data=str(e))) try: assert request['method'] in (regular_methods + notification_methods) except AssertionError as e: return False, request, jsonrpc_response(request=request, - error=dict(code=-32601, - message='Method not found', - data='Valid methods are: %s' % ', '.join(regular_methods + notification_methods))) + error=dict(code=-32601, + message='Method not found', + data='Valid methods are: %s' % ', '.join(regular_methods + notification_methods))) try: if request['method'] in regular_methods: assert 'id' in request, 'No "id" member was sent with the Request object and the requested method "%s" is not a notification method' % request['method'] except AssertionError as e: return False, request, jsonrpc_response(request=request, - error=dict(code=-32600, - message='Invalid Request', - data=str(e))) + error=dict(code=-32600, + message='Invalid Request', + data=str(e))) return True, request, None diff --git a/lib/galaxy/util/object_wrapper.py b/lib/galaxy/util/object_wrapper.py index 76d4a4fdf72..2e50b907a74 100644 --- a/lib/galaxy/util/object_wrapper.py +++ b/lib/galaxy/util/object_wrapper.py @@ -73,7 +73,7 @@ __CALLABLE_TYPES__ = (FunctionType, MethodType, GeneratorType, CodeType, Builtin # Always wrap these types without attempting to subclass __WRAP_NO_SUBCLASS__ = (ModuleType, XRangeType, SliceType, BufferType, TracebackType, FrameType, DictProxyType, - GetSetDescriptorType, MemberDescriptorType) + __CALLABLE_TYPES__ + GetSetDescriptorType, MemberDescriptorType) + __CALLABLE_TYPES__ # Don't wrap or sanitize. __DONT_SANITIZE_TYPES__ = (Number, bool, NoneType, NotImplementedType, EllipsisType, bytearray, ) @@ -93,17 +93,17 @@ VALID_CHARACTERS = set(string.ascii_letters + string.digits + " -=_.()/+*^,:?!@" # characters that are allowed but need to be escaped CHARACTER_MAP = {'>': '__gt__', - '<': '__lt__', - "'": '__sq__', - '"': '__dq__', - '[': '__ob__', - ']': '__cb__', - '{': '__oc__', - '}': '__cc__', - '\n': '__cn__', - '\r': '__cr__', - '\t': '__tc__', - '#': '__pd__'} + '<': '__lt__', + "'": '__sq__', + '"': '__dq__', + '[': '__ob__', + ']': '__cb__', + '{': '__oc__', + '}': '__cc__', + '\n': '__cn__', + '\r': '__cr__', + '\t': '__tc__', + '#': '__pd__'} INVALID_CHARACTER = "X" diff --git a/lib/galaxy/util/sanitize_html.py b/lib/galaxy/util/sanitize_html.py index 35b91516995..bc94574bef2 100644 --- a/lib/galaxy/util/sanitize_html.py +++ b/lib/galaxy/util/sanitize_html.py @@ -317,8 +317,8 @@ class _HTMLSanitizer(_BaseHTMLProcessor): svg_elem_map = None acceptable_svg_properties = ['fill', 'fill-opacity', 'fill-rule', - 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin', - 'stroke-opacity'] + 'stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin', + 'stroke-opacity'] def reset(self): _BaseHTMLProcessor.reset(self) diff --git a/lib/galaxy/util/validation.py b/lib/galaxy/util/validation.py index f8717b780c3..a851148c5e5 100644 --- a/lib/galaxy/util/validation.py +++ b/lib/galaxy/util/validation.py @@ -11,7 +11,7 @@ from galaxy.util.sanitize_html import sanitize_html def validate_and_sanitize_basestring(key, val): if not isinstance(val, string_types): raise exceptions.RequestParameterInvalidException('%s must be a string or unicode: %s' - % (key, str(type(val)))) + % (key, str(type(val)))) return sanitize_html(val, 'utf-8', 'text/html') @@ -21,13 +21,13 @@ def validate_and_sanitize_basestring_list(key, val): return [sanitize_html(t, 'utf-8', 'text/html') for t in val] except (AssertionError, TypeError): raise exceptions.RequestParameterInvalidException('%s must be a list of strings: %s' - % (key, str(type(val)))) + % (key, str(type(val)))) def validate_boolean(key, val): if not isinstance(val, bool): raise exceptions.RequestParameterInvalidException('%s must be a boolean: %s' - % (key, str(type(val)))) + % (key, str(type(val)))) return val diff --git a/lib/galaxy/visualization/data_providers/basic.py b/lib/galaxy/visualization/data_providers/basic.py index efd494cc488..456ffaa420c 100644 --- a/lib/galaxy/visualization/data_providers/basic.py +++ b/lib/galaxy/visualization/data_providers/basic.py @@ -11,7 +11,7 @@ class BaseDataProvider(object): """ def __init__(self, converted_dataset=None, original_dataset=None, dependencies=None, - error_max_vals="Only the first %i values are returned."): + error_max_vals="Only the first %i values are returned."): """ Create basic data provider. """ self.converted_dataset = converted_dataset self.original_dataset = original_dataset @@ -101,7 +101,7 @@ class ColumnDataProvider(BaseDataProvider): columns = loads(columns) for column in columns: assert((column < self.original_dataset.metadata.columns) and - (column >= 0)), ( + (column >= 0)), ( "column index (%d) must be positive and less" % (column) + " than the number of columns: %d" % (self.original_dataset.metadata.columns)) # print columns, start_val, max_vals, skip_comments, kwargs diff --git a/lib/galaxy/visualization/data_providers/genome.py b/lib/galaxy/visualization/data_providers/genome.py index fdee8a40328..f1ab69a02b3 100644 --- a/lib/galaxy/visualization/data_providers/genome.py +++ b/lib/galaxy/visualization/data_providers/genome.py @@ -134,11 +134,11 @@ class GenomeDataProvider(BaseDataProvider): col_name_data_attr_mapping = {} def __init__(self, converted_dataset=None, original_dataset=None, dependencies=None, - error_max_vals="Only the first %i %s in this region are displayed."): + error_max_vals="Only the first %i %s in this region are displayed."): super(GenomeDataProvider, self).__init__(converted_dataset=converted_dataset, - original_dataset=original_dataset, - dependencies=dependencies, - error_max_vals=error_max_vals) + original_dataset=original_dataset, + dependencies=dependencies, + error_max_vals=error_max_vals) def write_data_to_file(self, regions, filename): """ @@ -261,8 +261,8 @@ class GenomeDataProvider(BaseDataProvider): except KeyError: continue filters.append({'name': attrs['name'], - 'type': column_types[viz_col_index], - 'index': attrs['index']}) + 'type': column_types[viz_col_index], + 'index': attrs['index']}) return filters def get_default_max_vals(self): @@ -306,10 +306,10 @@ class FilterableMixin: if isinstance(self.original_dataset.datatype, Gff): # Can filter by score and GTF attributes. filters = [{'name': 'Score', - 'type': 'number', - 'index': filter_col, - 'tool_id': 'Filter1', - 'tool_exp_name': 'c6'}] + 'type': 'number', + 'index': filter_col, + 'tool_id': 'Filter1', + 'tool_exp_name': 'c6'}] filter_col += 1 if isinstance(self.original_dataset.datatype, Gtf): # Create filters based on dataset metadata. @@ -317,18 +317,18 @@ class FilterableMixin: if a_type in ['int', 'float']: filters.append( {'name': name, - 'type': 'number', - 'index': filter_col, - 'tool_id': 'gff_filter_by_attribute', - 'tool_exp_name': name}) + 'type': 'number', + 'index': filter_col, + 'tool_id': 'gff_filter_by_attribute', + 'tool_exp_name': name}) filter_col += 1 elif isinstance(self.original_dataset.datatype, Bed): # Can filter by score column only. filters = [{'name': 'Score', - 'type': 'number', - 'index': filter_col, - 'tool_id': 'Filter1', - 'tool_exp_name': 'c5' + 'type': 'number', + 'index': filter_col, + 'tool_id': 'Filter1', + 'tool_exp_name': 'c5' }] return filters @@ -838,7 +838,7 @@ class BamDataProvider(GenomeDataProvider, FilterableMixin): filters = [] filters.append({'name': 'Mapping Quality', 'type': 'number', - 'index': filter_col} + 'index': filter_col} ) return filters @@ -849,7 +849,7 @@ class BamDataProvider(GenomeDataProvider, FilterableMixin): # Open current BAM file using index. bamfile = pysam.AlignmentFile(self.original_dataset.file_name, mode='rb', - index_filename=self.converted_dataset.file_name) + index_filename=self.converted_dataset.file_name) # TODO: write headers as well? new_bamfile = pysam.AlignmentFile(filename, template=bamfile, mode='wb') @@ -881,7 +881,7 @@ class BamDataProvider(GenomeDataProvider, FilterableMixin): def open_data_file(self): # Attempt to open the BAM file with index return pysam.AlignmentFile(self.original_dataset.file_name, mode='rb', - index_filename=self.converted_dataset.file_name) + index_filename=self.converted_dataset.file_name) def get_iterator(self, data_file, chrom, start, end, **kwargs): """ @@ -904,7 +904,7 @@ class BamDataProvider(GenomeDataProvider, FilterableMixin): return data def process_data(self, iterator, start_val=0, max_vals=None, ref_seq=None, - iterator_type='nth', mean_depth=None, start=0, end=0, **kwargs): + iterator_type='nth', mean_depth=None, start=0, end=0, **kwargs): """ Returns a dict with the following attributes:: @@ -1023,18 +1023,18 @@ class BamDataProvider(GenomeDataProvider, FilterableMixin): # Found pair. pair = paired_pending[qname] results.append([hash("%i_%s" % (pair['start'], qname)), - pair['start'], - read.pos + read_len, - qname, - [pair['start'], pair['end'], pair['cigar'], pair['strand'], pair['seq']], - [read.pos, read.pos + read_len, read.cigar, strand, seq], - None, [pair['mapq'], read.mapq] + pair['start'], + read.pos + read_len, + qname, + [pair['start'], pair['end'], pair['cigar'], pair['strand'], pair['seq']], + [read.pos, read.pos + read_len, read.cigar, strand, seq], + None, [pair['mapq'], read.mapq] ]) del paired_pending[qname] else: # Insert first of pair. paired_pending[qname] = {'start': read.pos, 'end': read.pos + read_len, 'seq': seq, 'mate_start': read.mpos, - 'rlen': read_len, 'strand': strand, 'cigar': read.cigar, 'mapq': read.mapq} + 'rlen': read_len, 'strand': strand, 'cigar': read.cigar, 'mapq': read.mapq} count += 1 else: results.append([hash("%i_%s" % (read.pos, qname)), @@ -1071,10 +1071,10 @@ class BamDataProvider(GenomeDataProvider, FilterableMixin): Use reference-based compression to compress read sequence and cigar. ''' read_seq, read_cigar = get_ref_based_read_seq_and_cigar(read[seq_field].upper(), - read[start_field], - ref_seq.sequence, - ref_seq.start, - read[cigar_field]) + read[start_field], + ref_seq.sequence, + ref_seq.start, + read[cigar_field]) read[seq_field] = read_seq read[cigar_field] = read_cigar @@ -1121,8 +1121,8 @@ class SamDataProvider(BamDataProvider): def __init__(self, converted_dataset=None, original_dataset=None, dependencies=None): """ Create SamDataProvider. """ super(SamDataProvider, self).__init__(converted_dataset=converted_dataset, - original_dataset=original_dataset, - dependencies=dependencies) + original_dataset=original_dataset, + dependencies=dependencies) # To use BamDataProvider, original dataset must be BAM and # converted dataset must be BAI. Use BAI from BAM metadata. @@ -1560,28 +1560,28 @@ class ENCODEPeakTabixDataProvider(TabixDataProvider, ENCODEPeakDataProvider): filter_col = 8 filters = [] filters.append({'name': 'Score', - 'type': 'number', - 'index': filter_col, - 'tool_id': 'Filter1', - 'tool_exp_name': 'c6'}) + 'type': 'number', + 'index': filter_col, + 'tool_id': 'Filter1', + 'tool_exp_name': 'c6'}) filter_col += 1 filters.append({'name': 'Signal Value', - 'type': 'number', - 'index': filter_col, - 'tool_id': 'Filter1', - 'tool_exp_name': 'c7'}) + 'type': 'number', + 'index': filter_col, + 'tool_id': 'Filter1', + 'tool_exp_name': 'c7'}) filter_col += 1 filters.append({'name': 'pValue', 'type': 'number', - 'index': filter_col, - 'tool_id': 'Filter1', - 'tool_exp_name': 'c8'}) + 'index': filter_col, + 'tool_id': 'Filter1', + 'tool_exp_name': 'c8'}) filter_col += 1 filters.append({'name': 'qValue', 'type': 'number', - 'index': filter_col, - 'tool_id': 'Filter1', - 'tool_exp_name': 'c9'}) + 'index': filter_col, + 'tool_id': 'Filter1', + 'tool_exp_name': 'c9'}) return filters # @@ -1668,13 +1668,13 @@ def package_gff_feature(feature, no_detail=False, filter_cols=[]): # Return full feature. payload = [feature.start, - feature.end, - feature.name(), - feature.strand, - # No notion of thick start, end in GFF, so make everything - # thick. - feature.start, - feature.end + feature.end, + feature.name(), + feature.strand, + # No notion of thick start, end in GFF, so make everything + # thick. + feature.start, + feature.end ] # HACK: ignore interval with name 'transcript' from feature. diff --git a/lib/galaxy/visualization/data_providers/registry.py b/lib/galaxy/visualization/data_providers/registry.py index 6396011ef23..519dd3b2f9e 100644 --- a/lib/galaxy/visualization/data_providers/registry.py +++ b/lib/galaxy/visualization/data_providers/registry.py @@ -81,8 +81,8 @@ class DataProviderRegistry(object): converted_dataset = original_dataset.get_converted_dataset(trans, name) deps = original_dataset.get_converted_dataset_deps(trans, name) data_provider = data_provider_class(original_dataset=original_dataset, - converted_dataset=converted_dataset, - dependencies=deps) + converted_dataset=converted_dataset, + dependencies=deps) elif original_dataset: # No name, so look up a provider name from datatype's information. @@ -95,8 +95,8 @@ class DataProviderRegistry(object): data_provider_mapping = original_dataset.datatype.data_sources if 'data_standalone' in data_provider_mapping: data_provider = self.get_data_provider(trans, - name=data_provider_mapping['data_standalone'], - original_dataset=original_dataset) + name=data_provider_mapping['data_standalone'], + original_dataset=original_dataset) else: source_list = data_provider_mapping[source] if isinstance(source_list, string_types): diff --git a/lib/galaxy/visualization/genomes.py b/lib/galaxy/visualization/genomes.py index eb250548144..0b8e646528b 100644 --- a/lib/galaxy/visualization/genomes.py +++ b/lib/galaxy/visualization/genomes.py @@ -49,8 +49,8 @@ class GenomeRegion(object): @staticmethod def from_dict(obj_dict): return GenomeRegion(chrom=obj_dict['chrom'], - start=obj_dict['start'], - end=obj_dict['end']) + start=obj_dict['start'], + end=obj_dict['end']) @staticmethod def from_str(obj_str): diff --git a/lib/galaxy/visualization/plugins/plugin.py b/lib/galaxy/visualization/plugins/plugin.py index 0279bc15802..e963eb93a8a 100644 --- a/lib/galaxy/visualization/plugins/plugin.py +++ b/lib/galaxy/visualization/plugins/plugin.py @@ -74,7 +74,7 @@ class ServesTemplatesPluginMixin(object): if self._is_template_plugin(): self.template_path = self._build_template_path() self.template_lookup = self._build_template_lookup(template_cache_dir, - additional_template_paths=additional_template_paths) + additional_template_paths=additional_template_paths) self.serves_templates = True return self.serves_templates @@ -85,7 +85,7 @@ class ServesTemplatesPluginMixin(object): return os.path.join(self.path, 'templates') def _build_template_lookup(self, template_cache_dir, additional_template_paths=None, - collection_size=DEFAULT_TEMPLATE_COLLECTION_SIZE, output_encoding=DEFAULT_TEMPLATE_ENCODING): + collection_size=DEFAULT_TEMPLATE_COLLECTION_SIZE, output_encoding=DEFAULT_TEMPLATE_ENCODING): """ Build a mako template filename lookup for the plugin. """ diff --git a/lib/galaxy/visualization/plugins/resource_parser.py b/lib/galaxy/visualization/plugins/resource_parser.py index 54e3dc740cd..1bb0743ad58 100644 --- a/lib/galaxy/visualization/plugins/resource_parser.py +++ b/lib/galaxy/visualization/plugins/resource_parser.py @@ -72,7 +72,7 @@ class ResourceParser(object): try: target_param_modifiers = params_that_modify_other_params.get(param_name, None) resource = self.parse_parameter(trans, param_config, - query_val, param_modifiers=target_param_modifiers) + query_val, param_modifiers=target_param_modifiers) except Exception as exception: if trans.debug: @@ -167,7 +167,7 @@ class ResourceParser(object): return self.parse_parameter(trans, param_config, default) def parse_parameter(self, trans, expected_param_data, query_param, - recurse=True, param_modifiers=None): + recurse=True, param_modifiers=None): """ Use data in `expected_param_data` to parse `query_param` from a string into a resource usable directly by a template. diff --git a/lib/galaxy/web/base/controller.py b/lib/galaxy/web/base/controller.py index 3602feda4ed..07b3b13bd85 100644 --- a/lib/galaxy/web/base/controller.py +++ b/lib/galaxy/web/base/controller.py @@ -182,7 +182,7 @@ class BaseUIController(BaseController): def get_object(self, trans, id, class_name, check_ownership=False, check_accessible=False, deleted=None): try: return BaseController.get_object(self, trans, id, class_name, - check_ownership=check_ownership, check_accessible=check_accessible, deleted=deleted) + check_ownership=check_ownership, check_accessible=check_accessible, deleted=deleted) except exceptions.MessageException: raise # handled in the caller @@ -196,7 +196,7 @@ class BaseAPIController(BaseController): def get_object(self, trans, id, class_name, check_ownership=False, check_accessible=False, deleted=None): try: return BaseController.get_object(self, trans, id, class_name, - check_ownership=check_ownership, check_accessible=check_accessible, deleted=deleted) + check_ownership=check_ownership, check_accessible=check_accessible, deleted=deleted) except exceptions.ItemDeletionException as e: raise HTTPBadRequest(detail="Invalid %s id ( %s ) specified: %s" % (class_name, str(id), str(e))) @@ -259,7 +259,7 @@ class JSAppLauncher(BaseUIController): DEFAULT_ENTRY_FN = "app" #: keys used when serializing current user for bootstrapped data USER_BOOTSTRAP_KEYS = ('id', 'email', 'username', 'is_admin', 'tags_used', 'requests', - 'total_disk_usage', 'nice_total_disk_usage', 'quota_percent', 'preferences') + 'total_disk_usage', 'nice_total_disk_usage', 'quota_percent', 'preferences') def __init__(self, app): super(JSAppLauncher, self).__init__(app) @@ -370,7 +370,7 @@ class CreatesUsersMixin: if trans.webapp.name == 'galaxy': # We set default user permissions, before we log in and set the default history permissions trans.app.security_agent.user_set_default_permissions(user, - default_access_private=trans.app.config.new_user_dataset_access_role_default_private) + default_access_private=trans.app.config.new_user_dataset_access_role_default_private) return user @@ -448,18 +448,18 @@ class UsesLibraryMixinItems(SharableItemSecurityMixin): def get_library_folder(self, trans, id, check_ownership=False, check_accessible=True): return self.get_object(trans, id, 'LibraryFolder', - check_ownership=False, check_accessible=check_accessible) + check_ownership=False, check_accessible=check_accessible) def get_library_dataset_dataset_association(self, trans, id, check_ownership=False, check_accessible=True): # Deprecated in lieu to galaxy.managers.lddas.LDDAManager.get() but not # reusing that exactly because of subtle differences in exception handling # logic (API controller override get_object to be slightly different). return self.get_object(trans, id, 'LibraryDatasetDatasetAssociation', - check_ownership=False, check_accessible=check_accessible) + check_ownership=False, check_accessible=check_accessible) def get_library_dataset(self, trans, id, check_ownership=False, check_accessible=True): return self.get_object(trans, id, 'LibraryDataset', - check_ownership=False, check_accessible=check_accessible) + check_ownership=False, check_accessible=check_accessible) # TODO: it makes no sense that I can get roles from a user but not user.is_admin() # def can_user_add_to_library_item( self, trans, user, item ): @@ -471,7 +471,7 @@ class UsesLibraryMixinItems(SharableItemSecurityMixin): if not trans.user: return False return ((trans.user_is_admin()) or - (trans.app.security_agent.can_add_library_item(trans.get_current_user_roles(), item))) + (trans.app.security_agent.can_add_library_item(trans.get_current_user_roles(), item))) def check_user_can_add_to_library_item(self, trans, item, check_accessible=True): """ @@ -559,7 +559,7 @@ class UsesLibraryMixinItems(SharableItemSecurityMixin): # create the new ldda and apply the folder perms to it ldda = hda.to_library_dataset_dataset_association(trans, target_folder=library_folder, - roles=roles, ldda_message=ldda_message, element_identifier=element_identifier) + roles=roles, ldda_message=ldda_message, element_identifier=element_identifier) self._apply_library_folder_permissions_to_ldda(trans, library_folder, ldda) self._apply_hda_permissions_to_ldda(trans, hda, ldda) # TODO:?? not really clear on how permissions are being traded here @@ -800,7 +800,7 @@ class UsesVisualizationMixin(UsesLibraryMixinItems): return imported_visualization def create_visualization(self, trans, type, title="Untitled Visualization", slug=None, - dbkey=None, annotation=None, config={}, save=True): + dbkey=None, annotation=None, config={}, save=True): """ Create visualiation and first revision. """ @@ -812,7 +812,7 @@ class UsesVisualizationMixin(UsesLibraryMixinItems): # Create and save first visualization revision revision = trans.model.VisualizationRevision(visualization=visualization, title=title, - config=config, dbkey=dbkey) + config=config, dbkey=dbkey) visualization.latest_revision = revision if save: @@ -976,8 +976,8 @@ class UsesVisualizationMixin(UsesLibraryMixinItems): prefs = {} track_data_provider = trans.app.data_provider_registry.get_data_provider(trans, - original_dataset=dataset, - source='data') + original_dataset=dataset, + source='data') return { "track_type": dataset.datatype.track_type, "dataset": trans.security.encode_dict_ids(dataset.to_dict()), @@ -1027,11 +1027,11 @@ class UsesVisualizationMixin(UsesLibraryMixinItems): tracks.append(pack_collection(drawable_dict)) config = {"title": visualization.title, - "vis_id": trans.security.encode_id(visualization.id), - "tracks": tracks, - "bookmarks": bookmarks, - "chrom": "", - "dbkey": encode_dbkey(visualization.dbkey)} + "vis_id": trans.security.encode_id(visualization.id), + "tracks": tracks, + "bookmarks": bookmarks, + "chrom": "", + "dbkey": encode_dbkey(visualization.dbkey)} if 'viewport' in latest_revision.config: config['viewport'] = latest_revision.config['viewport'] @@ -1102,7 +1102,7 @@ class UsesVisualizationMixin(UsesLibraryMixinItems): if check_state and data.state == trans.model.Dataset.states.UPLOAD: return trans.show_error_message("Please wait until this dataset finishes uploading " + - "before attempting to view it.") + "before attempting to view it.") return data # -- Helper functions -- @@ -1167,15 +1167,15 @@ class UsesVisualizationMixin(UsesLibraryMixinItems): source = 'data' data_provider = trans.app.data_provider_registry.get_data_provider(trans, - original_dataset=dataset, - source=source) + original_dataset=dataset, + source=source) # HACK: pass in additional params which are used for only some # types of data providers; level, cutoffs used for summary tree, # num_samples for BBI, and interchromosomal used for chromatin interactions. rval = data_provider.get_genome_data(chroms_info, - level=4, detail_cutoff=0, draw_cutoff=0, - num_samples=150, - interchromosomal=True) + level=4, detail_cutoff=0, draw_cutoff=0, + num_samples=150, + interchromosomal=True) return rval @@ -1249,7 +1249,7 @@ class UsesStoredWorkflowMixin(SharableItemSecurityMixin, UsesAnnotations): self.copy_item_annotation(session, stored.user, stored, imported_stored.user, imported_stored) for order_index, step in enumerate(stored.latest_workflow.steps): self.copy_item_annotation(session, stored.user, step, - imported_stored.user, imported_stored.latest_workflow.steps[order_index]) + imported_stored.user, imported_stored.latest_workflow.steps[order_index]) session.flush() return imported_stored @@ -1302,16 +1302,16 @@ class UsesFormDefinitionsMixin: def get_all_forms_by_type(self, trans, cntrller, form_type): forms = self.get_all_forms(trans, - filter=dict(deleted=False), - form_type=form_type) + filter=dict(deleted=False), + form_type=form_type) if not forms: message = "There are no forms on which to base the template, so create a form and then add the template." return trans.response.send_redirect(web.url_for(controller='forms', - action='create_form_definition', - cntrller=cntrller, - message=message, - status='done', - form_type=form_type)) + action='create_form_definition', + cntrller=cntrller, + message=message, + status='done', + form_type=form_type)) return forms @web.expose @@ -1339,32 +1339,32 @@ class UsesFormDefinitionsMixin: try: if in_sample_tracking: item, item_desc, action, id = self.get_item_and_stuff(trans, - item_type=item_type, - request_type_id=request_type_id, - sample_id=sample_id) + item_type=item_type, + request_type_id=request_type_id, + sample_id=sample_id) elif in_library: item, item_desc, action, id = self.get_item_and_stuff(trans, - item_type=item_type, - library_id=library_id, - folder_id=folder_id, - ldda_id=ldda_id, - is_admin=is_admin) + item_type=item_type, + library_id=library_id, + folder_id=folder_id, + ldda_id=ldda_id, + is_admin=is_admin) if not item: message = "Invalid %s id ( %s ) specified." % (item_desc, str(id)) if in_sample_tracking: return trans.response.send_redirect(web.url_for(controller='request_type', - action='browse_request_types', - id=request_type_id, - message=util.sanitize_text(message), - status='error')) + action='browse_request_types', + id=request_type_id, + message=util.sanitize_text(message), + status='error')) if in_library: return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - show_deleted=show_deleted, - message=util.sanitize_text(message), - status='error')) + action='browse_library', + cntrller=cntrller, + id=library_id, + show_deleted=show_deleted, + message=util.sanitize_text(message), + status='error')) except ValueError: # At this point, the client has already redirected, so this is just here to prevent the unnecessary traceback return None @@ -1380,12 +1380,12 @@ class UsesFormDefinitionsMixin: if not authorized: message = "You are not authorized to %s %s '%s'." % (unauthorized, item_desc, item.name) return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - show_deleted=show_deleted, - message=util.sanitize_text(message), - status='error')) + action='browse_library', + cntrller=cntrller, + id=library_id, + show_deleted=show_deleted, + message=util.sanitize_text(message), + status='error')) # If the inheritable checkbox is checked, the param will be in the request inheritable = CheckboxField.is_checked(params.get('inheritable', '')) if params.get('add_template_button', False): @@ -1419,22 +1419,22 @@ class UsesFormDefinitionsMixin: trans.sa_session.flush() message = 'A template based on the form "%s" has been added to this %s.' % (form.name, item_desc) new_kwd = dict(action=action, - cntrller=cntrller, - message=util.sanitize_text(message), - status='done') + cntrller=cntrller, + message=util.sanitize_text(message), + status='done') if in_sample_tracking: new_kwd.update(dict(controller='request_type', - request_type_id=request_type_id, - sample_id=sample_id, - id=id)) + request_type_id=request_type_id, + sample_id=sample_id, + id=id)) return trans.response.send_redirect(web.url_for(**new_kwd)) elif in_library: new_kwd.update(dict(controller='library_common', - use_panels=use_panels, - library_id=library_id, - folder_id=folder_id, - id=id, - show_deleted=show_deleted)) + use_panels=use_panels, + library_id=library_id, + folder_id=folder_id, + id=id, + show_deleted=show_deleted)) return trans.response.send_redirect(web.url_for(**new_kwd)) else: message = "Select a form on which to base the template." @@ -1452,26 +1452,26 @@ class UsesFormDefinitionsMixin: else: widgets = [] new_kwd = dict(cntrller=cntrller, - item_name=item.name, - item_desc=item_desc, - item_type=item_type, - form_type=form_type, - widgets=widgets, - form_id_select_field=form_id_select_field, - message=message, - status=status) + item_name=item.name, + item_desc=item_desc, + item_type=item_type, + form_type=form_type, + widgets=widgets, + form_id_select_field=form_id_select_field, + message=message, + status=status) if in_sample_tracking: new_kwd.update(dict(request_type_id=request_type_id, - sample_id=sample_id)) + sample_id=sample_id)) elif in_library: new_kwd.update(dict(use_panels=use_panels, - library_id=library_id, - folder_id=folder_id, - ldda_id=ldda_id, - inheritable_checked=inheritable, - show_deleted=show_deleted)) + library_id=library_id, + folder_id=folder_id, + ldda_id=ldda_id, + inheritable_checked=inheritable, + show_deleted=show_deleted)) return trans.fill_template('/common/select_template.mako', - **new_kwd) + **new_kwd) @web.expose def edit_template(self, trans, cntrller, item_type, form_type, **kwd): @@ -1497,28 +1497,28 @@ class UsesFormDefinitionsMixin: try: if in_library: item, item_desc, action, id = self.get_item_and_stuff(trans, - item_type=item_type, - library_id=library_id, - folder_id=folder_id, - ldda_id=ldda_id, - is_admin=is_admin) + item_type=item_type, + library_id=library_id, + folder_id=folder_id, + ldda_id=ldda_id, + is_admin=is_admin) elif in_sample_tracking: item, item_desc, action, id = self.get_item_and_stuff(trans, - item_type=item_type, - request_type_id=request_type_id, - sample_id=sample_id) + item_type=item_type, + request_type_id=request_type_id, + sample_id=sample_id) except ValueError: return None if in_library: if not (is_admin or trans.app.security_agent.can_modify_library_item(current_user_roles, item)): message = "You are not authorized to modify %s '%s'." % (item_desc, item.name) return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - show_deleted=show_deleted, - message=util.sanitize_text(message), - status='error')) + action='browse_library', + cntrller=cntrller, + id=library_id, + show_deleted=show_deleted, + message=util.sanitize_text(message), + status='error')) # An info_association must exist at this point if in_library: info_association, inherited = item.get_info_association(restrict=True) @@ -1536,31 +1536,31 @@ class UsesFormDefinitionsMixin: trans.sa_session.flush() message = "The template for this %s has been updated with your changes." % item_desc new_kwd = dict(action=action, - cntrller=cntrller, - id=id, - message=util.sanitize_text(message), - status='done') + cntrller=cntrller, + id=id, + message=util.sanitize_text(message), + status='done') if in_library: new_kwd.update(dict(controller='library_common', - use_panels=use_panels, - library_id=library_id, - folder_id=folder_id, - show_deleted=show_deleted)) + use_panels=use_panels, + library_id=library_id, + folder_id=folder_id, + show_deleted=show_deleted)) return trans.response.send_redirect(web.url_for(**new_kwd)) elif in_sample_tracking: new_kwd.update(dict(controller='request_type', - request_type_id=request_type_id, - sample_id=sample_id)) + request_type_id=request_type_id, + sample_id=sample_id)) return trans.response.send_redirect(web.url_for(**new_kwd)) # "template" is a FormDefinition, so since we're changing it, we need to use the latest version of it. vars = dict(id=trans.security.encode_id(template.form_definition_current_id), - response_redirect=web.url_for(controller='request_type', - action='edit_template', - cntrller=cntrller, - item_type=item_type, - form_type=form_type, - edited=True, - **kwd)) + response_redirect=web.url_for(controller='request_type', + action='edit_template', + cntrller=cntrller, + item_type=item_type, + form_type=form_type, + edited=True, + **kwd)) return trans.response.send_redirect(web.url_for(controller='forms', action='edit_form_definition', **vars)) @web.expose @@ -1586,16 +1586,16 @@ class UsesFormDefinitionsMixin: try: if in_library: item, item_desc, action, id = self.get_item_and_stuff(trans, - item_type=item_type, - library_id=library_id, - folder_id=folder_id, - ldda_id=ldda_id, - is_admin=is_admin) + item_type=item_type, + library_id=library_id, + folder_id=folder_id, + ldda_id=ldda_id, + is_admin=is_admin) elif in_sample_tracking: item, item_desc, action, id = self.get_item_and_stuff(trans, - item_type=item_type, - request_type_id=request_type_id, - sample_id=sample_id) + item_type=item_type, + request_type_id=request_type_id, + sample_id=sample_id) except ValueError: if cntrller == 'api': trans.response.status = 400 @@ -1608,12 +1608,12 @@ class UsesFormDefinitionsMixin: trans.response.status = 400 return message return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - show_deleted=show_deleted, - message=util.sanitize_text(message), - status='error')) + action='browse_library', + cntrller=cntrller, + id=library_id, + show_deleted=show_deleted, + message=util.sanitize_text(message), + status='error')) # We need the type of each template field widget widgets = item.get_template_widgets(trans) # The list of widgets may include an AddressField which we need to save if it is new @@ -1634,21 +1634,21 @@ class UsesFormDefinitionsMixin: trans.response.status = 400 return message new_kwd = dict(action=action, - id=id, - message=util.sanitize_text(message), - status='error') + id=id, + message=util.sanitize_text(message), + status='error') if in_library: new_kwd.update(dict(controller='library_common', - cntrller=cntrller, - use_panels=use_panels, - library_id=library_id, - folder_id=folder_id, - show_deleted=show_deleted)) + cntrller=cntrller, + use_panels=use_panels, + library_id=library_id, + folder_id=folder_id, + show_deleted=show_deleted)) return trans.response.send_redirect(web.url_for(**new_kwd)) if in_sample_tracking: new_kwd.update(dict(controller='request_type', - request_type_id=request_type_id, - sample_id=sample_id)) + request_type_id=request_type_id, + sample_id=sample_id)) return trans.response.send_redirect(web.url_for(**new_kwd)) else: # Form was submitted via refresh_on_change @@ -1745,21 +1745,21 @@ class UsesFormDefinitionsMixin: if cntrller == 'api': return 200, message new_kwd = dict(action=action, - cntrller=cntrller, - id=id, - message=util.sanitize_text(message), - status='done') + cntrller=cntrller, + id=id, + message=util.sanitize_text(message), + status='done') if in_library: new_kwd.update(dict(controller='library_common', - use_panels=use_panels, - library_id=library_id, - folder_id=folder_id, - show_deleted=show_deleted)) + use_panels=use_panels, + library_id=library_id, + folder_id=folder_id, + show_deleted=show_deleted)) if in_sample_tracking: new_kwd.update(dict(controller='requests_common', - cntrller='requests_admin', - id=trans.security.encode_id(sample.id), - sample_id=sample_id)) + cntrller='requests_admin', + id=trans.security.encode_id(sample.id), + sample_id=sample_id)) return trans.response.send_redirect(web.url_for(**new_kwd)) @web.expose @@ -1783,28 +1783,28 @@ class UsesFormDefinitionsMixin: try: if in_library: item, item_desc, action, id = self.get_item_and_stuff(trans, - item_type=item_type, - library_id=library_id, - folder_id=folder_id, - ldda_id=ldda_id, - is_admin=is_admin) + item_type=item_type, + library_id=library_id, + folder_id=folder_id, + ldda_id=ldda_id, + is_admin=is_admin) elif in_sample_tracking: item, item_desc, action, id = self.get_item_and_stuff(trans, - item_type=item_type, - request_type_id=request_type_id, - sample_id=sample_id) + item_type=item_type, + request_type_id=request_type_id, + sample_id=sample_id) except ValueError: return None if in_library: if not (is_admin or trans.app.security_agent.can_modify_library_item(current_user_roles, item)): message = "You are not authorized to modify %s '%s'." % (item_desc, item.name) return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - show_deleted=show_deleted, - message=util.sanitize_text(message), - status='error')) + action='browse_library', + cntrller=cntrller, + id=library_id, + show_deleted=show_deleted, + message=util.sanitize_text(message), + status='error')) if in_library: info_association, inherited = item.get_info_association() elif in_sample_tracking: @@ -1821,21 +1821,21 @@ class UsesFormDefinitionsMixin: trans.sa_session.flush() message = 'The template for this %s has been deleted.' % item_type new_kwd = dict(action=action, - cntrller=cntrller, - id=id, - message=util.sanitize_text(message), - status='done') + cntrller=cntrller, + id=id, + message=util.sanitize_text(message), + status='done') if in_library: new_kwd.update(dict(controller='library_common', - use_panels=use_panels, - library_id=library_id, - folder_id=folder_id, - show_deleted=show_deleted)) + use_panels=use_panels, + library_id=library_id, + folder_id=folder_id, + show_deleted=show_deleted)) return trans.response.send_redirect(web.url_for(**new_kwd)) if in_sample_tracking: new_kwd.update(dict(controller='request_type', - request_type_id=request_type_id, - sample_id=sample_id)) + request_type_id=request_type_id, + sample_id=sample_id)) return trans.response.send_redirect(web.url_for(**new_kwd)) def widget_fields_have_contents(self, widgets): @@ -2038,11 +2038,11 @@ class UsesFormDefinitionsMixin: def build_form_id_select_field(self, trans, forms, selected_value='none'): return build_select_field(trans, - objs=forms, - label_attr='name', - select_field_name='form_id', - selected_value=selected_value, - refresh_on_change=True) + objs=forms, + label_attr='name', + select_field_name='form_id', + selected_value=selected_value, + refresh_on_change=True) class SharableMixin: @@ -2221,7 +2221,7 @@ class UsesTagsMixin(SharableItemSecurityMixin): all_tags_query = None for tag_model in tag_models: subq = (trans.sa_session.query(tag_model.user_tname, tag_model.user_value) - .filter(tag_model.user == trans.user)) + .filter(tag_model.user == trans.user)) all_tags_query = subq if all_tags_query is None else all_tags_query.union(subq) # if nothing init'd the query, bail diff --git a/lib/galaxy/web/base/pluginframework.py b/lib/galaxy/web/base/pluginframework.py index 37ba3095f2c..ae7feb7f8c5 100644 --- a/lib/galaxy/web/base/pluginframework.py +++ b/lib/galaxy/web/base/pluginframework.py @@ -532,7 +532,7 @@ class PageServingPluginManager(PluginManager): return template_lookup def _create_mako_template_lookup(self, cache_dir, paths, - collection_size=DEFAULT_TEMPLATE_COLLECTION_SIZE, output_encoding=DEFAULT_TEMPLATE_ENCODING): + collection_size=DEFAULT_TEMPLATE_COLLECTION_SIZE, output_encoding=DEFAULT_TEMPLATE_ENCODING): """ Create a ``TemplateLookup`` with defaults. diff --git a/lib/galaxy/web/form_builder.py b/lib/galaxy/web/form_builder.py index 9444ef8921f..81d76796ddc 100644 --- a/lib/galaxy/web/form_builder.py +++ b/lib/galaxy/web/form_builder.py @@ -56,7 +56,7 @@ class TextField(BaseField): def get_html(self, prefix="", disabled=False): value = unicodify(self.value or "") return unicodify('' - % (prefix, self.name, self.size, escape(value, quote=True), self.get_disabled_str(disabled))) + % (prefix, self.name, self.size, escape(value, quote=True), self.get_disabled_str(disabled))) def set_size(self, size): self.size = int(size) @@ -84,7 +84,7 @@ class PasswordField(BaseField): def get_html(self, prefix="", disabled=False): return unicodify('' - % (prefix, self.name, self.size, escape(str(self.value), quote=True), self.get_disabled_str(disabled))) + % (prefix, self.name, self.size, escape(str(self.value), quote=True), self.get_disabled_str(disabled))) def set_size(self, size): self.size = int(size) @@ -117,7 +117,7 @@ class TextArea(BaseField): def get_html(self, prefix="", disabled=False): return unicodify('' - % (prefix, self.name, self.rows, self.cols, self.get_disabled_str(disabled), escape(str(self.value), quote=True))) + % (prefix, self.name, self.rows, self.cols, self.get_disabled_str(disabled), escape(str(self.value), quote=True))) def set_size(self, rows, cols): self.rows = rows @@ -160,7 +160,7 @@ class CheckboxField(BaseField): checked_text = '' id_name = prefix + self.name return unicodify('' - % (id_name, id_name, checked_text, self.get_disabled_str(disabled), self.refresh_on_change_text, id_name, self.get_disabled_str(disabled))) + % (id_name, id_name, checked_text, self.get_disabled_str(disabled), self.refresh_on_change_text, id_name, self.get_disabled_str(disabled))) @staticmethod def is_checked(value): @@ -321,7 +321,7 @@ class SelectField(BaseField): if selected: selected_text = " checked='checked'" rval.append('' - % (style, prefix, self.name, escaped_value, uniq_id, selected_text, self.get_disabled_str(disabled), self.extra_attributes, uniq_id, escape(text, quote=True))) + % (style, prefix, self.name, escaped_value, uniq_id, selected_text, self.get_disabled_str(disabled), self.extra_attributes, uniq_id, escape(text, quote=True))) ctr += 1 return unicodify("\n".join(rval)) @@ -338,17 +338,17 @@ class SelectField(BaseField): if selected: selected_text = " checked='checked'" rval.append('' - % (style, - prefix, - self.name, - self.refresh_on_change_text, - escaped_value, - uniq_id, - selected_text, - self.get_disabled_str(disabled), - self.extra_attributes, - uniq_id, - text)) + % (style, + prefix, + self.name, + self.refresh_on_change_text, + escaped_value, + uniq_id, + selected_text, + self.get_disabled_str(disabled), + self.extra_attributes, + uniq_id, + text)) ctr += 1 return unicodify("\n".join(rval)) @@ -379,7 +379,7 @@ class SelectField(BaseField): else: id_string = '' rval.insert(0, '') return unicodify("\n".join(rval)) @@ -426,14 +426,14 @@ class AddressField(BaseField): @staticmethod def fields(): return [("desc", "Short address description", "Required"), - ("name", "Name", ""), - ("institution", "Institution", ""), - ("address", "Address", ""), - ("city", "City", ""), - ("state", "State/Province/Region", ""), - ("postal_code", "Postal Code", ""), - ("country", "Country", ""), - ("phone", "Phone", "")] + ("name", "Name", ""), + ("institution", "Institution", ""), + ("address", "Address", ""), + ("city", "City", ""), + ("state", "State/Province/Region", ""), + ("postal_code", "Postal Code", ""), + ("country", "Country", ""), + ("phone", "Phone", "")] def __init__(self, name, user=None, value=None, params=None, security=None, **kwds): super(AddressField, self).__init__(name, value, **kwds) @@ -450,8 +450,8 @@ class AddressField(BaseField): add_ids.append(str(a.id)) add_ids.append('new') self.select_address = SelectField(self.name, - refresh_on_change=True, - refresh_on_change_values=add_ids) + refresh_on_change=True, + refresh_on_change_values=add_ids) if self.value == 'none': self.select_address.add_option('Select one', 'none', selected=True) else: @@ -473,8 +473,8 @@ class AddressField(BaseField): self.select_address.add_option('Add a new address', 'new', selected=True) for field_name, label, help_text in self.fields(): add_field = TextField(self.name + '_' + field_name, - 40, - restore_text(self.params.get(self.name + '_' + field_name, ''))) + 40, + restore_text(self.params.get(self.name + '_' + field_name, ''))) address_html += '''
@@ -626,7 +626,7 @@ def get_suite(): # --------- Utility methods ----------------------------- def build_select_field(trans, objs, label_attr, select_field_name, initial_value='none', - selected_value='none', refresh_on_change=False, multiple=False, display=None, size=None): + selected_value='none', refresh_on_change=False, multiple=False, display=None, size=None): """ Build a SelectField given a set of objects. The received params are: @@ -655,11 +655,11 @@ def build_select_field(trans, objs, label_attr, select_field_name, initial_value else: refresh_on_change_values = [] select_field = SelectField(name=select_field_name, - multiple=multiple, - display=display, - refresh_on_change=refresh_on_change, - refresh_on_change_values=refresh_on_change_values, - size=size) + multiple=multiple, + display=display, + refresh_on_change=refresh_on_change, + refresh_on_change_values=refresh_on_change_values, + size=size) for obj in objs: if label_attr == 'self': # Each obj is a string diff --git a/lib/galaxy/web/framework/base.py b/lib/galaxy/web/framework/base.py index 307a5d4d090..9bdcf67c684 100644 --- a/lib/galaxy/web/framework/base.py +++ b/lib/galaxy/web/framework/base.py @@ -37,7 +37,7 @@ def __resource_with_deleted(self, member_name, collection_name, **kwargs): self.connect('deleted_' + collection_name, collection_path, controller=collection_name, action='index', deleted=True, conditions=dict(method=['GET'])) self.connect('deleted_' + member_name, member_path, controller=collection_name, action='show', deleted=True, conditions=dict(method=['GET'])) self.connect('undelete_deleted_' + member_name, member_path + '/undelete', controller=collection_name, action='undelete', - conditions=dict(method=['POST'])) + conditions=dict(method=['POST'])) self.resource(member_name, collection_name, **kwargs) @@ -77,12 +77,12 @@ class WebApplication(object): method use `add_route`. """ log.debug("Enabling '%s' controller, class: %s", - controller_name, controller.__class__.__name__) + controller_name, controller.__class__.__name__) self.controllers[controller_name] = controller def add_api_controller(self, controller_name, controller): log.debug("Enabling '%s' API controller, class: %s", - controller_name, controller.__class__.__name__) + controller_name, controller.__class__.__name__) self.api_controllers[controller_name] = controller def add_route(self, route, **kwargs): @@ -232,11 +232,11 @@ class WebApplication(object): # Stream the tarfile member back to the browser body = iterate_file(body) start_response(trans.response.wsgi_status(), - trans.response.wsgi_headeritems()) + trans.response.wsgi_headeritems()) return body else: start_response(trans.response.wsgi_status(), - trans.response.wsgi_headeritems()) + trans.response.wsgi_headeritems()) return self.make_body_iterable(trans, body) def make_body_iterable(self, trans, body): @@ -471,7 +471,7 @@ def send_file(start_response, trans, body): else: body = iterate_file(body) start_response(trans.response.wsgi_status(), - trans.response.wsgi_headeritems()) + trans.response.wsgi_headeritems()) return body diff --git a/lib/galaxy/web/framework/decorators.py b/lib/galaxy/web/framework/decorators.py index 88bd6937399..9d56f851995 100644 --- a/lib/galaxy/web/framework/decorators.py +++ b/lib/galaxy/web/framework/decorators.py @@ -229,16 +229,16 @@ def _future_expose_api(func, to_json=True, user_required=True, user_or_session_r # errors passed in from trans._authenicate_api if trans.error_message: return __api_error_response(trans, status_code=403, err_code=error_codes.USER_NO_API_KEY, - err_msg=trans.error_message) + err_msg=trans.error_message) if trans.anonymous: # error if anon and user required if user_required: return __api_error_response(trans, status_code=403, err_code=error_codes.USER_NO_API_KEY, - err_msg="API authentication required for this request") + err_msg="API authentication required for this request") # error if anon and no session if not trans.galaxy_session and user_or_session_required: return __api_error_response(trans, status_code=403, err_code=error_codes.USER_NO_API_KEY, - err_msg="API authentication required for this request") + err_msg="API authentication required for this request") if trans.request.body: try: diff --git a/lib/galaxy/web/framework/helpers/grids.py b/lib/galaxy/web/framework/helpers/grids.py index 50e31b4bd25..a73032050b2 100644 --- a/lib/galaxy/web/framework/helpers/grids.py +++ b/lib/galaxy/web/framework/helpers/grids.py @@ -288,28 +288,28 @@ class Grid(object): # as str. if not dict_format: page = trans.fill_template(iff(async_request, self.async_template, self.template), - grid=self, - query=query, - cur_page_num=page_num, - num_pages=num_pages, - num_page_links=self.num_page_links, - default_filter_dict=self.default_filter, - cur_filter_dict=cur_filter_dict, - sort_key=sort_key, - current_item=current_item, - ids=kwargs.get('id', []), - url=url, - status=status, - message=message, - info_text=self.info_text, - use_panels=self.use_panels, - use_hide_message=self.use_hide_message, - advanced_search=self.advanced_search, - show_item_checkboxes=(self.show_item_checkboxes or - kwargs.get('show_item_checkboxes', '') in ['True', 'true']), - # Pass back kwargs so that grid template can set and use args without - # grid explicitly having to pass them. - kwargs=kwargs) + grid=self, + query=query, + cur_page_num=page_num, + num_pages=num_pages, + num_page_links=self.num_page_links, + default_filter_dict=self.default_filter, + cur_filter_dict=cur_filter_dict, + sort_key=sort_key, + current_item=current_item, + ids=kwargs.get('id', []), + url=url, + status=status, + message=message, + info_text=self.info_text, + use_panels=self.use_panels, + use_hide_message=self.use_hide_message, + advanced_search=self.advanced_search, + show_item_checkboxes=(self.show_item_checkboxes or + kwargs.get('show_item_checkboxes', '') in ['True', 'true']), + # Pass back kwargs so that grid template can set and use args without + # grid explicitly having to pass them. + kwargs=kwargs) trans.log_action(trans.get_user(), text_type("grid.view"), context, params) return page @@ -462,9 +462,9 @@ class Grid(object): class GridColumn(object): def __init__(self, label, key=None, model_class=None, method=None, format=None, - link=None, attach_popup=False, visible=True, nowrap=False, - # Valid values for filterable are ['standard', 'advanced', None] - filterable=None, sortable=True, label_id_prefix=None, target=None): + link=None, attach_popup=False, visible=True, nowrap=False, + # Valid values for filterable are ['standard', 'advanced', None] + filterable=None, sortable=True, label_id_prefix=None, target=None): """Create a grid column.""" self.label = label self.key = key @@ -630,9 +630,9 @@ class CommunityRatingColumn(GridColumn, UsesItemRatings): def get_value(self, trans, grid, item): ave_item_rating, num_ratings = self.get_ave_item_rating_data(trans.sa_session, item, webapp_model=trans.model) return trans.fill_template("tool_shed_rating.mako", - ave_item_rating=ave_item_rating, - num_ratings=num_ratings, - item_id=trans.security.encode_id(item.id)) + ave_item_rating=ave_item_rating, + num_ratings=num_ratings, + item_id=trans.security.encode_id(item.id)) def sort(self, trans, query, ascending, column_name=None): def get_foreign_key(source_class, target_class): @@ -653,9 +653,9 @@ class CommunityRatingColumn(GridColumn, UsesItemRatings): # Do sorting using a subquery. # Subquery to get average rating for each item. ave_rating_subquery = trans.sa_session.query(fk_col, - func.avg(item_rating_assoc_class.table.c.rating).label('avg_rating')) \ - .group_by(fk_col) \ - .subquery() + func.avg(item_rating_assoc_class.table.c.rating).label('avg_rating')) \ + .group_by(fk_col) \ + .subquery() # Integrate subquery into main query. query = query.outerjoin((ave_rating_subquery, referent_col == ave_rating_subquery.columns[fk_col.name])) # Sort using subquery results; use coalesce to avoid null values. @@ -704,7 +704,7 @@ class CommunityTagsColumn(TextColumn): def get_value(self, trans, grid, item): return trans.fill_template("/tagging_common.mako", tag_type="community", trans=trans, user=trans.get_user(), tagged_item=item, elt_context=self.grid_name, - in_form=True, input_size="20", tag_click_fn="add_tag_to_grid_filter", use_toggle_link=True) + in_form=True, input_size="20", tag_click_fn="add_tag_to_grid_filter", use_toggle_link=True) def filter(self, trans, user, query, column_filter): """ Modify query to filter model_class by tag. Multiple filters are ANDed. """ @@ -735,14 +735,14 @@ class IndividualTagsColumn(CommunityTagsColumn): """ Column that supports individual tags. """ def get_value(self, trans, grid, item): return trans.fill_template("/tagging_common.mako", - tag_type="individual", - user=trans.user, - tagged_item=item, - elt_context=self.grid_name, - in_form=True, - input_size="20", - tag_click_fn="add_tag_to_grid_filter", - use_toggle_link=True) + tag_type="individual", + user=trans.user, + tagged_item=item, + elt_context=self.grid_name, + in_form=True, + input_size="20", + tag_click_fn="add_tag_to_grid_filter", + use_toggle_link=True) def get_filter(self, trans, user, column_filter): # Parse filter to extract multiple tags. @@ -916,8 +916,8 @@ class SharingStatusColumn(GridColumn): class GridOperation(object): def __init__(self, label, key=None, condition=None, allow_multiple=True, allow_popup=True, - target=None, url_args=None, async_compatible=False, confirm=None, - global_operation=None): + target=None, url_args=None, async_compatible=False, confirm=None, + global_operation=None): self.label = label self.key = key self.allow_multiple = allow_multiple diff --git a/lib/galaxy/web/framework/middleware/batch.py b/lib/galaxy/web/framework/middleware/batch.py index 1dd243bb5ce..9d666c08d81 100644 --- a/lib/galaxy/web/framework/middleware/batch.py +++ b/lib/galaxy/web/framework/middleware/batch.py @@ -133,8 +133,8 @@ class BatchMiddleware(object): request_environ['CONTENT_TYPE'] = request.get('contentType', 'application/json') request_environ['REQUEST_METHOD'] = request.get('method', request.get('type', 'GET')) url = '{0}://{1}{2}'.format(request_environ.get('wsgi.url_scheme'), - request_environ.get('HTTP_HOST'), - request['url']) + request_environ.get('HTTP_HOST'), + request['url']) parsed = urlparse(url) request_environ['PATH_INFO'] = parsed.path request_environ['QUERY_STRING'] = parsed.query diff --git a/lib/galaxy/web/framework/middleware/profile.py b/lib/galaxy/web/framework/middleware/profile.py index ae130795446..b5cf31c94a7 100644 --- a/lib/galaxy/web/framework/middleware/profile.py +++ b/lib/galaxy/web/framework/middleware/profile.py @@ -89,7 +89,7 @@ def pstats_as_html(stats, *sel_list): rval = [] # Number of function calls, primitive calls, total time rval.append("
%d function calls (%d primitive) in %0.3f CPU seconds
" - % (stats.total_calls, stats.prim_calls, stats.total_tt)) + % (stats.total_calls, stats.prim_calls, stats.total_tt)) # Extract functions that match 'sel_list' funcs, order_message, select_message = get_func_list(stats, sel_list) # Deal with any ordering or selection messages @@ -102,11 +102,11 @@ def pstats_as_html(stats, *sel_list): rval.append("") # Header rval.append("" - "" - "" - "" - "" - "") + "" + "" + "" + "" + "") for func in funcs: rval.append("") # Calculate each field diff --git a/lib/galaxy/web/framework/middleware/remoteuser.py b/lib/galaxy/web/framework/middleware/remoteuser.py index 7d6bdc8d40b..c635f9d2d7a 100644 --- a/lib/galaxy/web/framework/middleware/remoteuser.py +++ b/lib/galaxy/web/framework/middleware/remoteuser.py @@ -42,8 +42,8 @@ errorpage = """ class RemoteUser(object): def __init__(self, app, maildomain=None, display_servers=None, admin_users=None, - single_user=None, remote_user_header=None, remote_user_secret_header=None, - normalize_remote_user_email=False): + single_user=None, remote_user_header=None, remote_user_secret_header=None, + normalize_remote_user_email=False): self.app = app self.maildomain = maildomain self.display_servers = display_servers or [] diff --git a/lib/galaxy/web/framework/webapp.py b/lib/galaxy/web/framework/webapp.py index 0d8d8cc0a97..c9581c14ef8 100644 --- a/lib/galaxy/web/framework/webapp.py +++ b/lib/galaxy/web/framework/webapp.py @@ -166,7 +166,7 @@ class WebApplication(base.WebApplication): class GalaxyWebTransaction(base.DefaultWebTransaction, - context.ProvidesAppContext, context.ProvidesUserContext, context.ProvidesHistoryContext): + context.ProvidesAppContext, context.ProvidesUserContext, context.ProvidesHistoryContext): """ Encapsulates web transaction specific state for the Galaxy application (specifically the user's "cookie" session and history) @@ -436,7 +436,7 @@ class GalaxyWebTransaction(base.DefaultWebTransaction, # Retrieve the galaxy_session id via the unique session_key galaxy_session = self.sa_session.query(self.app.model.GalaxySession) \ .filter(and_(self.app.model.GalaxySession.table.c.session_key == session_key, - self.app.model.GalaxySession.table.c.is_valid == true())).options(joinedload("user")).first() + self.app.model.GalaxySession.table.c.is_valid == true())).options(joinedload("user")).first() # If remote user is in use it can invalidate the session and in some # cases won't have a cookie set above, so we need to to check some # things now. @@ -457,7 +457,7 @@ class GalaxyWebTransaction(base.DefaultWebTransaction, invalidate_existing_session = True user_for_new_session = self.get_or_create_remote_user(remote_user_email) log.warning("User logged in as '%s' externally, but has a cookie as '%s' invalidating session", - remote_user_email, galaxy_session.user.email) + remote_user_email, galaxy_session.user.email) elif remote_user_email: # No session exists, get/create user for new session user_for_new_session = self.get_or_create_remote_user(remote_user_email) @@ -469,7 +469,7 @@ class GalaxyWebTransaction(base.DefaultWebTransaction, # session with an external user, invalidate invalidate_existing_session = True log.warning("User '%s' is an external user with an existing session, invalidating session since external auth is disabled", - galaxy_session.user.email) + galaxy_session.user.email) elif galaxy_session is not None and galaxy_session.user is not None and galaxy_session.user.deleted: invalidate_existing_session = True log.warning("User '%s' is marked deleted, invalidating session" % galaxy_session.user.email) @@ -627,7 +627,7 @@ class GalaxyWebTransaction(base.DefaultWebTransaction, Update the session cookie to match the current session. """ self.set_cookie(self.security.encode_guid(self.galaxy_session.session_key), - name=name, path=self.app.config.cookie_path) + name=name, path=self.app.config.cookie_path) def handle_user_login(self, user): """ @@ -702,9 +702,9 @@ class GalaxyWebTransaction(base.DefaultWebTransaction, galaxy_user_id = prev_galaxy_session.user_id if logout_all and galaxy_user_id is not None: for other_galaxy_session in (self.sa_session.query(self.app.model.GalaxySession) - .filter(and_(self.app.model.GalaxySession.table.c.user_id == galaxy_user_id, - self.app.model.GalaxySession.table.c.is_valid == true(), - self.app.model.GalaxySession.table.c.id != prev_galaxy_session.id))): + .filter(and_(self.app.model.GalaxySession.table.c.user_id == galaxy_user_id, + self.app.model.GalaxySession.table.c.is_valid == true(), + self.app.model.GalaxySession.table.c.id != prev_galaxy_session.id))): other_galaxy_session.is_valid = False self.sa_session.add(other_galaxy_session) self.sa_session.flush() @@ -877,8 +877,8 @@ class GalaxyWebTransaction(base.DefaultWebTransaction, form. """ return self.fill_template(template, form=form, header=header, - use_panels=(form.use_panels or use_panels), - active_view=active_view) + use_panels=(form.use_panels or use_panels), + active_view=active_view) @property def session_csrf_token(self): @@ -913,7 +913,7 @@ class GalaxyWebTransaction(base.DefaultWebTransaction, return self.fill_template_mako(filename, **kwargs) else: template = Template(file=os.path.join(self.app.config.template_path, filename), - searchList=[kwargs, self.template_context, dict(caller=self, t=self, h=helpers, util=util, request=self.request, response=self.response, app=self.app)]) + searchList=[kwargs, self.template_context, dict(caller=self, t=self, h=helpers, util=util, request=self.request, response=self.response, app=self.app)]) return str(template) def fill_template_mako(self, filename, template_lookup=None, **kwargs): @@ -950,7 +950,7 @@ class GalaxyWebTransaction(base.DefaultWebTransaction, Fill in a template, putting any keyword arguments on the context. """ template = Template(source=template_string, - searchList=[context or kwargs, dict(caller=self)]) + searchList=[context or kwargs, dict(caller=self)]) return str(template) diff --git a/lib/galaxy/web/params.py b/lib/galaxy/web/params.py index 2713786e8ed..df59556ef02 100644 --- a/lib/galaxy/web/params.py +++ b/lib/galaxy/web/params.py @@ -9,8 +9,8 @@ class BaseParamParser(object): params = util.Params(kwargs) # set defaults if unset updates = dict(webapp=params.get('webapp', 'galaxy'), - message=util.restore_text(params.get('message', '')), - status=util.restore_text(params.get('status', 'done'))) + message=util.restore_text(params.get('message', '')), + status=util.restore_text(params.get('status', 'done'))) params.update(updates) return params @@ -19,13 +19,13 @@ class QuotaParamParser(BaseParamParser): def get_quota_params(self, kwargs): params = self.get_params(kwargs) updates = dict(name=util.restore_text(params.get('name', '')), - description=util.restore_text(params.get('description', '')), - amount=util.restore_text(params.get('amount', '').strip()), - operation=params.get('operation', ''), - default=params.get('default', ''), - in_users=util.listify(params.get('in_users', [])), - out_users=util.listify(params.get('out_users', [])), - in_groups=util.listify(params.get('in_groups', [])), - out_groups=util.listify(params.get('out_groups', []))) + description=util.restore_text(params.get('description', '')), + amount=util.restore_text(params.get('amount', '').strip()), + operation=params.get('operation', ''), + default=params.get('default', ''), + in_users=util.listify(params.get('in_users', [])), + out_users=util.listify(params.get('out_users', [])), + in_groups=util.listify(params.get('in_groups', [])), + out_groups=util.listify(params.get('out_groups', []))) params.update(updates) return params diff --git a/lib/galaxy/webapps/galaxy/api/dataset_collections.py b/lib/galaxy/webapps/galaxy/api/dataset_collections.py index b18c21ec84b..5aeec294f69 100644 --- a/lib/galaxy/webapps/galaxy/api/dataset_collections.py +++ b/lib/galaxy/webapps/galaxy/api/dataset_collections.py @@ -57,7 +57,7 @@ class DatasetCollectionsController( return dataset_collection_instance = self.__service(trans).create(trans=trans, **create_params) return dictify_dataset_collection_instance(dataset_collection_instance, - security=trans.security, parent=create_params["parent"]) + security=trans.security, parent=create_params["parent"]) @expose_api def show(self, trans, instance_type, id, **kwds): diff --git a/lib/galaxy/webapps/galaxy/api/datasets.py b/lib/galaxy/webapps/galaxy/api/datasets.py index 0a04ddaf10c..81e6889337c 100644 --- a/lib/galaxy/webapps/galaxy/api/datasets.py +++ b/lib/galaxy/webapps/galaxy/api/datasets.py @@ -63,7 +63,7 @@ class DatasetsController(BaseAPIController, UsesVisualizationMixin): rval = self._dataset_state(trans, dataset) elif data_type == 'converted_datasets_state': rval = self._converted_datasets_state(trans, dataset, kwd.get('chrom', None), - is_true(kwd.get('retry', False))) + is_true(kwd.get('retry', False))) elif data_type == 'data': rval = self._data(trans, dataset, **kwd) elif data_type == 'features': @@ -78,7 +78,7 @@ class DatasetsController(BaseAPIController, UsesVisualizationMixin): # Default: return dataset as dict. if hda_ldda == 'hda': return self.hda_serializer.serialize_to_view(dataset, - view=kwd.get('view', 'detailed'), user=trans.user, trans=trans) + view=kwd.get('view', 'detailed'), user=trans.user, trans=trans) else: rval = dataset.to_dict() @@ -122,7 +122,7 @@ class DatasetsController(BaseAPIController, UsesVisualizationMixin): # If there is a chrom, check for data on the chrom. if chrom: data_provider = trans.app.data_provider_registry.get_data_provider(trans, - original_dataset=dataset, source='index') + original_dataset=dataset, source='index') if not data_provider.has_data(chrom): return dataset.conversion_messages.NO_DATA @@ -223,8 +223,8 @@ class DatasetsController(BaseAPIController, UsesVisualizationMixin): # spliced/gapped reads. Probably should provide refseq object # directly to data provider. region = self.app.genomes.reference(trans, dbkey=dataset.dbkey, chrom=chrom, - low=(max(0, int(low) - 1000000)), - high=(int(high) + 1000000)) + low=(max(0, int(low) - 1000000)), + high=(int(high) + 1000000)) # Get mean depth. if not indexer: @@ -234,7 +234,7 @@ class DatasetsController(BaseAPIController, UsesVisualizationMixin): # Get and return data from data_provider. result = data_provider.get_data(chrom, int(low), int(high), int(start_val), int(max_vals), - ref_seq=region, mean_depth=mean_depth, **kwargs) + ref_seq=region, mean_depth=mean_depth, **kwargs) result.update({'dataset_type': data_provider.dataset_type, 'extra_info': extra_info}) return result @@ -278,7 +278,7 @@ class DatasetsController(BaseAPIController, UsesVisualizationMixin): @web.expose_api_raw_anonymous def display(self, trans, history_content_id, history_id, - preview=False, filename=None, to_ext=None, raw=False, **kwd): + preview=False, filename=None, to_ext=None, raw=False, **kwd): """ GET /api/histories/{encoded_history_id}/contents/{encoded_content_id}/display Displays history content (dataset). @@ -297,8 +297,8 @@ class DatasetsController(BaseAPIController, UsesVisualizationMixin): if raw: if filename and filename != 'index': file_path = trans.app.object_store.get_filename(hda.dataset, - extra_dir=('dataset_%s_files' % hda.dataset.id), - alt_name=filename) + extra_dir=('dataset_%s_files' % hda.dataset.id), + alt_name=filename) else: file_path = hda.file_name rval = open(file_path) @@ -311,7 +311,7 @@ class DatasetsController(BaseAPIController, UsesVisualizationMixin): except Exception as exception: log.error("Error getting display data for dataset (%s) from history (%s): %s", - history_content_id, history_id, str(exception), exc_info=True) + history_content_id, history_id, str(exception), exc_info=True) trans.response.status = 500 rval = ("Could not get display data for dataset: " + str(exception)) @@ -330,7 +330,7 @@ class DatasetsController(BaseAPIController, UsesVisualizationMixin): return open(hda.metadata.get(metadata_file).file_name) except Exception as exception: log.error("Error getting metadata_file (%s) for dataset (%s) from history (%s): %s", - metadata_file, history_content_id, history_id, str(exception), exc_info=True) + metadata_file, history_content_id, history_id, str(exception), exc_info=True) trans.response.status = 500 rval = ("Could not get display data for dataset: " + str(exception)) return rval diff --git a/lib/galaxy/webapps/galaxy/api/folder_contents.py b/lib/galaxy/webapps/galaxy/api/folder_contents.py index 5a4dfe0747d..cea354c51f4 100644 --- a/lib/galaxy/webapps/galaxy/api/folder_contents.py +++ b/lib/galaxy/webapps/galaxy/api/folder_contents.py @@ -105,22 +105,22 @@ class FolderContentsController(BaseAPIController, UsesLibraryMixin, UsesLibraryM library_dataset_dict = content_item.to_dict() return_item.update(dict(file_ext=library_dataset_dict['file_ext'], - date_uploaded=library_dataset_dict['date_uploaded'], - is_unrestricted=is_unrestricted, - is_private=is_private, - can_manage=can_manage, - file_size=nice_size + date_uploaded=library_dataset_dict['date_uploaded'], + is_unrestricted=is_unrestricted, + is_private=is_private, + can_manage=can_manage, + file_size=nice_size )) if content_item.library_dataset_dataset_association.message: return_item.update(dict(message=content_item.library_dataset_dataset_association.message)) # For every item include the default metadata return_item.update(dict(id=encoded_id, - type=content_item.api_type, - name=content_item.name, - update_time=update_time, - create_time=create_time, - deleted=content_item.deleted + type=content_item.api_type, + name=content_item.name, + update_time=update_time, + create_time=create_time, + deleted=content_item.deleted )) folder_contents.append(return_item) @@ -138,11 +138,11 @@ class FolderContentsController(BaseAPIController, UsesLibraryMixin, UsesLibraryM parent_library_id = trans.security.encode_id(folder.parent_library.id) metadata = dict(full_path=full_path, - can_add_library_item=can_add_library_item, - can_modify_folder=can_modify_folder, - folder_name=folder.name, - folder_description=folder.description, - parent_library_id=parent_library_id) + can_add_library_item=can_add_library_item, + can_modify_folder=can_modify_folder, + folder_name=folder.name, + folder_description=folder.description, + parent_library_id=parent_library_id) folder_container = dict(metadata=metadata, folder_contents=folder_contents) return folder_container diff --git a/lib/galaxy/webapps/galaxy/api/folders.py b/lib/galaxy/webapps/galaxy/api/folders.py index 1747a341de9..e638d7119be 100644 --- a/lib/galaxy/webapps/galaxy/api/folders.py +++ b/lib/galaxy/webapps/galaxy/api/folders.py @@ -215,7 +215,7 @@ class FoldersController(BaseAPIController, UsesLibraryMixin, UsesLibraryMixinIte trans.app.security_agent.set_all_library_permissions(trans, folder, permissions) else: raise exceptions.RequestParameterInvalidException('The mandatory parameter "action" has an invalid value.' - 'Allowed values are: "set_permissions"') + 'Allowed values are: "set_permissions"') return self.folder_manager.get_current_roles(trans, folder) @expose_api diff --git a/lib/galaxy/webapps/galaxy/api/group_roles.py b/lib/galaxy/webapps/galaxy/api/group_roles.py index 4e44f85ce23..a4d42cbbaf5 100644 --- a/lib/galaxy/webapps/galaxy/api/group_roles.py +++ b/lib/galaxy/webapps/galaxy/api/group_roles.py @@ -31,8 +31,8 @@ class GroupRolesAPIController(BaseAPIController): role = gra.role encoded_id = trans.security.encode_id(role.id) rval.append(dict(id=encoded_id, - name=role.name, - url=url_for('group_role', group_id=group_id, id=encoded_id, ))) + name=role.name, + url=url_for('group_role', group_id=group_id, id=encoded_id, ))) except Exception as e: rval = "Error in group API at listing roles" log.error(rval + ": %s" % str(e)) @@ -56,8 +56,8 @@ class GroupRolesAPIController(BaseAPIController): for gra in group.roles: if gra.role == role: item = dict(id=role_id, - name=role.name, - url=url_for('group_role', group_id=group_id, id=role_id)) # TODO Fix This + name=role.name, + url=url_for('group_role', group_id=group_id, id=role_id)) # TODO Fix This if not item: item = "role %s not in group %s" % (role.name, group.name) except Exception as e: @@ -82,16 +82,16 @@ class GroupRolesAPIController(BaseAPIController): for gra in group.roles: if gra.role == role: item = dict(id=role_id, - name=role.name, - url=url_for('group_role', group_id=group_id, id=role_id)) + name=role.name, + url=url_for('group_role', group_id=group_id, id=role_id)) if not item: gra = trans.app.model.GroupRoleAssociation(group, role) # Add GroupRoleAssociation trans.sa_session.add(gra) trans.sa_session.flush() item = dict(id=role_id, - name=role.name, - url=url_for('group_role', group_id=group_id, id=role_id)) + name=role.name, + url=url_for('group_role', group_id=group_id, id=role_id)) except Exception as e: item = "Error in group_role API Adding role %s to group %s" % (role.name, group.name) log.error(item + ": %s" % str(e)) @@ -115,8 +115,8 @@ class GroupRolesAPIController(BaseAPIController): trans.sa_session.delete(gra) trans.sa_session.flush() item = dict(id=role_id, - name=role.name, - url=url_for('group_role', group_id=group_id, id=role_id)) + name=role.name, + url=url_for('group_role', group_id=group_id, id=role_id)) if not item: item = "role %s not in group %s" % (role.name, group.name) except Exception as e: diff --git a/lib/galaxy/webapps/galaxy/api/group_users.py b/lib/galaxy/webapps/galaxy/api/group_users.py index f0732e4b881..04d47f4c0b9 100644 --- a/lib/galaxy/webapps/galaxy/api/group_users.py +++ b/lib/galaxy/webapps/galaxy/api/group_users.py @@ -31,8 +31,8 @@ class GroupUsersAPIController(BaseAPIController): user = uga.user encoded_id = trans.security.encode_id(user.id) rval.append(dict(id=encoded_id, - email=user.email, - url=url_for('group_user', group_id=group_id, id=encoded_id, ))) + email=user.email, + url=url_for('group_user', group_id=group_id, id=encoded_id, ))) except Exception as e: rval = "Error in group API at listing users" log.error(rval + ": %s" % str(e)) @@ -56,8 +56,8 @@ class GroupUsersAPIController(BaseAPIController): for uga in group.users: if uga.user == user: item = dict(id=user_id, - email=user.email, - url=url_for('group_user', group_id=group_id, id=user_id)) # TODO Fix This + email=user.email, + url=url_for('group_user', group_id=group_id, id=user_id)) # TODO Fix This if not item: item = "user %s not in group %s" % (user.email, group.name) except Exception as e: @@ -82,16 +82,16 @@ class GroupUsersAPIController(BaseAPIController): for uga in group.users: if uga.user == user: item = dict(id=user_id, - email=user.email, - url=url_for('group_user', group_id=group_id, id=user_id)) + email=user.email, + url=url_for('group_user', group_id=group_id, id=user_id)) if not item: uga = trans.app.model.UserGroupAssociation(user, group) # Add UserGroupAssociations trans.sa_session.add(uga) trans.sa_session.flush() item = dict(id=user_id, - email=user.email, - url=url_for('group_user', group_id=group_id, id=user_id)) + email=user.email, + url=url_for('group_user', group_id=group_id, id=user_id)) except Exception as e: item = "Error in group_user API Adding user %s to group %s" % (user.email, group.name) log.error(item + ": %s" % str(e)) @@ -115,8 +115,8 @@ class GroupUsersAPIController(BaseAPIController): trans.sa_session.delete(uga) trans.sa_session.flush() item = dict(id=user_id, - email=user.email, - url=url_for('group_user', group_id=group_id, id=user_id)) + email=user.email, + url=url_for('group_user', group_id=group_id, id=user_id)) if not item: item = "user %s not in group %s" % (user.email, group.name) except Exception as e: diff --git a/lib/galaxy/webapps/galaxy/api/history_contents.py b/lib/galaxy/webapps/galaxy/api/history_contents.py index 11ecb41ee78..7f027c7af01 100644 --- a/lib/galaxy/webapps/galaxy/api/history_contents.py +++ b/lib/galaxy/webapps/galaxy/api/history_contents.py @@ -152,9 +152,9 @@ class HistoryContentsController(BaseAPIController, UsesLibraryMixin, UsesLibrary def __show_dataset(self, trans, id, **kwd): hda = self.hda_manager.get_accessible(self.decode_id(id), trans.user) return self.hda_serializer.serialize_to_view(hda, - user=trans.user, - trans=trans, - **self._parse_serialization_params(kwd, 'detailed')) + user=trans.user, + trans=trans, + **self._parse_serialization_params(kwd, 'detailed')) def __show_dataset_collection(self, trans, id, history_id, **kwd): try: @@ -273,7 +273,7 @@ class HistoryContentsController(BaseAPIController, UsesLibraryMixin, UsesLibrary # examples. See also bioblend and API tests for specific examples. history = self.history_manager.get_owned(self.decode_id(history_id), trans.user, - current_history=trans.history) + current_history=trans.history) type = payload.get('type', 'dataset') if type == 'dataset': @@ -459,7 +459,7 @@ class HistoryContentsController(BaseAPIController, UsesLibraryMixin, UsesLibrary if payload.get('deleted', False): self.hda_manager.stop_creating_job(hda) return self.hda_serializer.serialize_to_view(hda, - user=trans.user, trans=trans, **self._parse_serialization_params(kwd, 'detailed')) + user=trans.user, trans=trans, **self._parse_serialization_params(kwd, 'detailed')) return {} @@ -518,7 +518,7 @@ class HistoryContentsController(BaseAPIController, UsesLibraryMixin, UsesLibrary else: self.hda_manager.delete(hda) return self.hda_serializer.serialize_to_view(hda, - user=trans.user, trans=trans, **self._parse_serialization_params(kwd, 'detailed')) + user=trans.user, trans=trans, **self._parse_serialization_params(kwd, 'detailed')) def __handle_unknown_contents_type(self, trans, contents_type): raise exceptions.UnknownContentsType('Unknown contents type: %s' % type) diff --git a/lib/galaxy/webapps/galaxy/api/job_files.py b/lib/galaxy/webapps/galaxy/api/job_files.py index b498232e076..9a9137f4ed2 100644 --- a/lib/galaxy/webapps/galaxy/api/job_files.py +++ b/lib/galaxy/webapps/galaxy/api/job_files.py @@ -87,15 +87,15 @@ class JobFilesAPIController(BaseAPIController): file_path = payload.get('__file_path') upload_store = trans.app.config.nginx_upload_job_files_store assert upload_store, ("Request appears to have been processed by" - " nginx_upload_module but Galaxy is not" - " configured to recognize it") + " nginx_upload_module but Galaxy is not" + " configured to recognize it") assert file_path.startswith(upload_store), \ ("Filename provided by nginx (%s) is not in correct" - " directory (%s)" % (file_path, upload_store)) + " directory (%s)" % (file_path, upload_store)) input_file = open(file_path) else: input_file = payload.get("file", - payload.get("__file", None)).file + payload.get("__file", None)).file try: shutil.move(input_file.name, path) finally: diff --git a/lib/galaxy/webapps/galaxy/api/lda_datasets.py b/lib/galaxy/webapps/galaxy/api/lda_datasets.py index 27e7ea9afe8..6da88342cb0 100644 --- a/lib/galaxy/webapps/galaxy/api/lda_datasets.py +++ b/lib/galaxy/webapps/galaxy/api/lda_datasets.py @@ -325,7 +325,7 @@ class LibraryDatasetsController(BaseAPIController, UsesVisualizationMixin): else: raise exceptions.RequestParameterInvalidException('The mandatory parameter "action" has an invalid value. ' - 'Allowed values are: "remove_restrictions", "make_private", "set_permissions"') + 'Allowed values are: "remove_restrictions", "make_private", "set_permissions"') return self._get_current_roles(trans, library_dataset) diff --git a/lib/galaxy/webapps/galaxy/api/libraries.py b/lib/galaxy/webapps/galaxy/api/libraries.py index c6b13764878..f3cdf44ca9f 100644 --- a/lib/galaxy/webapps/galaxy/api/libraries.py +++ b/lib/galaxy/webapps/galaxy/api/libraries.py @@ -352,7 +352,7 @@ class LibrariesController(BaseAPIController): trans.app.security_agent.copy_library_permissions(trans, library, library.root_folder) else: raise exceptions.RequestParameterInvalidException('The mandatory parameter "action" has an invalid value.' - 'Allowed values are: "remove_restrictions", set_permissions"') + 'Allowed values are: "remove_restrictions", set_permissions"') roles = self.library_manager.get_current_roles(trans, library) return roles diff --git a/lib/galaxy/webapps/galaxy/api/library_contents.py b/lib/galaxy/webapps/galaxy/api/library_contents.py index b84370ad7f3..5992a8e8432 100644 --- a/lib/galaxy/webapps/galaxy/api/library_contents.py +++ b/lib/galaxy/webapps/galaxy/api/library_contents.py @@ -88,9 +88,9 @@ class LibraryContentsController(BaseAPIController, UsesLibraryMixin, UsesLibrary encoded_id = 'F' + trans.security.encode_id(library.root_folder.id) # appending root folder rval.append(dict(id=encoded_id, - type='folder', - name='/', - url=url_for('library_content', library_id=library_id, id=encoded_id))) + type='folder', + name='/', + url=url_for('library_content', library_id=library_id, id=encoded_id))) library.root_folder.api_path = '' # appending all other items in the library recursively for content in traverse(library.root_folder): @@ -98,9 +98,9 @@ class LibraryContentsController(BaseAPIController, UsesLibraryMixin, UsesLibrary if content.api_type == 'folder': encoded_id = 'F' + encoded_id rval.append(dict(id=encoded_id, - type=content.api_type, - name=content.api_path, - url=url_for('library_content', library_id=library_id, id=encoded_id, ))) + type=content.api_type, + name=content.api_path, + url=url_for('library_content', library_id=library_id, id=encoded_id, ))) return rval @expose_api @@ -262,8 +262,8 @@ class LibraryContentsController(BaseAPIController, UsesLibraryMixin, UsesLibrary if create_type == 'folder': encoded_id = 'F' + encoded_id rval.append(dict(id=encoded_id, - name=v.name, - url=url_for('library_content', library_id=library_id, id=encoded_id))) + name=v.name, + url=url_for('library_content', library_id=library_id, id=encoded_id))) return rval def _scan_json_block(self, meta, prefix=""): @@ -317,9 +317,9 @@ class LibraryContentsController(BaseAPIController, UsesLibraryMixin, UsesLibrary content = self.get_library_dataset(trans, id, check_ownership=False, check_accessible=False) content_conv = self.get_library_dataset(trans, converted_id, check_ownership=False, check_accessible=False) assoc = trans.app.model.ImplicitlyConvertedDatasetAssociation(parent=content.library_dataset_dataset_association, - dataset=content_conv.library_dataset_dataset_association, - file_type=content_conv.library_dataset_dataset_association.extension, - metadata_safe=True) + dataset=content_conv.library_dataset_dataset_association, + file_type=content_conv.library_dataset_dataset_association.extension, + metadata_safe=True) trans.sa_session.add(assoc) trans.sa_session.flush() @@ -394,13 +394,13 @@ class LibraryContentsController(BaseAPIController, UsesLibraryMixin, UsesLibrary except exceptions.httpexceptions.HTTPInternalServerError: log.exception('Library_contents API, delete: uncaught HTTPInternalServerError: %s, %s', - id, str(kwd)) + id, str(kwd)) raise except exceptions.httpexceptions.HTTPException: raise except Exception as exc: log.exception('library_contents API, delete: uncaught exception: %s, %s', - id, str(kwd)) + id, str(kwd)) trans.response.status = 500 rval.update({'error': str(exc)}) return rval diff --git a/lib/galaxy/webapps/galaxy/api/remote_files.py b/lib/galaxy/webapps/galaxy/api/remote_files.py index a95823cf235..920ddc71efe 100644 --- a/lib/galaxy/webapps/galaxy/api/remote_files.py +++ b/lib/galaxy/webapps/galaxy/api/remote_files.py @@ -113,8 +113,8 @@ class RemoteFilesAPIController(BaseAPIController): path = os.path.relpath(os.path.join(dirpath, filename), directory) statinfo = os.lstat(os.path.join(dirpath, filename)) response.append(dict(path=path, - size=statinfo.st_size, - ctime=time.strftime("%m/%d/%Y %I:%M:%S %p", time.localtime(statinfo.st_ctime)))) + size=statinfo.st_size, + ctime=time.strftime("%m/%d/%Y %I:%M:%S %p", time.localtime(statinfo.st_ctime)))) else: log.warning("The directory \"%s\" does not exist." % directory) return response diff --git a/lib/galaxy/webapps/galaxy/api/requests.py b/lib/galaxy/webapps/galaxy/api/requests.py index 60404744b22..7b35a54541d 100644 --- a/lib/galaxy/webapps/galaxy/api/requests.py +++ b/lib/galaxy/webapps/galaxy/api/requests.py @@ -103,6 +103,6 @@ class RequestsAPIController(BaseAPIController): def __update_request_state(self, trans, encoded_request_id): requests_common_cntrller = trans.webapp.controllers['requests_common'] status, output = requests_common_cntrller.update_request_state(trans, - cntrller='api', - request_id=encoded_request_id) + cntrller='api', + request_id=encoded_request_id) return status, output diff --git a/lib/galaxy/webapps/galaxy/api/samples.py b/lib/galaxy/webapps/galaxy/api/samples.py index 2d6f9d192f5..356b194b9e2 100644 --- a/lib/galaxy/webapps/galaxy/api/samples.py +++ b/lib/galaxy/webapps/galaxy/api/samples.py @@ -13,7 +13,7 @@ log = logging.getLogger(__name__) class SamplesAPIController(BaseAPIController): update_types = Bunch(SAMPLE=['sample_state', 'run_details'], - SAMPLE_DATASET=['sample_dataset_transfer_status']) + SAMPLE_DATASET=['sample_dataset_transfer_status']) update_type_values = [] for k, v in update_types.items(): update_type_values.extend(v) @@ -40,8 +40,8 @@ class SamplesAPIController(BaseAPIController): for sample in request.samples: item = sample.to_dict() item['url'] = url_for('samples', - request_id=trans.security.encode_id(request_id), - id=trans.security.encode_id(sample.id)) + request_id=trans.security.encode_id(request_id), + id=trans.security.encode_id(sample.id)) item['id'] = trans.security.encode_id(item['id']) rval.append(item) return rval @@ -86,11 +86,11 @@ class SamplesAPIController(BaseAPIController): except: log.exception('update() called with a deferred job plugin (%s) but creating the deferred job failed:' % deferred_plugin) status, output = requests_admin_controller.edit_template_info(trans, - cntrller='api', - item_type='sample', - form_type=trans.model.FormDefinition.types.RUN_DETAILS_TEMPLATE, - sample_id=sample_id, - **payload) + cntrller='api', + item_type='sample', + form_type=trans.model.FormDefinition.types.RUN_DETAILS_TEMPLATE, + sample_id=sample_id, + **payload) return status, output elif update_type == 'sample_state': return self.__update_sample_state(trans, sample, sample_id, **payload) @@ -119,10 +119,10 @@ class SamplesAPIController(BaseAPIController): return "Invalid sample state requested ( %s )." % new_state_name requests_common_cntrller = trans.webapp.controllers['requests_common'] status, output = requests_common_cntrller.update_sample_state(trans=trans, - cntrller='api', - sample_ids=[encoded_sample_id], - new_state=new_state, - comment=comment) + cntrller='api', + sample_ids=[encoded_sample_id], + new_state=new_state, + comment=comment) return status, output def __update_sample_dataset_status(self, trans, **payload): @@ -138,8 +138,8 @@ class SamplesAPIController(BaseAPIController): error_msg = payload.get('error_msg', '') requests_admin_cntrller = trans.webapp.controllers['requests_admin'] status, output = requests_admin_cntrller.update_sample_dataset_status(trans=trans, - cntrller='api', - sample_dataset_ids=sample_dataset_ids, - new_status=new_status, - error_msg=error_msg) + cntrller='api', + sample_dataset_ids=sample_dataset_ids, + new_status=new_status, + error_msg=error_msg) return status, output diff --git a/lib/galaxy/webapps/galaxy/api/tool_data.py b/lib/galaxy/webapps/galaxy/api/tool_data.py index 16059d33092..0fbf91c5f22 100644 --- a/lib/galaxy/webapps/galaxy/api/tool_data.py +++ b/lib/galaxy/webapps/galaxy/api/tool_data.py @@ -39,8 +39,8 @@ class ToolData(BaseAPIController): data_table = trans.app.tool_data_tables.data_tables.get(decoded_tool_data_id) data_table.reload_from_files() galaxy.queue_worker.send_control_task(trans.app, 'reload_tool_data_tables', - noop_self=True, - kwargs={'table_name': decoded_tool_data_id}) + noop_self=True, + kwargs={'table_name': decoded_tool_data_id}) return self._data_table(decoded_tool_data_id).to_dict(view='element') @web.require_admin @@ -84,8 +84,8 @@ class ToolData(BaseAPIController): data_table.remove_entry(split_values) galaxy.queue_worker.send_control_task(trans.app, 'reload_tool_data_tables', - noop_self=True, - kwargs={'table_name': decoded_tool_data_id}) + noop_self=True, + kwargs={'table_name': decoded_tool_data_id}) return self._data_table(decoded_tool_data_id).to_dict(view='element') @web.require_admin diff --git a/lib/galaxy/webapps/galaxy/api/tool_shed_repositories.py b/lib/galaxy/webapps/galaxy/api/tool_shed_repositories.py index 028ddce54ea..a9047c4fba6 100644 --- a/lib/galaxy/webapps/galaxy/api/tool_shed_repositories.py +++ b/lib/galaxy/webapps/galaxy/api/tool_shed_repositories.py @@ -80,7 +80,7 @@ class ToolShedRepositoriesController(BaseAPIController): def __get_value_mapper(self, trans, tool_shed_repository): value_mapper = {'id': trans.security.encode_id(tool_shed_repository.id), - 'error_message': tool_shed_repository.error_message or ''} + 'error_message': tool_shed_repository.error_message or ''} return value_mapper def __get_tool_dependencies(self, metadata, tool_dependencies=None): @@ -102,9 +102,9 @@ class ToolShedRepositoriesController(BaseAPIController): if metadata['includes_tools_for_display_in_tool_panel']: for key, tool_dict in metadata['tools']: tool_info = dict(clean=re.sub('[^a-zA-Z0-9]+', '_', tool_dict['name']).lower(), - name=tool_dict['name'], - version=tool_dict['version'], - description=tool_dict['description']) + name=tool_dict['name'], + version=tool_dict['version'], + description=tool_dict['description']) if tool_info not in tools: tools.append(tool_info) if metadata['has_repository_dependencies']: @@ -238,8 +238,8 @@ class ToolShedRepositoriesController(BaseAPIController): tool_ids = util.listify(tool_ids) tool_panel_section_select_field = tool_util.build_tool_panel_section_select_field(trans.app) tool_panel_section_dict = {'name': tool_panel_section_select_field.name, - 'id': tool_panel_section_select_field.field_id, - 'sections': []} + 'id': tool_panel_section_select_field.field_id, + 'sections': []} for name, id, _ in tool_panel_section_select_field.options: tool_panel_section_dict['sections'].append(dict(id=id, name=name)) repository_data = dict() @@ -270,10 +270,10 @@ class ToolShedRepositoriesController(BaseAPIController): tools[changeset] = [] for tool_dict in metadata['tools']: tool_info = dict(clean=re.sub('[^a-zA-Z0-9]+', '_', tool_dict['name']).lower(), - guid=tool_dict['guid'], - name=tool_dict['name'], - version=tool_dict['version'], - description=tool_dict['description']) + guid=tool_dict['guid'], + name=tool_dict['name'], + version=tool_dict['version'], + description=tool_dict['description']) if tool_info not in tools[changeset]: tools[changeset].append(tool_info) if metadata['has_repository_dependencies']: @@ -396,8 +396,8 @@ class ToolShedRepositoriesController(BaseAPIController): tool_shed_repository_dict = \ tool_shed_repository.to_dict(value_mapper=self.__get_value_mapper(trans, tool_shed_repository)) tool_shed_repository_dict['url'] = web.url_for(controller='tool_shed_repositories', - action='show', - id=trans.security.encode_id(tool_shed_repository.id)) + action='show', + id=trans.security.encode_id(tool_shed_repository.id)) tool_shed_repository_dicts.append(tool_shed_repository_dict) return tool_shed_repository_dicts @@ -447,42 +447,42 @@ class ToolShedRepositoriesController(BaseAPIController): shed_tool_conf = kwd.get('shed_tool_conf', None) tool_path = suc.get_tool_path_by_shed_tool_conf_filename(self.app, shed_tool_conf) installation_dict = dict(install_repository_dependencies=install_repository_dependencies, - new_tool_panel_section_label=new_tool_panel_section_label, - no_changes_checked=False, - repo_info_dicts=repo_info_dicts, - tool_panel_section_id=tool_panel_section_id, - tool_path=tool_path, - tool_shed_url=tool_shed_url) + new_tool_panel_section_label=new_tool_panel_section_label, + no_changes_checked=False, + repo_info_dicts=repo_info_dicts, + tool_panel_section_id=tool_panel_section_id, + tool_path=tool_path, + tool_shed_url=tool_shed_url) new_repositories, tool_panel_keys, repo_info_dicts, filtered_repos = irm.handle_tool_shed_repositories(installation_dict) if new_repositories: installation_dict = dict(created_or_updated_tool_shed_repositories=new_repositories, - filtered_repo_info_dicts=filtered_repos, - has_repository_dependencies=has_repository_dependencies, - includes_tool_dependencies=includes_tool_dependencies, - includes_tools=includes_tools, - includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, - install_repository_dependencies=install_repository_dependencies, - install_tool_dependencies=install_tool_dependencies, - message='', - new_tool_panel_section_label=new_tool_panel_section_label, - tool_panel_section_mapping=tool_panel_section_mapping, - install_resolver_dependencies=install_resolver_dependencies, - shed_tool_conf=shed_tool_conf, - status='ok', - tool_panel_section_id=tool_panel_section_id, - tool_panel_section_keys=tool_panel_keys, - tool_path=tool_path, - tool_shed_url=tool_shed_url) + filtered_repo_info_dicts=filtered_repos, + has_repository_dependencies=has_repository_dependencies, + includes_tool_dependencies=includes_tool_dependencies, + includes_tools=includes_tools, + includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, + install_repository_dependencies=install_repository_dependencies, + install_tool_dependencies=install_tool_dependencies, + message='', + new_tool_panel_section_label=new_tool_panel_section_label, + tool_panel_section_mapping=tool_panel_section_mapping, + install_resolver_dependencies=install_resolver_dependencies, + shed_tool_conf=shed_tool_conf, + status='ok', + tool_panel_section_id=tool_panel_section_id, + tool_panel_section_keys=tool_panel_keys, + tool_path=tool_path, + tool_shed_url=tool_shed_url) encoded_kwd, query, tool_shed_repositories, encoded_repository_ids = \ irm.initiate_repository_installation(installation_dict) return json.dumps(dict(operation='install', - api=True, - install_resolver_dependencies=install_resolver_dependencies, - install_tool_dependencies=install_tool_dependencies, - encoded_kwd=encoded_kwd, - reinstalling=False, - tool_shed_repository_ids=json.dumps([repo[0] for repo in repositories]), - repositories=[trans.security.encode_id(repo.id) for repo in new_repositories])) + api=True, + install_resolver_dependencies=install_resolver_dependencies, + install_tool_dependencies=install_tool_dependencies, + encoded_kwd=encoded_kwd, + reinstalling=False, + tool_shed_repository_ids=json.dumps([repo[0] for repo in repositories]), + repositories=[trans.security.encode_id(repo.id) for repo in new_repositories])) @expose_api def install_repository_revision(self, trans, payload, **kwd): @@ -522,16 +522,16 @@ class ToolShedRepositoriesController(BaseAPIController): self.__ensure_can_install_repos(trans) irm = InstallRepositoryManager(self.app) installed_tool_shed_repositories = irm.install(tool_shed_url, - name, - owner, - changeset_revision, - payload) + name, + owner, + changeset_revision, + payload) def to_dict(tool_shed_repository): tool_shed_repository_dict = tool_shed_repository.as_dict(value_mapper=self.__get_value_mapper(trans, tool_shed_repository)) tool_shed_repository_dict['url'] = web.url_for(controller='tool_shed_repositories', - action='show', - id=trans.security.encode_id(tool_shed_repository.id)) + action='show', + id=trans.security.encode_id(tool_shed_repository.id)) return tool_shed_repository_dict if installed_tool_shed_repositories: return map(to_dict, installed_tool_shed_repositories) @@ -600,15 +600,15 @@ class ToolShedRepositoriesController(BaseAPIController): all_installed_tool_shed_repositories = [] for tool_shed_url, name, owner, changeset_revision in zip(tool_shed_urls, names, owners, changeset_revisions): current_payload = dict(tool_shed_url=tool_shed_url, - name=name, - owner=owner, - changeset_revision=changeset_revision, - new_tool_panel_section_label=new_tool_panel_section_label, - tool_panel_section_id=tool_panel_section_id, - install_repository_dependencies=install_repository_dependencies, - install_resolver_dependencies=install_resolver_dependencies, - install_tool_dependencies=install_tool_dependencies, - shed_tool_conf=shed_tool_conf) + name=name, + owner=owner, + changeset_revision=changeset_revision, + new_tool_panel_section_label=new_tool_panel_section_label, + tool_panel_section_id=tool_panel_section_id, + install_repository_dependencies=install_repository_dependencies, + install_resolver_dependencies=install_resolver_dependencies, + install_tool_dependencies=install_tool_dependencies, + shed_tool_conf=shed_tool_conf) installed_tool_shed_repositories = self.install_repository_revision(trans, **current_payload) if isinstance(installed_tool_shed_repositories, dict): # We encountered an error. @@ -675,10 +675,10 @@ class ToolShedRepositoriesController(BaseAPIController): tool_shed_url, name, owner, changeset_revision = self.__parse_repository_from_payload(payload, include_changeset=True) tool_shed_repositories = [] tool_shed_repository = repository_util.get_installed_repository(self.app, - tool_shed=tool_shed_url, - name=name, - owner=owner, - changeset_revision=changeset_revision) + tool_shed=tool_shed_url, + name=name, + owner=owner, + changeset_revision=changeset_revision) rrm = RepairRepositoryManager(self.app) repair_dict = rrm.get_repair_dict(tool_shed_repository) ordered_tsr_ids = repair_dict.get('ordered_tsr_ids', []) @@ -689,11 +689,11 @@ class ToolShedRepositoriesController(BaseAPIController): repo_info_dict = ordered_repo_info_dicts[index] # TODO: handle errors in repair_dict. repair_dict = rrm.repair_tool_shed_repository(repository, - encoding_util.tool_shed_encode(repo_info_dict)) + encoding_util.tool_shed_encode(repo_info_dict)) repository_dict = repository.to_dict(value_mapper=self.__get_value_mapper(trans, repository)) repository_dict['url'] = web.url_for(controller='tool_shed_repositories', - action='show', - id=trans.security.encode_id(repository.id)) + action='show', + id=trans.security.encode_id(repository.id)) if repair_dict: errors = repair_dict.get(repository.name, []) repository_dict['errors_attempting_repair'] = ' '.join(errors) @@ -732,9 +732,9 @@ class ToolShedRepositoriesController(BaseAPIController): """ start_time = strftime("%Y-%m-%d %H:%M:%S") results = dict(start_time=start_time, - successful_count=0, - unsuccessful_count=0, - repository_status=[]) + successful_count=0, + unsuccessful_count=0, + repository_status=[]) # Make sure the current user's API key proves he is an admin user in this Galaxy instance. if not trans.user_is_admin(): raise HTTPForbidden(detail='You are not authorized to reset metadata on repositories installed into this Galaxy instance.') @@ -748,10 +748,10 @@ class ToolShedRepositoriesController(BaseAPIController): irmm_invalid_file_tups = irmm.get_invalid_file_tups() if irmm_invalid_file_tups: message = tool_util.generate_message_for_invalid_tools(self.app, - irmm_invalid_file_tups, - repository, - None, - as_html=False) + irmm_invalid_file_tups, + repository, + None, + as_html=False) results['unsuccessful_count'] += 1 else: message = "Successfully reset metadata on repository %s owned by %s" % \ @@ -781,8 +781,8 @@ class ToolShedRepositoriesController(BaseAPIController): return {} tool_shed_repository_dict = tool_shed_repository.as_dict(value_mapper=self.__get_value_mapper(trans, tool_shed_repository)) tool_shed_repository_dict['url'] = web.url_for(controller='tool_shed_repositories', - action='show', - id=trans.security.encode_id(tool_shed_repository.id)) + action='show', + id=trans.security.encode_id(tool_shed_repository.id)) return tool_shed_repository_dict @expose_api @@ -801,7 +801,7 @@ class ToolShedRepositoriesController(BaseAPIController): return {} tool_shed_repository_dict = tool_shed_repository.as_dict(value_mapper=self.__get_value_mapper(trans, tool_shed_repository)) tool_shed_repository_dict['url'] = web.url_for(controller='tool_shed_repositories', - action='show', - id=trans.security.encode_id(tool_shed_repository.id)) + action='show', + id=trans.security.encode_id(tool_shed_repository.id)) tool_shed_repository_dict['repository_dependencies'] = self.__flatten_repository_dependency_list(trans, tool_shed_repository) return tool_shed_repository_dict diff --git a/lib/galaxy/webapps/galaxy/api/tools.py b/lib/galaxy/webapps/galaxy/api/tools.py index 04e96fb5fee..691531d3c92 100644 --- a/lib/galaxy/webapps/galaxy/api/tools.py +++ b/lib/galaxy/webapps/galaxy/api/tools.py @@ -260,16 +260,16 @@ class ToolsController(BaseAPIController, UsesVisualizationMixin): tool_ngram_maxsize = self.app.config.get('tool_ngram_maxsize', 4) results = self.app.toolbox_search.search(q=q, - tool_name_boost=tool_name_boost, - tool_section_boost=tool_section_boost, - tool_description_boost=tool_description_boost, - tool_label_boost=tool_label_boost, - tool_stub_boost=tool_stub_boost, - tool_help_boost=tool_help_boost, - tool_search_limit=tool_search_limit, - tool_enable_ngram_search=tool_enable_ngram_search, - tool_ngram_minsize=tool_ngram_minsize, - tool_ngram_maxsize=tool_ngram_maxsize) + tool_name_boost=tool_name_boost, + tool_section_boost=tool_section_boost, + tool_description_boost=tool_description_boost, + tool_label_boost=tool_label_boost, + tool_stub_boost=tool_stub_boost, + tool_help_boost=tool_help_boost, + tool_search_limit=tool_search_limit, + tool_enable_ngram_search=tool_enable_ngram_search, + tool_ngram_minsize=tool_ngram_minsize, + tool_ngram_maxsize=tool_ngram_maxsize) return results @expose_api_anonymous_and_sessionless @@ -480,7 +480,7 @@ class ToolsController(BaseAPIController, UsesVisualizationMixin): input_dataset = jida.dataset data_provider = data_provider_registry.get_data_provider(trans, original_dataset=input_dataset, source='data') if data_provider and (not data_provider.converted_dataset or - data_provider.converted_dataset.state != trans.app.model.Dataset.states.OK): + data_provider.converted_dataset.state != trans.app.model.Dataset.states.OK): # Can convert but no converted dataset yet, so return message about why. data_sources = input_dataset.datatype.data_sources msg = input_dataset.convert_dataset(trans, data_sources['data']) @@ -587,12 +587,12 @@ class ToolsController(BaseAPIController, UsesVisualizationMixin): # Create new HDA for input dataset's subset. new_dataset = trans.app.model.HistoryDatasetAssociation(extension=input_dataset.ext, - dbkey=input_dataset.dbkey, - create_dataset=True, - sa_session=trans.sa_session, - name="Subset [%s] of data %i" % - (regions_str, input_dataset.hid), - visible=False) + dbkey=input_dataset.dbkey, + create_dataset=True, + sa_session=trans.sa_session, + name="Subset [%s] of data %i" % + (regions_str, input_dataset.hid), + visible=False) target_history.add_dataset(new_dataset) trans.sa_session.add(new_dataset) trans.app.security_agent.set_all_dataset_permissions(new_dataset.dataset, hda_permissions) @@ -610,8 +610,8 @@ class ToolsController(BaseAPIController, UsesVisualizationMixin): # Set metadata. # TODO: set meta internally if dataset is small enough? trans.app.datatypes_registry.set_external_metadata_tool.tool_action.execute(trans.app.datatypes_registry.set_external_metadata_tool, - trans, incoming={'input1': new_dataset}, - overwrite=False, job_params={"source": "trackster"}) + trans, incoming={'input1': new_dataset}, + overwrite=False, job_params={"source": "trackster"}) # Add HDA subset association. subset_association = trans.app.model.HistoryDatasetAssociationSubset(hda=input_dataset, subset=new_dataset, location=regions_str) trans.sa_session.add(subset_association) @@ -629,8 +629,8 @@ class ToolsController(BaseAPIController, UsesVisualizationMixin): # try: subset_job, subset_job_outputs = tool.execute(trans, incoming=tool_params, - history=target_history, - job_params={"source": "trackster"}) + history=target_history, + job_params={"source": "trackster"}) except Exception as e: # Lots of things can go wrong when trying to execute tool. return {"error": True, "message": e.__class__.__name__ + ": " + str(e)} diff --git a/lib/galaxy/webapps/galaxy/api/toolshed.py b/lib/galaxy/webapps/galaxy/api/toolshed.py index 0d9ce090776..e0dbd459f97 100644 --- a/lib/galaxy/webapps/galaxy/api/toolshed.py +++ b/lib/galaxy/webapps/galaxy/api/toolshed.py @@ -27,8 +27,8 @@ class ToolShedController(BaseAPIController): return {} tool_shed_repository_dict = tool_shed_repository.as_dict(value_mapper=self.__get_value_mapper(tool_shed_repository)) tool_shed_repository_dict['url'] = web.url_for(controller='tool_shed_repositories', - action='show', - id=self.app.security.encode_id(tool_shed_repository.id)) + action='show', + id=self.app.security.encode_id(tool_shed_repository.id)) tool_shed_repository_dict['repository_dependencies'] = self.__flatten_repository_dependency_list(tool_shed_repository) return tool_shed_repository_dict @@ -62,7 +62,7 @@ class ToolShedController(BaseAPIController): def __get_value_mapper(self, tool_shed_repository): value_mapper = {'id': self.app.security.encode_id(tool_shed_repository.id), - 'error_message': tool_shed_repository.error_message or ''} + 'error_message': tool_shed_repository.error_message or ''} return value_mapper def __get_tools(self, metadata, tools=None): @@ -71,9 +71,9 @@ class ToolShedController(BaseAPIController): if metadata['includes_tools_for_display_in_tool_panel']: for key, tool_dict in metadata['tools']: tool_info = dict(clean=re.sub('[^a-zA-Z0-9]+', '_', tool_dict['name']).lower(), - name=tool_dict['name'], - version=tool_dict['version'], - description=tool_dict['description']) + name=tool_dict['name'], + version=tool_dict['version'], + description=tool_dict['description']) if tool_info not in tools: tools.append(tool_info) if metadata['has_repository_dependencies']: @@ -163,10 +163,10 @@ class ToolShedController(BaseAPIController): categories = [] for category in json.loads(util.url_get(url)): api_url = web.url_for(controller='api/tool_shed', - action='category', - tool_shed_url=urlquote(tool_shed_url), - category_id=category['id'], - qualified=True) + action='category', + tool_shed_url=urlquote(tool_shed_url), + category_id=category['id'], + qualified=True) category['url'] = api_url categories.append(category) return categories @@ -191,10 +191,10 @@ class ToolShedController(BaseAPIController): return_json = json.loads(util.url_get(url)) for repository in return_json['repositories']: api_url = web.url_for(controller='api/tool_shed', - action='repository', - tool_shed_url=urlquote(tool_shed_url), - repository_id=repository['id'], - qualified=True) + action='repository', + tool_shed_url=urlquote(tool_shed_url), + repository_id=repository['id'], + qualified=True) repository['url'] = api_url repositories.append(repository) return_json['repositories'] = repositories @@ -226,8 +226,8 @@ class ToolShedController(BaseAPIController): tool_ids = util.listify(tool_ids) tool_panel_section_select_field = tool_util.build_tool_panel_section_select_field(trans.app) tool_panel_section_dict = {'name': tool_panel_section_select_field.name, - 'id': tool_panel_section_select_field.field_id, - 'sections': []} + 'id': tool_panel_section_select_field.field_id, + 'sections': []} for name, id, _ in tool_panel_section_select_field.options: tool_panel_section_dict['sections'].append(dict(id=id, name=name)) repository_data = dict() @@ -257,10 +257,10 @@ class ToolShedController(BaseAPIController): tools[changeset] = [] for tool_dict in metadata['tools']: tool_info = dict(clean=re.sub('[^a-zA-Z0-9]+', '_', tool_dict['name']).lower(), - guid=tool_dict['guid'], - name=tool_dict['name'], - version=tool_dict['version'], - description=tool_dict['description']) + guid=tool_dict['guid'], + name=tool_dict['name'], + version=tool_dict['version'], + description=tool_dict['description']) if tool_info not in tools[changeset]: tools[changeset].append(tool_info) if metadata['has_repository_dependencies']: diff --git a/lib/galaxy/webapps/galaxy/api/users.py b/lib/galaxy/webapps/galaxy/api/users.py index 18b9a05cd7c..bd58275ee0e 100644 --- a/lib/galaxy/webapps/galaxy/api/users.py +++ b/lib/galaxy/webapps/galaxy/api/users.py @@ -176,8 +176,8 @@ class UserAPIController(BaseAPIController, UsesTagsMixin, CreatesUsersMixin, Cre email = payload['email'] password = payload['password'] message = "\n".join([validate_email(trans, email), - validate_password(trans, password, password), - validate_publicname(trans, username)]).rstrip() + validate_password(trans, password, password), + validate_publicname(trans, username)]).rstrip() if message: raise exceptions.RequestParameterInvalidException(message) else: @@ -185,7 +185,7 @@ class UserAPIController(BaseAPIController, UsesTagsMixin, CreatesUsersMixin, Cre else: raise exceptions.NotImplemented() item = user.to_dict(view='element', value_mapper={'id': trans.security.encode_id, - 'total_disk_usage': float}) + 'total_disk_usage': float}) return item @expose_api @@ -556,9 +556,9 @@ class UserAPIController(BaseAPIController, UsesTagsMixin, CreatesUsersMixin, Cre Return available password inputs. """ return {'inputs': [{'name': 'current', 'type': 'password', 'label': 'Current password'}, - {'name': 'password', 'type': 'password', 'label': 'New password'}, - {'name': 'confirm', 'type': 'password', 'label': 'Confirm password'}, - {'name': 'token', 'type': 'hidden', 'hidden': True, 'ignore': None}]} + {'name': 'password', 'type': 'password', 'label': 'New password'}, + {'name': 'confirm', 'type': 'password', 'label': 'Confirm password'}, + {'name': 'token', 'type': 'hidden', 'hidden': True, 'ignore': None}]} @expose_api def set_password(self, trans, id, payload={}, **kwd): diff --git a/lib/galaxy/webapps/galaxy/api/visualizations.py b/lib/galaxy/webapps/galaxy/api/visualizations.py index 1e2b91462e1..d125c802171 100644 --- a/lib/galaxy/webapps/galaxy/api/visualizations.py +++ b/lib/galaxy/webapps/galaxy/api/visualizations.py @@ -64,7 +64,7 @@ class VisualizationsController(BaseAPIController, UsesVisualizationMixin, Sharab visualization = self.get_visualization(trans, id, check_ownership=False, check_accessible=True) dictionary = trans.security.encode_dict_ids(self.get_visualization_dict(visualization)) dictionary['url'] = web.url_for(controller='visualization', - action="display_by_username_and_slug", username=visualization.user.username, slug=visualization.slug) + action="display_by_username_and_slug", username=visualization.user.username, slug=visualization.slug) dictionary['annotation'] = self.get_item_annotation_str(trans.sa_session, trans.user, visualization) # need to encode ids in revisions as well diff --git a/lib/galaxy/webapps/galaxy/api/workflows.py b/lib/galaxy/webapps/galaxy/api/workflows.py index 8b639fdae7c..650a2fc369d 100644 --- a/lib/galaxy/webapps/galaxy/api/workflows.py +++ b/lib/galaxy/webapps/galaxy/api/workflows.py @@ -275,8 +275,8 @@ class WorkflowsAPIController(BaseAPIController, UsesStoredWorkflowMixin, UsesAnn if 'installed_repository_file' in payload: workflow_controller = trans.webapp.controllers['workflow'] result = workflow_controller.import_workflow(trans=trans, - cntrller='api', - **payload) + cntrller='api', + **payload) return result if 'from_history_id' in payload: @@ -562,10 +562,10 @@ class WorkflowsAPIController(BaseAPIController, UsesStoredWorkflowMixin, UsesAnn owner = item['owner'] changeset_revision = item['changeset_revision'] irm.install(tool_shed_url, - name, - owner, - changeset_revision, - payload) + name, + owner, + changeset_revision, + payload) return item @expose_api diff --git a/lib/galaxy/webapps/galaxy/buildapp.py b/lib/galaxy/webapps/galaxy/buildapp.py index a009710cbd8..8ce0cd624da 100644 --- a/lib/galaxy/webapps/galaxy/buildapp.py +++ b/lib/galaxy/webapps/galaxy/buildapp.py @@ -85,8 +85,8 @@ def paste_app_factory(global_conf, **kwargs): webapp.add_route('/datasets/{dataset_id}/display/{filename:.+?}', controller='dataset', action='display', dataset_id=None, filename=None) webapp.add_route('/datasets/{dataset_id}/{action}/{filename}', controller='dataset', action='index', dataset_id=None, filename=None) webapp.add_route('/display_application/{dataset_id}/{app_name}/{link_name}/{user_id}/{app_action}/{action_param}/{action_param_extra:.+?}', - controller='dataset', action='display_application', dataset_id=None, user_id=None, - app_name=None, link_name=None, app_action=None, action_param=None, action_param_extra=None) + controller='dataset', action='display_application', dataset_id=None, user_id=None, + app_name=None, link_name=None, app_action=None, action_param=None, action_param_extra=None) webapp.add_route('/u/{username}/d/{slug}/{filename}', controller='dataset', action='display_by_username_and_slug', filename=None) webapp.add_route('/u/{username}/p/{slug}', controller='page', action='display_by_username_and_slug') webapp.add_route('/u/{username}/h/{slug}', controller='history', action='display_by_username_and_slug') @@ -195,64 +195,64 @@ def populate_api_routes(webapp, app): # Accesss HDA details via histories/{history_id}/contents/datasets/{hda_id} webapp.mapper.resource("content_typed", - "{type:%s}s" % "|".join(valid_history_contents_types), - name_prefix="history_", - controller='history_contents', - path_prefix='/api/histories/{history_id}/contents', - parent_resources=dict(member_name='history', collection_name='histories'), + "{type:%s}s" % "|".join(valid_history_contents_types), + name_prefix="history_", + controller='history_contents', + path_prefix='/api/histories/{history_id}/contents', + parent_resources=dict(member_name='history', collection_name='histories'), ) # Legacy access to HDA details via histories/{history_id}/contents/{hda_id} webapp.mapper.resource('content', - 'contents', - controller='history_contents', - name_prefix='history_', - path_prefix='/api/histories/{history_id}', - parent_resources=dict(member_name='history', collection_name='histories')) + 'contents', + controller='history_contents', + name_prefix='history_', + path_prefix='/api/histories/{history_id}', + parent_resources=dict(member_name='history', collection_name='histories')) webapp.mapper.connect("history_contents_display", - "/api/histories/{history_id}/contents/{history_content_id}/display", - controller="datasets", - action="display", - conditions=dict(method=["GET"])) + "/api/histories/{history_id}/contents/{history_content_id}/display", + controller="datasets", + action="display", + conditions=dict(method=["GET"])) webapp.mapper.connect("history_contents_metadata_file", - "/api/histories/{history_id}/contents/{history_content_id}/metadata_file", - controller="datasets", - action="get_metadata_file", - conditions=dict(method=["GET"])) + "/api/histories/{history_id}/contents/{history_content_id}/metadata_file", + controller="datasets", + action="get_metadata_file", + conditions=dict(method=["GET"])) webapp.mapper.resource('user', - 'users', - controller='group_users', - name_prefix='group_', - path_prefix='/api/groups/{group_id}', - parent_resources=dict(member_name='group', collection_name='groups')) + 'users', + controller='group_users', + name_prefix='group_', + path_prefix='/api/groups/{group_id}', + parent_resources=dict(member_name='group', collection_name='groups')) webapp.mapper.resource('role', - 'roles', - controller='group_roles', - name_prefix='group_', - path_prefix='/api/groups/{group_id}', - parent_resources=dict(member_name='group', collection_name='groups')) + 'roles', + controller='group_roles', + name_prefix='group_', + path_prefix='/api/groups/{group_id}', + parent_resources=dict(member_name='group', collection_name='groups')) _add_item_tags_controller(webapp, - name_prefix="history_content_", - path_prefix='/api/histories/{history_id}/contents/{history_content_id}') + name_prefix="history_content_", + path_prefix='/api/histories/{history_id}/contents/{history_content_id}') webapp.mapper.connect('/api/histories/published', action='published', controller="histories", conditions=dict(method=["GET"])) webapp.mapper.connect('/api/histories/shared_with_me', action='shared_with_me', controller="histories") _add_item_tags_controller(webapp, - name_prefix="history_", - path_prefix='/api/histories/{history_id}') + name_prefix="history_", + path_prefix='/api/histories/{history_id}') _add_item_tags_controller(webapp, - name_prefix="workflow_", - path_prefix='/api/workflows/{workflow_id}') + name_prefix="workflow_", + path_prefix='/api/workflows/{workflow_id}') _add_item_annotation_controller(webapp, - name_prefix="history_content_", - path_prefix='/api/histories/{history_id}/contents/{history_content_id}') + name_prefix="history_content_", + path_prefix='/api/histories/{history_id}/contents/{history_content_id}') _add_item_annotation_controller(webapp, - name_prefix="history_", - path_prefix='/api/histories/{history_id}') + name_prefix="history_", + path_prefix='/api/histories/{history_id}') _add_item_annotation_controller(webapp, - name_prefix="workflow_", - path_prefix='/api/workflows/{workflow_id}') + name_prefix="workflow_", + path_prefix='/api/workflows/{workflow_id}') _add_item_provenance_controller(webapp, - name_prefix="history_content_", - path_prefix='/api/histories/{history_id}/contents/{history_content_id}') + name_prefix="history_content_", + path_prefix='/api/histories/{history_id}/contents/{history_content_id}') webapp.mapper.resource('dataset', 'datasets', path_prefix='/api') webapp.mapper.resource('tool_data', 'tool_data', path_prefix='/api') @@ -271,10 +271,10 @@ def populate_api_routes(webapp, app): webapp.mapper.resource_with_deleted('quota', 'quotas', path_prefix='/api') webapp.mapper.connect('get_custom_builds_metadata', - '/api/histories/{id}/custom_builds_metadata', - controller='histories', - action='get_custom_builds_metadata', - conditions=dict(method=["GET"])) + '/api/histories/{id}/custom_builds_metadata', + controller='histories', + action='get_custom_builds_metadata', + conditions=dict(method=["GET"])) # ======================= # ====== TOOLS API ====== @@ -335,35 +335,35 @@ def populate_api_routes(webapp, app): ) webapp.mapper.resource('configuration', 'configuration', path_prefix='/api') webapp.mapper.connect("configuration_version", - "/api/version", controller="configuration", - action="version", conditions=dict(method=["GET"])) + "/api/version", controller="configuration", + action="version", conditions=dict(method=["GET"])) webapp.mapper.connect("api_whoami", - "/api/whoami", controller='configuration', - action='whoami', - conditions=dict(method=["GET"])) + "/api/whoami", controller='configuration', + action='whoami', + conditions=dict(method=["GET"])) webapp.mapper.resource('datatype', - 'datatypes', - path_prefix='/api', - collection={'sniffers': 'GET', 'mapping': 'GET', 'converters': 'GET', 'edam_data': 'GET', 'edam_formats': 'GET'}, - parent_resources=dict(member_name='datatype', collection_name='datatypes')) + 'datatypes', + path_prefix='/api', + collection={'sniffers': 'GET', 'mapping': 'GET', 'converters': 'GET', 'edam_data': 'GET', 'edam_formats': 'GET'}, + parent_resources=dict(member_name='datatype', collection_name='datatypes')) webapp.mapper.resource('search', 'search', path_prefix='/api') webapp.mapper.resource('page', 'pages', path_prefix="/api") webapp.mapper.resource('revision', 'revisions', - path_prefix='/api/pages/{page_id}', - controller='page_revisions', - parent_resources=dict(member_name='page', collection_name='pages')) + path_prefix='/api/pages/{page_id}', + controller='page_revisions', + parent_resources=dict(member_name='page', collection_name='pages')) webapp.mapper.connect("history_archive_export", - "/api/histories/{id}/exports", controller="histories", - action="archive_export", conditions=dict(method=["PUT"])) + "/api/histories/{id}/exports", controller="histories", + action="archive_export", conditions=dict(method=["PUT"])) webapp.mapper.connect("history_archive_download", - "/api/histories/{id}/exports/{jeha_id}", controller="histories", - action="archive_download", conditions=dict(method=["GET"])) + "/api/histories/{id}/exports/{jeha_id}", controller="histories", + action="archive_download", conditions=dict(method=["GET"])) webapp.mapper.connect('/api/histories/{history_id}/contents/archive', - controller='history_contents', action='archive') + controller='history_contents', action='archive') webapp.mapper.connect('/api/histories/{history_id}/contents/archive/{filename}{.format}', - controller='history_contents', action='archive') + controller='history_contents', action='archive') webapp.mapper.connect("/api/histories/{history_id}/contents/dataset_collections/{id}/download", controller='history_contents', action='download_dataset_collection', @@ -387,27 +387,27 @@ def populate_api_routes(webapp, app): # Deprecated in favor of POST /api/workflows with 'workflow' in payload. webapp.mapper.connect('import_workflow_deprecated', - '/api/workflows/upload', - controller='workflows', - action='import_new_workflow_deprecated', - conditions=dict(method=['POST'])) + '/api/workflows/upload', + controller='workflows', + action='import_new_workflow_deprecated', + conditions=dict(method=['POST'])) webapp.mapper.connect('workflow_dict', - '/api/workflows/{workflow_id}/download', - controller='workflows', - action='workflow_dict', - conditions=dict(method=['GET'])) + '/api/workflows/{workflow_id}/download', + controller='workflows', + action='workflow_dict', + conditions=dict(method=['GET'])) # Preserve the following download route for now for dependent applications -- deprecate at some point webapp.mapper.connect('workflow_dict', - '/api/workflows/download/{workflow_id}', - controller='workflows', - action='workflow_dict', - conditions=dict(method=['GET'])) + '/api/workflows/download/{workflow_id}', + controller='workflows', + action='workflow_dict', + conditions=dict(method=['GET'])) # Deprecated in favor of POST /api/workflows with shared_workflow_id in payload. webapp.mapper.connect('import_shared_workflow_deprecated', - '/api/workflows/import', - controller='workflows', - action='import_shared_workflow_deprecated', - conditions=dict(method=['POST'])) + '/api/workflows/import', + controller='workflows', + action='import_shared_workflow_deprecated', + conditions=dict(method=['POST'])) # route for creating/getting converted datasets webapp.mapper.connect('/api/datasets/{dataset_id}/converted', controller='datasets', action='converted', ext=None) @@ -473,295 +473,295 @@ def populate_api_routes(webapp, app): # ============================ webapp.mapper.connect('api_key_retrieval', - '/api/authenticate/baseauth/', - controller='authenticate', - action='get_api_key', - conditions=dict(method=["GET"])) + '/api/authenticate/baseauth/', + controller='authenticate', + action='get_api_key', + conditions=dict(method=["GET"])) # ===================== # ===== TOURS API ===== # ===================== webapp.mapper.connect('index', - '/api/tours', - controller='tours', - action='index', - conditions=dict(method=["GET"])) + '/api/tours', + controller='tours', + action='index', + conditions=dict(method=["GET"])) webapp.mapper.connect('show', - '/api/tours/{tour_id}', - controller='tours', - action='show', - conditions=dict(method=["GET"])) + '/api/tours/{tour_id}', + controller='tours', + action='show', + conditions=dict(method=["GET"])) webapp.mapper.connect('update_tour', - '/api/tours/{tour_id}', - controller='tours', - action='update_tour', - conditions=dict(method=["POST"])) + '/api/tours/{tour_id}', + controller='tours', + action='update_tour', + conditions=dict(method=["POST"])) # ================================ # ===== USERS API ===== # ================================ webapp.mapper.connect('api_key', - '/api/users/{id}/api_key', - controller='users', - action='api_key', - conditions=dict(method=["POST"])) + '/api/users/{id}/api_key', + controller='users', + action='api_key', + conditions=dict(method=["POST"])) webapp.mapper.connect('get_api_key', - '/api/users/{id}/api_key/inputs', - controller='users', - action='get_api_key', - conditions=dict(method=["GET"])) + '/api/users/{id}/api_key/inputs', + controller='users', + action='get_api_key', + conditions=dict(method=["GET"])) webapp.mapper.connect('set_api_key', - '/api/users/{id}/api_key/inputs', - controller='users', - action='set_api_key', - conditions=dict(method=["PUT"])) + '/api/users/{id}/api_key/inputs', + controller='users', + action='set_api_key', + conditions=dict(method=["PUT"])) webapp.mapper.connect('get_information', - '/api/users/{id}/information/inputs', - controller='users', - action='get_information', - conditions=dict(method=["GET"])) + '/api/users/{id}/information/inputs', + controller='users', + action='get_information', + conditions=dict(method=["GET"])) webapp.mapper.connect('set_information', - '/api/users/{id}/information/inputs', - controller='users', - action='set_information', - conditions=dict(method=["PUT"])) + '/api/users/{id}/information/inputs', + controller='users', + action='set_information', + conditions=dict(method=["PUT"])) webapp.mapper.connect('get_password', - '/api/users/{id}/password/inputs', - controller='users', - action='get_password', - conditions=dict(method=["GET"])) + '/api/users/{id}/password/inputs', + controller='users', + action='get_password', + conditions=dict(method=["GET"])) webapp.mapper.connect('set_password', - '/api/users/{id}/password/inputs', - controller='users', - action='set_password', - conditions=dict(method=["PUT"])) + '/api/users/{id}/password/inputs', + controller='users', + action='set_password', + conditions=dict(method=["PUT"])) webapp.mapper.connect('get_permissions', - '/api/users/{id}/permissions/inputs', - controller='users', - action='get_permissions', - conditions=dict(method=["GET"])) + '/api/users/{id}/permissions/inputs', + controller='users', + action='get_permissions', + conditions=dict(method=["GET"])) webapp.mapper.connect('set_permissions', - '/api/users/{id}/permissions/inputs', - controller='users', - action='set_permissions', - conditions=dict(method=["PUT"])) + '/api/users/{id}/permissions/inputs', + controller='users', + action='set_permissions', + conditions=dict(method=["PUT"])) webapp.mapper.connect('get_toolbox_filters', - '/api/users/{id}/toolbox_filters/inputs', - controller='users', - action='get_toolbox_filters', - conditions=dict(method=["GET"])) + '/api/users/{id}/toolbox_filters/inputs', + controller='users', + action='get_toolbox_filters', + conditions=dict(method=["GET"])) webapp.mapper.connect('set_toolbox_filters', - '/api/users/{id}/toolbox_filters/inputs', - controller='users', - action='set_toolbox_filters', - conditions=dict(method=["PUT"])) + '/api/users/{id}/toolbox_filters/inputs', + controller='users', + action='set_toolbox_filters', + conditions=dict(method=["PUT"])) webapp.mapper.connect('get_communication', - '/api/users/{id}/communication/inputs', - controller='users', - action='get_communication', - conditions=dict(method=["GET"])) + '/api/users/{id}/communication/inputs', + controller='users', + action='get_communication', + conditions=dict(method=["GET"])) webapp.mapper.connect('set_communication', - '/api/users/{id}/communication/inputs', - controller='users', - action='set_communication', - conditions=dict(method=["PUT"])) + '/api/users/{id}/communication/inputs', + controller='users', + action='set_communication', + conditions=dict(method=["PUT"])) webapp.mapper.connect('get_custom_builds', - '/api/users/{id}/custom_builds', - controller='users', - action='get_custom_builds', - conditions=dict(method=["GET"])) + '/api/users/{id}/custom_builds', + controller='users', + action='get_custom_builds', + conditions=dict(method=["GET"])) webapp.mapper.connect('add_custom_builds', - '/api/users/{id}/custom_builds/{key}', - controller='users', - action='add_custom_builds', - conditions=dict(method=["PUT"])) + '/api/users/{id}/custom_builds/{key}', + controller='users', + action='add_custom_builds', + conditions=dict(method=["PUT"])) webapp.mapper.connect('delete_custom_builds', - '/api/users/{id}/custom_builds/{key}', - controller='users', - action='delete_custom_builds', - conditions=dict(method=["DELETE"])) + '/api/users/{id}/custom_builds/{key}', + controller='users', + action='delete_custom_builds', + conditions=dict(method=["DELETE"])) # ======================== # ===== WEBHOOKS API ===== # ======================== webapp.mapper.connect('get_all', - '/api/webhooks', - controller='webhooks', - action='get_all', - conditions=dict(method=["GET"])) + '/api/webhooks', + controller='webhooks', + action='get_all', + conditions=dict(method=["GET"])) webapp.mapper.connect('get_random', - '/api/webhooks/{webhook_type}', - controller='webhooks', - action='get_random', - conditions=dict(method=["GET"])) + '/api/webhooks/{webhook_type}', + controller='webhooks', + action='get_random', + conditions=dict(method=["GET"])) webapp.mapper.connect('get_all_by_type', - '/api/webhooks/{webhook_type}/all', - controller='webhooks', - action='get_all_by_type', - conditions=dict(method=["GET"])) + '/api/webhooks/{webhook_type}/all', + controller='webhooks', + action='get_all_by_type', + conditions=dict(method=["GET"])) webapp.mapper.connect('get_data', - '/api/webhooks/{webhook_name}/get_data', - controller='webhooks', - action='get_data', - conditions=dict(method=["GET"])) + '/api/webhooks/{webhook_name}/get_data', + controller='webhooks', + action='get_data', + conditions=dict(method=["GET"])) # ======================= # ===== LIBRARY API ===== # ======================= webapp.mapper.connect('update_library', - '/api/libraries/{id}', - controller='libraries', - action='update', - conditions=dict(method=["PATCH", "PUT"])) + '/api/libraries/{id}', + controller='libraries', + action='update', + conditions=dict(method=["PATCH", "PUT"])) webapp.mapper.connect('show_library_permissions', - '/api/libraries/{encoded_library_id}/permissions', - controller='libraries', - action='get_permissions', - conditions=dict(method=["GET"])) + '/api/libraries/{encoded_library_id}/permissions', + controller='libraries', + action='get_permissions', + conditions=dict(method=["GET"])) webapp.mapper.connect('set_library_permissions', - '/api/libraries/{encoded_library_id}/permissions', - controller='libraries', - action='set_permissions', - conditions=dict(method=["POST"])) + '/api/libraries/{encoded_library_id}/permissions', + controller='libraries', + action='set_permissions', + conditions=dict(method=["POST"])) webapp.mapper.connect('show_ld_item', - '/api/libraries/datasets/{id}', - controller='lda_datasets', - action='show', - conditions=dict(method=["GET"])) + '/api/libraries/datasets/{id}', + controller='lda_datasets', + action='show', + conditions=dict(method=["GET"])) webapp.mapper.connect('load_ld', - '/api/libraries/datasets/', - controller='lda_datasets', - action='load', - conditions=dict(method=["POST"])) + '/api/libraries/datasets/', + controller='lda_datasets', + action='load', + conditions=dict(method=["POST"])) webapp.mapper.connect('show_version_of_ld_item', - '/api/libraries/datasets/{encoded_dataset_id}/versions/{encoded_ldda_id}', - controller='lda_datasets', - action='show_version', - conditions=dict(method=["GET"])) + '/api/libraries/datasets/{encoded_dataset_id}/versions/{encoded_ldda_id}', + controller='lda_datasets', + action='show_version', + conditions=dict(method=["GET"])) webapp.mapper.connect('show_legitimate_lda_roles', - '/api/libraries/datasets/{encoded_dataset_id}/permissions', - controller='lda_datasets', - action='show_roles', - conditions=dict(method=["GET"])) + '/api/libraries/datasets/{encoded_dataset_id}/permissions', + controller='lda_datasets', + action='show_roles', + conditions=dict(method=["GET"])) webapp.mapper.connect('update_lda_permissions', - '/api/libraries/datasets/{encoded_dataset_id}/permissions', - controller='lda_datasets', - action='update_permissions', - conditions=dict(method=["POST"])) + '/api/libraries/datasets/{encoded_dataset_id}/permissions', + controller='lda_datasets', + action='update_permissions', + conditions=dict(method=["POST"])) webapp.mapper.connect('delete_lda_item', - '/api/libraries/datasets/{encoded_dataset_id}', - controller='lda_datasets', - action='delete', - conditions=dict(method=["DELETE"])) + '/api/libraries/datasets/{encoded_dataset_id}', + controller='lda_datasets', + action='delete', + conditions=dict(method=["DELETE"])) webapp.mapper.connect('download_lda_items', - '/api/libraries/datasets/download/{format}', - controller='lda_datasets', - action='download', - conditions=dict(method=["POST", "GET"])) + '/api/libraries/datasets/download/{format}', + controller='lda_datasets', + action='download', + conditions=dict(method=["POST", "GET"])) webapp.mapper.resource_with_deleted('library', - 'libraries', - path_prefix='/api') + 'libraries', + path_prefix='/api') webapp.mapper.resource('content', - 'contents', - controller='library_contents', - name_prefix='library_', - path_prefix='/api/libraries/{library_id}', - parent_resources=dict(member_name='library', collection_name='libraries')) + 'contents', + controller='library_contents', + name_prefix='library_', + path_prefix='/api/libraries/{library_id}', + parent_resources=dict(member_name='library', collection_name='libraries')) _add_item_extended_metadata_controller(webapp, - name_prefix="library_dataset_", - path_prefix='/api/libraries/{library_id}/contents/{library_content_id}') + name_prefix="library_dataset_", + path_prefix='/api/libraries/{library_id}/contents/{library_content_id}') # ======================= # ===== FOLDERS API ===== # ======================= webapp.mapper.connect('add_history_datasets_to_library', - '/api/folders/{encoded_folder_id}/contents', - controller='folder_contents', - action='create', - conditions=dict(method=["POST"])) + '/api/folders/{encoded_folder_id}/contents', + controller='folder_contents', + action='create', + conditions=dict(method=["POST"])) webapp.mapper.connect('create_folder', - '/api/folders/{encoded_parent_folder_id}', - controller='folders', - action='create', - conditions=dict(method=["POST"])) + '/api/folders/{encoded_parent_folder_id}', + controller='folders', + action='create', + conditions=dict(method=["POST"])) webapp.mapper.connect('delete_folder', - '/api/folders/{encoded_folder_id}', - controller='folders', - action='delete', - conditions=dict(method=["DELETE"])) + '/api/folders/{encoded_folder_id}', + controller='folders', + action='delete', + conditions=dict(method=["DELETE"])) webapp.mapper.connect('update_folder', - '/api/folders/{encoded_folder_id}', - controller='folders', - action='update', - conditions=dict(method=["PATCH", "PUT"])) + '/api/folders/{encoded_folder_id}', + controller='folders', + action='update', + conditions=dict(method=["PATCH", "PUT"])) webapp.mapper.resource('folder', - 'folders', - path_prefix='/api') + 'folders', + path_prefix='/api') webapp.mapper.connect('show_folder_permissions', - '/api/folders/{encoded_folder_id}/permissions', - controller='folders', - action='get_permissions', - conditions=dict(method=["GET"])) + '/api/folders/{encoded_folder_id}/permissions', + controller='folders', + action='get_permissions', + conditions=dict(method=["GET"])) webapp.mapper.connect('set_folder_permissions', - '/api/folders/{encoded_folder_id}/permissions', - controller='folders', - action='set_permissions', - conditions=dict(method=["POST"])) + '/api/folders/{encoded_folder_id}/permissions', + controller='folders', + action='set_permissions', + conditions=dict(method=["POST"])) webapp.mapper.resource('content', - 'contents', - controller='folder_contents', - name_prefix='folder_', - path_prefix='/api/folders/{folder_id}', - parent_resources=dict(member_name='folder', collection_name='folders'), - conditions=dict(method=["GET"])) + 'contents', + controller='folder_contents', + name_prefix='folder_', + path_prefix='/api/folders/{folder_id}', + parent_resources=dict(member_name='folder', collection_name='folders'), + conditions=dict(method=["GET"])) webapp.mapper.resource('job', - 'jobs', - path_prefix='/api') + 'jobs', + path_prefix='/api') webapp.mapper.connect('job_search', '/api/jobs/search', controller='jobs', action='search', conditions=dict(method=['POST'])) webapp.mapper.connect('job_inputs', '/api/jobs/{id}/inputs', controller='jobs', action='inputs', conditions=dict(method=['GET'])) webapp.mapper.connect('job_outputs', '/api/jobs/{id}/outputs', controller='jobs', action='outputs', conditions=dict(method=['GET'])) @@ -770,15 +770,15 @@ def populate_api_routes(webapp, app): # Job files controllers. Only for consumption by remote job runners. webapp.mapper.resource('file', - 'files', - controller="job_files", - name_prefix="job_", - path_prefix='/api/jobs/{job_id}', - parent_resources=dict(member_name="job", collection_name="jobs")) + 'files', + controller="job_files", + name_prefix="job_", + path_prefix='/api/jobs/{job_id}', + parent_resources=dict(member_name="job", collection_name="jobs")) _add_item_extended_metadata_controller(webapp, - name_prefix="history_dataset_", - path_prefix='/api/histories/{history_id}/contents/{history_content_id}') + name_prefix="history_dataset_", + path_prefix='/api/histories/{history_id}/contents/{history_content_id}') # ==================== # ===== TOOLSHED ===== @@ -786,97 +786,97 @@ def populate_api_routes(webapp, app): # Handle displaying tool help images and README file images contained in repositories installed from the tool shed. webapp.add_route('/admin_toolshed/static/images/{repository_id}/{image_file:.+?}', - controller='admin_toolshed', - action='display_image_in_repository', - repository_id=None, - image_file=None) + controller='admin_toolshed', + action='display_image_in_repository', + repository_id=None, + image_file=None) webapp.mapper.connect('tool_shed_contents', - '/api/tool_shed/contents', - controller='toolshed', - action='show', - conditions=dict(method=["GET"])) + '/api/tool_shed/contents', + controller='toolshed', + action='show', + conditions=dict(method=["GET"])) webapp.mapper.connect('tool_shed_category_contents', - '/api/tool_shed/category', - controller='toolshed', - action='category', - conditions=dict(method=["GET"])) + '/api/tool_shed/category', + controller='toolshed', + action='category', + conditions=dict(method=["GET"])) webapp.mapper.connect('tool_shed_repository_details', - '/api/tool_shed/repository', - controller='toolshed', - action='repository', - conditions=dict(method=["GET"])) + '/api/tool_shed/repository', + controller='toolshed', + action='repository', + conditions=dict(method=["GET"])) webapp.mapper.connect('tool_sheds', - '/api/tool_shed', - controller='toolshed', - action='index', - conditions=dict(method=["GET"])) + '/api/tool_shed', + controller='toolshed', + action='index', + conditions=dict(method=["GET"])) webapp.mapper.connect('tool_shed_search', - '/api/tool_shed/search', - controller='toolshed', - action='search', - conditions=dict(method=["GET", "POST"])) + '/api/tool_shed/search', + controller='toolshed', + action='search', + conditions=dict(method=["GET", "POST"])) webapp.mapper.connect('tool_shed_status', - '/api/tool_shed/status', - controller='toolshed', - action='status', - conditions=dict(method=["GET", "POST"])) + '/api/tool_shed/status', + controller='toolshed', + action='status', + conditions=dict(method=["GET", "POST"])) webapp.mapper.connect('shed_tool_json', - '/api/tool_shed/tool_json', - controller='toolshed', - action='tool_json', - conditions=dict(method=["GET"])) + '/api/tool_shed/tool_json', + controller='toolshed', + action='tool_json', + conditions=dict(method=["GET"])) webapp.mapper.connect('tool_shed_repository', - '/api/tool_shed_repositories/:id/status', - controller='tool_shed_repositories', - action='status', - conditions=dict(method=["GET"])) + '/api/tool_shed_repositories/:id/status', + controller='tool_shed_repositories', + action='status', + conditions=dict(method=["GET"])) webapp.mapper.connect('install_repository', - '/api/tool_shed_repositories', - controller='tool_shed_repositories', - action='install_repository_revision', - conditions=dict(method=['POST'])) + '/api/tool_shed_repositories', + controller='tool_shed_repositories', + action='install_repository_revision', + conditions=dict(method=['POST'])) webapp.mapper.connect('install_repository', - '/api/tool_shed_repositories/install', - controller='tool_shed_repositories', - action='install', - conditions=dict(method=['POST'])) + '/api/tool_shed_repositories/install', + controller='tool_shed_repositories', + action='install', + conditions=dict(method=['POST'])) webapp.mapper.connect('tool_shed_repository', - '/api/tool_shed_repositories', - controller='tool_shed_repositories', - action='uninstall_repository', - conditions=dict(method=["DELETE"])) + '/api/tool_shed_repositories', + controller='tool_shed_repositories', + action='uninstall_repository', + conditions=dict(method=["DELETE"])) webapp.mapper.connect('tool_shed_repository', - '/api/tool_shed_repositories/{id}', - controller='tool_shed_repositories', - action='uninstall_repository', - conditions=dict(method=["DELETE"])) + '/api/tool_shed_repositories/{id}', + controller='tool_shed_repositories', + action='uninstall_repository', + conditions=dict(method=["DELETE"])) # Galaxy API for tool shed features. webapp.mapper.resource('tool_shed_repository', - 'tool_shed_repositories', - member={'repair_repository_revision': 'POST', - 'exported_workflows': 'GET', - 'import_workflow': 'POST', - 'import_workflows': 'POST'}, - collection={'get_latest_installable_revision': 'POST', - 'reset_metadata_on_installed_repositories': 'POST'}, - controller='tool_shed_repositories', - name_prefix='tool_shed_repository_', - path_prefix='/api', - new={'install_repository_revision': 'POST'}, - parent_resources=dict(member_name='tool_shed_repository', collection_name='tool_shed_repositories')) + 'tool_shed_repositories', + member={'repair_repository_revision': 'POST', + 'exported_workflows': 'GET', + 'import_workflow': 'POST', + 'import_workflows': 'POST'}, + collection={'get_latest_installable_revision': 'POST', + 'reset_metadata_on_installed_repositories': 'POST'}, + controller='tool_shed_repositories', + name_prefix='tool_shed_repository_', + path_prefix='/api', + new={'install_repository_revision': 'POST'}, + parent_resources=dict(member_name='tool_shed_repository', collection_name='tool_shed_repositories')) # ==== Trace/Metrics Logger # Connect logger from app @@ -889,7 +889,7 @@ def populate_api_routes(webapp, app): # webapp.mapper.connect( "show", "/api/metrics/{id}", # controller="metrics", action="show", conditions=dict( method=["GET"] ) ) webapp.mapper.connect("create", "/api/metrics", controller="metrics", - action="create", conditions=dict(method=["POST"])) + action="create", conditions=dict(method=["POST"])) def _add_item_tags_controller(webapp, name_prefix, path_prefix, **kwd): @@ -959,18 +959,18 @@ def wrap_in_middleware(app, global_conf, application_stack, **local_conf): if statsd_host: from galaxy.web.framework.middleware.statsd import StatsdMiddleware app = wrap_if_allowed(app, stack, StatsdMiddleware, - args=(statsd_host, - conf.get('statsd_port', 8125), - conf.get('statsd_prefix', 'galaxy'))) + args=(statsd_host, + conf.get('statsd_port', 8125), + conf.get('statsd_prefix', 'galaxy'))) log.debug("Enabling 'statsd' middleware") # graphite request timing and profiling graphite_host = conf.get('graphite_host', None) if graphite_host: from galaxy.web.framework.middleware.graphite import GraphiteMiddleware app = wrap_if_allowed(app, stack, GraphiteMiddleware, - args=(graphite_host, - conf.get('graphite_port', 2003), - conf.get('graphite_prefix', 'galaxy'))) + args=(graphite_host, + conf.get('graphite_port', 2003), + conf.get('graphite_prefix', 'galaxy'))) log.debug("Enabling 'graphite' middleware") # If we're using remote_user authentication, add middleware that # protects Galaxy from improperly configured authentication in the @@ -980,7 +980,7 @@ def wrap_in_middleware(app, global_conf, application_stack, **local_conf): if use_remote_user: from galaxy.web.framework.middleware.remoteuser import RemoteUser app = wrap_if_allowed(app, stack, RemoteUser, - kwargs=dict( + kwargs=dict( maildomain=conf.get('remote_user_maildomain', None), display_servers=util.listify(conf.get('display_servers', '')), single_user=single_user, @@ -1018,8 +1018,8 @@ def wrap_in_middleware(app, global_conf, application_stack, **local_conf): try: from weberror import evalexception app = wrap_if_allowed_or_fail(app, stack, evalexception.EvalException, - args=(conf,), - kwargs=dict(templating_formatters=build_template_error_formatters())) + args=(conf,), + kwargs=dict(templating_formatters=build_template_error_formatters())) except MiddlewareWrapUnsupported as exc: log.warning(str(exc)) import galaxy.web.framework.middleware.error diff --git a/lib/galaxy/webapps/galaxy/controllers/admin.py b/lib/galaxy/webapps/galaxy/controllers/admin.py index 3f5eee2deb3..e8c88a92dfd 100644 --- a/lib/galaxy/webapps/galaxy/controllers/admin.py +++ b/lib/galaxy/webapps/galaxy/controllers/admin.py @@ -91,17 +91,17 @@ class UserListGrid(grids.Grid): default_sort_key = "email" columns = [ EmailColumn("Email", - key="email", - model_class=model.User, - link=(lambda item: dict(controller="user", action="information", id=item.id, webapp="galaxy")), - attach_popup=True, - filterable="advanced", - target="top"), + key="email", + model_class=model.User, + link=(lambda item: dict(controller="user", action="information", id=item.id, webapp="galaxy")), + attach_popup=True, + filterable="advanced", + target="top"), UserNameColumn("User Name", - key="username", - model_class=model.User, - attach_popup=False, - filterable="advanced"), + key="username", + model_class=model.User, + attach_popup=False, + filterable="advanced"), GroupsColumn("Groups", attach_popup=False), RolesColumn("Roles", attach_popup=False), ExternalColumn("External", attach_popup=False), @@ -113,26 +113,26 @@ class UserListGrid(grids.Grid): grids.DeletedColumn("Deleted", key="deleted", visible=False, filterable="advanced") ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) global_actions = [ grids.GridAction("Create new user", url_args=dict(webapp="galaxy", action="create_new_user")) ] operations = [ grids.GridOperation("Manage Roles and Groups", - condition=(lambda item: not item.deleted), - allow_multiple=False, - url_args=dict(action="forms/manage_roles_and_groups_for_user")), + condition=(lambda item: not item.deleted), + allow_multiple=False, + url_args=dict(action="forms/manage_roles_and_groups_for_user")), grids.GridOperation("Reset Password", - condition=(lambda item: not item.deleted), - allow_multiple=True, - url_args=dict(action="forms/reset_user_password"), - target="top"), + condition=(lambda item: not item.deleted), + allow_multiple=True, + url_args=dict(action="forms/reset_user_password"), + target="top"), grids.GridOperation("Recalculate Disk Usage", - condition=(lambda item: not item.deleted), - allow_multiple=False) + condition=(lambda item: not item.deleted), + allow_multiple=False) ] standard_filters = [ grids.GridColumnFilter("Active", args=dict(deleted=False)), @@ -188,22 +188,22 @@ class RoleListGrid(grids.Grid): default_sort_key = "name" columns = [ NameColumn("Name", - key="name", - link=(lambda item: dict(action="forms/manage_users_and_groups_for_role", id=item.id, webapp="galaxy")), - model_class=model.Role, - attach_popup=True, - filterable="advanced", - target="top"), + key="name", + link=(lambda item: dict(action="forms/manage_users_and_groups_for_role", id=item.id, webapp="galaxy")), + model_class=model.Role, + attach_popup=True, + filterable="advanced", + target="top"), DescriptionColumn("Description", - key='description', - model_class=model.Role, - attach_popup=False, - filterable="advanced"), + key='description', + model_class=model.Role, + attach_popup=False, + filterable="advanced"), TypeColumn("Type", - key='type', - model_class=model.Role, - attach_popup=False, - filterable="advanced"), + key='type', + model_class=model.Role, + attach_popup=False, + filterable="advanced"), GroupsColumn("Groups", attach_popup=False), UsersColumn("Users", attach_popup=False), StatusColumn("Status", attach_popup=False), @@ -211,26 +211,26 @@ class RoleListGrid(grids.Grid): grids.DeletedColumn("Deleted", key="deleted", visible=False, filterable="advanced") ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0], columns[1], columns[2]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1], columns[2]], + key="free-text-search", + visible=False, + filterable="standard")) global_actions = [ grids.GridAction("Add new role", url_args=dict(action="forms/create_role")) ] operations = [grids.GridOperation("Edit", - condition=(lambda item: not item.deleted), - allow_multiple=False, - url_args=dict(action="forms/rename_role")), - grids.GridOperation("Delete", - condition=(lambda item: not item.deleted), - allow_multiple=True), - grids.GridOperation("Undelete", - condition=(lambda item: item.deleted), - allow_multiple=True), - grids.GridOperation("Purge", - condition=(lambda item: item.deleted), - allow_multiple=True)] + condition=(lambda item: not item.deleted), + allow_multiple=False, + url_args=dict(action="forms/rename_role")), + grids.GridOperation("Delete", + condition=(lambda item: not item.deleted), + allow_multiple=True), + grids.GridOperation("Undelete", + condition=(lambda item: item.deleted), + allow_multiple=True), + grids.GridOperation("Purge", + condition=(lambda item: item.deleted), + allow_multiple=True)] standard_filters = [ grids.GridColumnFilter("Active", args=dict(deleted=False)), grids.GridColumnFilter("Deleted", args=dict(deleted=True)), @@ -274,11 +274,11 @@ class GroupListGrid(grids.Grid): default_sort_key = "name" columns = [ NameColumn("Name", - key="name", - link=(lambda item: dict(action="forms/manage_users_and_roles_for_group", id=item.id, webapp="galaxy")), - model_class=model.Group, - attach_popup=True, - filterable="advanced"), + key="name", + link=(lambda item: dict(action="forms/manage_users_and_roles_for_group", id=item.id, webapp="galaxy")), + model_class=model.Group, + attach_popup=True, + filterable="advanced"), UsersColumn("Users", attach_popup=False), RolesColumn("Roles", attach_popup=False), StatusColumn("Status", attach_popup=False), @@ -286,26 +286,26 @@ class GroupListGrid(grids.Grid): grids.DeletedColumn("Deleted", key="deleted", visible=False, filterable="advanced") ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) global_actions = [ grids.GridAction("Add new group", url_args=dict(action="forms/create_group")) ] operations = [grids.GridOperation("Rename", - condition=(lambda item: not item.deleted), - allow_multiple=False, - url_args=dict(action="forms/rename_group")), - grids.GridOperation("Delete", - condition=(lambda item: not item.deleted), - allow_multiple=True), - grids.GridOperation("Undelete", - condition=(lambda item: item.deleted), - allow_multiple=True), - grids.GridOperation("Purge", - condition=(lambda item: item.deleted), - allow_multiple=True)] + condition=(lambda item: not item.deleted), + allow_multiple=False, + url_args=dict(action="forms/rename_group")), + grids.GridOperation("Delete", + condition=(lambda item: not item.deleted), + allow_multiple=True), + grids.GridOperation("Undelete", + condition=(lambda item: item.deleted), + allow_multiple=True), + grids.GridOperation("Purge", + condition=(lambda item: item.deleted), + allow_multiple=True)] standard_filters = [ grids.GridColumnFilter("Active", args=dict(deleted=False)), grids.GridColumnFilter("Deleted", args=dict(deleted=True)), @@ -358,20 +358,20 @@ class QuotaListGrid(grids.Grid): default_sort_key = "name" columns = [ NameColumn("Name", - key="name", - link=(lambda item: dict(action="forms/edit_quota", id=item.id)), - model_class=model.Quota, - attach_popup=True, - filterable="advanced"), + key="name", + link=(lambda item: dict(action="forms/edit_quota", id=item.id)), + model_class=model.Quota, + attach_popup=True, + filterable="advanced"), DescriptionColumn("Description", - key='description', - model_class=model.Quota, - attach_popup=False, - filterable="advanced"), + key='description', + model_class=model.Quota, + attach_popup=False, + filterable="advanced"), AmountColumn("Amount", - key='amount', - model_class=model.Quota, - attach_popup=False), + key='amount', + model_class=model.Quota, + attach_popup=False), UsersColumn("Users", attach_popup=False), GroupsColumn("Groups", attach_popup=False), StatusColumn("Status", attach_popup=False), @@ -379,45 +379,45 @@ class QuotaListGrid(grids.Grid): grids.DeletedColumn("Deleted", key="deleted", visible=False, filterable="advanced") ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) global_actions = [ grids.GridAction("Add new quota", dict(action='forms/create_quota')) ] operations = [grids.GridOperation("Rename", - condition=(lambda item: not item.deleted), - allow_multiple=False, - url_args=dict(action="forms/rename_quota")), - grids.GridOperation("Change amount", - condition=(lambda item: not item.deleted), - allow_multiple=False, - url_args=dict(action="forms/edit_quota")), - grids.GridOperation("Manage users and groups", - condition=(lambda item: not item.default and not item.deleted), - allow_multiple=False, - url_args=dict(action="forms/manage_users_and_groups_for_quota")), - grids.GridOperation("Set as different type of default", - condition=(lambda item: item.default), - allow_multiple=False, - url_args=dict(action="forms/set_quota_default")), - grids.GridOperation("Set as default", - condition=(lambda item: not item.default and not item.deleted), - allow_multiple=False, - url_args=dict(action="forms/set_quota_default")), - grids.GridOperation("Unset as default", - condition=(lambda item: item.default and not item.deleted), - allow_multiple=False), - grids.GridOperation("Delete", - condition=(lambda item: not item.deleted and not item.default), - allow_multiple=True), - grids.GridOperation("Undelete", - condition=(lambda item: item.deleted), - allow_multiple=True), - grids.GridOperation("Purge", - condition=(lambda item: item.deleted), - allow_multiple=True)] + condition=(lambda item: not item.deleted), + allow_multiple=False, + url_args=dict(action="forms/rename_quota")), + grids.GridOperation("Change amount", + condition=(lambda item: not item.deleted), + allow_multiple=False, + url_args=dict(action="forms/edit_quota")), + grids.GridOperation("Manage users and groups", + condition=(lambda item: not item.default and not item.deleted), + allow_multiple=False, + url_args=dict(action="forms/manage_users_and_groups_for_quota")), + grids.GridOperation("Set as different type of default", + condition=(lambda item: item.default), + allow_multiple=False, + url_args=dict(action="forms/set_quota_default")), + grids.GridOperation("Set as default", + condition=(lambda item: not item.default and not item.deleted), + allow_multiple=False, + url_args=dict(action="forms/set_quota_default")), + grids.GridOperation("Unset as default", + condition=(lambda item: item.default and not item.deleted), + allow_multiple=False), + grids.GridOperation("Delete", + condition=(lambda item: not item.deleted and not item.default), + allow_multiple=True), + grids.GridOperation("Undelete", + condition=(lambda item: item.deleted), + allow_multiple=True), + grids.GridOperation("Purge", + condition=(lambda item: item.deleted), + allow_multiple=True)] standard_filters = [ grids.GridColumnFilter("Active", args=dict(deleted=False)), grids.GridColumnFilter("Deleted", args=dict(deleted=True)), @@ -462,15 +462,15 @@ class ToolVersionListGrid(grids.Grid): default_sort_key = "tool_id" columns = [ ToolIdColumn("Tool id", - key='tool_id', - attach_popup=False), + key='tool_id', + attach_popup=False), ToolVersionsColumn("Version lineage by tool id (parent/child ordered)") ] columns.append(grids.MulticolFilterColumn("Search tool id", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) global_actions = [] operations = [] standard_filters = [] @@ -590,7 +590,7 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP for typ in trans.app.model.DefaultQuotaAssociation.types.__dict__.values(): default_options.append(('Yes, ' + typ, typ)) return {'title' : 'Create Quota', - 'inputs' : [{ + 'inputs' : [{ 'name' : 'name', 'label' : 'Name' }, { @@ -670,11 +670,11 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP in_groups.append(trans.security.encode_id(group.id)) all_groups.append((group.name, trans.security.encode_id(group.id))) return {'title' : 'Quota \'%s\'' % quota.name, - 'message': 'Quota \'%s\' is currently associated with %d user(s) and %d group(s).' % - (quota.name, len(in_users), len(in_groups)), - 'status' : 'info', - 'inputs' : [build_select_input('in_groups', 'Groups', all_groups, in_groups), - build_select_input('in_users', 'Users', all_users, in_users)]} + 'message': 'Quota \'%s\' is currently associated with %d user(s) and %d group(s).' % + (quota.name, len(in_users), len(in_groups)), + 'status' : 'info', + 'inputs' : [build_select_input('in_groups', 'Groups', all_groups, in_groups), + build_select_input('in_users', 'Users', all_users, in_users)]} else: try: return {'message': self._manage_users_and_groups_for_quota(quota, util.Params(payload), decode_id=trans.security.decode_id)} @@ -816,9 +816,9 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP open_file_obj.close() migration_stages_dict[migration_stage] = (migration_info, repo_name_dependency_tups) return trans.fill_template('admin/review_tool_migration_stages.mako', - migration_stages_dict=migration_stages_dict, - message=message, - status=status) + migration_stages_dict=migration_stages_dict, + message=message, + status=status) @web.expose @web.require_admin @@ -854,10 +854,10 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP reloaded, failed = trans.app.datatypes_registry.reload_display_applications(kwd.get('id')) if not reloaded and failed: return trans.show_error_message('Unable to reload any of the %i requested display applications ("%s").' - % (len(failed), '", "'.join(failed))) + % (len(failed), '", "'.join(failed))) if failed: return trans.show_warn_message('Reloaded %i display applications ("%s"), but failed to reload %i display applications ("%s").' - % (len(reloaded), '", "'.join(reloaded), len(failed), '", "'.join(failed))) + % (len(reloaded), '", "'.join(reloaded), len(failed), '", "'.join(failed))) if not reloaded: return trans.show_warn_message('You need to request at least one display application to reload.') return trans.show_ok_message('Reloaded %i requested display applications ("%s").' % (len(reloaded), '", "'.join(reloaded))) @@ -870,10 +870,10 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP is_repo_installed = trans.install_model.context.query(trans.install_model.ToolShedRepository).first() is not None installing_repository_ids = repository_util.get_ids_of_tool_shed_repositories_being_installed(trans.app, as_string=True) return trans.fill_template('/webapps/galaxy/admin/center.mako', - is_repo_installed=is_repo_installed, - installing_repository_ids=installing_repository_ids, - message=message, - status=status) + is_repo_installed=is_repo_installed, + installing_repository_ids=installing_repository_ids, + message=message, + status=status) @web.expose @web.require_admin @@ -894,10 +894,10 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP return download_file except Exception: return trans.fill_template('/admin/package_tool.mako', - tool_id=tool_id, - toolbox=toolbox, - message=message, - status='error') + tool_id=tool_id, + toolbox=toolbox, + message=message, + status='error') @web.expose @web.require_admin @@ -912,10 +912,10 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP galaxy.queue_worker.send_control_task(trans.app, 'reload_tool', noop_self=True, kwargs={'tool_id': tool_id}) message, status = trans.app.toolbox.reload_tool_by_id(tool_id) return trans.fill_template('/admin/reload_tool.mako', - tool_id=tool_id, - toolbox=toolbox, - message=message, - status=status) + tool_id=tool_id, + toolbox=toolbox, + message=message, + status=status) @web.expose_api @web.require_admin @@ -1082,11 +1082,11 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP in_groups.append(trans.security.encode_id(group.id)) all_groups.append((group.name, trans.security.encode_id(group.id))) return {'title' : 'Role \'%s\'' % role.name, - 'message': 'Role \'%s\' is currently associated with %d user(s) and %d group(s).' % - (role.name, len(in_users), len(in_groups)), - 'status' : 'info', - 'inputs' : [build_select_input('in_groups', 'Groups', all_groups, in_groups), - build_select_input('in_users', 'Users', all_users, in_users)]} + 'message': 'Role \'%s\' is currently associated with %d user(s) and %d group(s).' % + (role.name, len(in_users), len(in_groups)), + 'status' : 'info', + 'inputs' : [build_select_input('in_groups', 'Groups', all_groups, in_groups), + build_select_input('in_users', 'Users', all_users, in_users)]} else: in_users = [trans.sa_session.query(trans.app.model.User).get(trans.security.decode_id(x)) for x in util.listify(payload.get('in_users'))] in_groups = [trans.sa_session.query(trans.app.model.Group).get(trans.security.decode_id(x)) for x in util.listify(payload.get('in_groups'))] @@ -1249,11 +1249,11 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP in_roles.append(trans.security.encode_id(role.id)) all_roles.append((role.name, trans.security.encode_id(role.id))) return {'title' : 'Group \'%s\'' % group.name, - 'message': 'Group \'%s\' is currently associated with %d user(s) and %d role(s).' % - (group.name, len(in_users), len(in_roles)), - 'status' : 'info', - 'inputs' : [build_select_input('in_roles', 'Roles', all_roles, in_roles), - build_select_input('in_users', 'Users', all_users, in_users)]} + 'message': 'Group \'%s\' is currently associated with %d user(s) and %d role(s).' % + (group.name, len(in_users), len(in_roles)), + 'status' : 'info', + 'inputs' : [build_select_input('in_roles', 'Roles', all_roles, in_roles), + build_select_input('in_users', 'Users', all_users, in_users)]} return {'message' : 'Not showing associated datasets, there are too many.', 'info' : 'info'} else: in_users = [trans.sa_session.query(trans.app.model.User).get(trans.security.decode_id(x)) for x in util.listify(payload.get('in_users'))] @@ -1377,8 +1377,8 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP @web.require_admin def create_new_user(self, trans, **kwd): return trans.response.send_redirect(web.url_for(controller='user', - action='create', - cntrller='admin')) + action='create', + cntrller='admin')) @web.expose_api @web.require_admin @@ -1518,7 +1518,7 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP in_groups = [] all_groups = [] for role in trans.sa_session.query(trans.app.model.Role).filter(trans.app.model.Role.table.c.deleted == false()) \ - .order_by(trans.app.model.Role.table.c.name): + .order_by(trans.app.model.Role.table.c.name): if role in [x.role for x in user.roles]: in_roles.append(trans.security.encode_id(role.id)) if role.type != trans.app.model.Role.types.PRIVATE: @@ -1528,16 +1528,16 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP # precaution, since for a period of time we were including private roles in the form fields. all_roles.append((role.name, trans.security.encode_id(role.id))) for group in trans.sa_session.query(trans.app.model.Group).filter(trans.app.model.Group.table.c.deleted == false()) \ - .order_by(trans.app.model.Group.table.c.name): + .order_by(trans.app.model.Group.table.c.name): if group in [x.group for x in user.groups]: in_groups.append(trans.security.encode_id(group.id)) all_groups.append((group.name, trans.security.encode_id(group.id))) return {'title' : 'Roles and groups for \'%s\'' % user.email, - 'message': 'User \'%s\' is currently associated with %d role(s) and is a member of %d group(s).' % - (user.email, len(in_roles) - 1, len(in_groups)), - 'status' : 'info', - 'inputs' : [build_select_input('in_roles', 'Roles', all_roles, in_roles), - build_select_input('in_groups', 'Groups', all_groups, in_groups)]} + 'message': 'User \'%s\' is currently associated with %d role(s) and is a member of %d group(s).' % + (user.email, len(in_roles) - 1, len(in_groups)), + 'status' : 'info', + 'inputs' : [build_select_input('in_roles', 'Roles', all_roles, in_roles), + build_select_input('in_groups', 'Groups', all_groups, in_groups)]} else: in_roles = [trans.sa_session.query(trans.app.model.Role).get(trans.security.decode_id(x)) for x in util.listify(payload.get('in_roles'))] in_groups = [trans.sa_session.query(trans.app.model.Group).get(trans.security.decode_id(x)) for x in util.listify(payload.get('in_groups'))] @@ -1599,15 +1599,15 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP cutoff_time = datetime.utcnow() - timedelta(seconds=int(cutoff)) jobs = trans.sa_session.query(trans.app.model.Job) \ .filter(and_(trans.app.model.Job.table.c.update_time < cutoff_time, - or_(trans.app.model.Job.state == trans.app.model.Job.states.NEW, - trans.app.model.Job.state == trans.app.model.Job.states.QUEUED, - trans.app.model.Job.state == trans.app.model.Job.states.RUNNING, - trans.app.model.Job.state == trans.app.model.Job.states.UPLOAD))) \ + or_(trans.app.model.Job.state == trans.app.model.Job.states.NEW, + trans.app.model.Job.state == trans.app.model.Job.states.QUEUED, + trans.app.model.Job.state == trans.app.model.Job.states.RUNNING, + trans.app.model.Job.state == trans.app.model.Job.states.UPLOAD))) \ .order_by(trans.app.model.Job.table.c.update_time.desc()).all() recent_jobs = trans.sa_session.query(trans.app.model.Job) \ .filter(and_(trans.app.model.Job.table.c.update_time > cutoff_time, - or_(trans.app.model.Job.state == trans.app.model.Job.states.ERROR, - trans.app.model.Job.state == trans.app.model.Job.states.OK))) \ + or_(trans.app.model.Job.state == trans.app.model.Job.states.ERROR, + trans.app.model.Job.state == trans.app.model.Job.states.OK))) \ .order_by(trans.app.model.Job.table.c.update_time.desc()).all() last_updated = {} for job in jobs: @@ -1628,14 +1628,14 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP else: finished[job.id] = '%s minutes' % int(delta.seconds / 60) return trans.fill_template('/admin/jobs.mako', - jobs=jobs, - recent_jobs=recent_jobs, - last_updated=last_updated, - finished=finished, - cutoff=cutoff, - msg=msg, - status=status, - job_lock=job_lock) + jobs=jobs, + recent_jobs=recent_jobs, + last_updated=last_updated, + finished=finished, + cutoff=cutoff, + msg=msg, + status=status, + job_lock=job_lock) @web.expose @web.require_admin @@ -1644,19 +1644,19 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP if jobid is not None: job = trans.sa_session.query(trans.app.model.Job).get(jobid) return trans.fill_template('/webapps/reports/job_info.mako', - job=job, - message="Back") + job=job, + message="Back") @web.expose @web.require_admin def manage_tool_dependencies(self, - trans, - install_dependencies=False, - uninstall_dependencies=False, - remove_unused_dependencies=False, - selected_tool_ids=None, - selected_environments_to_uninstall=None, - viewkey='View tool-centric dependencies'): + trans, + install_dependencies=False, + uninstall_dependencies=False, + remove_unused_dependencies=False, + selected_tool_ids=None, + selected_environments_to_uninstall=None, + viewkey='View tool-centric dependencies'): if not selected_tool_ids: selected_tool_ids = [] if not selected_environments_to_uninstall: @@ -1677,11 +1677,11 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP selected_environments_to_uninstall = [selected_environments_to_uninstall] view.remove_unused_dependency_paths(selected_environments_to_uninstall) return trans.fill_template('/webapps/galaxy/admin/manage_dependencies.mako', - tools=tools_by_id, - requirements_status=view.toolbox_requirements_status, - tool_ids_by_requirements=view.tool_ids_by_requirements, - unused_environments=view.unused_dependency_paths, - viewkey=viewkey) + tools=tools_by_id, + requirements_status=view.toolbox_requirements_status, + tool_ids_by_requirements=view.tool_ids_by_requirements, + unused_environments=view.unused_dependency_paths, + viewkey=viewkey) @web.expose @web.require_admin @@ -1698,21 +1698,21 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP galaxy.queue_worker.send_control_task(trans.app, 'reload_sanitize_whitelist', noop_self=True) # dispatch a message to reload list for other processes return trans.fill_template('/webapps/galaxy/admin/sanitize_whitelist.mako', - sanitize_all=trans.app.config.sanitize_all_html, - tools=trans.app.toolbox.tools_by_id) + sanitize_all=trans.app.config.sanitize_all_html, + tools=trans.app.toolbox.tools_by_id) # ---- Utility methods ------------------------------------------------------- def build_select_input(name, label, options, value): return {'type' : 'select', - 'multiple' : True, - 'optional' : True, - 'individual': True, - 'name' : name, - 'label' : label, - 'options' : options, - 'value' : value} + 'multiple' : True, + 'optional' : True, + 'individual': True, + 'name' : name, + 'label' : label, + 'options' : options, + 'value' : value} def message_exception(trans, message): diff --git a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py index 61aedd5e1f3..da480667da7 100644 --- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py +++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py @@ -55,16 +55,16 @@ class AdminToolshed(AdminGalaxy): % (error_message, web.url_for(controller='admin_toolshed', action='deactivate_or_uninstall_repository', id=trans.security.encode_id(repository.id))) status = 'error' return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_repository', - id=repository_id, - message=message, - status=status)) + action='manage_repository', + id=repository_id, + message=message, + status=status)) message = 'The %s repository has been activated.' % escape(repository.name) status = 'done' return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_repositories', - message=message, - status=status)) + action='browse_repositories', + message=message, + status=status)) @web.expose @web.require_admin @@ -73,9 +73,9 @@ class AdminToolshed(AdminGalaxy): status = kwd.get('status', 'done') repository = repository_util.get_installed_tool_shed_repository(trans.app, kwd['id']) return trans.fill_template('/admin/tool_shed_repository/browse_repository.mako', - repository=repository, - message=message, - status=status) + repository=repository, + message=message, + status=status) @web.expose @web.require_admin @@ -84,25 +84,25 @@ class AdminToolshed(AdminGalaxy): operation = kwd.pop('operation').lower() if operation == "manage_repository": return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_repository', - **kwd)) + action='manage_repository', + **kwd)) if operation == "get updates": return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='check_for_updates', - **kwd)) + action='check_for_updates', + **kwd)) if operation == "update tool shed status": return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='update_tool_shed_status_for_installed_repository', - **kwd)) + action='update_tool_shed_status_for_installed_repository', + **kwd)) if operation == "reset to install": kwd['reset_repository'] = True return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='reset_to_install', - **kwd)) + action='reset_to_install', + **kwd)) if operation == "purge": return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='purge_repository', - **kwd)) + action='purge_repository', + **kwd)) if operation == "activate or reinstall": repository = repository_util.get_installed_tool_shed_repository(trans.app, kwd['id']) if repository.uninstalled: @@ -119,44 +119,44 @@ class AdminToolshed(AdminGalaxy): if current_ctx_rev == repository.ctx_rev: # The uninstalled repository is current. return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='reselect_tool_panel_section', - **kwd)) + action='reselect_tool_panel_section', + **kwd)) else: # The uninstalled repository has updates available in the tool shed. updated_repo_info_dict = \ self.get_updated_repository_information(trans=trans, - repository_id=trans.security.encode_id(repository.id), - repository_name=repository.name, - repository_owner=repository.owner, - changeset_revision=current_changeset_revision) + repository_id=trans.security.encode_id(repository.id), + repository_name=repository.name, + repository_owner=repository.owner, + changeset_revision=current_changeset_revision) json_repo_info_dict = json.dumps(updated_repo_info_dict) encoded_repo_info_dict = encoding_util.tool_shed_encode(json_repo_info_dict) kwd['latest_changeset_revision'] = current_changeset_revision kwd['latest_ctx_rev'] = current_ctx_rev kwd['updated_repo_info_dict'] = encoded_repo_info_dict return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='reselect_tool_panel_section', - **kwd)) + action='reselect_tool_panel_section', + **kwd)) else: message = "Unable to get latest revision for repository %s from " % escape(str(repository.name)) message += "the Tool Shed, so repository re-installation is not possible at this time." status = "error" return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_repositories', - message=message, - status=status)) + action='browse_repositories', + message=message, + status=status)) else: return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='activate_repository', - **kwd)) + action='activate_repository', + **kwd)) if operation == "deactivate or uninstall": return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='deactivate_or_uninstall_repository', - **kwd)) + action='deactivate_or_uninstall_repository', + **kwd)) if operation == "install latest revision": return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='install_latest_repository_revision', - **kwd)) + action='install_latest_repository_revision', + **kwd)) if operation == 'install': # The user is attempting to install a white ghost. kwd['status'] = 'error' @@ -177,10 +177,10 @@ class AdminToolshed(AdminGalaxy): status = "error" repository = tool_dependency.tool_shed_repository return trans.fill_template('/admin/tool_shed_repository/browse_tool_dependency.mako', - repository=repository, - tool_dependency=tool_dependency, - message=message, - status=status) + repository=repository, + tool_dependency=tool_dependency, + message=message, + status=status) @web.expose @web.require_admin @@ -198,7 +198,7 @@ class AdminToolshed(AdminGalaxy): 'jscript': "admin.toolshed" } return trans.fill_template('galaxy.panels.mako', - config={ + config={ 'title': 'Galaxy Tool Sheds', 'app': app}) @@ -207,8 +207,8 @@ class AdminToolshed(AdminGalaxy): def browse_tool_sheds(self, trans, **kwd): message = escape(kwd.get('message', '')) return trans.fill_template('/webapps/galaxy/admin/tool_sheds.mako', - message=message, - status='error') + message=message, + status='error') @web.expose @web.require_admin @@ -218,9 +218,9 @@ class AdminToolshed(AdminGalaxy): repository = repository_util.get_installed_tool_shed_repository(trans.app, repository_id) tool_shed_url = common_util.get_tool_shed_url_from_tool_shed_registry(trans.app, str(repository.tool_shed)) params = dict(galaxy_url=web.url_for('/', qualified=True), - name=str(repository.name), - owner=str(repository.owner), - changeset_revision=str(repository.changeset_revision)) + name=str(repository.name), + owner=str(repository.owner), + changeset_revision=str(repository.changeset_revision)) pathspec = ['repository', 'check_for_updates'] url = util.build_url(tool_shed_url, pathspec=pathspec, params=params) return trans.response.send_redirect(url) @@ -262,15 +262,15 @@ class AdminToolshed(AdminGalaxy): status = statuses[status] if kwd.get('deactivate_or_uninstall_repository_button', False): return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_repositories', - message=message, - status=status)) + action='browse_repositories', + message=message, + status=status)) remove_from_disk_check_box = CheckboxField('remove_from_disk', checked=remove_from_disk_checked) return trans.fill_template('/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako', - repository=tool_shed_repositories, - remove_from_disk_check_box=remove_from_disk_check_box, - message=message, - status=status) + repository=tool_shed_repositories, + remove_from_disk_check_box=remove_from_disk_check_box, + message=message, + status=status) @web.expose def display_image_in_repository(self, trans, **kwd): @@ -379,8 +379,8 @@ class AdminToolshed(AdminGalaxy): (str(tool_shed_url), str(repository_name), str(repository_owner), str(changeset_revision)) raise Exception(message) params = dict(name=str(repository_name), - owner=str(repository_owner), - changeset_revision=changeset_revision) + owner=str(repository_owner), + changeset_revision=changeset_revision) pathspec = ['repository', 'get_updated_repository_information'] raw_text = util.url_get(tool_shed_url, password_mgr=self.app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) repo_information_dict = json.loads(raw_text) @@ -410,11 +410,11 @@ class AdminToolshed(AdminGalaxy): message = 'The value of workflow_name is required, but was not received.' status = 'error' return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='view_workflow', - workflow_name=workflow_name, - repository_id=repository_id, - message=message, - status=status)) + action='view_workflow', + workflow_name=workflow_name, + repository_id=repository_id, + message=message, + status=status)) @web.expose @web.require_admin @@ -433,12 +433,12 @@ class AdminToolshed(AdminGalaxy): tool_shed_repository = tool_dependencies[0].tool_shed_repository # Get the tool_dependencies.xml file from the repository. tool_dependencies_config = hg_util.get_config_from_disk(rt_util.TOOL_DEPENDENCY_DEFINITION_FILENAME, - tool_shed_repository.repo_path(trans.app)) + tool_shed_repository.repo_path(trans.app)) itdm = install_manager.InstallToolDependencyManager(trans.app) installed_tool_dependencies = itdm.install_specified_tool_dependencies(tool_shed_repository=tool_shed_repository, - tool_dependencies_config=tool_dependencies_config, - tool_dependencies=tool_dependencies, - from_tool_migration_manager=False) + tool_dependencies_config=tool_dependencies_config, + tool_dependencies=tool_dependencies, + from_tool_migration_manager=False) for installed_tool_dependency in installed_tool_dependencies: if installed_tool_dependency.status == trans.app.install_model.ToolDependency.installation_status.ERROR: text = util.unicodify(installed_tool_dependency.error_message) @@ -450,10 +450,10 @@ class AdminToolshed(AdminGalaxy): message += "Installed tool dependencies: %s" % ', '.join(td.name for td in installed_tool_dependencies) td_ids = [trans.security.encode_id(td.id) for td in tool_shed_repository.tool_dependencies] return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_tool_dependencies', - tool_dependency_ids=td_ids, - message=message, - status=status)) + action='manage_tool_dependencies', + tool_dependency_ids=td_ids, + message=message, + status=status)) @web.expose @web.require_admin @@ -469,8 +469,8 @@ class AdminToolshed(AdminGalaxy): name = str(repository.name) owner = str(repository.owner) params = dict(galaxy_url=web.url_for('/', qualified=True), - name=name, - owner=owner) + name=name, + owner=owner) pathspec = ['repository', 'get_latest_downloadable_changeset_revision'] raw_text = util.url_get(tool_shed_url, password_mgr=self.app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) url = util.build_url(tool_shed_url, pathspec=pathspec, params=params) @@ -498,9 +498,9 @@ class AdminToolshed(AdminGalaxy): else: # Install the latest downloadable revision of the repository. params = dict(name=name, - owner=owner, - changeset_revisions=str(latest_downloadable_revision), - galaxy_url=web.url_for('/', qualified=True)) + owner=owner, + changeset_revisions=str(latest_downloadable_revision), + galaxy_url=web.url_for('/', qualified=True)) pathspec = ['repository', 'install_repositories_by_revision'] url = util.build_url(tool_shed_url, pathspec=pathspec, params=params) return trans.response.send_redirect(url) @@ -511,9 +511,9 @@ class AdminToolshed(AdminGalaxy): message = 'The request parameters did not include the required encoded id of installed repository.' status = 'error' return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_repositories', - message=message, - status=status)) + action='browse_repositories', + message=message, + status=status)) @web.expose @web.require_admin @@ -548,14 +548,14 @@ class AdminToolshed(AdminGalaxy): else: updated_metadata = None repository = trans.app.update_repository_manager.update_repository_record(repository=repository, - updated_metadata_dict=updated_metadata, - updated_changeset_revision=updating_to_changeset_revision, - updated_ctx_rev=updating_to_ctx_rev) + updated_metadata_dict=updated_metadata, + updated_changeset_revision=updating_to_changeset_revision, + updated_ctx_rev=updating_to_ctx_rev) if tool_dependencies_dict: tool_dependencies = tool_dependency_util.create_tool_dependency_objects(trans.app, - repository, - relative_install_dir, - set_status=False) + repository, + relative_install_dir, + set_status=False) message = "The installed repository named '%s' has been updated to change set revision '%s'. " % \ (escape(str(repository.name)), updating_to_changeset_revision) self.initiate_tool_dependency_installation(trans, tool_dependencies, message=message, status=status) @@ -570,25 +570,25 @@ class AdminToolshed(AdminGalaxy): else: install_tool_dependencies_check_box_checked = True install_tool_dependencies_check_box = CheckboxField('install_tool_dependencies', - checked=install_tool_dependencies_check_box_checked) + checked=install_tool_dependencies_check_box_checked) view = views.DependencyResolversView(self.app) if view.installable_resolvers: install_resolver_dependencies_check_box = CheckboxField('install_resolver_dependencies', checked=True) else: install_resolver_dependencies_check_box = None return trans.fill_template('/admin/tool_shed_repository/install_tool_dependencies_with_update.mako', - repository=repository, - updating_repository_id=updating_repository_id, - updating_to_ctx_rev=updating_to_ctx_rev, - updating_to_changeset_revision=updating_to_changeset_revision, - encoded_updated_metadata=encoded_updated_metadata, - encoded_relative_install_dir=encoded_relative_install_dir, - encoded_tool_dependencies_dict=encoded_tool_dependencies_dict, - install_resolver_dependencies_check_box=install_resolver_dependencies_check_box, - install_tool_dependencies_check_box=install_tool_dependencies_check_box, - tool_dependencies_dict=tool_dependencies_dict, - message=message, - status=status) + repository=repository, + updating_repository_id=updating_repository_id, + updating_to_ctx_rev=updating_to_ctx_rev, + updating_to_changeset_revision=updating_to_changeset_revision, + encoded_updated_metadata=encoded_updated_metadata, + encoded_relative_install_dir=encoded_relative_install_dir, + encoded_tool_dependencies_dict=encoded_tool_dependencies_dict, + install_resolver_dependencies_check_box=install_resolver_dependencies_check_box, + install_tool_dependencies_check_box=install_tool_dependencies_check_box, + tool_dependencies_dict=tool_dependencies_dict, + message=message, + status=status) @web.expose @web.require_admin @@ -609,12 +609,12 @@ class AdminToolshed(AdminGalaxy): kwd['status'] = 'error' del kwd['operation'] return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_repositories', - **kwd)) + action='manage_repositories', + **kwd)) if operation == 'browse': return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_repository', - **kwd)) + action='browse_repository', + **kwd)) elif operation == 'uninstall': # TODO: I believe this block should be removed, but make sure.. repositories_for_uninstallation = [] @@ -622,12 +622,12 @@ class AdminToolshed(AdminGalaxy): repository = trans.install_model.context.query(trans.install_model.ToolShedRepository) \ .get(trans.security.decode_id(repository_id)) if repository.status in [trans.install_model.ToolShedRepository.installation_status.INSTALLED, - trans.install_model.ToolShedRepository.installation_status.ERROR]: + trans.install_model.ToolShedRepository.installation_status.ERROR]: repositories_for_uninstallation.append(repository) if repositories_for_uninstallation: return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='uninstall_repositories', - **kwd)) + action='uninstall_repositories', + **kwd)) else: kwd['message'] = 'All selected tool shed repositories are already uninstalled.' kwd['status'] = 'error' @@ -652,8 +652,8 @@ class AdminToolshed(AdminGalaxy): return json.dumps(tsr_ids_for_monitoring) else: trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='monitor_repository_installation', - tool_shed_repository_ids=tsr_ids_for_monitoring)) + action='monitor_repository_installation', + tool_shed_repository_ids=tsr_ids_for_monitoring)) except install_manager.RepositoriesInstalledException as e: kwd['message'] = e.message kwd['status'] = 'error' @@ -678,14 +678,14 @@ class AdminToolshed(AdminGalaxy): if repository.status in [trans.install_model.ToolShedRepository.installation_status.CLONING]: tool_shed_repository_ids = [repository_id] return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='monitor_repository_installation', - tool_shed_repository_ids=tool_shed_repository_ids)) + action='monitor_repository_installation', + tool_shed_repository_ids=tool_shed_repository_ids)) if repository.can_install and operation == 'install': # Send a request to the tool shed to install the repository. params = dict(name=name, - owner=owner, - changeset_revisions=installed_changeset_revision, - galaxy_url=web.url_for('/', qualified=True)) + owner=owner, + changeset_revisions=installed_changeset_revision, + galaxy_url=web.url_for('/', qualified=True)) pathspec = ['repository', 'install_repositories_by_revision'] url = util.build_url(tool_shed_url, pathspec=pathspec, params=params) return trans.response.send_redirect(url) @@ -711,21 +711,21 @@ class AdminToolshed(AdminGalaxy): message = "The repository information has been updated." dd = dependency_display.DependencyDisplayer(trans.app) containers_dict = dd.populate_containers_dict_from_repository_metadata(tool_shed_url=tool_shed_url, - tool_path=tool_path, - repository=repository, - reinstalling=False, - required_repo_info_dicts=None) + tool_path=tool_path, + repository=repository, + reinstalling=False, + required_repo_info_dicts=None) view = views.DependencyResolversView(self.app) tool_requirements_d = suc.get_requirements_from_repository(repository) requirements_status = view.get_requirements_status(tool_requirements_d, repository.installed_tool_dependencies) return trans.fill_template('/admin/tool_shed_repository/manage_repository.mako', - repository=repository, - description=description, - repo_files_dir=repo_files_dir, - containers_dict=containers_dict, - requirements_status=requirements_status, - message=message, - status=status) + repository=repository, + description=description, + repo_files_dir=repo_files_dir, + containers_dict=containers_dict, + requirements_status=requirements_status, + message=message, + status=status) @web.expose @web.require_admin @@ -750,23 +750,23 @@ class AdminToolshed(AdminGalaxy): kwd['status'] = 'error' del kwd['operation'] return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_repository_tool_dependencies', - **kwd)) + action='manage_repository_tool_dependencies', + **kwd)) if operation == 'browse': return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_tool_dependency', - **kwd)) + action='browse_tool_dependency', + **kwd)) elif operation == 'uninstall': tool_dependencies_for_uninstallation = [] for tool_dependency_id in tool_dependency_ids: tool_dependency = tool_dependency_util.get_tool_dependency(trans.app, tool_dependency_id) if tool_dependency.status in [trans.install_model.ToolDependency.installation_status.INSTALLED, - trans.install_model.ToolDependency.installation_status.ERROR]: + trans.install_model.ToolDependency.installation_status.ERROR]: tool_dependencies_for_uninstallation.append(tool_dependency) if tool_dependencies_for_uninstallation: return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='uninstall_tool_dependencies', - **kwd)) + action='uninstall_tool_dependencies', + **kwd)) else: message = 'No selected tool dependencies can be uninstalled, you may need to use the Repair repository feature.' status = 'error' @@ -776,13 +776,13 @@ class AdminToolshed(AdminGalaxy): for tool_dependency_id in tool_dependency_ids: tool_dependency = tool_dependency_util.get_tool_dependency(trans.app, tool_dependency_id) if tool_dependency.status in [trans.install_model.ToolDependency.installation_status.NEVER_INSTALLED, - trans.install_model.ToolDependency.installation_status.UNINSTALLED]: + trans.install_model.ToolDependency.installation_status.UNINSTALLED]: tool_dependencies_for_installation.append(tool_dependency) if tool_dependencies_for_installation: self.initiate_tool_dependency_installation(trans, - tool_dependencies_for_installation, - message=message, - status=status) + tool_dependencies_for_installation, + message=message, + status=status) else: message = 'All selected tool dependencies are already installed.' status = 'error' @@ -792,20 +792,20 @@ class AdminToolshed(AdminGalaxy): status = 'error' installed_tool_dependencies_select_field = \ tool_dependency_util.build_tool_dependencies_select_field(trans.app, - tool_shed_repository=tool_shed_repository, - name='inst_td_ids', - uninstalled_only=False) + tool_shed_repository=tool_shed_repository, + name='inst_td_ids', + uninstalled_only=False) uninstalled_tool_dependencies_select_field = \ tool_dependency_util.build_tool_dependencies_select_field(trans.app, - tool_shed_repository=tool_shed_repository, - name='uninstalled_tool_dependency_ids', - uninstalled_only=True) + tool_shed_repository=tool_shed_repository, + name='uninstalled_tool_dependency_ids', + uninstalled_only=True) return trans.fill_template('/admin/tool_shed_repository/manage_repository_tool_dependencies.mako', - repository=tool_shed_repository, - installed_tool_dependencies_select_field=installed_tool_dependencies_select_field, - uninstalled_tool_dependencies_select_field=uninstalled_tool_dependencies_select_field, - message=message, - status=status) + repository=tool_shed_repository, + installed_tool_dependencies_select_field=installed_tool_dependencies_select_field, + uninstalled_tool_dependencies_select_field=uninstalled_tool_dependencies_select_field, + message=message, + status=status) @web.expose @web.require_admin @@ -833,25 +833,25 @@ class AdminToolshed(AdminGalaxy): kwd['status'] = 'error' del kwd['operation'] return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_tool_dependencies', - **kwd)) + action='manage_tool_dependencies', + **kwd)) if operation == 'browse': return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_tool_dependency', - **kwd)) + action='browse_tool_dependency', + **kwd)) elif operation == "install": if trans.app.config.tool_dependency_dir: tool_dependencies_for_installation = [] for tool_dependency_id in tool_dependency_ids: tool_dependency = tool_dependency_util.get_tool_dependency(trans.app, tool_dependency_id) if tool_dependency.status in [trans.install_model.ToolDependency.installation_status.NEVER_INSTALLED, - trans.install_model.ToolDependency.installation_status.UNINSTALLED]: + trans.install_model.ToolDependency.installation_status.UNINSTALLED]: tool_dependencies_for_installation.append(tool_dependency) if tool_dependencies_for_installation: self.initiate_tool_dependency_installation(trans, - tool_dependencies_for_installation, - message=message, - status=status) + tool_dependencies_for_installation, + message=message, + status=status) else: kwd['message'] = 'All selected tool dependencies are already installed.' kwd['status'] = 'error' @@ -864,11 +864,11 @@ class AdminToolshed(AdminGalaxy): if tool_shed_repository.tool_dependencies_being_installed: return self.tool_dependency_grid(trans, **kwd) return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_repository_tool_dependencies', - tool_dependency_ids=tool_dependency_ids, - repository_id=repository_id, - message=message, - status=status)) + action='manage_repository_tool_dependencies', + tool_dependency_ids=tool_dependency_ids, + repository_id=repository_id, + message=message, + status=status)) @web.expose @web.require_admin @@ -958,9 +958,9 @@ class AdminToolshed(AdminGalaxy): message += 'administrator if necessary.
%s' % str(e) status = 'error' return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_repositories', - message=message, - status=status)) + action='browse_repositories', + message=message, + status=status)) changeset_revisions = updating_to_changeset_revision else: changeset_revisions = kwd.get('changeset_revisions', None) @@ -991,9 +991,9 @@ class AdminToolshed(AdminGalaxy): # Now that the user has decided whether they will handle dependencies, we can update # the repository to the latest revision. repository = trans.app.update_repository_manager.update_repository_record(repository=repository, - updated_metadata_dict=decoded_updated_metadata, - updated_changeset_revision=updating_to_changeset_revision, - updated_ctx_rev=updating_to_ctx_rev) + updated_metadata_dict=decoded_updated_metadata, + updated_changeset_revision=updating_to_changeset_revision, + updated_ctx_rev=updating_to_ctx_rev) install_repository_dependencies = CheckboxField.is_checked(install_repository_dependencies) if includes_tool_dependencies: install_tool_dependencies = CheckboxField.is_checked(install_tool_dependencies) @@ -1002,47 +1002,47 @@ class AdminToolshed(AdminGalaxy): install_resolver_dependencies = CheckboxField.is_checked(install_resolver_dependencies) tool_path = suc.get_tool_path_by_shed_tool_conf_filename(trans.app, shed_tool_conf) installation_dict = dict(install_repository_dependencies=install_repository_dependencies, - new_tool_panel_section_label=new_tool_panel_section_label, - no_changes_checked=False, - repo_info_dicts=repo_info_dicts, - tool_panel_section_id=tool_panel_section_id, - tool_path=tool_path, - tool_shed_url=tool_shed_url) + new_tool_panel_section_label=new_tool_panel_section_label, + no_changes_checked=False, + repo_info_dicts=repo_info_dicts, + tool_panel_section_id=tool_panel_section_id, + tool_path=tool_path, + tool_shed_url=tool_shed_url) created_or_updated_tool_shed_repositories, tool_panel_section_keys, repo_info_dicts, filtered_repo_info_dicts = \ install_repository_manager.handle_tool_shed_repositories(installation_dict) if created_or_updated_tool_shed_repositories: installation_dict = dict(created_or_updated_tool_shed_repositories=created_or_updated_tool_shed_repositories, - filtered_repo_info_dicts=filtered_repo_info_dicts, - has_repository_dependencies=has_repository_dependencies, - includes_tool_dependencies=includes_tool_dependencies, - includes_tools=includes_tools, - includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, - install_repository_dependencies=install_repository_dependencies, - install_resolver_dependencies=install_resolver_dependencies, - install_tool_dependencies=install_tool_dependencies, - message=message, - new_tool_panel_section_label=new_tool_panel_section_label, - shed_tool_conf=shed_tool_conf, - status=status, - tool_panel_section_id=tool_panel_section_id, - tool_panel_section_keys=tool_panel_section_keys, - tool_path=tool_path, - tool_shed_url=tool_shed_url) + filtered_repo_info_dicts=filtered_repo_info_dicts, + has_repository_dependencies=has_repository_dependencies, + includes_tool_dependencies=includes_tool_dependencies, + includes_tools=includes_tools, + includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, + install_repository_dependencies=install_repository_dependencies, + install_resolver_dependencies=install_resolver_dependencies, + install_tool_dependencies=install_tool_dependencies, + message=message, + new_tool_panel_section_label=new_tool_panel_section_label, + shed_tool_conf=shed_tool_conf, + status=status, + tool_panel_section_id=tool_panel_section_id, + tool_panel_section_keys=tool_panel_section_keys, + tool_path=tool_path, + tool_shed_url=tool_shed_url) encoded_kwd, query, tool_shed_repositories, encoded_repository_ids = \ install_repository_manager.initiate_repository_installation(installation_dict) return trans.fill_template('admin/tool_shed_repository/initiate_repository_installation.mako', - encoded_kwd=encoded_kwd, - query=query, - tool_shed_repositories=tool_shed_repositories, - initiate_repository_installation_ids=encoded_repository_ids, - reinstalling=False) + encoded_kwd=encoded_kwd, + query=query, + tool_shed_repositories=tool_shed_repositories, + initiate_repository_installation_ids=encoded_repository_ids, + reinstalling=False) else: kwd['message'] = message kwd['status'] = status return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_repositories', - **kwd)) + action='manage_repositories', + **kwd)) shed_tool_conf_select_field = tool_util.build_shed_tool_conf_select_field(trans.app) tool_path = suc.get_tool_path_by_shed_tool_conf_filename(trans.app, shed_tool_conf) tool_panel_section_select_field = tool_util.build_tool_panel_section_select_field(trans.app) @@ -1057,9 +1057,9 @@ class AdminToolshed(AdminGalaxy): repo_info_dict = repo_info_dicts[0] dependencies_for_repository_dict = \ trans.app.installed_repository_manager.get_dependencies_for_repository(tool_shed_url, - repo_info_dict, - includes_tool_dependencies, - updating=updating) + repo_info_dict, + includes_tool_dependencies, + updating=updating) if not has_repository_dependencies: has_repository_dependencies = dependencies_for_repository_dict.get('has_repository_dependencies', False) if not includes_tool_dependencies: @@ -1085,22 +1085,22 @@ class AdminToolshed(AdminGalaxy): # dependencies to be lost. We pass the updating parameter to make sure merging occurs only when appropriate. containers_dict = \ dd.populate_containers_dict_for_new_install(tool_shed_url=tool_shed_url, - tool_path=tool_path, - readme_files_dict=readme_files_dict, - installed_repository_dependencies=installed_repository_dependencies, - missing_repository_dependencies=missing_repository_dependencies, - installed_tool_dependencies=installed_tool_dependencies, - missing_tool_dependencies=missing_tool_dependencies, - updating=updating) + tool_path=tool_path, + readme_files_dict=readme_files_dict, + installed_repository_dependencies=installed_repository_dependencies, + missing_repository_dependencies=missing_repository_dependencies, + installed_tool_dependencies=installed_tool_dependencies, + missing_tool_dependencies=missing_tool_dependencies, + updating=updating) else: # We're installing a list of repositories, each of which may have tool dependencies or repository dependencies. containers_dicts = [] for repo_info_dict in repo_info_dicts: dependencies_for_repository_dict = \ trans.app.installed_repository_manager.get_dependencies_for_repository(tool_shed_url, - repo_info_dict, - includes_tool_dependencies, - updating=updating) + repo_info_dict, + includes_tool_dependencies, + updating=updating) if not has_repository_dependencies: has_repository_dependencies = dependencies_for_repository_dict.get('has_repository_dependencies', False) if not includes_tool_dependencies: @@ -1138,7 +1138,7 @@ class AdminToolshed(AdminGalaxy): else: install_tool_dependencies_check_box_checked = True install_tool_dependencies_check_box = CheckboxField('install_tool_dependencies', - checked=install_tool_dependencies_check_box_checked) + checked=install_tool_dependencies_check_box_checked) # Handle repository dependencies check box. install_repository_dependencies_check_box = CheckboxField('install_repository_dependencies', checked=True) view = views.DependencyResolversView(self.app) @@ -1149,28 +1149,28 @@ class AdminToolshed(AdminGalaxy): encoded_repo_info_dicts = encoding_util.encoding_sep.join(encoded_repo_info_dicts) tool_shed_url = kwd['tool_shed_url'] return trans.fill_template('/admin/tool_shed_repository/select_tool_panel_section.mako', - encoded_repo_info_dicts=encoded_repo_info_dicts, - updating=updating, - updating_repository_id=updating_repository_id, - updating_to_ctx_rev=updating_to_ctx_rev, - updating_to_changeset_revision=updating_to_changeset_revision, - encoded_updated_metadata=encoded_updated_metadata, - includes_tools=includes_tools, - includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, - includes_tool_dependencies=includes_tool_dependencies, - install_tool_dependencies_check_box=install_tool_dependencies_check_box, - install_resolver_dependencies_check_box=install_resolver_dependencies_check_box, - has_repository_dependencies=has_repository_dependencies, - install_repository_dependencies_check_box=install_repository_dependencies_check_box, - new_tool_panel_section_label=new_tool_panel_section_label, - containers_dict=containers_dict, - shed_tool_conf=shed_tool_conf, - shed_tool_conf_select_field=shed_tool_conf_select_field, - tool_panel_section_select_field=tool_panel_section_select_field, - tool_shed_url=tool_shed_url, - requirements_status=requirements_status, - message=message, - status=status) + encoded_repo_info_dicts=encoded_repo_info_dicts, + updating=updating, + updating_repository_id=updating_repository_id, + updating_to_ctx_rev=updating_to_ctx_rev, + updating_to_changeset_revision=updating_to_changeset_revision, + encoded_updated_metadata=encoded_updated_metadata, + includes_tools=includes_tools, + includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, + includes_tool_dependencies=includes_tool_dependencies, + install_tool_dependencies_check_box=install_tool_dependencies_check_box, + install_resolver_dependencies_check_box=install_resolver_dependencies_check_box, + has_repository_dependencies=has_repository_dependencies, + install_repository_dependencies_check_box=install_repository_dependencies_check_box, + new_tool_panel_section_label=new_tool_panel_section_label, + containers_dict=containers_dict, + shed_tool_conf=shed_tool_conf, + shed_tool_conf_select_field=shed_tool_conf_select_field, + tool_panel_section_select_field=tool_panel_section_select_field, + tool_shed_url=tool_shed_url, + requirements_status=requirements_status, + message=message, + status=status) @web.expose @web.require_admin @@ -1192,7 +1192,7 @@ class AdminToolshed(AdminGalaxy): new_kwd['message'] = purge_message else: return trans.fill_template('admin/tool_shed_repository/purge_repository_confirmation.mako', - repository=repository) + repository=repository) else: new_kwd['status'] = 'error' new_kwd['message'] = 'Repositories must have a New status in order to be purged.' @@ -1203,8 +1203,8 @@ class AdminToolshed(AdminGalaxy): new_kwd['status'] = 'error' new_kwd['message'] = 'Invalid repository id value "None" received for repository to be purged.' return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_repositories', - **new_kwd)) + action='browse_repositories', + **new_kwd)) @web.expose @web.require_admin @@ -1241,10 +1241,10 @@ class AdminToolshed(AdminGalaxy): # Handle the selected tool panel location for loading tools included in the tool shed repository. tool_section, tool_panel_section_key = \ tpm.handle_tool_panel_selection(toolbox=trans.app.toolbox, - metadata=metadata, - no_changes_checked=no_changes_checked, - tool_panel_section_id=tool_panel_section_id, - new_tool_panel_section_label=new_tool_panel_section_label) + metadata=metadata, + no_changes_checked=no_changes_checked, + tool_panel_section_id=tool_panel_section_id, + new_tool_panel_section_label=new_tool_panel_section_label) if tool_section is not None: # Just in case the tool_section.id differs from tool_panel_section_id, which it shouldn't... tool_panel_section_id = str(tool_section.id) @@ -1267,21 +1267,21 @@ class AdminToolshed(AdminGalaxy): # The repository's status must be updated from 'Uninstalled' to 'New' when initiating reinstall # so the repository_installation_updater will function. tool_shed_repository = repository_util.create_or_update_tool_shed_repository(trans.app, - tool_shed_repository.name, - tool_shed_repository.description, - tool_shed_repository.installed_changeset_revision, - tool_shed_repository.ctx_rev, - repository_clone_url, - metadata, - trans.install_model.ToolShedRepository.installation_status.NEW, - tool_shed_repository.changeset_revision, - tool_shed_repository.owner, - tool_shed_repository.dist_to_shed) + tool_shed_repository.name, + tool_shed_repository.description, + tool_shed_repository.installed_changeset_revision, + tool_shed_repository.ctx_rev, + repository_clone_url, + metadata, + trans.install_model.ToolShedRepository.installation_status.NEW, + tool_shed_repository.changeset_revision, + tool_shed_repository.owner, + tool_shed_repository.dist_to_shed) ctx_rev = suc.get_ctx_rev(trans.app, - tool_shed_url, - tool_shed_repository.name, - tool_shed_repository.owner, - tool_shed_repository.installed_changeset_revision) + tool_shed_url, + tool_shed_repository.name, + tool_shed_repository.owner, + tool_shed_repository.installed_changeset_revision) repo_info_dicts = [] repo_info_dict = kwd.get('repo_info_dict', None) if repo_info_dict: @@ -1292,7 +1292,7 @@ class AdminToolshed(AdminGalaxy): if install_repository_dependencies: repository_dependencies = \ rdim.get_repository_dependencies_for_installed_tool_shed_repository(trans.app, - tool_shed_repository) + tool_shed_repository) else: repository_dependencies = None if metadata: @@ -1300,23 +1300,23 @@ class AdminToolshed(AdminGalaxy): else: tool_dependencies = None repo_info_dict = repository_util.create_repo_info_dict(trans.app, - repository_clone_url=repository_clone_url, - changeset_revision=tool_shed_repository.changeset_revision, - ctx_rev=ctx_rev, - repository_owner=tool_shed_repository.owner, - repository_name=tool_shed_repository.name, - tool_dependencies=tool_dependencies, - repository_dependencies=repository_dependencies) + repository_clone_url=repository_clone_url, + changeset_revision=tool_shed_repository.changeset_revision, + ctx_rev=ctx_rev, + repository_owner=tool_shed_repository.owner, + repository_name=tool_shed_repository.name, + tool_dependencies=tool_dependencies, + repository_dependencies=repository_dependencies) if repo_info_dict not in repo_info_dicts: repo_info_dicts.append(repo_info_dict) # Make sure all tool_shed_repository records exist. created_or_updated_tool_shed_repositories, tool_panel_section_keys, repo_info_dicts, filtered_repo_info_dicts = \ rdim.create_repository_dependency_objects(tool_path=tool_path, - tool_shed_url=tool_shed_url, - repo_info_dicts=repo_info_dicts, - install_repository_dependencies=install_repository_dependencies, - no_changes_checked=no_changes_checked, - tool_panel_section_id=tool_panel_section_id) + tool_shed_url=tool_shed_url, + repo_info_dicts=repo_info_dicts, + install_repository_dependencies=install_repository_dependencies, + no_changes_checked=no_changes_checked, + tool_panel_section_id=tool_panel_section_id) # Default the selected tool panel location for loading tools included in each newly installed required # tool shed repository to the location selected for the repository selected for re-installation. for index, tps_key in enumerate(tool_panel_section_keys): @@ -1324,20 +1324,20 @@ class AdminToolshed(AdminGalaxy): tool_panel_section_keys[index] = tool_panel_section_key encoded_repository_ids = [trans.security.encode_id(r.id) for r in created_or_updated_tool_shed_repositories] new_kwd = dict(includes_tool_dependencies=includes_tool_dependencies, - includes_tools=tool_shed_repository.includes_tools, - includes_tools_for_display_in_tool_panel=tool_shed_repository.includes_tools_for_display_in_tool_panel, - install_tool_dependencies=install_tool_dependencies, - install_resolver_dependencies=install_resolver_dependencies, - repo_info_dicts=filtered_repo_info_dicts, - message=message, - new_tool_panel_section_label=new_tool_panel_section_label, - shed_tool_conf=shed_tool_conf, - status=status, - tool_panel_section_id=tool_panel_section_id, - tool_path=tool_path, - tool_panel_section_keys=tool_panel_section_keys, - tool_shed_repository_ids=encoded_repository_ids, - tool_shed_url=tool_shed_url) + includes_tools=tool_shed_repository.includes_tools, + includes_tools_for_display_in_tool_panel=tool_shed_repository.includes_tools_for_display_in_tool_panel, + install_tool_dependencies=install_tool_dependencies, + install_resolver_dependencies=install_resolver_dependencies, + repo_info_dicts=filtered_repo_info_dicts, + message=message, + new_tool_panel_section_label=new_tool_panel_section_label, + shed_tool_conf=shed_tool_conf, + status=status, + tool_panel_section_id=tool_panel_section_id, + tool_path=tool_path, + tool_panel_section_keys=tool_panel_section_keys, + tool_shed_repository_ids=encoded_repository_ids, + tool_shed_url=tool_shed_url) encoded_kwd = encoding_util.tool_shed_encode(new_kwd) tsr_ids = [r.id for r in created_or_updated_tool_shed_repositories] tool_shed_repositories = [] @@ -1350,11 +1350,11 @@ class AdminToolshed(AdminGalaxy): query = trans.install_model.context.current.query(trans.install_model.ToolShedRepository) \ .filter(or_(*clause_list)) return trans.fill_template('admin/tool_shed_repository/initiate_repository_installation.mako', - encoded_kwd=encoded_kwd, - query=query, - tool_shed_repositories=tool_shed_repositories, - initiate_repository_installation_ids=encoded_repository_ids, - reinstalling=True) + encoded_kwd=encoded_kwd, + query=query, + tool_shed_repositories=tool_shed_repositories, + initiate_repository_installation_ids=encoded_repository_ids, + reinstalling=True) @web.expose @web.require_admin @@ -1370,9 +1370,9 @@ class AdminToolshed(AdminGalaxy): message = 'Invalid installed tool shed repository id %s received.' % str(repository_id) status = 'error' return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_repositories', - message=message, - status=status)) + action='browse_repositories', + message=message, + status=status)) tool_shed_repository = repository_util.get_installed_tool_shed_repository(trans.app, repository_id) rrm = RepairRepositoryManager(trans.app) if kwd.get('repair_repository_button', False): @@ -1397,11 +1397,11 @@ class AdminToolshed(AdminGalaxy): ordered_tsr_ids = repair_dict.get('ordered_tsr_ids', []) ordered_repo_info_dicts = repair_dict.get('ordered_repo_info_dicts', []) return trans.fill_template('admin/tool_shed_repository/repair_repository.mako', - repository=tool_shed_repository, - encoded_repair_dict=encoded_repair_dict, - repair_dict=repair_dict, - message=message, - status=status) + repository=tool_shed_repository, + encoded_repair_dict=encoded_repair_dict, + repair_dict=repair_dict, + message=message, + status=status) @web.expose @web.require_admin @@ -1411,11 +1411,11 @@ class AdminToolshed(AdminGalaxy): for index, tool_shed_repository in enumerate(tool_shed_repositories): repo_info_dict = repo_info_dicts[index] repair_repository_manager.repair_tool_shed_repository(tool_shed_repository, - encoding_util.tool_shed_encode(repo_info_dict)) + encoding_util.tool_shed_encode(repo_info_dict)) tsr_ids_for_monitoring = [trans.security.encode_id(tsr.id) for tsr in tool_shed_repositories] return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='monitor_repository_installation', - tool_shed_repository_ids=tsr_ids_for_monitoring)) + action='monitor_repository_installation', + tool_shed_repository_ids=tsr_ids_for_monitoring)) @web.json def repository_installation_status_updates(self, trans, ids=None, status_list=None): @@ -1432,10 +1432,10 @@ class AdminToolshed(AdminGalaxy): repository = trans.install_model.context.query(trans.install_model.ToolShedRepository).get(trans.security.decode_id(id)) if repository.status != status: rval.append(dict(id=id, - status=repository.status, - html_status=unicode(trans.fill_template("admin/tool_shed_repository/repository_installation_status.mako", - repository=repository), - 'utf-8'))) + status=repository.status, + html_status=unicode(trans.fill_template("admin/tool_shed_repository/repository_installation_status.mako", + repository=repository), + 'utf-8'))) return rval @web.expose @@ -1488,8 +1488,8 @@ class AdminToolshed(AdminGalaxy): includes_workflows = True # Since we're reinstalling, we need to send a request to the tool shed to get the README files. params = dict(name=tool_shed_repository.name, - owner=tool_shed_repository.owner, - changeset_revision=tool_shed_repository.installed_changeset_revision) + owner=tool_shed_repository.owner, + changeset_revision=tool_shed_repository.installed_changeset_revision) pathspec = ['repository', 'get_readme_files'] raw_text = util.url_get(tool_shed_url, password_mgr=self.app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) readme_files_dict = json.loads(raw_text) @@ -1497,20 +1497,20 @@ class AdminToolshed(AdminGalaxy): rdim = repository_dependency_manager.RepositoryDependencyInstallManager(trans.app) repository_dependencies = \ rdim.get_repository_dependencies_for_installed_tool_shed_repository(trans.app, - tool_shed_repository) + tool_shed_repository) repo_info_dict = repository_util.create_repo_info_dict(trans.app, - repository_clone_url=repository_clone_url, - changeset_revision=tool_shed_repository.installed_changeset_revision, - ctx_rev=tool_shed_repository.ctx_rev, - repository_owner=tool_shed_repository.owner, - repository_name=tool_shed_repository.name, - tool_dependencies=tool_dependencies, - repository_dependencies=repository_dependencies) + repository_clone_url=repository_clone_url, + changeset_revision=tool_shed_repository.installed_changeset_revision, + ctx_rev=tool_shed_repository.ctx_rev, + repository_owner=tool_shed_repository.owner, + repository_name=tool_shed_repository.name, + tool_dependencies=tool_dependencies, + repository_dependencies=repository_dependencies) irm = trans.app.installed_repository_manager dependencies_for_repository_dict = irm.get_dependencies_for_repository(tool_shed_url, - repo_info_dict, - includes_tool_dependencies, - updating=True) + repo_info_dict, + includes_tool_dependencies, + updating=True) includes_tool_dependencies = dependencies_for_repository_dict.get('includes_tool_dependencies', False) includes_tools = dependencies_for_repository_dict.get('includes_tools', False) includes_tools_for_display_in_tool_panel = dependencies_for_repository_dict.get('includes_tools_for_display_in_tool_panel', False) @@ -1558,13 +1558,13 @@ class AdminToolshed(AdminGalaxy): dd = dependency_display.DependencyDisplayer(trans.app) containers_dict = \ dd.populate_containers_dict_for_new_install(tool_shed_url=tool_shed_url, - tool_path=tool_path, - readme_files_dict=readme_files_dict, - installed_repository_dependencies=installed_repository_dependencies, - missing_repository_dependencies=missing_repository_dependencies, - installed_tool_dependencies=installed_tool_dependencies, - missing_tool_dependencies=missing_tool_dependencies, - updating=False) + tool_path=tool_path, + readme_files_dict=readme_files_dict, + installed_repository_dependencies=installed_repository_dependencies, + missing_repository_dependencies=missing_repository_dependencies, + installed_tool_dependencies=installed_tool_dependencies, + missing_tool_dependencies=missing_tool_dependencies, + updating=False) # Since we're reinstalling we'll merge the list of missing repository dependencies into the list of # installed repository dependencies since each displayed repository dependency will display a status, # whether installed or missing. @@ -1587,26 +1587,26 @@ class AdminToolshed(AdminGalaxy): else: install_resolver_dependencies_check_box = None return trans.fill_template('/admin/tool_shed_repository/reselect_tool_panel_section.mako', - repository=tool_shed_repository, - no_changes_check_box=no_changes_check_box, - original_section_name=original_section_name, - includes_data_managers=includes_data_managers, - includes_datatypes=includes_datatypes, - includes_tools=includes_tools, - includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, - includes_tool_dependencies=includes_tool_dependencies, - includes_workflows=includes_workflows, - has_repository_dependencies=has_repository_dependencies, - install_repository_dependencies_check_box=install_repository_dependencies_check_box, - install_tool_dependencies_check_box=install_tool_dependencies_check_box, - install_resolver_dependencies_check_box=install_resolver_dependencies_check_box, - containers_dict=containers_dict, - tool_panel_section_select_field=tool_panel_section_select_field, - shed_tool_conf_select_field=shed_tool_conf_select_field, - encoded_repo_info_dict=encoding_util.tool_shed_encode(repo_info_dict), - repo_info_dict=repo_info_dict, - message=message, - status=status) + repository=tool_shed_repository, + no_changes_check_box=no_changes_check_box, + original_section_name=original_section_name, + includes_data_managers=includes_data_managers, + includes_datatypes=includes_datatypes, + includes_tools=includes_tools, + includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, + includes_tool_dependencies=includes_tool_dependencies, + includes_workflows=includes_workflows, + has_repository_dependencies=has_repository_dependencies, + install_repository_dependencies_check_box=install_repository_dependencies_check_box, + install_tool_dependencies_check_box=install_tool_dependencies_check_box, + install_resolver_dependencies_check_box=install_resolver_dependencies_check_box, + containers_dict=containers_dict, + tool_panel_section_select_field=tool_panel_section_select_field, + shed_tool_conf_select_field=shed_tool_conf_select_field, + encoded_repo_info_dict=encoding_util.tool_shed_encode(repo_info_dict), + repo_info_dict=repo_info_dict, + message=message, + status=status) @web.expose @web.require_admin @@ -1619,9 +1619,9 @@ class AdminToolshed(AdminGalaxy): status = kwd.get('status', 'done') repositories_select_field = irmm.build_repository_ids_select_field() return trans.fill_template('/admin/tool_shed_repository/reset_metadata_on_selected_repositories.mako', - repositories_select_field=repositories_select_field, - message=message, - status=status) + repositories_select_field=repositories_select_field, + message=message, + status=status) @web.expose @web.require_admin @@ -1633,15 +1633,15 @@ class AdminToolshed(AdminGalaxy): if relative_install_dir: original_metadata_dict = repository.metadata irmm = InstalledRepositoryMetadataManager(app=trans.app, - repository=repository, - changeset_revision=repository.changeset_revision, - repository_clone_url=repository_clone_url, - shed_config_dict=repository.get_shed_config_dict(trans.app), - relative_install_dir=relative_install_dir, - repository_files_dir=None, - resetting_all_metadata_on_repository=False, - updating_installed_repository=False, - persist=False) + repository=repository, + changeset_revision=repository.changeset_revision, + repository_clone_url=repository_clone_url, + shed_config_dict=repository.get_shed_config_dict(trans.app), + relative_install_dir=relative_install_dir, + repository_files_dir=None, + resetting_all_metadata_on_repository=False, + updating_installed_repository=False, + persist=False) irmm.generate_metadata_for_changeset_revision() irmm_metadata_dict = irmm.get_metadata_dict() if irmm_metadata_dict != original_metadata_dict: @@ -1658,10 +1658,10 @@ class AdminToolshed(AdminGalaxy): message = 'Error locating installation directory for repository %s.' % escape(repository.name) status = 'error' return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_repository', - id=id, - message=message, - status=status)) + action='manage_repository', + id=id, + message=message, + status=status)) @web.expose @web.require_admin @@ -1670,21 +1670,21 @@ class AdminToolshed(AdminGalaxy): repository = repository_util.get_installed_tool_shed_repository(trans.app, kwd['id']) if kwd.get('reset_repository', False): repository_util.set_repository_attributes(trans.app, - repository, - status=trans.install_model.ToolShedRepository.installation_status.NEW, - error_message=None, - deleted=False, - uninstalled=False, - remove_from_disk=True) + repository, + status=trans.install_model.ToolShedRepository.installation_status.NEW, + error_message=None, + deleted=False, + uninstalled=False, + remove_from_disk=True) new_kwd = {} new_kwd['message'] = "You can now attempt to install the repository named %s again." % escape(str(repository.name)) new_kwd['status'] = "done" return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_repositories', - **new_kwd)) + action='browse_repositories', + **new_kwd)) return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_repository', - **kwd)) + action='manage_repository', + **kwd)) @web.expose @web.require_admin @@ -1713,17 +1713,17 @@ class AdminToolshed(AdminGalaxy): repo_files_dir = os.path.abspath(os.path.join(relative_install_dir, repository.name)) dd = dependency_display.DependencyDisplayer(trans.app) containers_dict = dd.populate_containers_dict_from_repository_metadata(tool_shed_url=tool_shed_url, - tool_path=tool_path, - repository=repository, - reinstalling=False, - required_repo_info_dicts=None) + tool_path=tool_path, + repository=repository, + reinstalling=False, + required_repo_info_dicts=None) return trans.fill_template('/admin/tool_shed_repository/manage_repository.mako', - repository=repository, - description=repository.description, - repo_files_dir=repo_files_dir, - containers_dict=containers_dict, - message=message, - status=status) + repository=repository, + description=repository.description, + repo_files_dir=repo_files_dir, + containers_dict=containers_dict, + message=message, + status=status) @web.json def tool_dependency_status_updates(self, trans, ids=None, status_list=None): @@ -1740,10 +1740,10 @@ class AdminToolshed(AdminGalaxy): tool_dependency = trans.install_model.context.query(trans.install_model.ToolDependency).get(trans.security.decode_id(id)) if tool_dependency.status != status: rval.append(dict(id=id, - status=tool_dependency.status, - html_status=unicode(trans.fill_template("admin/tool_shed_repository/tool_dependency_installation_status.mako", - tool_dependency=tool_dependency), - 'utf-8'))) + status=tool_dependency.status, + html_status=unicode(trans.fill_template("admin/tool_shed_repository/tool_dependency_installation_status.mako", + tool_dependency=tool_dependency), + 'utf-8'))) return rval @web.expose @@ -1779,16 +1779,16 @@ class AdminToolshed(AdminGalaxy): ','.join(td.name for td in tool_dependencies_for_uninstallation) td_ids = [trans.security.encode_id(td.id) for td in tool_shed_repository.tool_dependencies] return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_repository_tool_dependencies', - tool_dependency_ids=td_ids, - status=status, - message=message)) + action='manage_repository_tool_dependencies', + tool_dependency_ids=td_ids, + status=status, + message=message)) return trans.fill_template('/admin/tool_shed_repository/uninstall_tool_dependencies.mako', - repository=tool_shed_repository, - tool_dependency_ids=tool_dependency_ids, - tool_dependencies=tool_dependencies, - message=message, - status=status) + repository=tool_shed_repository, + tool_dependency_ids=tool_dependency_ids, + tool_dependencies=tool_dependencies, + message=message, + status=status) @web.expose @web.require_admin @@ -1805,10 +1805,10 @@ class AdminToolshed(AdminGalaxy): latest_changeset_revision = kwd.get('latest_changeset_revision', None) latest_ctx_rev = kwd.get('latest_ctx_rev', None) repository = repository_util.get_installed_repository(trans.app, - tool_shed=tool_shed_url, - name=name, - owner=owner, - changeset_revision=changeset_revision) + tool_shed=tool_shed_url, + name=name, + owner=owner, + changeset_revision=changeset_revision) original_metadata_dict = repository.metadata original_repository_dependencies_dict = original_metadata_dict.get('repository_dependencies', {}) original_repository_dependencies = original_repository_dependencies_dict.get('repository_dependencies', []) @@ -1824,9 +1824,9 @@ class AdminToolshed(AdminGalaxy): else: repo_files_dir = os.path.abspath(os.path.join(relative_install_dir, name)) repo = hg_util.get_repo_for_repository(trans.app, - repository=None, - repo_path=repo_files_dir, - create=False) + repository=None, + repo_path=repo_files_dir, + create=False) repository_clone_url = os.path.join(tool_shed_url, 'repos', owner, name) hg_util.pull_repository(repo, repository_clone_url, latest_ctx_rev) hg_util.update_repository(repo, latest_ctx_rev) @@ -1837,16 +1837,16 @@ class AdminToolshed(AdminGalaxy): # Update the repository metadata. tpm = tool_panel_manager.ToolPanelManager(trans.app) irmm = InstalledRepositoryMetadataManager(app=trans.app, - tpm=tpm, - repository=repository, - changeset_revision=latest_changeset_revision, - repository_clone_url=repository_clone_url, - shed_config_dict=repository.get_shed_config_dict(trans.app), - relative_install_dir=relative_install_dir, - repository_files_dir=None, - resetting_all_metadata_on_repository=False, - updating_installed_repository=True, - persist=True) + tpm=tpm, + repository=repository, + changeset_revision=latest_changeset_revision, + repository_clone_url=repository_clone_url, + shed_config_dict=repository.get_shed_config_dict(trans.app), + relative_install_dir=relative_install_dir, + repository_files_dir=None, + resetting_all_metadata_on_repository=False, + updating_installed_repository=True, + persist=True) irmm.generate_metadata_for_changeset_revision() irmm_metadata_dict = irmm.get_metadata_dict() if 'tools' in irmm_metadata_dict: @@ -1855,22 +1855,22 @@ class AdminToolshed(AdminGalaxy): tool_panel_dict = tpm.generate_tool_panel_dict_from_shed_tool_conf_entries(repository) repository_tools_tups = irmm.get_repository_tools_tups() tpm.add_to_tool_panel(repository_name=str(repository.name), - repository_clone_url=repository_clone_url, - changeset_revision=str(repository.installed_changeset_revision), - repository_tools_tups=repository_tools_tups, - owner=str(repository.owner), - shed_tool_conf=shed_tool_conf, - tool_panel_dict=tool_panel_dict, - new_install=False) + repository_clone_url=repository_clone_url, + changeset_revision=str(repository.installed_changeset_revision), + repository_tools_tups=repository_tools_tups, + owner=str(repository.owner), + shed_tool_conf=shed_tool_conf, + tool_panel_dict=tool_panel_dict, + new_install=False) # Add new Data Manager entries if 'data_manager' in irmm_metadata_dict: dmh = data_manager.DataManagerHandler(trans.app) dmh.install_data_managers(trans.app.config.shed_data_manager_config_file, - irmm_metadata_dict, - repository.get_shed_config_dict(trans.app), - os.path.join(relative_install_dir, name), - repository, - repository_tools_tups) + irmm_metadata_dict, + repository.get_shed_config_dict(trans.app), + os.path.join(relative_install_dir, name), + repository, + repository_tools_tups) if 'repository_dependencies' in irmm_metadata_dict or 'tool_dependencies' in irmm_metadata_dict: new_repository_dependencies_dict = irmm_metadata_dict.get('repository_dependencies', {}) new_repository_dependencies = new_repository_dependencies_dict.get('repository_dependencies', []) @@ -1896,14 +1896,14 @@ class AdminToolshed(AdminGalaxy): # from the Tool Shed. new_repository_db_record, installed_changeset_revision = \ repository_util.repository_was_previously_installed(trans.app, - tool_shed_url, - new_name, - repo_info_tuple, - from_tip=True) + tool_shed_url, + new_name, + repo_info_tuple, + from_tip=True) if new_repository_db_record: if new_repository_db_record.status in [trans.install_model.ToolShedRepository.installation_status.ERROR, - trans.install_model.ToolShedRepository.installation_status.NEW, - trans.install_model.ToolShedRepository.installation_status.UNINSTALLED]: + trans.install_model.ToolShedRepository.installation_status.NEW, + trans.install_model.ToolShedRepository.installation_status.UNINSTALLED]: proceed_to_install = True break else: @@ -1914,11 +1914,11 @@ class AdminToolshed(AdminGalaxy): # the option of installting them. We cannot update the repository with the changes # until that happens, so we have to send them along. new_kwd = dict(tool_shed_url=tool_shed_url, - updating_repository_id=trans.security.encode_id(repository.id), - updating_to_ctx_rev=latest_ctx_rev, - updating_to_changeset_revision=latest_changeset_revision, - encoded_updated_metadata=encoding_util.tool_shed_encode(irmm_metadata_dict), - updating=True) + updating_repository_id=trans.security.encode_id(repository.id), + updating_to_ctx_rev=latest_ctx_rev, + updating_to_changeset_revision=latest_changeset_revision, + encoded_updated_metadata=encoding_util.tool_shed_encode(irmm_metadata_dict), + updating=True) return self.prepare_for_install(trans, **new_kwd) # Updates received did not include any newly defined repository dependencies but did include # newly defined tool dependencies. If the newly defined tool dependencies are not the same @@ -1936,20 +1936,20 @@ class AdminToolshed(AdminGalaxy): encoded_tool_dependencies_dict = encoding_util.tool_shed_encode(irmm_metadata_dict.get('tool_dependencies', {})) encoded_relative_install_dir = encoding_util.tool_shed_encode(relative_install_dir) new_kwd = dict(updating_repository_id=trans.security.encode_id(repository.id), - updating_to_ctx_rev=latest_ctx_rev, - updating_to_changeset_revision=latest_changeset_revision, - encoded_updated_metadata=encoding_util.tool_shed_encode(irmm_metadata_dict), - encoded_relative_install_dir=encoded_relative_install_dir, - encoded_tool_dependencies_dict=encoded_tool_dependencies_dict, - message=message, - status=status) + updating_to_ctx_rev=latest_ctx_rev, + updating_to_changeset_revision=latest_changeset_revision, + encoded_updated_metadata=encoding_util.tool_shed_encode(irmm_metadata_dict), + encoded_relative_install_dir=encoded_relative_install_dir, + encoded_tool_dependencies_dict=encoded_tool_dependencies_dict, + message=message, + status=status) return self.install_tool_dependencies_with_update(trans, **new_kwd) # Updates received did not include any newly defined repository dependencies or newly defined # tool dependencies that need to be installed. repository = trans.app.update_repository_manager.update_repository_record(repository=repository, - updated_metadata_dict=irmm_metadata_dict, - updated_changeset_revision=latest_changeset_revision, - updated_ctx_rev=latest_ctx_rev) + updated_metadata_dict=irmm_metadata_dict, + updated_changeset_revision=latest_changeset_revision, + updated_ctx_rev=latest_ctx_rev) message = "The installed repository named '%s' has been updated to change set revision '%s'. " % \ (name, latest_changeset_revision) else: @@ -1959,19 +1959,19 @@ class AdminToolshed(AdminGalaxy): message = "The latest changeset revision could not be retrieved for the installed repository named '%s'. " % name status = 'error' return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='manage_repository', - id=trans.security.encode_id(repository.id), - message=message, - status=status)) + action='manage_repository', + id=trans.security.encode_id(repository.id), + message=message, + status=status)) @web.expose @web.require_admin def update_tool_shed_status_for_installed_repository(self, trans, **kwd): message, status = repository_util.check_for_updates(trans.app, trans.install_model, kwd.get('id', None)) return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_repositories', - message=message, - status=status)) + action='browse_repositories', + message=message, + status=status)) @web.expose @web.require_admin @@ -2000,13 +2000,13 @@ class AdminToolshed(AdminGalaxy): tool_lineage = tool.lineage.get_version_ids(reverse=True) break return trans.fill_template("/admin/tool_shed_repository/view_tool_metadata.mako", - repository=repository, - repository_metadata=repository_metadata, - tool=tool, - tool_metadata=tool_metadata, - tool_lineage=tool_lineage, - message=message, - status=status) + repository=repository, + repository_metadata=repository_metadata, + tool=tool, + tool_metadata=tool_metadata, + tool_lineage=tool_lineage, + message=message, + status=status) @web.expose @web.require_admin @@ -2020,10 +2020,10 @@ class AdminToolshed(AdminGalaxy): changeset_revision = repository.changeset_revision metadata = repository.metadata return trans.fill_template("/admin/tool_shed_repository/view_workflow.mako", - repository=repository, - changeset_revision=changeset_revision, - repository_id=repository_id, - workflow_name=workflow_name, - metadata=metadata, - message=message, - status=status) + repository=repository, + changeset_revision=changeset_revision, + repository_id=repository_id, + workflow_name=workflow_name, + metadata=metadata, + message=message, + status=status) diff --git a/lib/galaxy/webapps/galaxy/controllers/data_manager.py b/lib/galaxy/webapps/galaxy/controllers/data_manager.py index ec0af2949ac..9229842d289 100644 --- a/lib/galaxy/webapps/galaxy/controllers/data_manager.py +++ b/lib/galaxy/webapps/galaxy/controllers/data_manager.py @@ -101,10 +101,10 @@ class DataManager(BaseUIController): if len(table_names) == 1: message = "The data table '%s' has been reloaded." % table_names[0] redirect_url = web.url_for(controller='data_manager', - action='manage_data_table', - table_name=table_names[0], - message=message, - status=status) + action='manage_data_table', + table_name=table_names[0], + message=message, + status=status) else: message = "The data tables '%s' have been reloaded." % ', '.join(table_names) else: @@ -112,7 +112,7 @@ class DataManager(BaseUIController): status = 'error' if redirect_url is None: redirect_url = web.url_for(controller='admin', - action='view_tool_data_tables', - message=message, - status=status) + action='view_tool_data_tables', + message=message, + status=status) return trans.response.send_redirect(redirect_url) diff --git a/lib/galaxy/webapps/galaxy/controllers/dataset.py b/lib/galaxy/webapps/galaxy/controllers/dataset.py index 7b95e010241..74e32c5254d 100644 --- a/lib/galaxy/webapps/galaxy/controllers/dataset.py +++ b/lib/galaxy/webapps/galaxy/controllers/dataset.py @@ -57,10 +57,10 @@ class HistoryDatasetAssociationListGrid(grids.Grid): default_sort_key = "-update_time" columns = [ grids.TextColumn("Name", key="name", - # Link name to dataset's history. - link=(lambda item: iff(item.history.deleted, None, dict(operation="switch", id=item.id))), filterable="advanced", attach_popup=True), + # Link name to dataset's history. + link=(lambda item: iff(item.history.deleted, None, dict(operation="switch", id=item.id))), filterable="advanced", attach_popup=True), HistoryColumn("History", key="history", sortable=False, target="inbound", - link=(lambda item: iff(item.history.deleted, None, dict(operation="switch_history", id=item.id)))), + link=(lambda item: iff(item.history.deleted, None, dict(operation="switch_history", id=item.id)))), grids.IndividualTagsColumn("Tags", key="tags", model_tag_association_class=model.HistoryDatasetAssociationTagAssociation, filterable="advanced", grid_name="HistoryDatasetAssocationListGrid"), StatusColumn("Status", key="deleted", attach_popup=False), grids.GridColumn("Last Updated", key="update_time", format=time_ago), @@ -753,9 +753,9 @@ class DatasetInterface(BaseUIController, UsesAnnotations, UsesItemRatings, UsesE ave_item_rating, num_ratings = self.get_ave_item_rating_data(trans.sa_session, dataset) return trans.fill_template_mako("/dataset/display.mako", item=dataset, item_data=dataset_data, - truncated=truncated, user_item_rating=user_item_rating, - ave_item_rating=ave_item_rating, num_ratings=num_ratings, - first_chunk=first_chunk) + truncated=truncated, user_item_rating=user_item_rating, + ave_item_rating=ave_item_rating, num_ratings=num_ratings, + first_chunk=first_chunk) else: raise web.httpexceptions.HTTPNotFound() @@ -929,11 +929,11 @@ class DatasetInterface(BaseUIController, UsesAnnotations, UsesItemRatings, UsesE else: raise Exception('Attempted a view action (%s) on a non-ready display application' % app_action) return trans.fill_template_mako("dataset/display_application/display.mako", - msg=msg, - display_app=display_app, - display_link=display_link, - refresh=refresh, - preparable_steps=preparable_steps) + msg=msg, + display_app=display_app, + display_link=display_link, + refresh=refresh, + preparable_steps=preparable_steps) return trans.show_error_message('You do not have permission to view this dataset at an external display application.') def _delete(self, trans, dataset_id): @@ -1156,8 +1156,8 @@ class DatasetInterface(BaseUIController, UsesAnnotations, UsesItemRatings, UsesE params_objects = job.get_param_values(trans.app, ignore_errors=True) # use different param_objects in the following line, since we want to display original values as much as possible upgrade_messages = tool.check_and_update_param_values(job.get_param_values(trans.app, ignore_errors=True), - trans, - update_values=False) + trans, + update_values=False) has_parameter_errors = True except: pass @@ -1165,14 +1165,14 @@ class DatasetInterface(BaseUIController, UsesAnnotations, UsesItemRatings, UsesE return trans.show_error_message("Job information is not available for this dataset.") # TODO: we should provide the basic values along with the objects, in order to better handle reporting of old values during upgrade return trans.fill_template("show_params.mako", - inherit_chain=inherit_chain, - history=trans.get_history(), - hda=hda, - job=job, - tool=tool, - params_objects=params_objects, - upgrade_messages=upgrade_messages, - has_parameter_errors=has_parameter_errors) + inherit_chain=inherit_chain, + history=trans.get_history(), + hda=hda, + job=job, + tool=tool, + params_objects=params_objects, + upgrade_messages=upgrade_messages, + has_parameter_errors=has_parameter_errors) @web.expose def copy_datasets(self, trans, source_history=None, source_content_ids="", target_history_id=None, target_history_ids="", new_history_name="", do_copy=False, **kwd): @@ -1250,7 +1250,7 @@ class DatasetInterface(BaseUIController, UsesAnnotations, UsesItemRatings, UsesE trans.sa_session.flush() hist_names_str = ", ".join(['%s' % (url_for(controller="history", action="switch_to_history", - hist_id=trans.security.encode_id(hist.id)), escape(hist.name)) + hist_id=trans.security.encode_id(hist.id)), escape(hist.name)) for hist in target_histories]) num_source = len(source_content_ids) - invalid_contents num_target = len(target_histories) @@ -1261,17 +1261,17 @@ class DatasetInterface(BaseUIController, UsesAnnotations, UsesItemRatings, UsesE if user: target_histories = user.active_histories return trans.fill_template("/dataset/copy_view.mako", - source_history=history, - current_history=current_history, - source_content_ids=source_content_ids, - target_history_id=target_history_id, - target_history_ids=target_history_ids, - source_contents=source_contents, - target_histories=target_histories, - new_history_name=new_history_name, - done_msg=done_msg, - error_msg=error_msg, - refresh_frames=refresh_frames) + source_history=history, + current_history=current_history, + source_content_ids=source_content_ids, + target_history_id=target_history_id, + target_history_ids=target_history_ids, + source_contents=source_contents, + target_histories=target_histories, + new_history_name=new_history_name, + done_msg=done_msg, + error_msg=error_msg, + refresh_frames=refresh_frames) def _copy_datasets(self, trans, dataset_ids, target_histories, imported=False): """ Helper method for copying datasets. """ diff --git a/lib/galaxy/webapps/galaxy/controllers/external_service.py b/lib/galaxy/webapps/galaxy/controllers/external_service.py index 87fb112d969..bb78257241d 100644 --- a/lib/galaxy/webapps/galaxy/controllers/external_service.py +++ b/lib/galaxy/webapps/galaxy/controllers/external_service.py @@ -36,27 +36,27 @@ class ExternalServiceGrid(grids.Grid): default_filter = dict(deleted="False") columns = [ NameColumn("Name", - key="name", - link=(lambda item: iff(item.deleted, None, dict(operation="view", id=item.id))), - attach_popup=True, - filterable="advanced"), + key="name", + link=(lambda item: iff(item.deleted, None, dict(operation="view", id=item.id))), + attach_popup=True, + filterable="advanced"), grids.TextColumn("Description", - key='description', - filterable="advanced"), + key='description', + filterable="advanced"), ExternalServiceTypeColumn("External Service Type"), grids.GridColumn("Last Updated", - key="update_time", - format=time_ago), + key="update_time", + format=time_ago), grids.DeletedColumn("Deleted", - key="deleted", - visible=False, - filterable="advanced") + key="deleted", + visible=False, + filterable="advanced") ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [ grids.GridOperation("Edit", allow_multiple=False, condition=(lambda item: not item.deleted)), grids.GridOperation("Delete", allow_multiple=True, condition=(lambda item: not item.deleted)), @@ -108,9 +108,9 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): self.__save_external_service(trans, **kwd) message = 'The external_service has been created.' return trans.response.send_redirect(web.url_for(controller='external_service', - action='browse_external_services', - message=message, - status=status)) + action='browse_external_services', + message=message, + status=status)) elif external_service_type_id != 'none': # Form submission via refresh_on_change trans.app.external_service_types.reload(external_service_type_id) @@ -118,14 +118,14 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): widgets.extend(external_service_type.form_definition.get_widgets(trans.user, **kwd)) if error: return trans.response.send_redirect(web.url_for(controller='external_service', - action='browse_external_services', - message=message, - status='error')) + action='browse_external_services', + message=message, + status='error')) return trans.fill_template('/admin/external_service/create_external_service.mako', - widgets=widgets, - message=message, - status=status, - external_service_type=external_service_type) + widgets=widgets, + message=message, + status=status, + external_service_type=external_service_type) @web.expose @web.require_admin @@ -137,8 +137,8 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): return invalid_id_redirect(trans, 'external_service', external_service_id, 'external_service', action='browse_external_services') external_service_type = self.get_external_service_type(trans, external_service.external_service_type_id) return trans.fill_template('/admin/external_service/view_external_service.mako', - external_service=external_service, - external_service_type=external_service_type) + external_service=external_service, + external_service_type=external_service_type) @web.expose @web.require_admin @@ -159,11 +159,11 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): widgets.extend(external_service.form_definition.get_widgets(trans.user, external_service.form_values.content, **kwd)) external_service_type = self.get_external_service_type(trans, external_service.external_service_type_id) return trans.fill_template('/admin/external_service/edit_external_service.mako', - external_service=external_service, - widgets=widgets, - message=message, - status=status, - external_service_type=external_service_type) + external_service=external_service, + widgets=widgets, + message=message, + status=status, + external_service_type=external_service_type) def __save_external_service(self, trans, **kwd): # Here we save a newly created external_service or save changed @@ -209,9 +209,9 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): except: return invalid_id_redirect(trans, 'external_service', external_service_id, 'external_service', action='browse_external_services') vars = dict(id=trans.security.encode_id(external_service.form_definition.form_definition_current_id), - response_redirect=web.url_for(controller='external_service', - action='update_external_service_form_definition', - **kwd)) + response_redirect=web.url_for(controller='external_service', + action='update_external_service_form_definition', + **kwd)) return trans.response.send_redirect(web.url_for(controller='forms', action='edit_form_definition', **vars)) @web.expose @@ -228,10 +228,10 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): trans.sa_session.flush() message = "The form definition for the '%s' external service has been updated with your changes." % external_service.name return trans.response.send_redirect(web.url_for(controller='external_service', - action='edit_external_service', - message=message, - status='done', - **kwd)) + action='edit_external_service', + message=message, + status='done', + **kwd)) @web.expose @web.require_admin @@ -248,9 +248,9 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): trans.sa_session.flush() message = '%i external services has been deleted' % len(external_service_id_list) return trans.response.send_redirect(web.url_for(controller='external_service', - action='browse_external_services', - message=message, - status='done')) + action='browse_external_services', + message=message, + status='done')) @web.expose @web.require_admin @@ -268,9 +268,9 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): status = 'done' message = '%i external services have been undeleted' % len(external_service_id_list) return trans.response.send_redirect(web.url_for(controller='external_service', - action='browse_external_services', - message=message, - status=status)) + action='browse_external_services', + message=message, + status=status)) @web.expose @web.require_admin @@ -284,20 +284,20 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): status = 'done' message = 'Reloaded external service type: %s' % new_external_service_type.name external_service_type_select_field = self.__build_external_service_type_select_field(trans, - external_service_type_id, - refresh_on_change=False, - visible_external_service_types_only=False) + external_service_type_id, + refresh_on_change=False, + visible_external_service_types_only=False) if not trans.app.external_service_types.visible_external_service_types: message = 'There are no visible external service types in the external service types config file.' status = 'error' return trans.response.send_redirect(web.url_for(controller='external_service', - action='browse_external_services', - message=message, - status=status)) + action='browse_external_services', + message=message, + status=status)) return trans.fill_template('/admin/external_service/reload_external_service_types.mako', - external_service_type_select_field=external_service_type_select_field, - message=message, - status=status) + external_service_type_select_field=external_service_type_select_field, + message=message, + status=status) def get_external_service_type(self, trans, external_service_type_id, action='browse_external_services'): try: @@ -305,9 +305,9 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): except KeyError: message = 'Error in loading external service type: %s' % external_service_type_id return trans.response.send_redirect(web.url_for(controller='external_service', - action=action, - message=message, - status='error')) + action=action, + message=message, + status='error')) # ===== Methods for building SelectFields used on various admin_requests forms def __build_external_service_widgets(self, trans, external_service=None, **kwd): @@ -327,19 +327,19 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): else: seq_type = 'none' widgets = [dict(label='Name', - widget=TextField('external_service_name', 40, name), - helptext=''), - dict(label='Description', - widget=TextField('external_service_description', 40, description), - helptext=''), - dict(label='Version', - widget=TextField('external_service_version', 40, version), - helptext='')] + widget=TextField('external_service_name', 40, name), + helptext=''), + dict(label='Description', + widget=TextField('external_service_description', 40, description), + helptext=''), + dict(label='Version', + widget=TextField('external_service_version', 40, version), + helptext='')] # Do not show the external_service_type selectfield when editing a external_service if not external_service: widgets.append(dict(label='External service type', - widget=self.__build_external_service_type_select_field(trans, seq_type, visible_external_service_types_only=True), - helptext='')) + widget=self.__build_external_service_type_select_field(trans, seq_type, visible_external_service_types_only=True), + helptext='')) return widgets def __build_external_service_type_select_field(self, trans, selected_value, refresh_on_change=True, visible_external_service_types_only=False): @@ -351,8 +351,8 @@ class ExternalService(BaseUIController, UsesFormDefinitionsMixin): refresh_on_change_values = ['none'] refresh_on_change_values.extend([trans.security.encode_id(obj.id) for obj in objs_list]) select_external_service_type = SelectField('external_service_type_id', - refresh_on_change=refresh_on_change, - refresh_on_change_values=refresh_on_change_values) + refresh_on_change=refresh_on_change, + refresh_on_change_values=refresh_on_change_values) if selected_value == 'none': select_external_service_type.add_option('Select one', 'none', selected=True) else: diff --git a/lib/galaxy/webapps/galaxy/controllers/forms.py b/lib/galaxy/webapps/galaxy/controllers/forms.py index ebe7a440b11..cc4657f787e 100644 --- a/lib/galaxy/webapps/galaxy/controllers/forms.py +++ b/lib/galaxy/webapps/galaxy/controllers/forms.py @@ -37,27 +37,27 @@ class FormsGrid(grids.Grid): default_filter = dict(deleted="False") columns = [ NameColumn("Name", - key="name", - model_class=model.FormDefinition, - link=(lambda item: iff(item.deleted, None, dict(operation="view_latest_form_definition", - id=item.id))), - attach_popup=True, - filterable="advanced"), + key="name", + model_class=model.FormDefinition, + link=(lambda item: iff(item.deleted, None, dict(operation="view_latest_form_definition", + id=item.id))), + attach_popup=True, + filterable="advanced"), DescriptionColumn("Description", - key='desc', - model_class=model.FormDefinition, - filterable="advanced"), + key='desc', + model_class=model.FormDefinition, + filterable="advanced"), TypeColumn("Type"), grids.DeletedColumn("Deleted", - key="deleted", - visible=False, - filterable="advanced") + key="deleted", + visible=False, + filterable="advanced") ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [ grids.GridOperation("Edit", allow_multiple=False, condition=(lambda item: not item.deleted)), grids.GridOperation("Delete", allow_multiple=True, condition=(lambda item: not item.deleted)), @@ -74,14 +74,14 @@ class FormsGrid(grids.Grid): class Forms(BaseUIController): # Empty TextField empty_field = {'name': '', - 'label': '', - 'helptext': '', - 'visible': True, - 'required': False, - 'type': model.TextField.__name__, - 'selectlist': [], - 'layout': 'none', - 'default': ''} + 'label': '', + 'helptext': '', + 'visible': True, + 'required': False, + 'type': model.TextField.__name__, + 'selectlist': [], + 'layout': 'none', + 'default': ''} forms_grid = FormsGrid() @web.expose @@ -91,9 +91,9 @@ class Forms(BaseUIController): operation = kwd['operation'].lower() if not kwd.get('id', None): return trans.response.send_redirect(web.url_for(controller='forms', - action='browse_form_definitions', - status='error', - message="Invalid form ID")) + action='browse_form_definitions', + status='error', + message="Invalid form ID")) if operation == "view_latest_form_definition": return self.view_latest_form_definition(trans, **kwd) elif operation == "delete": @@ -114,11 +114,11 @@ class Forms(BaseUIController): .get(trans.security.decode_id(form_definition_current_id)) except: return trans.response.send_redirect(web.url_for(controller='forms', - action='browse_form_definitions', - message='Invalid form', - status='error')) + action='browse_form_definitions', + message='Invalid form', + status='error')) return trans.fill_template('/admin/forms/view_form_definition.mako', - form_definition=form_definition_current.latest_form) + form_definition=form_definition_current.latest_form) @web.expose @web.require_admin @@ -131,31 +131,31 @@ class Forms(BaseUIController): form_definition, message = self.save_form_definition(trans, form_definition_current_id=None, **kwd) if not form_definition: return trans.response.send_redirect(web.url_for(controller='forms', - action='create_form_definition', - message=message, - status='error', - name=util.restore_text(params.get('name', '')), - description=util.restore_text(params.get('description', '')))) + action='create_form_definition', + message=message, + status='error', + name=util.restore_text(params.get('name', '')), + description=util.restore_text(params.get('description', '')))) if self.__imported_from_file: return trans.response.send_redirect(web.url_for(controller='forms', - action='edit_form_definition', - id=trans.security.encode_id(form_definition.current.id))) + action='edit_form_definition', + id=trans.security.encode_id(form_definition.current.id))) else: return trans.response.send_redirect(web.url_for(controller='forms', - action='edit_form_definition', - id=trans.security.encode_id(form_definition.current.id), - add_field_button='Add field', - name=form_definition.name, - description=form_definition.desc, - form_type_select_field=form_definition.type)) + action='edit_form_definition', + id=trans.security.encode_id(form_definition.current.id), + add_field_button='Add field', + name=form_definition.name, + description=form_definition.desc, + form_type_select_field=form_definition.type)) inputs = [('Name', TextField('name', 40, util.restore_text(params.get('name', '')))), - ('Description', TextField('description', 40, util.restore_text(params.get('description', '')))), - ('Type', self.__build_form_types_widget(trans, selected=params.get('form_type', 'none'))), - ('Import from csv file (Optional)', FileField('file_data', 40, ''))] + ('Description', TextField('description', 40, util.restore_text(params.get('description', '')))), + ('Type', self.__build_form_types_widget(trans, selected=params.get('form_type', 'none'))), + ('Import from csv file (Optional)', FileField('file_data', 40, ''))] return trans.fill_template('/admin/forms/create_form.mako', - inputs=inputs, - message=message, - status=status) + inputs=inputs, + message=message, + status=status) @web.expose @web.require_admin @@ -173,9 +173,9 @@ class Forms(BaseUIController): form_definition_current = trans.sa_session.query(trans.app.model.FormDefinitionCurrent).get(trans.security.decode_id(kwd['id'])) except: return trans.response.send_redirect(web.url_for(controller='forms', - action='browse_form_definitions', - message='Invalid form', - status='error')) + action='browse_form_definitions', + message='Invalid form', + status='error')) form_definition = form_definition_current.latest_form # TODO: eliminate the need for this refresh param. if params.get('refresh', False): @@ -220,20 +220,20 @@ class Forms(BaseUIController): # Add SelectField option elif 'Add' in kwd.values(): current_form, status, message = self.__add_select_field_option(trans=trans, - current_form=current_form, - **kwd) + current_form=current_form, + **kwd) # Remove SelectField option elif 'Remove' in kwd.values(): current_form, status, message = self.__remove_select_field_option(trans=trans, - current_form=current_form, - **kwd) + current_form=current_form, + **kwd) return self.show_editable_form_definition(trans=trans, - form_definition=form_definition, - current_form=current_form, - message=message, - status=status, - response_redirect=response_redirect, - **kwd) + form_definition=form_definition, + current_form=current_form, + message=message, + status=status, + response_redirect=response_redirect, + **kwd) def get_saved_form(self, form_definition): ''' @@ -242,15 +242,15 @@ class Forms(BaseUIController): ''' if form_definition.type == form_definition.types.SAMPLE: return dict(name=form_definition.name, - desc=form_definition.desc, - type=form_definition.type, - layout=list(copy.deepcopy(form_definition.layout)), - fields=list(copy.deepcopy(form_definition.fields))) + desc=form_definition.desc, + type=form_definition.type, + layout=list(copy.deepcopy(form_definition.layout)), + fields=list(copy.deepcopy(form_definition.fields))) return dict(name=form_definition.name, - desc=form_definition.desc, - type=form_definition.type, - layout=[], - fields=list(copy.deepcopy(form_definition.fields))) + desc=form_definition.desc, + type=form_definition.type, + layout=[], + fields=list(copy.deepcopy(form_definition.fields))) def get_current_form(self, trans, **kwd): ''' @@ -318,11 +318,11 @@ class Forms(BaseUIController): current_form['layout'] = ['Layout1'] # create a new form definition form_definition = trans.app.model.FormDefinition(name=current_form['name'], - desc=current_form['desc'], - fields=current_form['fields'], - form_definition_current=None, - form_type=current_form['type'], - layout=current_form['layout']) + desc=current_form['desc'], + fields=current_form['fields'], + form_definition_current=None, + form_type=current_form['type'], + layout=current_form['layout']) if form_definition_current_id: # save changes to the existing form # change the pointer in the form_definition_current table to point # to this new record @@ -346,8 +346,8 @@ class Forms(BaseUIController): util.Params(kwd) # name & description form_details = [('Name', TextField('name', 40, current_form['name'])), - ('Description', TextField('description', 40, current_form['desc'])), - ('Type', HiddenField('form_type_select_field', current_form['type']))] + ('Description', TextField('description', 40, current_form['desc'])), + ('Type', HiddenField('form_type_select_field', current_form['type']))] form_layout = [] if current_form['type'] == trans.app.model.FormDefinition.types.SAMPLE: for index, layout_name in enumerate(current_form['layout']): @@ -356,21 +356,21 @@ class Forms(BaseUIController): field_details = [] for field_index, field in enumerate(current_form['fields']): field_widgets = self.build_form_definition_field_widgets(trans=trans, - layout_grids=current_form['layout'], - field_index=field_index, - field=field, - form_type=current_form['type']) + layout_grids=current_form['layout'], + field_index=field_index, + field=field, + form_type=current_form['type']) field_details.append(field_widgets) return trans.fill_template('/admin/forms/edit_form_definition.mako', - form_details=form_details, - field_details=field_details, - form_definition=form_definition, - field_types=trans.model.FormDefinition.supported_field_types, - message=message, - status=status, - current_form_type=current_form['type'], - layout_grids=form_layout, - response_redirect=response_redirect) + form_details=form_details, + field_details=field_details, + form_definition=form_definition, + field_types=trans.model.FormDefinition.supported_field_types, + message=message, + status=status, + current_form_type=current_form['type'], + layout_grids=form_layout, + response_redirect=response_redirect) @web.expose @web.require_admin @@ -381,16 +381,16 @@ class Forms(BaseUIController): form_definition_current = trans.sa_session.query(trans.app.model.FormDefinitionCurrent).get(trans.security.decode_id(id)) except: return trans.response.send_redirect(web.url_for(controller='forms', - action='browse_form_definitions', - message='Invalid form', - status='error')) + action='browse_form_definitions', + message='Invalid form', + status='error')) form_definition_current.deleted = True trans.sa_session.add(form_definition_current) trans.sa_session.flush() return trans.response.send_redirect(web.url_for(controller='forms', - action='browse_form_definitions', - message='%i forms have been deleted.' % len(id_list), - status='done')) + action='browse_form_definitions', + message='%i forms have been deleted.' % len(id_list), + status='done')) @web.expose @web.require_admin @@ -401,16 +401,16 @@ class Forms(BaseUIController): form_definition_current = trans.sa_session.query(trans.app.model.FormDefinitionCurrent).get(trans.security.decode_id(id)) except: return trans.response.send_redirect(web.url_for(controller='forms', - action='browse_form_definitions', - message='Invalid form', - status='error')) + action='browse_form_definitions', + message='Invalid form', + status='error')) form_definition_current.deleted = False trans.sa_session.add(form_definition_current) trans.sa_session.flush() return trans.response.send_redirect(web.url_for(controller='forms', - action='browse_form_definitions', - message='%i forms have been undeleted.' % len(id_list), - status='done')) + action='browse_form_definitions', + message='%i forms have been undeleted.' % len(id_list), + status='done')) def build_form_definition_field_widgets(self, trans, layout_grids, field_index, field, form_type): ''' @@ -423,8 +423,8 @@ class Forms(BaseUIController): helptext = TextField('field_helptext_' + str(field_index), 40, field['helptext']) # field type field_type_select_field = SelectField('field_type_' + str(field_index), - refresh_on_change=True, - refresh_on_change_values=[SelectField.__name__]) + refresh_on_change=True, + refresh_on_change_values=[SelectField.__name__]) # fill up the field type selectfield options field_type_options = [] # if the form is for defining samples, then use the sample field types @@ -433,26 +433,26 @@ class Forms(BaseUIController): for supported_field_type in trans.model.Sample.supported_field_types: if supported_field_type.__name__ == field['type']: field_type_select_field.add_option(supported_field_type.__name__, - supported_field_type.__name__, - selected=True) + supported_field_type.__name__, + selected=True) if supported_field_type.__name__ == SelectField.__name__: # when field type is Selectfield, add option Textfields field_type_options = self.__build_field_type_select_field_options(field, field_index) else: field_type_select_field.add_option(supported_field_type.__name__, - supported_field_type.__name__) + supported_field_type.__name__) else: for supported_field_type in trans.model.FormDefinition.supported_field_types: if supported_field_type.__name__ == field['type']: field_type_select_field.add_option(supported_field_type.__name__, - supported_field_type.__name__, - selected=True) + supported_field_type.__name__, + selected=True) if supported_field_type.__name__ == SelectField.__name__: # when field type is Selectfield, add option Textfields field_type_options = self.__build_field_type_select_field_options(field, field_index) else: field_type_select_field.add_option(supported_field_type.__name__, - supported_field_type.__name__) + supported_field_type.__name__) # required/optional radio button required = SelectField('field_required_' + str(field_index), display='radio') if field['required'] == 'required': @@ -472,25 +472,25 @@ class Forms(BaseUIController): layout_select_field.add_option("%i. %s" % (index + 1, grid_name), index, selected=grid_selected) # default value default_value = TextField('field_default_' + str(field_index), - 40, - field.get('default', '')) + 40, + field.get('default', '')) # field name name = TextField('field_name_' + str(field_index), 40, field['name']) name_helptext = "The field name must be unique for each field and must contain only alphanumeric characters and underscore ." if layout_grids and form_type == trans.model.FormDefinition.types.SAMPLE: return [('Field label', label), - ('Help text', helptext), - ('Type', field_type_select_field, "Add options below", field_type_options), - ('Default value', default_value), - ('', required), - ('Select the grid layout to place this field', layout_select_field), - ('Field name', name, name_helptext)] + ('Help text', helptext), + ('Type', field_type_select_field, "Add options below", field_type_options), + ('Default value', default_value), + ('', required), + ('Select the grid layout to place this field', layout_select_field), + ('Field name', name, name_helptext)] return [('Field label', label), - ('Help text', helptext), - ('Type', field_type_select_field, "Add options below", field_type_options), - ('Default value', default_value), - ('', required), - ('Field name', name, name_helptext)] + ('Help text', helptext), + ('Type', field_type_select_field, "Add options below", field_type_options), + ('Default value', default_value), + ('', required), + ('Field name', name, name_helptext)] def __build_field_type_select_field_options(self, field, field_index): ''' @@ -584,22 +584,22 @@ class Forms(BaseUIController): if field_type == 'SelectField': options = self.__get_select_field_options(index, **kwd) return {'name': name, - 'label': label, - 'helptext': helptext, - 'visible': True, - 'required': required, - 'type': field_type, - 'selectlist': options, - 'layout': layout, - 'default': default} + 'label': label, + 'helptext': helptext, + 'visible': True, + 'required': required, + 'type': field_type, + 'selectlist': options, + 'layout': layout, + 'default': default} return {'name': name, - 'label': label, - 'helptext': helptext, - 'visible': True, - 'required': required, - 'type': field_type, - 'layout': layout, - 'default': default} + 'label': label, + 'helptext': helptext, + 'visible': True, + 'required': required, + 'type': field_type, + 'layout': layout, + 'default': default} def __import_fields(self, trans, csv_file, form_type): ''' @@ -618,30 +618,30 @@ class Forms(BaseUIController): options = row[5].split(',') if len(row) >= 8: fields.append({'name': '%i_field_name' % index, - 'label': row[0], - 'helptext': row[1], - 'visible': row[2], - 'required': row[3], - 'type': row[4], - 'selectlist': options, - 'layout': row[6], - 'default': row[7]}) + 'label': row[0], + 'helptext': row[1], + 'visible': row[2], + 'required': row[3], + 'type': row[4], + 'selectlist': options, + 'layout': row[6], + 'default': row[7]}) layouts.add(row[6]) else: fields.append({'name': '%i_field_name' % index, - 'label': row[0], - 'helptext': row[1], - 'visible': row[2], - 'required': row[3], - 'type': row[4], - 'selectlist': options, - 'default': row[6]}) + 'label': row[0], + 'helptext': row[1], + 'visible': row[2], + 'required': row[3], + 'type': row[4], + 'selectlist': options, + 'default': row[6]}) index = index + 1 except: return trans.response.send_redirect(web.url_for(controller='forms', - action='create_form', - status='error', - message='Error in importing %s file' % csv_file.file)) + action='create_form', + status='error', + message='Error in importing %s file' % csv_file.file)) self.__imported_from_file = True return fields, list(layouts) diff --git a/lib/galaxy/webapps/galaxy/controllers/history.py b/lib/galaxy/webapps/galaxy/controllers/history.py index 383b3d5d8a0..0e4847f4bfb 100644 --- a/lib/galaxy/webapps/galaxy/controllers/history.py +++ b/lib/galaxy/webapps/galaxy/controllers/history.py @@ -43,13 +43,13 @@ class HistoryListGrid(grids.Grid): # Get dataset counts for each state in a state-count dictionary. state_counts = dict((state, count) for state, count in - trans.sa_session.query(model.Dataset.state, func.count(model.Dataset.state)) - .join(model.HistoryDatasetAssociation) - .group_by(model.Dataset.state) - .filter(model.HistoryDatasetAssociation.history_id == history.id, - model.HistoryDatasetAssociation.visible == true(), - model.HistoryDatasetAssociation.deleted == false(), - model.Dataset.state.in_(states_to_show)) + trans.sa_session.query(model.Dataset.state, func.count(model.Dataset.state)) + .join(model.HistoryDatasetAssociation) + .group_by(model.Dataset.state) + .filter(model.HistoryDatasetAssociation.history_id == history.id, + model.HistoryDatasetAssociation.visible == true(), + model.HistoryDatasetAssociation.deleted == false(), + model.Dataset.state.in_(states_to_show)) ) # Create HTML. @@ -92,7 +92,7 @@ class HistoryListGrid(grids.Grid): HistoryListNameColumn("Name", key="name", attach_popup=True, filterable="advanced"), DatasetsByStateColumn("Datasets", key="datasets_by_state", sortable=False, nowrap=True), grids.IndividualTagsColumn("Tags", key="tags", model_tag_association_class=model.HistoryTagAssociation, - filterable="advanced", grid_name="HistoryListGrid"), + filterable="advanced", grid_name="HistoryListGrid"), grids.SharingStatusColumn("Sharing", key="sharing", filterable="advanced", sortable=False), grids.GridColumn("Size on Disk", key="disk_size", format=nice_size, sortable=False), grids.GridColumn("Created", key="create_time", format=time_ago), @@ -213,7 +213,7 @@ class HistoryAllPublishedGrid(grids.Grid): class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesItemRatings, - ExportsHistoryMixin, ImportsHistoryMixin): + ExportsHistoryMixin, ImportsHistoryMixin): def __init__(self, app): super(HistoryController, self).__init__(app) @@ -437,7 +437,7 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt history = self.history_manager.by_id(self.decode_id(id)) # Current user is the user with which the histories were shared association = (trans.sa_session.query(trans.app.model.HistoryUserShareAssociation) - .filter_by(user=trans.user, history=history).one()) + .filter_by(user=trans.user, history=history).one()) trans.sa_session.delete(association) trans.sa_session.flush() message = "Unshared %d shared histories" % len(ids) @@ -496,8 +496,8 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt assert history # TODO: formalize to trans.show_error assert (history.user and (history.user.id == trans.user.id) or - (history.id == trans.history.id) or - (trans.user_is_admin())) + (history.id == trans.history.id) or + (trans.user_is_admin())) # Resolve jobs and workflow invocations for the datasets in the history # items is filled with items (hdas, jobs, or workflows) that go at the # top level @@ -614,7 +614,7 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt error_msg = 'You do not have permission to view this history.' else: error_msg = ('An error occurred getting the history data from the server. ' + - 'Please contact a Galaxy administrator if the problem persists.') + 'Please contact a Galaxy administrator if the problem persists.') return trans.show_error_message(error_msg, use_panels=use_panels) return trans.fill_template_mako("history/view.mako", @@ -684,7 +684,7 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt ids = galaxy.util.listify(id) if ids: histories = [self.history_manager.get_accessible(self.decode_id(history_id), trans.user, current_history=trans.history) - for history_id in ids] + for history_id in ids] elif not histories: histories = [trans.history] @@ -721,7 +721,7 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt user_email = escape(user.email) message = "History '%s' does not seem to be shared with user '%s'" % (history_name, user_email) return trans.fill_template('/sharing_base.mako', controller_list='histories', item=history, - message=message, status='error', use_panels=True) + message=message, status='error', use_panels=True) # Legacy issue: histories made accessible before recent updates may not have a slug. Create slug for any histories that need them. for history in histories: @@ -756,9 +756,9 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt history = self.history_manager.get_owned(history_id, trans.user, current_history=trans.history) histories.append(history) return trans.fill_template("/history/share.mako", - histories=histories, - email=email, - send_to_err=send_to_err) + histories=histories, + email=email, + send_to_err=send_to_err) histories = self._get_histories(trans, id) send_to_users, send_to_err = self._get_users(trans, user, email) @@ -766,9 +766,9 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt if not send_to_err: send_to_err += "%s is not a valid Galaxy user. %s" % (email, err_msg) return trans.fill_template("/history/share.mako", - histories=histories, - email=email, - send_to_err=send_to_err) + histories=histories, + email=email, + send_to_err=send_to_err) if params.get('share_button', False): @@ -780,18 +780,18 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt if cannot_change and not no_change_needed and not can_change: send_to_err = "The histories you are sharing do not contain any datasets that can be accessed by the users with which you are sharing." return trans.fill_template("/history/share.mako", - histories=histories, - email=email, - send_to_err=send_to_err) + histories=histories, + email=email, + send_to_err=send_to_err) if can_change or cannot_change: return trans.fill_template("/history/share.mako", - histories=histories, - email=email, - send_to_err=send_to_err, - can_change=can_change, - cannot_change=cannot_change, - no_change_needed=unique_no_change_needed) + histories=histories, + email=email, + send_to_err=send_to_err, + can_change=can_change, + cannot_change=cannot_change, + no_change_needed=unique_no_change_needed) if no_change_needed: return self._share_histories(trans, user, send_to_err, histories=no_change_needed) @@ -801,9 +801,9 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt send_to_err = "You cannot share an empty history. " return trans.fill_template("/history/share.mako", - histories=histories, - email=email, - send_to_err=send_to_err) + histories=histories, + email=email, + send_to_err=send_to_err) @web.expose def adjust_hidden(self, trans, id=None, **kwd): @@ -827,11 +827,11 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt else: err_msg = "Select an action. " return trans.response.send_redirect(url_for(controller='history', - action='share', - id=id, - email=email, - err_msg=err_msg, - share_button=True)) + action='share', + id=id, + email=email, + err_msg=err_msg, + share_button=True)) user = trans.get_user() user_roles = user.all_roles() histories = self._get_histories(trans, id) @@ -858,7 +858,7 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt # Make sure the current history has not already been shared with the current send_to_user if trans.sa_session.query(trans.app.model.HistoryUserShareAssociation) \ .filter(and_(trans.app.model.HistoryUserShareAssociation.table.c.user_id == send_to_user.id, - trans.app.model.HistoryUserShareAssociation.table.c.history_id == history.id)) \ + trans.app.model.HistoryUserShareAssociation.table.c.history_id == history.id)) \ .count() > 0: send_to_err += "History (%s) already shared with user (%s)" % (history.name, send_to_user.email) else: @@ -942,7 +942,7 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt # Make sure the current history has not already been shared with the current send_to_user if trans.sa_session.query(trans.app.model.HistoryUserShareAssociation) \ .filter(and_(trans.app.model.HistoryUserShareAssociation.table.c.user_id == send_to_user.id, - trans.app.model.HistoryUserShareAssociation.table.c.history_id == history.id)) \ + trans.app.model.HistoryUserShareAssociation.table.c.history_id == history.id)) \ .count() > 0: send_to_err += "History (%s) already shared with user (%s)" % (history.name, send_to_user.email) else: @@ -975,7 +975,7 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt # Make sure the current history has not already been shared with the current send_to_user if trans.sa_session.query(trans.app.model.HistoryUserShareAssociation) \ .filter(and_(trans.app.model.HistoryUserShareAssociation.table.c.user_id == send_to_user.id, - trans.app.model.HistoryUserShareAssociation.table.c.history_id == history.id)) \ + trans.app.model.HistoryUserShareAssociation.table.c.history_id == history.id)) \ .count() > 0: send_to_err += "History (%s) already shared with user (%s)" % (history.name, send_to_user.email) else: @@ -1193,18 +1193,18 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt if preview: url = url_for(controller='history', action="export_archive", id=id, qualified=True) return trans.show_message("History Ready: '%(n)s'. Use this link to download " - "the archive or import it to another Galaxy server: " - "%(u)s" % ({'n': history.name, 'u': url})) + "the archive or import it to another Galaxy server: " + "%(u)s" % ({'n': history.name, 'u': url})) else: return self.serve_ready_history_export(trans, jeha) elif jeha.preparing: return trans.show_message("Still exporting history %(n)s; please check back soon. Link: %(s)s" - % ({'n': history.name, 's': url_for(controller='history', action="export_archive", id=id, qualified=True)})) + % ({'n': history.name, 's': url_for(controller='history', action="export_archive", id=id, qualified=True)})) self.queue_history_export(trans, history, gzip=gzip, include_hidden=include_hidden, include_deleted=include_deleted) url = url_for(controller='history', action="export_archive", id=id, qualified=True) return trans.show_message("Exporting History '%(n)s'. You will need to make this history 'accessible' in order to import this to another galaxy sever.
" - "Use this link to download the archive or import it to another Galaxy server: " - "%(u)s" % ({'share': url_for(controller='history', action='sharing'), 'n': history.name, 'u': url})) + "Use this link to download the archive or import it to another Galaxy server: " + "%(u)s" % ({'share': url_for(controller='history', action='sharing'), 'n': history.name, 'u': url})) # TODO: used in this file and index.mako @web.expose diff --git a/lib/galaxy/webapps/galaxy/controllers/library.py b/lib/galaxy/webapps/galaxy/controllers/library.py index 6f5af344926..ca101512e54 100644 --- a/lib/galaxy/webapps/galaxy/controllers/library.py +++ b/lib/galaxy/webapps/galaxy/controllers/library.py @@ -32,20 +32,20 @@ class LibraryListGrid(grids.Grid): default_sort_key = "name" columns = [ NameColumn("Data library name", - key="name", - link=(lambda library: dict(operation="browse", id=library.id)), - attach_popup=False, - filterable="advanced"), + key="name", + link=(lambda library: dict(operation="browse", id=library.id)), + attach_popup=False, + filterable="advanced"), DescriptionColumn("Data library description", - key="description", - attach_popup=False, - filterable="advanced"), + key="description", + attach_popup=False, + filterable="advanced"), ] columns.append(grids.MulticolFilterColumn("search dataset name, info, message, dbkey", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) standard_filters = [] default_filter = dict(name="All", description="All", deleted="False", purged="False") num_rows_per_page = 50 @@ -59,11 +59,11 @@ class LibraryListGrid(grids.Grid): current_user_role_ids = [role.id for role in trans.get_current_user_roles()] library_access_action = trans.app.security_agent.permitted_actions.LIBRARY_ACCESS.action restricted_library_ids = [lp.library_id for lp in trans.sa_session.query(trans.model.LibraryPermissions) - .filter(trans.model.LibraryPermissions.table.c.action == library_access_action) - .distinct()] + .filter(trans.model.LibraryPermissions.table.c.action == library_access_action) + .distinct()] accessible_restricted_library_ids = [lp.library_id for lp in trans.sa_session.query(trans.model.LibraryPermissions) - .filter(and_(trans.model.LibraryPermissions.table.c.action == library_access_action, - trans.model.LibraryPermissions.table.c.role_id.in_(current_user_role_ids)))] + .filter(and_(trans.model.LibraryPermissions.table.c.action == library_access_action, + trans.model.LibraryPermissions.table.c.role_id.in_(current_user_role_ids)))] if not trans.user: # Filter to get only public libraries, a library whose id # is not in restricted_library_ids is a public library @@ -72,7 +72,7 @@ class LibraryListGrid(grids.Grid): # Filter to get libraries accessible by the current user, get both # public libraries and restricted libraries accessible by the current user. return query.filter(or_(not_(trans.model.Library.table.c.id.in_(restricted_library_ids)), - trans.model.Library.table.c.id.in_(accessible_restricted_library_ids))) + trans.model.Library.table.c.id.in_(accessible_restricted_library_ids))) class Library(BaseUIController): @@ -86,7 +86,7 @@ class Library(BaseUIController): 'jscript' : "galaxy.library" } return trans.fill_template('galaxy.panels.mako', - config={ + config={ 'title': 'Data Libraries', 'app': app}) @@ -96,9 +96,9 @@ class Library(BaseUIController): status = escape(kwd.get('status', 'done')) default_action = kwd.get('default_action', None) return trans.fill_template("/library/index.mako", - default_action=default_action, - message=message, - status=status) + default_action=default_action, + message=message, + status=status) @web.expose def browse_libraries(self, trans, **kwd): @@ -106,9 +106,9 @@ class Library(BaseUIController): operation = kwd['operation'].lower() if operation == "browse": return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller='library', - **kwd)) + action='browse_library', + cntrller='library', + **kwd)) if 'f-free-text-search' in kwd: search_term = kwd["f-free-text-search"] if trans.app.config.enable_lucene_library_search: @@ -127,14 +127,14 @@ class Library(BaseUIController): show_deleted = util.string_as_bool(kwd.get('show_deleted', False)) use_panels = util.string_as_bool(kwd.get('use_panels', False)) return trans.fill_template('/library/common/library_dataset_search_results.mako', - cntrller='library', - search_term=search_term, - comptypes=comptypes, - lddas=lddas, - current_user_roles=trans.get_current_user_roles(), - show_deleted=show_deleted, - use_panels=use_panels, - message=message, - status=status) + cntrller='library', + search_term=search_term, + comptypes=comptypes, + lddas=lddas, + current_user_roles=trans.get_current_user_roles(), + show_deleted=show_deleted, + use_panels=use_panels, + message=message, + status=status) # Render the list view return self.library_list_grid(trans, **kwd) diff --git a/lib/galaxy/webapps/galaxy/controllers/library_admin.py b/lib/galaxy/webapps/galaxy/controllers/library_admin.py index 0d369a5c4de..922e0da2cd5 100644 --- a/lib/galaxy/webapps/galaxy/controllers/library_admin.py +++ b/lib/galaxy/webapps/galaxy/controllers/library_admin.py @@ -37,14 +37,14 @@ class LibraryListGrid(grids.Grid): default_sort_key = "name" columns = [ NameColumn("Data library name", - key="name", - link=(lambda library: dict(operation="browse", id=library.id)), - attach_popup=False, - filterable="advanced"), + key="name", + link=(lambda library: dict(operation="browse", id=library.id)), + attach_popup=False, + filterable="advanced"), DescriptionColumn("Data library description", - key="description", - attach_popup=False, - filterable="advanced"), + key="description", + attach_popup=False, + filterable="advanced"), grids.GridColumn("Created", key="create_time", format=time_ago), grids.GridColumn("Last Updated", key="update_time", format=time_ago), StatusColumn("Status", attach_popup=False), @@ -52,10 +52,10 @@ class LibraryListGrid(grids.Grid): grids.DeletedColumn("Deleted", key="deleted", visible=False, filterable="advanced") ] columns.append(grids.MulticolFilterColumn("search dataset name, info, message, dbkey", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) global_actions = [ grids.GridAction("Create new data library", dict(controller='library_admin', action='create_library')) ] @@ -82,9 +82,9 @@ class LibraryAdmin(BaseUIController): operation = kwd['operation'].lower() if operation == "browse": return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller='library_admin', - **kwd)) + action='browse_library', + cntrller='library_admin', + **kwd)) elif operation == "delete": return self.delete_library(trans, **kwd) elif operation == "undelete": @@ -97,30 +97,30 @@ class LibraryAdmin(BaseUIController): # enabling one or more of them to be undeleted. self.library_list_grid.operations = [ grids.GridOperation("Undelete", - condition=(lambda item: item.deleted), - allow_multiple=True, - allow_popup=False, - url_args=dict(webapp="galaxy")) + condition=(lambda item: item.deleted), + allow_multiple=True, + allow_popup=False, + url_args=dict(webapp="galaxy")) ] else: # We're viewing active data libraries, so add a GridOperation # enabling one or more of them to be deleted. self.library_list_grid.operations = [ grids.GridOperation("Delete", - condition=(lambda item: not item.deleted), - allow_multiple=True, - allow_popup=False, - url_args=dict(webapp="galaxy")) + condition=(lambda item: not item.deleted), + allow_multiple=True, + allow_popup=False, + url_args=dict(webapp="galaxy")) ] else: # We're viewing active data libraries, so add a GridOperation # enabling one or more of them to be deleted. self.library_list_grid.operations = [ grids.GridOperation("Delete", - condition=(lambda item: not item.deleted), - allow_multiple=True, - allow_popup=False, - url_args=dict(webapp="galaxy")) + condition=(lambda item: not item.deleted), + allow_multiple=True, + allow_popup=False, + url_args=dict(webapp="galaxy")) ] if 'f-free-text-search' in kwd: search_term = kwd["f-free-text-search"] @@ -139,14 +139,14 @@ class LibraryAdmin(BaseUIController): show_deleted = galaxy.util.string_as_bool(kwd.get('show_deleted', False)) use_panels = galaxy.util.string_as_bool(kwd.get('use_panels', False)) return trans.fill_template('/library/common/library_dataset_search_results.mako', - cntrller='library_admin', - search_term=search_term, - comptypes=comptypes, - lddas=lddas, - show_deleted=show_deleted, - use_panels=use_panels, - message=escape(message), - status=escape(status)) + cntrller='library_admin', + search_term=search_term, + comptypes=comptypes, + lddas=lddas, + show_deleted=show_deleted, + use_panels=use_panels, + message=escape(message), + status=escape(status)) # Render the list view return self.library_list_grid(trans, **kwd) @@ -168,11 +168,11 @@ class LibraryAdmin(BaseUIController): trans.sa_session.flush() message = "The new library named '%s' has been created" % escape(library.name) return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller='library_admin', - id=trans.security.encode_id(library.id), - message=message, - status='done')) + action='browse_library', + cntrller='library_admin', + id=trans.security.encode_id(library.id), + message=message, + status='done')) return trans.fill_template('/admin/library/new_library.mako', message=message, status=escape(status)) @web.expose @@ -180,22 +180,22 @@ class LibraryAdmin(BaseUIController): def delete_library(self, trans, id, **kwd): # Used by the Delete grid operation in the LibrarylistGrid. return trans.response.send_redirect(web.url_for(controller='library_common', - action='delete_library_item', - cntrller='library_admin', - library_id=id, - item_id=id, - item_type='library')) + action='delete_library_item', + cntrller='library_admin', + library_id=id, + item_id=id, + item_type='library')) @web.expose @web.require_admin def undelete_library(self, trans, id, **kwd): # Used by the Undelete grid operation in the LibrarylistGrid. return trans.response.send_redirect(web.url_for(controller='library_common', - action='undelete_library_item', - cntrller='library_admin', - library_id=id, - item_id=id, - item_type='library')) + action='undelete_library_item', + cntrller='library_admin', + library_id=id, + item_id=id, + item_type='library')) @web.expose @web.require_admin @@ -232,9 +232,9 @@ class LibraryAdmin(BaseUIController): if not library.deleted: message = "Library '%s' has not been marked deleted, so it cannot be purged" % escape(library.name) return trans.response.send_redirect(web.url_for(controller='library_admin', - action='browse_libraries', - message=message, - status='error')) + action='browse_libraries', + message=message, + status='error')) else: purge_folder(library.root_folder) library.purged = True @@ -242,6 +242,6 @@ class LibraryAdmin(BaseUIController): trans.sa_session.flush() message = "Library '%s' and all of its contents have been purged, datasets will be removed from disk via the cleanup_datasets script" % escape(library.name) return trans.response.send_redirect(web.url_for(controller='library_admin', - action='browse_libraries', - message=message, - status='done')) + action='browse_libraries', + message=message, + status='done')) diff --git a/lib/galaxy/webapps/galaxy/controllers/library_common.py b/lib/galaxy/webapps/galaxy/controllers/library_common.py index 48f6947656f..935a3aa6e58 100644 --- a/lib/galaxy/webapps/galaxy/controllers/library_common.py +++ b/lib/galaxy/webapps/galaxy/controllers/library_common.py @@ -130,39 +130,39 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta try: if self.app.config.new_lib_browse: return trans.fill_template('library/common/browse_library_opt.mako', - cntrller=cntrller, - use_panels=use_panels, - library=library, - created_ldda_ids=created_ldda_ids, - hidden_folder_ids=hidden_folder_ids, - show_deleted=show_deleted, - comptypes=comptypes, - current_user_roles=current_user_roles, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + library=library, + created_ldda_ids=created_ldda_ids, + hidden_folder_ids=hidden_folder_ids, + show_deleted=show_deleted, + comptypes=comptypes, + current_user_roles=current_user_roles, + message=escape(message), + status=escape(status)) else: return trans.fill_template('library/common/browse_library.mako', - cntrller=cntrller, - use_panels=use_panels, - library=library, - created_ldda_ids=created_ldda_ids, - hidden_folder_ids=hidden_folder_ids, - show_deleted=show_deleted, - comptypes=comptypes, - current_user_roles=current_user_roles, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + library=library, + created_ldda_ids=created_ldda_ids, + hidden_folder_ids=hidden_folder_ids, + show_deleted=show_deleted, + comptypes=comptypes, + current_user_roles=current_user_roles, + message=escape(message), + status=escape(status)) except Exception as e: message = 'Error attempting to display contents of library (%s): %s.' % (escape(str(library.name)), str(e)) status = 'error' default_action = kwd.get('default_action', None) return trans.response.send_redirect(web.url_for(use_panels=use_panels, - controller=cntrller, - action='browse_libraries', - default_action=default_action, - message=message, - status=status)) + controller=cntrller, + action='browse_libraries', + default_action=default_action, + message=message, + status=status)) @web.expose def library_info(self, trans, cntrller, **kwd): @@ -199,29 +199,29 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta trans.sa_session.flush() message = "Information updated for library '%s'." % library.name return trans.response.send_redirect(web.url_for(controller='library_common', - action='library_info', - cntrller=cntrller, - use_panels=use_panels, - id=trans.security.encode_id(library.id), - show_deleted=show_deleted, - message=message, - status='done')) + action='library_info', + cntrller=cntrller, + use_panels=use_panels, + id=trans.security.encode_id(library.id), + show_deleted=show_deleted, + message=message, + status='done')) # See if we have any associated templates info_association, inherited = library.get_info_association() widgets = library.get_template_widgets(trans) widget_fields_have_contents = self.widget_fields_have_contents(widgets) return trans.fill_template('/library/common/library_info.mako', - cntrller=cntrller, - use_panels=use_panels, - library=library, - widgets=widgets, - widget_fields_have_contents=widget_fields_have_contents, - current_user_roles=current_user_roles, - show_deleted=show_deleted, - info_association=info_association, - inherited=inherited, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + library=library, + widgets=widgets, + widget_fields_have_contents=widget_fields_have_contents, + current_user_roles=current_user_roles, + show_deleted=show_deleted, + info_association=info_association, + inherited=inherited, + message=escape(message), + status=escape(status)) @web.expose def library_permissions(self, trans, cntrller, **kwd): @@ -250,25 +250,25 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta trans.app.security_agent.copy_library_permissions(trans, library, library.root_folder) message = "Permissions updated for library '%s'." % escape(library.name) return trans.response.send_redirect(web.url_for(controller='library_common', - action='library_permissions', - cntrller=cntrller, - use_panels=use_panels, - id=trans.security.encode_id(library.id), - show_deleted=show_deleted, - message=message, - status='done')) + action='library_permissions', + cntrller=cntrller, + use_panels=use_panels, + id=trans.security.encode_id(library.id), + show_deleted=show_deleted, + message=message, + status='done')) roles = trans.app.security_agent.get_legitimate_roles(trans, library, cntrller) all_roles = trans.app.security_agent.get_all_roles(trans, cntrller) return trans.fill_template('/library/common/library_permissions.mako', - cntrller=cntrller, - use_panels=use_panels, - library=library, - current_user_roles=current_user_roles, - roles=roles, - all_roles=all_roles, - show_deleted=show_deleted, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + library=library, + current_user_roles=current_user_roles, + roles=roles, + all_roles=all_roles, + show_deleted=show_deleted, + message=escape(message), + status=escape(status)) @web.expose def create_folder(self, trans, cntrller, parent_id, library_id, **kwd): @@ -288,7 +288,7 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta self._check_add(trans, cntrller, is_admin, parent_folder, current_user_roles, use_panels, library_id, show_deleted) if kwd.get('new_folder_button', False) or cntrller == 'api': new_folder = trans.app.model.LibraryFolder(name=kwd.get('name', ''), - description=kwd.get('description', '')) + description=kwd.get('description', '')) # We are associating the last used genome build with folders, so we will always # initialize a new folder with the first dbkey in genome builds list which is currently # ? unspecified (?) @@ -311,39 +311,39 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta message = "The new folder named '%s' has been added to the data library. " % escape(new_folder.name) message += "Additional information about this folder may be added using the inherited template." return trans.fill_template('/library/common/folder_info.mako', - cntrller=cntrller, - use_panels=use_panels, - folder=new_folder, - library_id=library_id, - widgets=widgets, - current_user_roles=current_user_roles, - show_deleted=show_deleted, - info_association=info_association, - inherited=inherited, - message=escape(message), - status='done') + cntrller=cntrller, + use_panels=use_panels, + folder=new_folder, + library_id=library_id, + widgets=widgets, + current_user_roles=current_user_roles, + show_deleted=show_deleted, + info_association=info_association, + inherited=inherited, + message=escape(message), + status='done') # If not inheritable info_association, redirect to the library. message = "The new folder named '%s' has been added to the data library." % escape(new_folder.name) # SM: This is the second place where the API controller would # reference the library id: return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - use_panels=use_panels, - id=library_id, - show_deleted=show_deleted, - message=message, - status='done')) + action='browse_library', + cntrller=cntrller, + use_panels=use_panels, + id=library_id, + show_deleted=show_deleted, + message=message, + status='done')) # We do not render any template widgets on creation pages since saving the info_association # cannot occur before the associated item is saved. return trans.fill_template('/library/common/new_folder.mako', - cntrller=cntrller, - use_panels=use_panels, - library_id=library_id, - folder=parent_folder, - show_deleted=show_deleted, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + library_id=library_id, + folder=parent_folder, + show_deleted=show_deleted, + message=escape(message), + status=escape(status)) @web.expose def folder_info(self, trans, cntrller, id, library_id, **kwd): @@ -372,14 +372,14 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta trans.sa_session.flush() message = "Information updated for folder '%s'." % escape(folder.name) return trans.response.send_redirect(web.url_for(controller='library_common', - action='folder_info', - cntrller=cntrller, - use_panels=use_panels, - id=id, - library_id=library_id, - show_deleted=show_deleted, - message=message, - status='done')) + action='folder_info', + cntrller=cntrller, + use_panels=use_panels, + id=id, + library_id=library_id, + show_deleted=show_deleted, + message=message, + status='done')) # See if we have any associated templates widgets = [] widget_fields_have_contents = False @@ -388,18 +388,18 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta widgets = folder.get_template_widgets(trans) widget_fields_have_contents = self.widget_fields_have_contents(widgets) return trans.fill_template('/library/common/folder_info.mako', - cntrller=cntrller, - use_panels=use_panels, - folder=folder, - library_id=library_id, - widgets=widgets, - widget_fields_have_contents=widget_fields_have_contents, - current_user_roles=current_user_roles, - show_deleted=show_deleted, - info_association=info_association, - inherited=inherited, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + folder=folder, + library_id=library_id, + widgets=widgets, + widget_fields_have_contents=widget_fields_have_contents, + current_user_roles=current_user_roles, + show_deleted=show_deleted, + info_association=info_association, + inherited=inherited, + message=escape(message), + status=escape(status)) @web.expose def folder_permissions(self, trans, cntrller, id, library_id, **kwd): @@ -428,28 +428,28 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta trans.sa_session.refresh(folder) message = "Permissions updated for folder '%s'." % escape(folder.name) return trans.response.send_redirect(web.url_for(controller='library_common', - action='folder_permissions', - cntrller=cntrller, - use_panels=use_panels, - id=trans.security.encode_id(folder.id), - library_id=library_id, - show_deleted=show_deleted, - message=message, - status='done')) + action='folder_permissions', + cntrller=cntrller, + use_panels=use_panels, + id=trans.security.encode_id(folder.id), + library_id=library_id, + show_deleted=show_deleted, + message=message, + status='done')) # If the library is public all roles are legitimate, but if the library # is restricted, only those roles associated with the LIBRARY_ACCESS # permission are legitimate. roles = trans.app.security_agent.get_legitimate_roles(trans, folder.parent_library, cntrller) return trans.fill_template('/library/common/folder_permissions.mako', - cntrller=cntrller, - use_panels=use_panels, - folder=folder, - library_id=library_id, - current_user_roles=current_user_roles, - roles=roles, - show_deleted=show_deleted, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + folder=folder, + library_id=library_id, + current_user_roles=current_user_roles, + roles=roles, + show_deleted=show_deleted, + message=escape(message), + status=escape(status)) @web.expose def ldda_edit_info(self, trans, cntrller, library_id, folder_id, id, **kwd): @@ -589,18 +589,18 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta # sets it properly in the metadata ldda.metadata.dbkey = ldda.dbkey return trans.fill_template("/library/common/ldda_edit_info.mako", - cntrller=cntrller, - use_panels=use_panels, - ldda=ldda, - library_id=library_id, - file_formats=file_formats, - widgets=widgets, - current_user_roles=current_user_roles, - show_deleted=show_deleted, - info_association=info_association, - inherited=inherited, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + ldda=ldda, + library_id=library_id, + file_formats=file_formats, + widgets=widgets, + current_user_roles=current_user_roles, + show_deleted=show_deleted, + info_association=info_association, + inherited=inherited, + message=escape(message), + status=escape(status)) @web.expose def ldda_info(self, trans, cntrller, library_id, folder_id, id, **kwd): @@ -617,12 +617,12 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta # Get all associated hdas and lddas that use the same disk file. associated_hdas = trans.sa_session.query(trans.model.HistoryDatasetAssociation) \ .filter(and_(trans.model.HistoryDatasetAssociation.deleted == false(), - trans.model.HistoryDatasetAssociation.dataset_id == ldda.dataset_id)) \ + trans.model.HistoryDatasetAssociation.dataset_id == ldda.dataset_id)) \ .all() associated_lddas = trans.sa_session.query(trans.model.LibraryDatasetDatasetAssociation) \ .filter(and_(trans.model.LibraryDatasetDatasetAssociation.deleted == false(), - trans.model.LibraryDatasetDatasetAssociation.dataset_id == ldda.dataset_id, - trans.model.LibraryDatasetDatasetAssociation.id != ldda.id)) \ + trans.model.LibraryDatasetDatasetAssociation.dataset_id == ldda.dataset_id, + trans.model.LibraryDatasetDatasetAssociation.id != ldda.id)) \ .all() else: associated_hdas = [] @@ -635,21 +635,21 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta widgets = ldda.get_template_widgets(trans) widget_fields_have_contents = self.widget_fields_have_contents(widgets) return trans.fill_template('/library/common/ldda_info.mako', - cntrller=cntrller, - use_panels=use_panels, - ldda=ldda, - library=ldda.library_dataset.folder.parent_library, - show_associated_hdas_and_lddas=show_associated_hdas_and_lddas, - associated_hdas=associated_hdas, - associated_lddas=associated_lddas, - show_deleted=show_deleted, - widgets=widgets, - widget_fields_have_contents=widget_fields_have_contents, - current_user_roles=current_user_roles, - info_association=info_association, - inherited=inherited, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + ldda=ldda, + library=ldda.library_dataset.folder.parent_library, + show_associated_hdas_and_lddas=show_associated_hdas_and_lddas, + associated_hdas=associated_hdas, + associated_lddas=associated_lddas, + show_deleted=show_deleted, + widgets=widgets, + widget_fields_have_contents=widget_fields_have_contents, + current_user_roles=current_user_roles, + info_association=info_association, + inherited=inherited, + message=escape(message), + status=escape(status)) @web.expose def ldda_permissions(self, trans, cntrller, library_id, folder_id, id, **kwd): @@ -676,12 +676,12 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if filter(lambda x: x != library, libraries): message = "Library datasets specified span multiple libraries." return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - id=library_id, - cntrller=cntrller, - use_panels=use_panels, - message=message, - status='error')) + action='browse_library', + id=library_id, + cntrller=cntrller, + use_panels=use_panels, + message=message, + status='error')) # If access to the dataset is restricted, then use the roles associated with the DATASET_ACCESS permission to # determine the legitimate roles. If the dataset is public, see if access to the library is restricted. If # it is, use the roles associated with the LIBRARY_ACCESS permission to determine the legitimate roles. If both @@ -744,14 +744,14 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta message = 'Permissions updated for %d datasets.' % len(lddas) status = 'done' return trans.fill_template("/library/common/ldda_permissions.mako", - cntrller=cntrller, - use_panels=use_panels, - lddas=lddas, - library_id=library_id, - roles=roles, - show_deleted=show_deleted, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + lddas=lddas, + library_id=library_id, + roles=roles, + show_deleted=show_deleted, + message=escape(message), + status=escape(status)) if len(ids) > 1: # Ensure that the permissions across all library items are identical, otherwise we can't update them together. check_list = [] @@ -771,23 +771,23 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if permissions != check_list: message = 'The datasets you selected do not have identical permissions, so they can not be updated together' trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - use_panels=use_panels, - id=library_id, - show_deleted=show_deleted, - message=message, - status='error')) + action='browse_library', + cntrller=cntrller, + use_panels=use_panels, + id=library_id, + show_deleted=show_deleted, + message=message, + status='error')) # Display permission form, permissions will be updated for all lddas simultaneously. return trans.fill_template("/library/common/ldda_permissions.mako", - cntrller=cntrller, - use_panels=use_panels, - lddas=lddas, - library_id=library_id, - roles=roles, - show_deleted=show_deleted, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + lddas=lddas, + library_id=library_id, + roles=roles, + show_deleted=show_deleted, + message=escape(message), + status=escape(status)) @web.expose def upload_library_dataset(self, trans, cntrller, library_id, folder_id, **kwd): @@ -859,15 +859,15 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if cntrller == 'api': return 400, message trans.response.send_redirect(web.url_for(controller='library_common', - action='upload_library_dataset', - cntrller=cntrller, - library_id=library_id, - folder_id=folder_id, - replace_id=replace_id, - upload_option=upload_option, - show_deleted=show_deleted, - message=message, - status='error')) + action='upload_library_dataset', + cntrller=cntrller, + library_id=library_id, + folder_id=folder_id, + replace_id=replace_id, + upload_option=upload_option, + show_deleted=show_deleted, + message=message, + status='error')) else: # See if we have any inherited templates. if not info_association: @@ -915,13 +915,13 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta processed_widgets.append(widget_dict) widgets = processed_widgets created_outputs_dict = trans.webapp.controllers['library_common'].upload_dataset(trans, - cntrller=cntrller, - library_id=trans.security.encode_id(library.id), - folder_id=trans.security.encode_id(folder.id), - template_id=template_id, - widgets=widgets, - replace_dataset=replace_dataset, - **kwd) + cntrller=cntrller, + library_id=trans.security.encode_id(library.id), + folder_id=trans.security.encode_id(folder.id), + template_id=template_id, + widgets=widgets, + replace_dataset=replace_dataset, + **kwd) if created_outputs_dict: if cntrller == 'api': # created_outputs_dict can be a string only if cntrller == 'api' @@ -957,14 +957,14 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta else: default_action = 'import_to_current_history' trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - default_action=default_action, - created_ldda_ids=created_ldda_ids, - show_deleted=show_deleted, - message=message, - status='done')) + action='browse_library', + cntrller=cntrller, + id=library_id, + default_action=default_action, + created_ldda_ids=created_ldda_ids, + show_deleted=show_deleted, + message=message, + status='done')) else: created_ldda_ids = '' message = "Upload failed" @@ -972,13 +972,13 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if cntrller == 'api': return 400, message trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - created_ldda_ids=created_ldda_ids, - show_deleted=show_deleted, - message=message, - status=status)) + action='browse_library', + cntrller=cntrller, + id=library_id, + created_ldda_ids=created_ldda_ids, + show_deleted=show_deleted, + message=message, + status=status)) # Note: if the upload form was submitted due to refresh_on_change for a form field, we cannot re-populate # the field for the selected file ( files_0|file_data ) if the user selected one. This is because the value # attribute of the html input file type field is typically ignored by browsers as a security precaution. @@ -1018,27 +1018,27 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta upload_option_select_list = self._build_upload_option_select_list(trans, upload_option, is_admin, do_not_display_options) roles_select_list = self._build_roles_select_list(trans, cntrller, library, util.listify(roles)) return trans.fill_template('/library/common/upload.mako', - cntrller=cntrller, - upload_option_select_list=upload_option_select_list, - upload_option=upload_option, - action=action, - library_id=library_id, - folder_id=folder_id, - replace_dataset=replace_dataset, - file_formats=file_formats, - dbkeys=dbkeys, - last_used_build=last_used_build, - roles_select_list=roles_select_list, - history=history, - widgets=widgets, - template_id=template_id, - to_posix_lines=to_posix_lines, - space_to_tab=space_to_tab, - link_data_only=link_data_only, - show_deleted=show_deleted, - ldda_message=ldda_message, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + upload_option_select_list=upload_option_select_list, + upload_option=upload_option, + action=action, + library_id=library_id, + folder_id=folder_id, + replace_dataset=replace_dataset, + file_formats=file_formats, + dbkeys=dbkeys, + last_used_build=last_used_build, + roles_select_list=roles_select_list, + history=history, + widgets=widgets, + template_id=template_id, + to_posix_lines=to_posix_lines, + space_to_tab=space_to_tab, + link_data_only=link_data_only, + show_deleted=show_deleted, + ldda_message=ldda_message, + message=escape(message), + status=escape(status)) def upload_dataset(self, trans, cntrller, library_id, folder_id, replace_dataset=None, **kwd): # Set up the traditional tool state/params @@ -1110,15 +1110,15 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if cntrller == 'api': return (response_code, message) trans.response.send_redirect(web.url_for(controller='library_common', - action='upload_library_dataset', - cntrller=cntrller, - library_id=library_id, - folder_id=folder_id, - replace_id=replace_id, - upload_option=upload_option, - show_deleted=show_deleted, - message=message, - status='error')) + action='upload_library_dataset', + cntrller=cntrller, + library_id=library_id, + folder_id=folder_id, + replace_id=replace_id, + upload_option=upload_option, + show_deleted=show_deleted, + message=message, + status='error')) json_file_path = upload_common.create_paramfile(trans, uploaded_datasets) data_list = [ud.data for ud in uploaded_datasets] job_params = {} @@ -1321,12 +1321,12 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if not history.active_datasets: message = 'Your current history is empty' return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - show_deleted=show_deleted, - message=message, - status='error')) + action='browse_library', + cntrller=cntrller, + id=library_id, + show_deleted=show_deleted, + message=message, + status='error')) if kwd.get('add_history_datasets_to_library_button', False): hda_ids = util.listify(hda_ids) if hda_ids: @@ -1344,10 +1344,10 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta else: role_obj_list = [] ldda = hda.to_library_dataset_dataset_association(trans, - target_folder=folder, - replace_dataset=replace_dataset, - roles=role_obj_list, - ldda_message=ldda_message) + target_folder=folder, + replace_dataset=replace_dataset, + roles=role_obj_list, + ldda_message=ldda_message) created_ldda_ids = '%s,%s' % (created_ldda_ids, str(ldda.id)) dataset_names.append(ldda.name) if not replace_dataset: @@ -1414,13 +1414,13 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if not replace_dataset: message += "Click the Go button at the bottom of this page to edit the permissions on these datasets if necessary." return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - created_ldda_ids=created_ldda_ids, - show_deleted=show_deleted, - message=message, - status='done')) + action='browse_library', + cntrller=cntrller, + id=library_id, + created_ldda_ids=created_ldda_ids, + show_deleted=show_deleted, + message=message, + status='done')) else: message = 'Select at least one dataset from the list of active datasets in your current history' status = 'error' @@ -1440,27 +1440,27 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta upload_option_select_list = self._build_upload_option_select_list(trans, upload_option, is_admin) roles_select_list = self._build_roles_select_list(trans, cntrller, library, util.listify(roles)) return trans.fill_template("/library/common/upload.mako", - cntrller=cntrller, - upload_option_select_list=upload_option_select_list, - upload_option=upload_option, - action=action, - library_id=library_id, - folder_id=folder_id, - replace_dataset=replace_dataset, - file_formats=file_formats, - dbkeys=dbkeys, - last_used_build=last_used_build, - roles_select_list=roles_select_list, - history=history, - widgets=[], - template_id=template_id, - to_posix_lines=to_posix_lines, - space_to_tab=space_to_tab, - link_data_only=link_data_only, - show_deleted=show_deleted, - ldda_message=ldda_message, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + upload_option_select_list=upload_option_select_list, + upload_option=upload_option, + action=action, + library_id=library_id, + folder_id=folder_id, + replace_dataset=replace_dataset, + file_formats=file_formats, + dbkeys=dbkeys, + last_used_build=last_used_build, + roles_select_list=roles_select_list, + history=history, + widgets=[], + template_id=template_id, + to_posix_lines=to_posix_lines, + space_to_tab=space_to_tab, + link_data_only=link_data_only, + show_deleted=show_deleted, + ldda_message=ldda_message, + message=escape(message), + status=escape(status)) def _build_roles_select_list(self, trans, cntrller, library, selected_role_ids=[]): # Get the list of legitimate roles to display on the upload form. If the library is public, @@ -1487,8 +1487,8 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if option_value not in do_not_include_values: upload_refresh_on_change_values.append(option_value) upload_option_select_list = SelectField('upload_option', - refresh_on_change=True, - refresh_on_change_values=upload_refresh_on_change_values) + refresh_on_change=True, + refresh_on_change_values=upload_refresh_on_change_values) for option_value, option_label in trans.model.LibraryDataset.upload_options: if option_value not in do_not_include_values: if option_value == 'upload_directory': @@ -1540,13 +1540,13 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta except: message = 'This dataset contains no content' return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - use_panels=use_panels, - id=library_id, - show_deleted=show_deleted, - message=message, - status='error')) + action='browse_library', + cntrller=cntrller, + use_panels=use_panels, + id=library_id, + show_deleted=show_deleted, + message=message, + status='error')) @web.expose def library_dataset_info(self, trans, cntrller, id, library_id, **kwd): @@ -1583,18 +1583,18 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta widgets = library_dataset.library_dataset_dataset_association.get_template_widgets(trans) widget_fields_have_contents = self.widget_fields_have_contents(widgets) return trans.fill_template('/library/common/library_dataset_info.mako', - cntrller=cntrller, - use_panels=use_panels, - library_dataset=library_dataset, - library_id=library_id, - current_user_roles=current_user_roles, - info_association=info_association, - inherited=inherited, - widgets=widgets, - widget_fields_have_contents=widget_fields_have_contents, - show_deleted=show_deleted, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + library_dataset=library_dataset, + library_id=library_id, + current_user_roles=current_user_roles, + info_association=info_association, + inherited=inherited, + widgets=widgets, + widget_fields_have_contents=widget_fields_have_contents, + show_deleted=show_deleted, + message=escape(message), + status=escape(status)) @web.expose def library_dataset_permissions(self, trans, cntrller, id, library_id, **kwd): @@ -1634,15 +1634,15 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta status = 'done' roles = trans.app.security_agent.get_legitimate_roles(trans, library_dataset, cntrller) return trans.fill_template('/library/common/library_dataset_permissions.mako', - cntrller=cntrller, - use_panels=use_panels, - library_dataset=library_dataset, - library_id=library_id, - roles=roles, - current_user_roles=current_user_roles, - show_deleted=show_deleted, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + use_panels=use_panels, + library_dataset=library_dataset, + library_id=library_id, + roles=roles, + current_user_roles=current_user_roles, + show_deleted=show_deleted, + message=escape(message), + status=escape(status)) @web.expose def make_library_item_public(self, trans, cntrller, library_id, item_type, id, **kwd): @@ -1678,13 +1678,13 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta message = "Invalid item_type (%s) received." % escape(str(item_type)) status = 'error' return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - use_panels=use_panels, - id=library_id, - show_deleted=show_deleted, - message=message, - status=status)) + action='browse_library', + cntrller=cntrller, + use_panels=use_panels, + id=library_id, + show_deleted=show_deleted, + message=message, + status=status)) @web.expose def act_on_multiple_datasets(self, trans, cntrller, library_id=None, ldda_ids='', **kwd): @@ -1738,31 +1738,31 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta else: selected_history_id = '' return trans.response.send_redirect(web.url_for(controller='library_common', - action='import_datasets_to_histories', - cntrller=cntrller, - library_id=library_id, - selected_history_id=selected_history_id, - ldda_ids=ldda_ids, - use_panels=use_panels, - show_deleted=show_deleted, - message=message, - status=status, - **new_kwd)) + action='import_datasets_to_histories', + cntrller=cntrller, + library_id=library_id, + selected_history_id=selected_history_id, + ldda_ids=ldda_ids, + use_panels=use_panels, + show_deleted=show_deleted, + message=message, + status=status, + **new_kwd)) if action == 'move': if library_id in ['none', 'None', None]: source_library_id = '' else: source_library_id = library_id return trans.response.send_redirect(web.url_for(controller='library_common', - action='move_library_item', - cntrller=cntrller, - source_library_id=source_library_id, - item_type='ldda', - item_id=ldda_ids, - use_panels=use_panels, - show_deleted=show_deleted, - message=message, - status=status)) + action='move_library_item', + cntrller=cntrller, + source_library_id=source_library_id, + item_type='ldda', + item_id=ldda_ids, + use_panels=use_panels, + show_deleted=show_deleted, + message=message, + status=status)) ldda_ids = util.listify(ldda_ids) for ldda_id in ldda_ids: try: @@ -1793,15 +1793,15 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta encoded_ldda_ids = [trans.security.encode_id(ldda_id) for ldda_id in valid_ldda_ids] folder_id = trans.security.encode_id(valid_lddas[0].library_dataset.folder.id) trans.response.send_redirect(web.url_for(controller='library_common', - action='ldda_permissions', - cntrller=cntrller, - use_panels=use_panels, - library_id=library_id, - folder_id=folder_id, - id=",".join(encoded_ldda_ids), - show_deleted=show_deleted, - message=message, - status=status)) + action='ldda_permissions', + cntrller=cntrller, + use_panels=use_panels, + library_id=library_id, + folder_id=folder_id, + id=",".join(encoded_ldda_ids), + show_deleted=show_deleted, + message=message, + status=status)) else: message = "You are not authorized to manage permissions on any of the selected datasets." elif action == 'delete': @@ -1955,28 +1955,28 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if library_id: # If we have a library_id, browse the associated library return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - current_user_roles=current_user_roles, - use_panels=use_panels, - id=library_id, - show_deleted=show_deleted, - message=message, - status=status)) + action='browse_library', + cntrller=cntrller, + current_user_roles=current_user_roles, + use_panels=use_panels, + id=library_id, + show_deleted=show_deleted, + message=message, + status=status)) else: # We arrived here from the library_dataset_search_results page, so redirect there. search_term = kwd.get('search_term', '') comptypes = get_comptypes(trans) return trans.fill_template('/library/common/library_dataset_search_results.mako', - cntrller=cntrller, - current_user_roles=current_user_roles, - search_term=search_term, - comptypes=comptypes, - lddas=lddas, - show_deleted=show_deleted, - use_panels=use_panels, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + current_user_roles=current_user_roles, + search_term=search_term, + comptypes=comptypes, + lddas=lddas, + show_deleted=show_deleted, + use_panels=use_panels, + message=escape(message), + status=escape(status)) @web.expose def import_datasets_to_histories(self, trans, cntrller, library_id='', folder_id='', ldda_ids='', target_history_id='', target_history_ids='', new_history_name='', **kwd): @@ -2057,10 +2057,10 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta num_source = len(ldda_ids) - invalid_datasets num_target = len(target_histories) message += "%i %s imported into %i %s: %s" % (num_source, - inflector.cond_plural(num_source, "dataset"), - num_target, - inflector.cond_plural(num_target, "history"), - hist_names_str) + inflector.cond_plural(num_source, "dataset"), + num_target, + inflector.cond_plural(num_target, "history"), + hist_names_str) trans.sa_session.refresh(current_history) current_user_roles = trans.get_current_user_roles() source_lddas = [] @@ -2088,25 +2088,25 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if action == 'import_to_current_history' and library_id: # To streamline this as much as possible, go back to browsing the library. return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - message=message, - status=status)) + action='browse_library', + cntrller=cntrller, + id=library_id, + message=message, + status=status)) return trans.fill_template("/library/common/import_datasets_to_histories.mako", - cntrller=cntrller, - library=library, - current_history=current_history, - ldda_ids=ldda_ids, - target_history_id=target_history_id, - target_history_ids=target_history_ids, - source_lddas=source_lddas, - target_histories=target_histories, - new_history_name=new_history_name, - show_deleted=show_deleted, - use_panels=use_panels, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + library=library, + current_history=current_history, + ldda_ids=ldda_ids, + target_history_id=target_history_id, + target_history_ids=target_history_ids, + source_lddas=source_lddas, + target_histories=target_histories, + new_history_name=new_history_name, + show_deleted=show_deleted, + use_panels=use_panels, + message=escape(message), + status=escape(status)) @web.expose def manage_template_inheritance(self, trans, cntrller, item_type, library_id, folder_id=None, ldda_id=None, **kwd): @@ -2117,22 +2117,22 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta current_user_roles = trans.get_current_user_roles() try: item, item_desc, action, id = self.get_item_and_stuff(trans, - item_type=item_type, - library_id=library_id, - folder_id=folder_id, - ldda_id=ldda_id, - is_admin=is_admin) + item_type=item_type, + library_id=library_id, + folder_id=folder_id, + ldda_id=ldda_id, + is_admin=is_admin) except ValueError: return None if not (is_admin or trans.app.security_agent.can_modify_library_item(current_user_roles, item)): message = "You are not authorized to modify %s '%s'." % (escape(item_desc), escape(item.name)) return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - show_deleted=show_deleted, - message=message, - status='error')) + action='browse_library', + cntrller=cntrller, + id=library_id, + show_deleted=show_deleted, + message=message, + status='error')) info_association, inherited = item.get_info_association(restrict=True) if info_association: if info_association.inheritable: @@ -2143,15 +2143,15 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta trans.sa_session.add(info_association) trans.sa_session.flush() return trans.response.send_redirect(web.url_for(controller='library_common', - action=action, - cntrller=cntrller, - use_panels=use_panels, - library_id=library_id, - folder_id=folder_id, - id=id, - show_deleted=show_deleted, - message=message, - status='done')) + action=action, + cntrller=cntrller, + use_panels=use_panels, + library_id=library_id, + folder_id=folder_id, + id=id, + show_deleted=show_deleted, + message=message, + status='done')) @web.expose def move_library_item(self, trans, cntrller, item_type, item_id, source_library_id='', make_target_current=True, **kwd): @@ -2249,9 +2249,9 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta message += '. ' num_source = len(move_ldda_ids) - invalid_items message = "%i %s moved to folder (%s) within data library (%s)" % (num_source, - inflector.cond_plural(num_source, "dataset"), - target_folder.name, - target_library.name) + inflector.cond_plural(num_source, "dataset"), + target_folder.name, + target_library.name) elif item_type == 'folder': move_folder = trans.sa_session.query(trans.app.model.LibraryFolder) \ .get(trans.security.decode_id(move_folder_id)) @@ -2264,8 +2264,8 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta trans.sa_session.add(move_folder) flush_required = True message = "Moved folder (%s) to folder (%s) within data library (%s) " % (escape(move_folder.name), - escape(target_folder.name), - escape(target_library.name)) + escape(target_folder.name), + escape(target_library.name)) if flush_required: trans.sa_session.flush() if target_library: @@ -2330,11 +2330,11 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta target_libraries.append(library) # A refresh_on_change is required to display the selected library's folders return build_select_field(trans, - objs=target_libraries, - label_attr='name', - select_field_name='target_library_id', - selected_value=selected_value, - refresh_on_change=True) + objs=target_libraries, + label_attr='name', + select_field_name='target_library_id', + selected_value=selected_value, + refresh_on_change=True) def __build_target_folder_id_select_field(trans, folders, selected_value='none'): for folder in folders: @@ -2342,11 +2342,11 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta folder.name = 'Data library root' break return build_select_field(trans, - objs=folders, - label_attr='name', - select_field_name='target_folder_id', - selected_value=selected_value, - refresh_on_change=False) + objs=folders, + label_attr='name', + select_field_name='target_folder_id', + selected_value=selected_value, + refresh_on_change=False) if target_library: selected_value = target_library.id else: @@ -2354,21 +2354,21 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta target_library_id_select_field = __build_target_library_id_select_field(trans, selected_value=selected_value) target_folder_id_select_field = __build_target_folder_id_select_field(trans, target_library_folders) return trans.fill_template("/library/common/move_library_item.mako", - cntrller=cntrller, - make_target_current=make_target_current, - source_library=source_library, - item_type=item_type, - item_id=item_id, - move_ldda_ids=move_ldda_ids, - move_lddas=move_lddas, - move_folder=move_folder, - target_library=target_library, - target_library_id_select_field=target_library_id_select_field, - target_folder_id_select_field=target_folder_id_select_field, - show_deleted=show_deleted, - use_panels=use_panels, - message=escape(message), - status=escape(status)) + cntrller=cntrller, + make_target_current=make_target_current, + source_library=source_library, + item_type=item_type, + item_id=item_id, + move_ldda_ids=move_ldda_ids, + move_lddas=move_lddas, + move_folder=move_folder, + target_library=target_library, + target_library_id_select_field=target_library_id_select_field, + target_folder_id_select_field=target_folder_id_select_field, + show_deleted=show_deleted, + use_panels=use_panels, + message=escape(message), + status=escape(status)) @web.expose def delete_library_item(self, trans, cntrller, library_id, item_id, item_type, **kwd): @@ -2382,8 +2382,8 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta status = kwd.get('status', 'done') show_deleted = util.string_as_bool(kwd.get('show_deleted', False)) item_types = {'library': trans.app.model.Library, - 'folder': trans.app.model.LibraryFolder, - 'library_dataset': trans.app.model.LibraryDataset} + 'folder': trans.app.model.LibraryFolder, + 'library_dataset': trans.app.model.LibraryDataset} is_admin = (trans.user_is_admin() and cntrller == 'library_admin') current_user_roles = trans.get_current_user_roles() if item_type not in item_types: @@ -2426,17 +2426,17 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta status = 'error' if item_type == 'library': return trans.response.send_redirect(web.url_for(controller=cntrller, - action='browse_libraries', - message=message, - status=status)) + action='browse_libraries', + message=message, + status=status)) else: return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - show_deleted=show_deleted, - message=message, - status=status)) + action='browse_library', + cntrller=cntrller, + id=library_id, + show_deleted=show_deleted, + message=message, + status=status)) @web.expose def undelete_library_item(self, trans, cntrller, library_id, item_id, item_type, **kwd): @@ -2444,8 +2444,8 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta status = kwd.get('status', 'done') show_deleted = util.string_as_bool(kwd.get('show_deleted', False)) item_types = {'library': trans.app.model.Library, - 'folder': trans.app.model.LibraryFolder, - 'library_dataset': trans.app.model.LibraryDataset} + 'folder': trans.app.model.LibraryFolder, + 'library_dataset': trans.app.model.LibraryDataset} is_admin = (trans.user_is_admin() and cntrller == 'library_admin') current_user_roles = trans.get_current_user_roles() if item_type not in item_types: @@ -2495,17 +2495,17 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta status = 'error' if item_type == 'library': return trans.response.send_redirect(web.url_for(controller=cntrller, - action='browse_libraries', - message=message, - status=status)) + action='browse_libraries', + message=message, + status=status)) else: return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - show_deleted=show_deleted, - message=message, - status=status)) + action='browse_library', + cntrller=cntrller, + id=library_id, + show_deleted=show_deleted, + message=message, + status=status)) def _check_access(self, trans, cntrller, is_admin, item, current_user_roles, use_panels, library_id, show_deleted): can_access = True @@ -2536,19 +2536,19 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta return 400, message if isinstance(item, trans.model.Library): return trans.response.send_redirect(web.url_for(controller=cntrller, - action='browse_libraries', - cntrller=cntrller, - use_panels=use_panels, - message=message, - status='error')) + action='browse_libraries', + cntrller=cntrller, + use_panels=use_panels, + message=message, + status='error')) return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - use_panels=use_panels, - id=library_id, - show_deleted=show_deleted, - message=message, - status='error')) + action='browse_library', + cntrller=cntrller, + use_panels=use_panels, + id=library_id, + show_deleted=show_deleted, + message=message, + status='error')) def _check_add(self, trans, cntrller, is_admin, item, current_user_roles, use_panels, library_id, show_deleted): # Deny access if the user is not an admin and does not have the LIBRARY_ADD permission. @@ -2558,42 +2558,42 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if cntrller == 'api': return 403, message return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - use_panels=use_panels, - id=library_id, - show_deleted=show_deleted, - message=message, - status='error')) + action='browse_library', + cntrller=cntrller, + use_panels=use_panels, + id=library_id, + show_deleted=show_deleted, + message=message, + status='error')) def _check_manage(self, trans, cntrller, is_admin, item, current_user_roles, use_panels, library_id, show_deleted): if isinstance(item, trans.model.LibraryDataset): # Deny access if the user is not an admin and does not have the LIBRARY_MANAGE and DATASET_MANAGE_PERMISSIONS permissions. if not (is_admin or - (trans.app.security_agent.can_manage_library_item(current_user_roles, item) and - trans.app.security_agent.can_manage_dataset(current_user_roles, item.library_dataset_dataset_association.dataset))): + (trans.app.security_agent.can_manage_library_item(current_user_roles, item) and + trans.app.security_agent.can_manage_dataset(current_user_roles, item.library_dataset_dataset_association.dataset))): message = "You are not authorized to manage permissions on library dataset (%s)." % escape(item.name) if cntrller == 'api': return 403, message return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - id=library_id, - cntrller=cntrller, - use_panels=use_panels, - message=message, - status='error')) + action='browse_library', + id=library_id, + cntrller=cntrller, + use_panels=use_panels, + message=message, + status='error')) # Deny access if the user is not an admin and does not have the LIBRARY_MANAGE permission. if not (is_admin or trans.app.security_agent.can_manage_library_item(current_user_roles, item)): message = "You are not authorized to manage permissions on (%s)." % escape(item.name) if cntrller == 'api': return 403, message return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - id=library_id, - cntrller=cntrller, - use_panels=use_panels, - message=message, - status='error')) + action='browse_library', + id=library_id, + cntrller=cntrller, + use_panels=use_panels, + message=message, + status='error')) def _check_modify(self, trans, cntrller, is_admin, item, current_user_roles, use_panels, library_id, show_deleted): # Deny modification if the user is not an admin and does not have the LIBRARY_MODIFY permission. @@ -2602,13 +2602,13 @@ class LibraryCommon(BaseUIController, UsesFormDefinitionsMixin, UsesExtendedMeta if cntrller == 'api': return 403, message return trans.response.send_redirect(web.url_for(controller='library_common', - action='browse_library', - cntrller=cntrller, - id=library_id, - use_panels=use_panels, - show_deleted=show_deleted, - message=message, - status='error')) + action='browse_library', + cntrller=cntrller, + id=library_id, + use_panels=use_panels, + show_deleted=show_deleted, + message=message, + status='error')) # ---- Utility methods ------------------------------------------------------- @@ -2678,9 +2678,9 @@ def activatable_folders_and_library_datasets(trans, folder): library_datasets = trans.sa_session.query(trans.model.LibraryDataset) \ .filter(trans.model.LibraryDataset.table.c.folder_id == folder.id) \ .join((trans.model.LibraryDatasetDatasetAssociation.table, - trans.model.LibraryDataset.table.c.library_dataset_dataset_association_id == trans.model.LibraryDatasetDatasetAssociation.table.c.id)) \ + trans.model.LibraryDataset.table.c.library_dataset_dataset_association_id == trans.model.LibraryDatasetDatasetAssociation.table.c.id)) \ .join((trans.model.Dataset.table, - trans.model.LibraryDatasetDatasetAssociation.table.c.dataset_id == trans.model.Dataset.table.c.id)) \ + trans.model.LibraryDatasetDatasetAssociation.table.c.dataset_id == trans.model.Dataset.table.c.id)) \ .filter(trans.model.Dataset.table.c.deleted == false()) \ .order_by(trans.model.LibraryDataset.table.c._name) \ .all() @@ -2781,9 +2781,9 @@ def whoosh_search(trans, cntrller, search_term, **kwd): index = whoosh.index.open_dir(whoosh_index_dir) # Set field boosts for searcher to place equal weight on all search fields. searcher = index.searcher(weighting=BM25F(field_B={'name_B' : 3.4, - 'info_B' : 3.2, - 'dbkey_B' : 3.3, - 'message_B' : 3.5})) + 'info_B' : 3.2, + 'dbkey_B' : 3.3, + 'message_B' : 3.5})) # Perform search parser = MultifieldParser(['name', 'info', 'dbkey', 'message'], schema=schema) # Search term with wildcards may be slow... diff --git a/lib/galaxy/webapps/galaxy/controllers/page.py b/lib/galaxy/webapps/galaxy/controllers/page.py index 582d10dcdf5..ba312c0180a 100644 --- a/lib/galaxy/webapps/galaxy/controllers/page.py +++ b/lib/galaxy/webapps/galaxy/controllers/page.py @@ -290,7 +290,7 @@ class _PageContentProcessor(_BaseHTMLProcessor): class PageController(BaseUIController, SharableMixin, - UsesStoredWorkflowMixin, UsesVisualizationMixin, UsesItemRatings): + UsesStoredWorkflowMixin, UsesVisualizationMixin, UsesItemRatings): _page_list = PageListGrid() _all_published_list = PageAllPublishedGrid() @@ -346,8 +346,8 @@ class PageController(BaseUIController, SharableMixin, .order_by(desc(model.Page.update_time)) \ .all() return [{'username' : p.page.user.username, - 'slug' : p.page.slug, - 'title' : p.page.title} for p in shared_by_others] + 'slug' : p.page.slug, + 'title' : p.page.title} for p in shared_by_others] @web.expose @web.require_login("create pages") @@ -391,13 +391,13 @@ class PageController(BaseUIController, SharableMixin, web.FormBuilder(web.url_for(controller='page', action='create'), "Create new page", submit_text="Submit") .add_text("page_title", "Page title", value=page_title, error=page_title_err) .add_text("page_slug", "Page identifier", value=page_slug, error=page_slug_err, - help="""A unique identifier that will be used for + help="""A unique identifier that will be used for public links to this page. A default is generated from the page title, but can be edited. This field must contain only lowercase letters, numbers, and the '-' character.""") .add_text("page_annotation", "Page annotation", value=page_annotation, error=page_annotation_err, - help="A description of the page; annotation is shown alongside published pages."), + help="A description of the page; annotation is shown alongside published pages."), template="page/create.mako") @web.expose @@ -442,13 +442,13 @@ class PageController(BaseUIController, SharableMixin, web.FormBuilder(web.url_for(controller='page', action='edit', id=encoded_id), "Edit page attributes", submit_text="Submit") .add_text("page_title", "Page title", value=page_title, error=page_title_err) .add_text("page_slug", "Page identifier", value=page_slug, error=page_slug_err, - help="""A unique identifier that will be used for + help="""A unique identifier that will be used for public links to this page. A default is generated from the page title, but can be edited. This field must contain only lowercase letters, numbers, and the '-' character.""") .add_text("page_annotation", "Page annotation", value=page_annotation, error=page_annotation_err, - help="A description of the page; annotation is shown alongside published pages."), + help="A description of the page; annotation is shown alongside published pages."), template="page/create.mako") @web.expose @@ -496,7 +496,7 @@ class PageController(BaseUIController, SharableMixin, session.flush() return trans.fill_template("/sharing_base.mako", - item=page, controller_list='pages', use_panels=True) + item=page, controller_list='pages', use_panels=True) @web.expose @web.require_login("use Galaxy pages") @@ -507,7 +507,7 @@ class PageController(BaseUIController, SharableMixin, if email: other = trans.sa_session.query(model.User) \ .filter(and_(model.User.table.c.email == email, - model.User.table.c.deleted == false())) \ + model.User.table.c.deleted == false())) \ .first() if not other: mtype = "error" @@ -532,11 +532,11 @@ class PageController(BaseUIController, SharableMixin, trans.set_message("Page '%s' shared with user '%s'" % (page_title, other_email)) return trans.response.send_redirect(url_for(controller='page', action='sharing', id=id)) return trans.fill_template("/ind_share_base.mako", - message=msg, - messagetype=mtype, - item=page, - email=email, - use_panels=use_panels) + message=msg, + messagetype=mtype, + item=page, + email=email, + use_panels=use_panels) @web.expose @web.require_login() @@ -627,11 +627,11 @@ class PageController(BaseUIController, SharableMixin, # Output is string, so convert to unicode for display. page_content = unicodify(processor.output(), 'utf-8') return trans.fill_template_mako("page/display.mako", item=page, - item_data=page_content, - user_item_rating=user_item_rating, - ave_item_rating=ave_item_rating, - num_ratings=num_ratings, - content_only=True) + item_data=page_content, + user_item_rating=user_item_rating, + ave_item_rating=ave_item_rating, + num_ratings=num_ratings, + content_only=True) @web.expose @web.require_login("use Galaxy pages") @@ -683,9 +683,9 @@ class PageController(BaseUIController, SharableMixin, if self.create_item_slug(trans.sa_session, page): trans.sa_session.flush() return_dict = {"name": page.title, "link": url_for(controller='page', - action="display_by_username_and_slug", - username=page.user.username, - slug=page.slug)} + action="display_by_username_and_slug", + username=page.user.username, + slug=page.slug)} return return_dict @web.expose @@ -768,10 +768,10 @@ class PageController(BaseUIController, SharableMixin, history_dictionary['annotation'] = history.annotation filled = trans.fill_template("history/embed.mako", - item=history, - user_is_owner=user_is_owner, - history_dict=history_dictionary, - content_dicts=contents) + item=history, + user_is_owner=user_is_owner, + history_dict=history_dictionary, + content_dicts=contents) return filled def _get_embedded_visualization_html(self, trans, id): @@ -791,9 +791,9 @@ class PageController(BaseUIController, SharableMixin, # TODO: this will load the visualization twice (once above, once when the iframe src calls 'saved') encoded_visualization_id = trans.security.encode_id(visualization.id) return trans.fill_template('visualization/embed_in_frame.mako', - item=visualization, - encoded_visualization_id=encoded_visualization_id, - content_only=True) + item=visualization, + encoded_visualization_id=encoded_visualization_id, + content_only=True) return trans.fill_template("visualization/embed.mako", item=visualization, item_data=None) diff --git a/lib/galaxy/webapps/galaxy/controllers/request_type.py b/lib/galaxy/webapps/galaxy/controllers/request_type.py index c74e3cbda4a..2534da88976 100644 --- a/lib/galaxy/webapps/galaxy/controllers/request_type.py +++ b/lib/galaxy/webapps/galaxy/controllers/request_type.py @@ -48,28 +48,28 @@ class RequestTypeGrid(grids.Grid): default_filter = dict(deleted="False") columns = [ NameColumn("Name", - key="name", - link=(lambda item: iff(item.deleted, None, dict(operation="view_request_type", id=item.id))), - attach_popup=True, - filterable="advanced"), + key="name", + link=(lambda item: iff(item.deleted, None, dict(operation="view_request_type", id=item.id))), + attach_popup=True, + filterable="advanced"), DescriptionColumn("Description", - key='desc', - filterable="advanced"), + key='desc', + filterable="advanced"), RequestFormColumn("Request Form", - link=(lambda item: iff(item.deleted, None, dict(operation="view_form_definition", id=item.request_form.id)))), + link=(lambda item: iff(item.deleted, None, dict(operation="view_form_definition", id=item.request_form.id)))), SampleFormColumn("Sample Form", - link=(lambda item: iff(item.deleted, None, dict(operation="view_form_definition", id=item.sample_form.id)))), + link=(lambda item: iff(item.deleted, None, dict(operation="view_form_definition", id=item.sample_form.id)))), ExternalServiceColumn("External Services"), grids.DeletedColumn("Deleted", - key="deleted", - visible=False, - filterable="advanced") + key="deleted", + visible=False, + filterable="advanced") ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [ grids.GridOperation("Edit request type", allow_multiple=False, condition=(lambda item: not item.deleted)), grids.GridOperation("Edit permissions", allow_multiple=False, condition=(lambda item: not item.deleted)), @@ -97,11 +97,11 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): return self.view_request_type(trans, **kwd) elif operation == "use run details template": return trans.response.send_redirect(web.url_for(controller='requests_admin', - action='add_template', - cntrller='requests_admin', - item_type='request_type', - form_type=trans.model.FormDefinition.types.RUN_DETAILS_TEMPLATE, - request_type_id=obj_id)) + action='add_template', + cntrller='requests_admin', + item_type='request_type', + form_type=trans.model.FormDefinition.types.RUN_DETAILS_TEMPLATE, + request_type_id=obj_id)) elif operation == "edit request type": return self.view_editable_request_type(trans, **kwd) elif operation == "delete": @@ -112,8 +112,8 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): return self.request_type_permissions(trans, **kwd) elif operation == "view_external_service": return trans.response.send_redirect(web.url_for(controller='external_service', - action='view_external_service', - **kwd)) + action='view_external_service', + **kwd)) # Render the grid view return self.request_type_grid(trans, **kwd) @@ -129,8 +129,8 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): external_services_list = self.__get_external_services(trans, **kwd) for index, external_service in enumerate(external_services_list): external_service_select_field = self.__build_external_service_select_field(trans, - 'external_service_id_%i' % index, - external_service) + 'external_service_id_%i' % index, + external_service) external_service_select_fields_list.append(external_service_select_field) if params.get('add_state_button', False): # Append a new tuple to the set of states which will result in @@ -143,25 +143,25 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): elif params.get('add_external_service_button', False): # create a new one external_service_select_field = self.__build_external_service_select_field(trans, - 'external_service_id_%i' % len(external_services_list)) + 'external_service_id_%i' % len(external_services_list)) external_service_select_fields_list.append(external_service_select_field) elif params.get('create_request_type_button', False): self.__save_request_type(trans, action='create_request_type', **kwd) message = 'The request type has been created.' return trans.response.send_redirect(web.url_for(controller='request_type', - action='browse_request_types', - message=message, - status=status)) + action='browse_request_types', + message=message, + status=status)) # A request_type requires at least one possible sample state so that # it can be used to create a sequencing request if not len(rt_states_widgets): rt_states_widgets.append(("New", "First sample state")) return trans.fill_template('/admin/request_type/create_request_type.mako', - rt_info_widgets=rt_info_widgets, - rt_states_widgets=rt_states_widgets, - external_service_select_fields_list=external_service_select_fields_list, - message=message, - status=status) + rt_info_widgets=rt_info_widgets, + rt_states_widgets=rt_states_widgets, + external_service_select_fields_list=external_service_select_fields_list, + message=message, + status=status) def __get_external_services(self, trans, request_type=None, **kwd): params = util.Params(kwd) @@ -198,16 +198,16 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): external_service_select_fields_list = [] for index, external_service in enumerate(request_type.external_services): external_service_select_field = self.__build_external_service_select_field(trans, - 'external_service_id_%i' % index, - external_service) + 'external_service_id_%i' % index, + external_service) external_service_select_fields_list.append(external_service_select_field) return trans.fill_template('/admin/request_type/edit_request_type.mako', - request_type=request_type, - widgets=widgets, - widget_fields_have_contents=widget_fields_have_contents, - external_service_select_fields_list=external_service_select_fields_list, - message=message, - status=status) + request_type=request_type, + widgets=widgets, + widget_fields_have_contents=widget_fields_have_contents, + external_service_select_fields_list=external_service_select_fields_list, + message=message, + status=status) @web.expose @web.require_admin @@ -236,16 +236,16 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): del external_services_list[index] for index, external_service in enumerate(external_services_list): external_service_select_field = self.__build_external_service_select_field(trans, - 'external_service_id_%i' % index, - external_service) + 'external_service_id_%i' % index, + external_service) external_service_select_fields_list.append(external_service_select_field) return trans.fill_template('/admin/request_type/edit_request_type.mako', - request_type=request_type, - widgets=widgets, - widget_fields_have_contents=widget_fields_have_contents, - external_service_select_fields_list=external_service_select_fields_list, - message=message, - status=status) + request_type=request_type, + widgets=widgets, + widget_fields_have_contents=widget_fields_have_contents, + external_service_select_fields_list=external_service_select_fields_list, + message=message, + status=status) def __save_request_type(self, trans, action, **kwd): # Here we save a newly created request_type or save changed @@ -260,9 +260,9 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): if not name or request_form_id == 'none' or sample_form_id == 'none': message = 'Enter the name, request form, sample form and at least one sample state associated with this request type.' return trans.response.send_redirect(web.url_for(controller='request_type', - action=action, - message=message, - status='error')) + action=action, + message=message, + status='error')) try: request_form = trans.sa_session.query(trans.model.FormDefinition).get(trans.security.decode_id(request_form_id)) except: @@ -292,9 +292,9 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): else: # We're saving a newly created request_type request_type = trans.model.RequestType(name=name, - desc=desc, - request_form=request_form, - sample_form=sample_form) + desc=desc, + request_form=request_form, + sample_form=sample_form) trans.sa_session.add(request_type) trans.sa_session.flush() i = 0 @@ -318,43 +318,43 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): def __get_populated_request_type_widgets(self, trans, **kwd): request_form_definitions = self.get_all_forms(trans, - filter=dict(deleted=False), - form_type=trans.model.FormDefinition.types.REQUEST) - sample_form_definitions = self.get_all_forms(trans, filter=dict(deleted=False), - form_type=trans.model.FormDefinition.types.SAMPLE) + form_type=trans.model.FormDefinition.types.REQUEST) + sample_form_definitions = self.get_all_forms(trans, + filter=dict(deleted=False), + form_type=trans.model.FormDefinition.types.SAMPLE) if not request_form_definitions or not sample_form_definitions: return [], [] params = util.Params(kwd) request_form_id = params.get('request_form_id', 'none') sample_form_id = params.get('sample_form_id', 'none') request_form_id_select_field = build_select_field(trans, - objs=request_form_definitions, - label_attr='name', - select_field_name='request_form_id', - selected_value=request_form_id, - refresh_on_change=False) - sample_form_id_select_field = build_select_field(trans, - objs=sample_form_definitions, + objs=request_form_definitions, label_attr='name', - select_field_name='sample_form_id', - selected_value=sample_form_id, + select_field_name='request_form_id', + selected_value=request_form_id, refresh_on_change=False) + sample_form_id_select_field = build_select_field(trans, + objs=sample_form_definitions, + label_attr='name', + select_field_name='sample_form_id', + selected_value=sample_form_id, + refresh_on_change=False) rt_info_widgets = [dict(label='Name', - widget=TextField('name', 40, util.restore_text(params.get('name', '')))), - dict(label='Description', - widget=TextField('desc', 40, util.restore_text(params.get('desc', '')))), - dict(label='Request form', - widget=request_form_id_select_field), - dict(label='Sample form', - widget=sample_form_id_select_field)] + widget=TextField('name', 40, util.restore_text(params.get('name', '')))), + dict(label='Description', + widget=TextField('desc', 40, util.restore_text(params.get('desc', '')))), + dict(label='Request form', + widget=request_form_id_select_field), + dict(label='Sample form', + widget=sample_form_id_select_field)] # Unsaved sample states being defined for this request type rt_states = [] i = 0 while True: if 'state_name_%i' % i in kwd: rt_states.append((util.restore_text(params.get('state_name_%i' % i, '')), - util.restore_text(params.get('state_desc_%i' % i, '')))) + util.restore_text(params.get('state_desc_%i' % i, '')))) i += 1 else: break @@ -375,11 +375,11 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): widgets = request_type.get_template_widgets(trans) widget_fields_have_contents = self.widget_fields_have_contents(widgets) return trans.fill_template('/admin/request_type/view_request_type.mako', - request_type=request_type, - widgets=widgets, - widget_fields_have_contents=widget_fields_have_contents, - message=message, - status=status) + request_type=request_type, + widgets=widgets, + widget_fields_have_contents=widget_fields_have_contents, + message=message, + status=status) @web.expose @web.require_admin @@ -396,9 +396,9 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): trans.sa_session.flush() message = '%i request types has been deleted' % len(request_type_id_list) return trans.response.send_redirect(web.url_for(controller='request_type', - action='browse_request_types', - message=message, - status='done')) + action='browse_request_types', + message=message, + status='done')) @web.expose @web.require_admin @@ -416,9 +416,9 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): status = 'done' message = '%i request types have been undeleted' % len(request_type_id_list) return trans.response.send_redirect(web.url_for(controller='request_type', - action='browse_request_types', - message=message, - status=status)) + action='browse_request_types', + message=message, + status=status)) @web.expose @web.require_admin @@ -443,10 +443,10 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): trans.sa_session.refresh(request_type) message = "Permissions updated for request type '%s'" % request_type.name return trans.fill_template('/admin/request_type/request_type_permissions.mako', - request_type=request_type, - roles=roles, - status=status, - message=message) + request_type=request_type, + roles=roles, + status=status, + message=message) @web.expose @web.require_admin @@ -457,7 +457,7 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): except: return invalid_id_redirect(trans, 'request_type', form_definition_id, 'form definition', action='browse_request_types') return trans.fill_template('/admin/forms/view_form_definition.mako', - form_definition=form_definition) + form_definition=form_definition) # ===== Methods for building SelectFields used on various admin_requests forms def __build_external_service_select_field(self, trans, select_field_name, external_service=None): @@ -470,8 +470,8 @@ class RequestType(BaseUIController, UsesFormDefinitionsMixin): external_service_type = e.get_external_service_type(trans) e.label = '%s - %s' % (e.name, external_service_type.name) return build_select_field(trans, - objs=all_external_services, - label_attr='label', - select_field_name=select_field_name, - selected_value=selected_value, - refresh_on_change=False) + objs=all_external_services, + label_attr='label', + select_field_name=select_field_name, + selected_value=selected_value, + refresh_on_change=False) diff --git a/lib/galaxy/webapps/galaxy/controllers/requests.py b/lib/galaxy/webapps/galaxy/controllers/requests.py index 6e825259bb6..ab4da8c3d92 100644 --- a/lib/galaxy/webapps/galaxy/controllers/requests.py +++ b/lib/galaxy/webapps/galaxy/controllers/requests.py @@ -40,39 +40,39 @@ class Requests(BaseUIController): operation = kwd['operation'].lower() if operation == "edit": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_basic_request_info', - cntrller='requests', - **kwd)) + action='edit_basic_request_info', + cntrller='requests', + **kwd)) if operation == "add_samples": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='add_samples', - cntrller='requests', - **kwd)) + action='add_samples', + cntrller='requests', + **kwd)) if operation == "edit_samples": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_samples', - cntrller='requests', - **kwd)) + action='edit_samples', + cntrller='requests', + **kwd)) if operation == "view_request": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='view_request', - cntrller='requests', - **kwd)) + action='view_request', + cntrller='requests', + **kwd)) if operation == "delete": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='delete_request', - cntrller='requests', - **kwd)) + action='delete_request', + cntrller='requests', + **kwd)) if operation == "undelete": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='undelete_request', - cntrller='requests', - **kwd)) + action='undelete_request', + cntrller='requests', + **kwd)) if operation == "view_request_history": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='view_request_history', - cntrller='requests', - **kwd)) + action='view_request_history', + cntrller='requests', + **kwd)) # If there are requests that have been rejected, show a message as a reminder to the user rejected = 0 @@ -90,8 +90,8 @@ class Requests(BaseUIController): accessible_request_types = trans.app.security_agent.get_accessible_request_types(trans, trans.user) if accessible_request_types: self.request_grid.global_actions = [grids.GridAction("Create new request", dict(controller='requests_common', - action='create_request', - cntrller='requests'))] + action='create_request', + cntrller='requests'))] else: self.request_grid.global_actions = [] # Render the list view diff --git a/lib/galaxy/webapps/galaxy/controllers/requests_admin.py b/lib/galaxy/webapps/galaxy/controllers/requests_admin.py index aa457d41c31..2e375ff272a 100644 --- a/lib/galaxy/webapps/galaxy/controllers/requests_admin.py +++ b/lib/galaxy/webapps/galaxy/controllers/requests_admin.py @@ -20,8 +20,8 @@ class AdminRequestsGrid(RequestsGrid): # Grid definition columns = [col for col in RequestsGrid.columns] columns.append(UserColumn("User", - model_class=model.User, - key='username')) + model_class=model.User, + key='username')) operations = [operation for operation in RequestsGrid.operations] operations.append(grids.GridOperation("Edit", allow_multiple=False, condition=(lambda item: not item.deleted))) operations.append(grids.GridOperation("Reject", allow_multiple=False, condition=(lambda item: not item.deleted and item.is_submitted))) @@ -29,8 +29,8 @@ class AdminRequestsGrid(RequestsGrid): operations.append(grids.GridOperation("Undelete", condition=(lambda item: item.deleted))) global_actions = [ grids.GridAction("Create new request", dict(controller='requests_common', - action='create_request', - cntrller='requests_admin')) + action='create_request', + cntrller='requests_admin')) ] @@ -64,36 +64,36 @@ class DataTransferGrid(grids.Grid): use_paging = False columns = [ NameColumn("Name", - link=(lambda item: dict(operation="view", id=item.id)), - attach_popup=True, - filterable="advanced"), + link=(lambda item: dict(operation="view", id=item.id)), + attach_popup=True, + filterable="advanced"), SizeColumn("Size", - filterable="advanced"), + filterable="advanced"), grids.GridColumn("Last Updated", - key="update_time", - format=time_ago), + key="update_time", + format=time_ago), ExternalServiceColumn('External service', - link=(lambda item: dict(operation="view_external_service", id=item.external_service.id)), ), + link=(lambda item: dict(operation="view_external_service", id=item.external_service.id)), ), StatusColumn("Transfer Status", - filterable="advanced", - label_id_prefix='datasetTransferStatus-'), + filterable="advanced", + label_id_prefix='datasetTransferStatus-'), ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [ grids.GridOperation("Transfer", - allow_multiple=True, - condition=(lambda item: item.status in [model.SampleDataset.transfer_status.NOT_STARTED])), + allow_multiple=True, + condition=(lambda item: item.status in [model.SampleDataset.transfer_status.NOT_STARTED])), grids.GridOperation("Rename", - allow_multiple=True, - allow_popup=False, - condition=(lambda item: item.status in [model.SampleDataset.transfer_status.NOT_STARTED])), + allow_multiple=True, + allow_popup=False, + condition=(lambda item: item.status in [model.SampleDataset.transfer_status.NOT_STARTED])), grids.GridOperation("Delete", - allow_multiple=True, - condition=(lambda item: item.status in [model.SampleDataset.transfer_status.NOT_STARTED])) + allow_multiple=True, + condition=(lambda item: item.status in [model.SampleDataset.transfer_status.NOT_STARTED])) ] def apply_query_filter(self, trans, query, **kwd): @@ -119,45 +119,45 @@ class RequestsAdmin(BaseUIController, UsesFormDefinitionsMixin): operation = kwd['operation'].lower() if operation == "edit": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_basic_request_info', - cntrller='requests_admin', - **kwd)) + action='edit_basic_request_info', + cntrller='requests_admin', + **kwd)) if operation == "add_samples": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='add_samples', - cntrller='requests_admin', - **kwd)) + action='add_samples', + cntrller='requests_admin', + **kwd)) if operation == "edit_samples": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_samples', - cntrller='requests_admin', - **kwd)) + action='edit_samples', + cntrller='requests_admin', + **kwd)) if operation == "view_request": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='view_request', - cntrller='requests_admin', - **kwd)) + action='view_request', + cntrller='requests_admin', + **kwd)) if operation == "view_request_history": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='view_request_history', - cntrller='requests_admin', - **kwd)) + action='view_request_history', + cntrller='requests_admin', + **kwd)) if operation == "reject": return self.reject_request(trans, **kwd) if operation == "view_type": return trans.response.send_redirect(web.url_for(controller='request_type', - action='view_request_type', - **kwd)) + action='view_request_type', + **kwd)) if operation == "delete": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='delete_request', - cntrller='requests_admin', - **kwd)) + action='delete_request', + cntrller='requests_admin', + **kwd)) if operation == "undelete": return trans.response.send_redirect(web.url_for(controller='requests_common', - action='undelete_request', - cntrller='requests_admin', - **kwd)) + action='undelete_request', + cntrller='requests_admin', + **kwd)) # Render the list view return self.request_grid(trans, **kwd) @@ -170,9 +170,9 @@ class RequestsAdmin(BaseUIController, UsesFormDefinitionsMixin): message = params.get('message', 'done') if params.get('cancel_reject_button', False): return trans.response.send_redirect(web.url_for(controller='requests_common', - action='view_request', - cntrller='requests_admin', - id=request_id)) + action='view_request', + cntrller='requests_admin', + id=request_id)) try: request = trans.sa_session.query(trans.model.Request).get(trans.security.decode_id(request_id)) except: @@ -183,10 +183,10 @@ class RequestsAdmin(BaseUIController, UsesFormDefinitionsMixin): status = 'error' message = 'A reason for rejecting the request is required.' return trans.fill_template('/admin/requests/reject.mako', - cntrller='requests_admin', - request=request, - status=status, - message=message) + cntrller='requests_admin', + request=request, + status=status, + message=message) # Create an event with state 'Rejected' for this request event_comment = "Sequencing request marked rejected by %s. Reason: %s " % (trans.user.email, comment) event = trans.model.RequestEvent(request, request.states.REJECTED, event_comment) @@ -194,10 +194,10 @@ class RequestsAdmin(BaseUIController, UsesFormDefinitionsMixin): trans.sa_session.flush() message = 'Sequencing request (%s) has been rejected.' % request.name return trans.response.send_redirect(web.url_for(controller='requests_admin', - action='browse_requests', - status=status, - message=message, - **kwd)) + action='browse_requests', + status=status, + message=message, + **kwd)) # Data transfer from sequencer/external_service @web.expose @@ -206,8 +206,8 @@ class RequestsAdmin(BaseUIController, UsesFormDefinitionsMixin): def handle_error(**kwd): kwd['status'] = 'error' return trans.response.send_redirect(web.url_for(controller='requests_admin', - action='manage_datasets', - **kwd)) + action='manage_datasets', + **kwd)) params = util.Params(kwd) message = util.restore_text(params.get('message', '')) status = params.get('status', 'done') @@ -240,8 +240,8 @@ class RequestsAdmin(BaseUIController, UsesFormDefinitionsMixin): selected_sample_datasets.append(sample_dataset) if operation == "view": return trans.fill_template('/admin/requests/view_sample_dataset.mako', - cntrller='requests_admin', - sample_dataset=selected_sample_datasets[0]) + cntrller='requests_admin', + sample_dataset=selected_sample_datasets[0]) elif operation == "delete": not_deleted = [] for sample_dataset in selected_sample_datasets: @@ -258,10 +258,10 @@ class RequestsAdmin(BaseUIController, UsesFormDefinitionsMixin): status = 'warning' message = message + ' %s could not be deleted because their transfer status is not "Not Started". ' % str(not_deleted) return trans.response.send_redirect(web.url_for(controller='requests_admin', - action='manage_datasets', - sample_id=trans.security.encode_id(sample.id), - status=status, - message=message)) + action='manage_datasets', + sample_id=trans.security.encode_id(sample.id), + status=status, + message=message)) elif operation == "rename": # If one of the selected sample datasets is in the NOT_STARTED state, # then display an error message. A NOT_STARTED state implies the dataset @@ -275,36 +275,36 @@ class RequestsAdmin(BaseUIController, UsesFormDefinitionsMixin): status = 'error' message = 'A dataset can be renamed only if it has been transferred.' return trans.response.send_redirect(web.url_for(controller='requests_admin', - action='manage_datasets', - sample_id=trans.security.encode_id(selected_sample_datasets[0].sample.id), - status=status, - message=message)) + action='manage_datasets', + sample_id=trans.security.encode_id(selected_sample_datasets[0].sample.id), + status=status, + message=message)) return trans.fill_template('/admin/requests/rename_datasets.mako', - sample=selected_sample_datasets[0].sample, - id_list=id_list) + sample=selected_sample_datasets[0].sample, + id_list=id_list) elif operation == "transfer": self.initiate_data_transfer(trans, - trans.security.encode_id(selected_sample_datasets[0].sample.id), - sample_datasets=selected_sample_datasets) + trans.security.encode_id(selected_sample_datasets[0].sample.id), + sample_datasets=selected_sample_datasets) elif operation == "view_external_service": return trans.response.send_redirect(web.url_for(controller='external_service', - action='view_external_service', - **kwd)) + action='view_external_service', + **kwd)) # Render the grid view request_id = trans.security.encode_id(sample.request.id) library_id = trans.security.encode_id(sample.library.id) self.datatx_grid.title = 'Manage "%s" datasets' % sample.name self.datatx_grid.global_actions = [grids.GridAction("Browse target data library", - dict(controller='library_common', - action='browse_library', - cntrller='library_admin', - id=library_id)), - grids.GridAction("Browse this request", - dict(controller='requests_common', - action='view_request', - cntrller='requests_admin', - id=request_id))] + dict(controller='library_common', + action='browse_library', + cntrller='library_admin', + id=library_id)), + grids.GridAction("Browse this request", + dict(controller='requests_common', + action='view_request', + cntrller='requests_admin', + id=request_id))] return self.datatx_grid(trans, **kwd) @web.expose @@ -354,13 +354,13 @@ class RequestsAdmin(BaseUIController, UsesFormDefinitionsMixin): else: message = 'Changes saved successfully.' return trans.fill_template('/admin/requests/rename_datasets.mako', - sample=sample, - id_list=id_list, - message=message, - status=status) + sample=sample, + id_list=id_list, + message=message, + status=status) return trans.response.send_redirect(web.url_for(controller='requests_admin', - action='manage_datasets', - sample_id=sample_id)) + action='manage_datasets', + sample_id=sample_id)) def __ensure_library_add_permission(self, trans, target_library, target_folder): """ @@ -371,14 +371,14 @@ class RequestsAdmin(BaseUIController, UsesFormDefinitionsMixin): flush_needed = False if not trans.app.security_agent.can_add_library_item(current_user_roles, target_library): lp = trans.model.LibraryPermissions(trans.app.security_agent.permitted_actions.LIBRARY_ADD.action, - target_library, - current_user_private_role) + target_library, + current_user_private_role) trans.sa_session.add(lp) flush_needed = True if not trans.app.security_agent.can_add_library_item(current_user_roles, target_folder): lfp = trans.model.LibraryFolderPermissions(trans.app.security_agent.permitted_actions.LIBRARY_ADD.action, - target_folder, - current_user_private_role) + target_folder, + current_user_private_role) trans.sa_session.add(lfp) flush_needed = True if flush_needed: @@ -420,18 +420,18 @@ class RequestsAdmin(BaseUIController, UsesFormDefinitionsMixin): else: raise Exception("Automatic data transfer using scp is not yet supported.") trans.app.job_manager.deferred_job_queue.plugins[deferred_plugin].create_job(trans, - sample=sample, - sample_datasets=sample_datasets, - external_service=external_service, - external_service_type=external_service_type) + sample=sample, + sample_datasets=sample_datasets, + external_service=external_service, + external_service_type=external_service_type) else: message = "Message queue transfer is no longer supported, please set enable_beta_job_managers = True in galaxy.ini" status = "error" return trans.response.send_redirect(web.url_for(controller='requests_admin', - action='manage_datasets', - sample_id=trans.security.encode_id(sample.id), - message=message, - status=status)) + action='manage_datasets', + sample_id=trans.security.encode_id(sample.id), + message=message, + status=status)) @web.expose def update_sample_dataset_status(self, trans, cntrller, sample_dataset_ids, new_status, error_msg=None): @@ -466,8 +466,8 @@ def build_rename_datasets_for_sample_select_field(trans, sample_dataset, selecte if option: options.append(option) return build_select_field(trans, - objs=options, - label_attr='self', - select_field_name='rename_datasets_for_sample_%s' % trans.security.encode_id(sample_dataset.id), - selected_value=selected_value, - refresh_on_change=False) + objs=options, + label_attr='self', + select_field_name='rename_datasets_for_sample_%s' % trans.security.encode_id(sample_dataset.id), + selected_value=selected_value, + refresh_on_change=False) diff --git a/lib/galaxy/webapps/galaxy/controllers/requests_common.py b/lib/galaxy/webapps/galaxy/controllers/requests_common.py index c467955f166..d04c378de0e 100644 --- a/lib/galaxy/webapps/galaxy/controllers/requests_common.py +++ b/lib/galaxy/webapps/galaxy/controllers/requests_common.py @@ -57,8 +57,8 @@ class RequestsGrid(grids.Grid): .filter(self.model_class.table.c.id == model.RequestEvent.table.c.request_id) \ .filter(model.RequestEvent.table.c.state == column_filter) \ .filter(model.RequestEvent.table.c.id.in_(select(columns=[func.max(model.RequestEvent.table.c.id)], - from_obj=model.RequestEvent.table, - group_by=model.RequestEvent.table.c.request_id))) + from_obj=model.RequestEvent.table, + group_by=model.RequestEvent.table.c.request_id))) # Grid definition title = "Sequencing Requests" @@ -70,38 +70,38 @@ class RequestsGrid(grids.Grid): default_filter = dict(state="All", deleted="False") columns = [ NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_request", id=item.id)), - attach_popup=True, - filterable="advanced"), + key="name", + link=(lambda item: dict(operation="view_request", id=item.id)), + attach_popup=True, + filterable="advanced"), DescriptionColumn("Description", - key='desc', - filterable="advanced"), + key='desc', + filterable="advanced"), SamplesColumn("Samples", - link=(lambda item: iff(item.deleted, None, dict(operation="edit_samples", id=item.id)))), + link=(lambda item: iff(item.deleted, None, dict(operation="edit_samples", id=item.id)))), TypeColumn("Type", - link=(lambda item: iff(item.deleted, None, dict(operation="view_type", id=item.type.id)))), + link=(lambda item: iff(item.deleted, None, dict(operation="view_type", id=item.type.id)))), grids.GridColumn("Last Updated", key="update_time", format=time_ago), grids.DeletedColumn("Deleted", - key="deleted", - visible=False, - filterable="advanced"), + key="deleted", + visible=False, + filterable="advanced"), StateColumn("State", - key='state', - filterable="advanced", - link=(lambda item: iff(item.deleted, None, dict(operation="view_request_history", id=item.id))) + key='state', + filterable="advanced", + link=(lambda item: iff(item.deleted, None, dict(operation="view_request_history", id=item.id))) ) ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [ grids.GridOperation("Submit", - allow_multiple=False, - condition=(lambda item: not item.deleted and item.is_unsubmitted and item.samples), - confirm="Samples cannot be added to this request after it is submitted. Click OK to submit.") + allow_multiple=False, + condition=(lambda item: not item.deleted and item.is_unsubmitted and item.samples), + confirm="Samples cannot be added to this request after it is submitted. Click OK to submit.") ] @@ -122,9 +122,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): sample = trans.sa_session.query(self.app.model.Sample).get(id) if sample.state.name != state: rval[id] = {"state": sample.state.name, - "html_state": unicodify(trans.fill_template("requests/common/sample_state.mako", - sample=sample), - 'utf-8')} + "html_state": unicodify(trans.fill_template("requests/common/sample_state.mako", + sample=sample), + 'utf-8')} return rval @web.json @@ -143,9 +143,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): sample = trans.sa_session.query(self.app.model.Sample).get(id) if len(sample.datasets) != number_of_datasets: rval[id] = {"datasets": len(sample.datasets), - "html_datasets": unicodify(trans.fill_template("requests/common/sample_datasets.mako", - sample=sample), - 'utf-8')} + "html_datasets": unicodify(trans.fill_template("requests/common/sample_datasets.mako", + sample=sample), + 'utf-8')} return rval @web.json @@ -164,9 +164,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): sample_dataset = trans.sa_session.query(self.app.model.SampleDataset).get(trans.security.decode_id(id)) if sample_dataset.status != transfer_status: rval[id] = {"status": sample_dataset.status, - "html_status": unicodify(trans.fill_template("requests/common/sample_dataset_transfer_status.mako", - sample_dataset=sample_dataset), - 'utf-8')} + "html_status": unicodify(trans.fill_template("requests/common/sample_dataset_transfer_status.mako", + sample_dataset=sample_dataset), + 'utf-8')} return rval @web.expose @@ -222,9 +222,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): message = 'The sequencing request has been created.' if params.get('create_request_button', False): return trans.response.send_redirect(web.url_for(controller=cntrller, - action='browse_requests', - message=message, - status='done')) + action='browse_requests', + message=message, + status='done')) elif params.get('add_sample_button', False): request_id = trans.security.encode_id(request.id) return self.add_sample(trans, cntrller, request_id, **kwd) @@ -234,11 +234,11 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): if request_type is not None or status == 'error': # Either the user selected a request_type or an error exists on the form. widgets.append(dict(label='Name of the Experiment', - widget=TextField('name', 40, util.restore_text(params.get('name', ''))), - helptext='(Required)')) + widget=TextField('name', 40, util.restore_text(params.get('name', ''))), + helptext='(Required)')) widgets.append(dict(label='Description', - widget=TextField('desc', 40, util.restore_text(params.get('desc', ''))), - helptext='(Optional)')) + widget=TextField('desc', 40, util.restore_text(params.get('desc', ''))), + helptext='(Optional)')) if request_type is not None: widgets += request_type.request_form.get_widgets(user, **kwd) # In case there is an error on the form, make sure to populate widget fields with anything the user @@ -252,16 +252,16 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): else: selected_user_id = user_id user_widget = dict(label='Select user', - widget=self.__build_user_id_select_field(trans, selected_value=selected_user_id), - helptext='Submit the request on behalf of the selected user (Required)') + widget=self.__build_user_id_select_field(trans, selected_value=selected_user_id), + helptext='Submit the request on behalf of the selected user (Required)') widgets = [user_widget] + widgets return trans.fill_template('/requests/common/create_request.mako', - cntrller=cntrller, - request_type_select_field=request_type_select_field, - request_type_select_field_selected=request_type_id, - widgets=widgets, - message=message, - status=status) + cntrller=cntrller, + request_type_select_field=request_type_select_field, + request_type_select_field_selected=request_type_id, + widgets=widgets, + message=message, + status=status) @web.expose @web.require_login("view request") @@ -278,12 +278,12 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): displayable_sample_widgets = self.__get_sample_widgets(trans, request, request.samples, **kwd) request_widgets = self.__get_request_widgets(trans, request.id) return trans.fill_template('/requests/common/view_request.mako', - cntrller=cntrller, - request=request, - request_widgets=request_widgets, - displayable_sample_widgets=displayable_sample_widgets, - status=status, - message=message) + cntrller=cntrller, + request=request, + request_widgets=request_widgets, + displayable_sample_widgets=displayable_sample_widgets, + status=status, + message=message) @web.expose @web.require_login("edit sequencing requests") @@ -307,22 +307,22 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): # Widgets to be rendered on the request form widgets = [] widgets.append(dict(label='Name', - widget=TextField('name', 40, request.name), - helptext='(Required)')) + widget=TextField('name', 40, request.name), + helptext='(Required)')) widgets.append(dict(label='Description', - widget=TextField('desc', 40, request.desc), - helptext='(Optional)')) + widget=TextField('desc', 40, request.desc), + helptext='(Optional)')) widgets = widgets + request.type.request_form.get_widgets(request.user, request.values.content, **kwd) # In case there is an error on the form, make sure to populate widget fields with anything the user # may have already entered. widgets = self.populate_widgets_from_kwd(trans, widgets, **kwd) return trans.fill_template('requests/common/edit_basic_request_info.mako', - cntrller=cntrller, - request_type=request.type, - request=request, - widgets=widgets, - message=message, - status=status) + cntrller=cntrller, + request_type=request.type, + request=request, + widgets=widgets, + message=message, + status=status) def __save_request(self, trans, cntrller, request=None, **kwd): """ @@ -396,11 +396,11 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): message = self.__validate_request(trans, cntrller, request) if message or not ok: return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_basic_request_info', - cntrller=cntrller, - id=request_id, - status='error', - message=message)) + action='edit_basic_request_info', + cntrller=cntrller, + id=request_id, + status='error', + message=message)) # Change the request state to 'Submitted' comment = "Sequencing request submitted by %s" % trans.user.email if request.user != trans.user: @@ -419,8 +419,8 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): for sample in request.samples: event_comment = 'Sequencing request submitted and sample state set to %s.' % request.type.states[0].name event = trans.model.SampleEvent(sample, - initial_sample_state_after_request_submitted, - event_comment) + initial_sample_state_after_request_submitted, + event_comment) trans.sa_session.add(event) trans.sa_session.add(request) trans.sa_session.flush() @@ -428,11 +428,11 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): message = 'The sequencing request has been submitted.' # show the request page after submitting the request return trans.response.send_redirect(web.url_for(controller='requests_common', - action='view_request', - cntrller=cntrller, - id=request_id, - status=status, - message=message)) + action='view_request', + cntrller=cntrller, + id=request_id, + status=status, + message=message)) @web.expose @web.require_login("edit samples") @@ -448,9 +448,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): return invalid_id_redirect(trans, cntrller, request_id) if params.get('cancel_changes_button', False): return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_samples', - cntrller=cntrller, - id=request_id)) + action='edit_samples', + cntrller=cntrller, + id=request_id)) libraries = trans.app.security_agent.get_accessible_libraries(trans, request.user) # Build a list of sample widgets (based on the attributes of each sample) for display. displayable_sample_widgets = self.__get_sample_widgets(trans, request, request.samples, **kwd) @@ -460,9 +460,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): def handle_error(**kwd): kwd['status'] = 'error' return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_samples', - cntrller=cntrller, - **kwd)) + action='edit_samples', + cntrller=cntrller, + **kwd)) if not encoded_selected_sample_ids and sample_operation != 'none': # Probably occurred due to refresh_on_change...is there a better approach? kwd['sample_operation'] = 'none' @@ -506,28 +506,28 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): request_widgets = self.__get_request_widgets(trans, request.id) sample_copy_select_field = self.__build_copy_sample_select_field(trans, displayable_sample_widgets) libraries_select_field, folders_select_field = self.__build_library_and_folder_select_fields(trans, - request.user, - 'sample_operation', - libraries, - None, - **kwd) + request.user, + 'sample_operation', + libraries, + None, + **kwd) sample_operation_select_field = self.__build_sample_operation_select_field(trans, is_admin, request, sample_operation) sample_state_id = params.get('sample_state_id', None) sample_state_id_select_field = self.__build_sample_state_id_select_field(trans, request, sample_state_id) return trans.fill_template('/requests/common/edit_samples.mako', - cntrller=cntrller, - request=request, - encoded_selected_sample_ids=encoded_selected_sample_ids, - request_widgets=request_widgets, - displayable_sample_widgets=displayable_sample_widgets, - sample_copy_select_field=sample_copy_select_field, - libraries=libraries, - sample_operation_select_field=sample_operation_select_field, - libraries_select_field=libraries_select_field, - folders_select_field=folders_select_field, - sample_state_id_select_field=sample_state_id_select_field, - status=status, - message=message) + cntrller=cntrller, + request=request, + encoded_selected_sample_ids=encoded_selected_sample_ids, + request_widgets=request_widgets, + displayable_sample_widgets=displayable_sample_widgets, + sample_copy_select_field=sample_copy_select_field, + libraries=libraries, + sample_operation_select_field=sample_operation_select_field, + libraries_select_field=libraries_select_field, + folders_select_field=folders_select_field, + sample_state_id_select_field=sample_state_id_select_field, + status=status, + message=message) @web.expose def update_sample_state(self, trans, cntrller, sample_ids, new_state, comment=None): @@ -589,9 +589,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): message += '%s, ' % request.name message = message.rstrip(', ') return trans.response.send_redirect(web.url_for(controller=cntrller, - action='browse_requests', - status=status, - message=message)) + action='browse_requests', + status=status, + message=message)) @web.expose @web.require_login("undelete sequencing requests") @@ -622,9 +622,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): num_undeleted += 1 message += '%i requests have been undeleted.' % num_undeleted return trans.response.send_redirect(web.url_for(controller=cntrller, - action='browse_requests', - status=status, - message=message)) + action='browse_requests', + status=status, + message=message)) @web.expose @web.require_login("sequencing request history") @@ -636,8 +636,8 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): except: return invalid_id_redirect(trans, cntrller, request_id) return trans.fill_template('/requests/common/view_request_history.mako', - cntrller=cntrller, - request=request) + cntrller=cntrller, + request=request) @web.expose @web.require_login("edit email notification settings") @@ -679,9 +679,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): message += err_msg else: request.notification = dict(email=email_addresses, - sample_states=checked_sample_states, - body='', - subject='') + sample_states=checked_sample_states, + body='', + subject='') else: # The user may have eliminated email addresses that were previously set request.notification = None @@ -692,11 +692,11 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): trans.sa_session.refresh(request) message += 'The changes made to the email notification settings have been saved.' return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_basic_request_info', - cntrller=cntrller, - id=request_id, - message=message, - status=status)) + action='edit_basic_request_info', + cntrller=cntrller, + id=request_id, + message=message, + status=status)) @web.expose @web.require_login("update sequencing request state") @@ -744,11 +744,11 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): if cntrller == 'api': return 200, message return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_samples', - cntrller=cntrller, - id=request_id, - status=status, - message=message)) + action='edit_samples', + cntrller=cntrller, + id=request_id, + status=status, + message=message)) @web.expose @web.require_login("find samples") @@ -765,18 +765,18 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): if search_type == 'bar_code': samples = trans.sa_session.query(trans.model.Sample) \ .filter(and_(trans.model.Sample.table.c.deleted == false(), - func.lower(trans.model.Sample.table.c.bar_code).like("%" + search_string.lower() + "%"))) \ + func.lower(trans.model.Sample.table.c.bar_code).like("%" + search_string.lower() + "%"))) \ .order_by(trans.model.Sample.table.c.create_time.desc()) elif search_type == 'sample name': samples = trans.sa_session.query(trans.model.Sample) \ .filter(and_(trans.model.Sample.table.c.deleted == false(), - func.lower(trans.model.Sample.table.c.name).like("%" + search_string.lower() + "%"))) \ + func.lower(trans.model.Sample.table.c.name).like("%" + search_string.lower() + "%"))) \ .order_by(trans.model.Sample.table.c.create_time.desc()) elif search_type == 'dataset': samples = trans.sa_session.query(trans.model.Sample) \ .filter(and_(trans.model.Sample.table.c.deleted == false(), - trans.model.SampleDataset.table.c.sample_id == trans.model.Sample.table.c.id, - func.lower(trans.model.SampleDataset.table.c.name).like("%" + search_string.lower() + "%"))) \ + trans.model.SampleDataset.table.c.sample_id == trans.model.Sample.table.c.id, + func.lower(trans.model.SampleDataset.table.c.name).like("%" + search_string.lower() + "%"))) \ .order_by(trans.model.Sample.table.c.create_time.desc()) elif search_type == 'form value': samples = [] @@ -805,13 +805,13 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): selected_value = kwd.get('request_states', trans.model.Request.states.SUBMITTED) states = [v for k, v in trans.model.Request.states.items()] request_states = build_select_field(trans, - states, - 'self', - 'request_states', - selected_value=selected_value, - refresh_on_change=False, - multiple=True, - display='checkboxes') + states, + 'self', + 'request_states', + selected_value=selected_value, + refresh_on_change=False, + multiple=True, + display='checkboxes') # Build the search_type SelectField selected_value = kwd.get('search_type', 'sample name') types = ['sample name', 'bar_code', 'dataset', 'form value'] @@ -819,12 +819,12 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): # Build the search_box TextField search_box = TextField('search_box', 50, kwd.get('search_box', '')) return trans.fill_template('/requests/common/find_samples.mako', - cntrller=cntrller, - request_states=request_states, - samples=samples_list, - search_type=search_type, - results=results, - search_box=search_box) + cntrller=cntrller, + request_states=request_states, + samples=samples_list, + search_type=search_type, + results=results, + search_box=search_box) @web.expose @web.require_login("sample events") @@ -836,8 +836,8 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): except: return invalid_id_redirect(trans, cntrller, sample_id, 'sample') return trans.fill_template('/requests/common/view_sample_history.mako', - cntrller=cntrller, - sample=sample) + cntrller=cntrller, + sample=sample) @web.expose @web.require_login("add samples") @@ -865,22 +865,22 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): request_widgets = self.__get_request_widgets(trans, request.id) sample_copy_select_field = self.__build_copy_sample_select_field(trans, displayable_sample_widgets) libraries_select_field, folders_select_field = self.__build_library_and_folder_select_fields(trans, - request.user, - 'sample_operation', - libraries, - None, - **kwd) + request.user, + 'sample_operation', + libraries, + None, + **kwd) return trans.fill_template('/requests/common/add_samples.mako', - cntrller=cntrller, - request=request, - request_widgets=request_widgets, - displayable_sample_widgets=displayable_sample_widgets, - sample_copy_select_field=sample_copy_select_field, - libraries=libraries, - libraries_select_field=libraries_select_field, - folders_select_field=folders_select_field, - status=status, - message=message) + cntrller=cntrller, + request=request, + request_widgets=request_widgets, + displayable_sample_widgets=displayable_sample_widgets, + sample_copy_select_field=sample_copy_select_field, + libraries=libraries, + libraries_select_field=libraries_select_field, + folders_select_field=folders_select_field, + status=status, + message=message) @web.expose @web.require_login("add sample") @@ -923,49 +923,49 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): field_values[field['name']] = '' # Build the library_select_field and folder_select_field for the new sample being added. library_select_field, folder_select_field = self.__build_library_and_folder_select_fields(trans, - user=request.user, - sample_index=len(displayable_sample_widgets), - libraries=libraries, - sample=None, - library_id=library_id, - folder_id=folder_id, - **kwd) + user=request.user, + sample_index=len(displayable_sample_widgets), + libraries=libraries, + sample=None, + library_id=library_id, + folder_id=folder_id, + **kwd) history_select_field = self.__build_history_select_field(trans=trans, - user=request.user, - sample_index=len(displayable_sample_widgets), - history_id=history_id, - **kwd) + user=request.user, + sample_index=len(displayable_sample_widgets), + history_id=history_id, + **kwd) workflow_select_field = self.__build_workflow_select_field(trans=trans, - user=request.user, - request=request, - sample_index=len(displayable_sample_widgets), - workflow_id=workflow_id, - history_id=history_id, - **kwd) + user=request.user, + request=request, + sample_index=len(displayable_sample_widgets), + workflow_id=workflow_id, + history_id=history_id, + **kwd) # Append the new sample to the current list of samples for the request displayable_sample_widgets.append(dict(id=None, - name=name, - bar_code='', - library=None, - library_id=library_id, - history=None, - workflow=None, - history_select_field=history_select_field, - workflow_select_field=workflow_select_field, - folder=None, - folder_id=folder_id, - field_values=field_values, - library_select_field=library_select_field, - folder_select_field=folder_select_field)) + name=name, + bar_code='', + library=None, + library_id=library_id, + history=None, + workflow=None, + history_select_field=history_select_field, + workflow_select_field=workflow_select_field, + folder=None, + folder_id=folder_id, + field_values=field_values, + library_select_field=library_select_field, + folder_select_field=folder_select_field)) sample_copy_select_field = self.__build_copy_sample_select_field(trans, displayable_sample_widgets) return trans.fill_template('/requests/common/add_samples.mako', - cntrller=cntrller, - request=request, - request_widgets=request_widgets, - displayable_sample_widgets=displayable_sample_widgets, - sample_copy_select_field=sample_copy_select_field, - message=message, - status=status) + cntrller=cntrller, + request=request, + request_widgets=request_widgets, + displayable_sample_widgets=displayable_sample_widgets, + sample_copy_select_field=sample_copy_select_field, + message=message, + status=status) @web.expose @web.require_login("view request") @@ -987,13 +987,13 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): else: external_services = None return trans.fill_template('/requests/common/view_sample.mako', - cntrller=cntrller, - sample=sample, - widgets=widgets, - widget_fields_have_contents=widget_fields_have_contents, - status=status, - message=message, - external_services=external_services) + cntrller=cntrller, + sample=sample, + widgets=widgets, + widget_fields_have_contents=widget_fields_have_contents, + status=status, + message=message, + external_services=external_services) @web.expose @web.require_login("delete sample from sequencing request") @@ -1016,11 +1016,11 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): trans.sa_session.flush() message = 'Sample (%s) has been deleted.' % sample_name return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_samples', - cntrller=cntrller, - id=trans.security.encode_id(request.id), - status=status, - message=message)) + action='edit_samples', + cntrller=cntrller, + id=trans.security.encode_id(request.id), + status=status, + message=message)) @web.expose @web.require_login("view data transfer page") @@ -1044,11 +1044,11 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): status = 'error' message = "Select a target data library and folder for the sample before selecting the datasets." return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_samples', - cntrller=cntrller, - id=trans.security.encode_id(sample.request.id), - status=status, - message=message)) + action='edit_samples', + cntrller=cntrller, + id=trans.security.encode_id(sample.request.id), + status=status, + message=message)) transfer_status = params.get('transfer_status', None) if transfer_status in [None, 'None']: title = 'All selected datasets for "%s"' % sample.name @@ -1069,14 +1069,14 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): title = 'Datasets of "%s" that resulted in a transfer error' % sample.name sample_datasets = sample.transfer_error_dataset_files return trans.fill_template('/requests/common/view_sample_datasets.mako', - cntrller=cntrller, - title=title, - external_service=external_service, - sample=sample, - sample_datasets=sample_datasets, - transfer_status=transfer_status, - message=message, - status=status) + cntrller=cntrller, + title=title, + external_service=external_service, + sample=sample, + sample_datasets=sample_datasets, + transfer_status=transfer_status, + message=message, + status=status) def __import_samples(self, trans, cntrller, request, displayable_sample_widgets, libraries, workflows, **kwd): """ @@ -1106,50 +1106,50 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): # Get the folder for folder in trans.sa_session.query(trans.model.LibraryFolder) \ .filter(and_(trans.model.LibraryFolder.table.c.name == row[2], - trans.model.LibraryFolder.table.c.deleted == false())): + trans.model.LibraryFolder.table.c.deleted == false())): if folder.parent_library == library: break if folder: library_id = trans.security.encode_id(library.id) folder_id = trans.security.encode_id(folder.id) library_select_field, folder_select_field = self.__build_library_and_folder_select_fields(trans, - request.user, - len(displayable_sample_widgets), - libraries, - None, - library_id, - folder_id, - **kwd) + request.user, + len(displayable_sample_widgets), + libraries, + None, + library_id, + folder_id, + **kwd) # Get the history history = trans.sa_session.query(trans.model.History) \ .filter(and_(trans.model.History.table.c.name == row[3], - trans.model.History.table.c.deleted == false(), - trans.model.History.user_id == trans.user.id)) \ + trans.model.History.table.c.deleted == false(), + trans.model.History.user_id == trans.user.id)) \ .first() if history: history_id = trans.security.encode_id(history.id) else: history_id = 'none' history_select_field = self.__build_history_select_field(trans=trans, - user=request.user, - sample_index=len(displayable_sample_widgets), - history_id=history_id) + user=request.user, + sample_index=len(displayable_sample_widgets), + history_id=history_id) # Get the workflow workflow = trans.sa_session.query(trans.model.StoredWorkflow) \ .filter(and_(trans.model.StoredWorkflow.table.c.name == row[4], - trans.model.StoredWorkflow.table.c.deleted == false(), - trans.model.StoredWorkflow.user_id == trans.user.id)) \ + trans.model.StoredWorkflow.table.c.deleted == false(), + trans.model.StoredWorkflow.user_id == trans.user.id)) \ .first() if workflow: workflow_id = trans.security.encode_id(workflow.id) else: workflow_id = 'none' workflow_select_field = self.__build_workflow_select_field(trans=trans, - user=request.user, - request=request, - sample_index=len(displayable_sample_widgets), - workflow_id=workflow_id, - history_id=history_id) + user=request.user, + request=request, + sample_index=len(displayable_sample_widgets), + workflow_id=workflow_id, + history_id=history_id) field_values = {} field_names = row[5:] for field_name in field_names: @@ -1161,21 +1161,21 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): field_value = '' field_values[field_name] = field_value displayable_sample_widgets.append(dict(id=None, - name=row[0], - bar_code='', - library=library, - library_id=library_id, - library_select_field=library_select_field, - folder=folder, - folder_id=folder_id, - folder_select_field=folder_select_field, - history=history, - history_id=history_id, - history_select_field=history_select_field, - workflow=workflow, - workflow_id=workflow_id, - workflow_select_field=workflow_select_field, - field_values=field_values)) + name=row[0], + bar_code='', + library=library, + library_id=library_id, + library_select_field=library_select_field, + folder=folder, + folder_id=folder_id, + folder_select_field=folder_select_field, + history=history, + history_id=history_id, + history_select_field=history_select_field, + workflow=workflow, + workflow_id=workflow_id, + workflow_select_field=workflow_select_field, + field_values=field_values)) except Exception as e: if str(e) == "'unicode' object has no attribute 'file'": message = "Select a file" @@ -1183,20 +1183,20 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): message = 'Error attempting to create samples from selected file: %s.' % str(e) message += ' Make sure the selected csv file uses the format: SampleName,DataLibrary,DataLibraryFolder,FieldValue1,FieldValue2...' return trans.response.send_redirect(web.url_for(controller='requests_common', - action='add_sample', - cntrller=cntrller, - request_id=trans.security.encode_id(request.id), - add_sample_button='Add sample', - status='error', - message=message)) + action='add_sample', + cntrller=cntrller, + request_id=trans.security.encode_id(request.id), + add_sample_button='Add sample', + status='error', + message=message)) request_widgets = self.__get_request_widgets(trans, request.id) sample_copy_select_field = self.__build_copy_sample_select_field(trans, displayable_sample_widgets) return trans.fill_template('/requests/common/add_samples.mako', - cntrller=cntrller, - request=request, - request_widgets=request_widgets, - displayable_sample_widgets=displayable_sample_widgets, - sample_copy_select_field=sample_copy_select_field) + cntrller=cntrller, + request=request, + request_widgets=request_widgets, + displayable_sample_widgets=displayable_sample_widgets, + sample_copy_select_field=sample_copy_select_field) def __save_samples(self, trans, cntrller, request, sample_widgets, saving_new_samples=False, **kwd): # Here we handle saving all new samples added by the user as well as saving @@ -1223,9 +1223,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): def handle_error(**kwd): kwd['status'] = 'error' return trans.response.send_redirect(web.url_for(controller='requests_common', - action=redirect_action, - cntrller=cntrller, - **kwd)) + action=redirect_action, + cntrller=cntrller, + **kwd)) # Here we handle saving changes to single samples as well as saving changes to # selected sets of samples. If samples are selected, the sample_operation param # will have a value other than 'none', and the samples param will be a list of @@ -1263,9 +1263,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): handle_error(**kwd) self.update_sample_state(trans, cntrller, encoded_selected_sample_ids, new_state, comment=sample_event_comment) return trans.response.send_redirect(web.url_for(controller='requests_common', - cntrller=cntrller, - action='update_request_state', - request_id=trans.security.encode_id(request.id))) + cntrller=cntrller, + action='update_request_state', + request_id=trans.security.encode_id(request.id))) elif sample_operation == trans.model.Sample.bulk_operations.SELECT_LIBRARY: library_id = params.get('sample_operation_library_id', 'none') folder_id = params.get('sample_operation_folder_id', 'none') @@ -1297,14 +1297,14 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): else: bar_code = '' sample = trans.model.Sample(name=sample_widget['name'], - desc='', - request=request, - form_values=form_values, - bar_code=bar_code, - library=sample_widget['library'], - folder=sample_widget['folder'], - history=sample_widget['history'], - workflow=sample_widget['workflow_dict']) + desc='', + request=request, + form_values=form_values, + bar_code=bar_code, + library=sample_widget['library'], + folder=sample_widget['folder'], + history=sample_widget['history'], + workflow=sample_widget['workflow_dict']) trans.sa_session.add(sample) trans.sa_session.flush() new_samples.append(sample) @@ -1315,16 +1315,16 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): for sample in new_samples: event_comment = 'Sample added and sample state set to %s.' % request.type.states[0].name event = trans.model.SampleEvent(sample, - initial_sample_state_after_request_submitted, - event_comment) + initial_sample_state_after_request_submitted, + event_comment) trans.sa_session.add(event) trans.sa_session.flush() return trans.response.send_redirect(web.url_for(controller='requests_common', - action=redirect_action, - cntrller=cntrller, - id=trans.security.encode_id(request.id), - status=status, - message=message)) + action=redirect_action, + cntrller=cntrller, + id=trans.security.encode_id(request.id), + status=status, + message=message)) def __update_samples(self, trans, cntrller, request, sample_widgets, **kwd): # The list of sample_widgets must have the same number of objects as request.samples, @@ -1336,9 +1336,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): def handle_error(**kwd): kwd['status'] = 'error' return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_samples', - cntrller=cntrller, - **kwd)) + action='edit_samples', + cntrller=cntrller, + **kwd)) for index, sample_widget in enumerate(sample_widgets): if sample_widget is not None: # sample_widget will be None if the user checked sample check boxes and selected an action @@ -1376,8 +1376,8 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): else: next_sample_state = request.type.states[0] event = trans.model.SampleEvent(sample, - next_sample_state, - 'Bar code associated with the sample') + next_sample_state, + 'Bar code associated with the sample') trans.sa_session.add(event) trans.sa_session.flush() # Next step is to update the request event history if bar codes @@ -1454,16 +1454,16 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): if field['type'] == 'AddressField': if field_value: request_widgets.append(dict(label=field['label'], - value=trans.sa_session.query(trans.model.UserAddress).get(int(field_value)).get_html(), - helptext=field['helptext'] + ' (' + required_label + ')')) + value=trans.sa_session.query(trans.model.UserAddress).get(int(field_value)).get_html(), + helptext=field['helptext'] + ' (' + required_label + ')')) else: request_widgets.append(dict(label=field['label'], - value=None, - helptext=field['helptext'] + ' (' + required_label + ')')) + value=None, + helptext=field['helptext'] + ' (' + required_label + ')')) else: request_widgets.append(dict(label=field['label'], - value=field_value, - helptext=field['helptext'] + ' (' + required_label + ')')) + value=field_value, + helptext=field['helptext'] + ' (' + required_label + ')')) return request_widgets def __get_sample_widgets(self, trans, request, samples, **kwd): @@ -1552,40 +1552,40 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): field_value = util.restore_text(input_value) field_values[field_name] = field_value library_select_field, folder_select_field = self.__build_library_and_folder_select_fields(trans=trans, - user=request.user, - sample_index=index, - libraries=libraries, - sample=sample, - library_id=library_id, - folder_id=folder_id, - **kwd) + user=request.user, + sample_index=index, + libraries=libraries, + sample=sample, + library_id=library_id, + folder_id=folder_id, + **kwd) history_select_field = self.__build_history_select_field(trans=trans, - user=request.user, - sample_index=index, - sample=sample, - history_id=history_id, - **kwd) + user=request.user, + sample_index=index, + sample=sample, + history_id=history_id, + **kwd) workflow_select_field = self.__build_workflow_select_field(trans=trans, - user=request.user, - request=request, - sample_index=index, - sample=sample, - workflow_dict=workflow_dict, - history_id=history_id, - **kwd) + user=request.user, + request=request, + sample_index=index, + sample=sample, + workflow_dict=workflow_dict, + history_id=history_id, + **kwd) sample_widgets.append(dict(id=sample_id, - name=name, - bar_code=bar_code, - library=library, - folder=folder, - history=history, - workflow=workflow, - workflow_dict=workflow_dict, - field_values=field_values, - library_select_field=library_select_field, - folder_select_field=folder_select_field, - history_select_field=history_select_field, - workflow_select_field=workflow_select_field)) + name=name, + bar_code=bar_code, + library=library, + folder=folder, + history=history, + workflow=workflow, + workflow_dict=workflow_dict, + field_values=field_values, + library_select_field=library_select_field, + folder_select_field=folder_select_field, + history_select_field=history_select_field, + workflow_select_field=workflow_select_field)) # There may be additional new samples on the form that have not yet been associated with the request. # TODO: factor this code so it is not duplicating what's above. index = len(samples) @@ -1629,41 +1629,41 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): field_value = util.restore_text(input_value) field_values[field_name] = field_value library_select_field, folder_select_field = self.__build_library_and_folder_select_fields(trans=trans, - user=request.user, - sample_index=index, - libraries=libraries, - sample=None, - library_id=library_id, - folder_id=folder_id, - **kwd) + user=request.user, + sample_index=index, + libraries=libraries, + sample=None, + library_id=library_id, + folder_id=folder_id, + **kwd) history_select_field = self.__build_history_select_field(trans=trans, - user=request.user, - sample_index=index, - sample=None, - history_id=history_id, - **kwd) + user=request.user, + sample_index=index, + sample=None, + history_id=history_id, + **kwd) workflow_select_field = self.__build_workflow_select_field(trans=trans, - user=request.user, - request=request, - sample_index=index, - sample=None, - workflow_dict=workflow_dict, - history_id=history_id, - **kwd) + user=request.user, + request=request, + sample_index=index, + sample=None, + workflow_dict=workflow_dict, + history_id=history_id, + **kwd) sample_widgets.append(dict(id=None, - name=name, - bar_code=bar_code, - library=library, - folder=folder, - field_values=field_values, - history=history, - workflow=workflow, - workflow_dict=workflow_dict, - history_select_field=history_select_field, - workflow_select_field=workflow_select_field, - library_select_field=library_select_field, - folder_select_field=folder_select_field)) + name=name, + bar_code=bar_code, + library=library, + folder=folder, + field_values=field_values, + history=history, + workflow=workflow, + workflow_dict=workflow_dict, + history_select_field=history_select_field, + workflow_select_field=workflow_select_field, + library_select_field=library_select_field, + folder_select_field=folder_select_field)) index += 1 return sample_widgets @@ -1736,12 +1736,12 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): selected_library = sample.library # Build the sample_%i_library_id SelectField with refresh on change enabled library_select_field = build_select_field(trans, - libraries, - 'name', - library_select_field_name, - initial_value='none', - selected_value=str(library_id).lower(), - refresh_on_change=True) + libraries, + 'name', + library_select_field_name, + initial_value='none', + selected_value=str(library_id).lower(), + refresh_on_change=True) # Get all folders for the selected library, if one is indeed selected if selected_library: folders = self.__get_active_folders(selected_library.root_folder, active_folders_list=[selected_library.root_folder]) @@ -1760,11 +1760,11 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): folder.name = 'Data library root' break folder_select_field = build_select_field(trans, - folders, - 'name', - folder_select_field_name, - initial_value='none', - selected_value=selected_folder_id) + folders, + 'name', + folder_select_field_name, + initial_value='none', + selected_value=selected_folder_id) return library_select_field, folder_select_field def __build_history_select_field(self, trans, user, sample_index, sample=None, history_id=None, **kwd): @@ -1785,12 +1785,12 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): history_id = trans.security.encode_id(sample.history.id) # Build the sample_%i_history_id SelectField with refresh on change disabled hsf = build_select_field(trans, - [h for h in user.histories if not h.deleted], - 'name', - history_select_field_name, - initial_value='none', - selected_value=str(history_id).lower(), - refresh_on_change=True) + [h for h in user.histories if not h.deleted], + 'name', + history_select_field_name, + initial_value='none', + selected_value=str(history_id).lower(), + refresh_on_change=True) # This is ugly, but allows for an explicit "New History", while still using build_select_field. # hsf.options = hsf.options[:1] + [( "Create a New History", 'new', 'new'==str( history_id ).lower() )] + hsf.options[1:] hsf.options = [("Select one", 'none', 'none' == str(history_id).lower())] + hsf.options[1:] @@ -1858,11 +1858,11 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): else: selected_value = trans.security.encode_id(request.type.states[0].id) return build_select_field(trans, - objs=request.type.states, - label_attr='name', - select_field_name='sample_state_id', - selected_value=selected_value, - refresh_on_change=False) + objs=request.type.states, + label_attr='name', + select_field_name='sample_state_id', + selected_value=selected_value, + refresh_on_change=False) # ===== Methods for validation forms and fields ===== def __validate_request(self, trans, cntrller, request): @@ -1913,9 +1913,9 @@ class RequestsCommon(BaseUIController, UsesFormDefinitionsMixin): kwd['message'] = message kwd['status'] = 'error' return trans.response.send_redirect(web.url_for(controller='requests_common', - action='edit_samples', - cntrller=cntrller, - **kwd)) + action='edit_samples', + cntrller=cntrller, + **kwd)) def __validate_bar_code(self, trans, sample, bar_code): """ @@ -1955,6 +1955,6 @@ def invalid_id_redirect(trans, cntrller, obj_id, item='sequencing request', acti status = 'error' message = "Invalid %s id (%s)" % (item, str(obj_id)) return trans.response.send_redirect(web.url_for(controller=cntrller, - action=action, - status=status, - message=message)) + action=action, + status=status, + message=message)) diff --git a/lib/galaxy/webapps/galaxy/controllers/root.py b/lib/galaxy/webapps/galaxy/controllers/root.py index 6eb73051cae..ecb6efc29ae 100644 --- a/lib/galaxy/webapps/galaxy/controllers/root.py +++ b/lib/galaxy/webapps/galaxy/controllers/root.py @@ -108,12 +108,12 @@ class RootController(controller.JSAppLauncher, UsesAnnotations): User login path for client-side. """ return self.template(trans, 'login', - redirect=redirect, - # TODO: move into config - openid_providers=[p.name for p in trans.app.openid_providers], - # an installation may have it's own welcome_url - show it here if they've set that - welcome_url=web.url_for(controller='root', action='welcome'), - show_welcome_with_login=trans.app.config.show_welcome_with_login) + redirect=redirect, + # TODO: move into config + openid_providers=[p.name for p in trans.app.openid_providers], + # an installation may have it's own welcome_url - show it here if they've set that + welcome_url=web.url_for(controller='root', action='welcome'), + show_welcome_with_login=trans.app.config.show_welcome_with_login) # ---- Tool related ----------------------------------------------------- @@ -253,8 +253,8 @@ class RootController(controller.JSAppLauncher, UsesAnnotations): trans.log_event("Formatted dataset id %s for display at %s" % (str(id), display_app)) return data.as_display_type(display_app, **kwd) elif authz_method == 'display_at' and trans.app.host_security_agent.allow_action(trans.request.remote_addr, - data.permitted_actions.DATASET_ACCESS, - dataset=data): + data.permitted_actions.DATASET_ACCESS, + dataset=data): trans.response.set_content_type(data.get_mime()) return data.as_display_type(display_app, **kwd) else: @@ -365,18 +365,18 @@ class RootController(controller.JSAppLauncher, UsesAnnotations): @web.expose def history_add_to(self, trans, history_id=None, file_data=None, - name="Data Added to History", info=None, ext="txt", dbkey="?", copy_access_from=None, **kwd): + name="Data Added to History", info=None, ext="txt", dbkey="?", copy_access_from=None, **kwd): """Adds a POSTed file to a History. """ # TODO: unencoded id try: history = trans.sa_session.query(trans.app.model.History).get(history_id) data = trans.app.model.HistoryDatasetAssociation(name=name, - info=info, - extension=ext, - dbkey=dbkey, - create_dataset=True, - sa_session=trans.sa_session) + info=info, + extension=ext, + dbkey=dbkey, + create_dataset=True, + sa_session=trans.sa_session) if copy_access_from: copy_access_from = trans.sa_session.query(trans.app.model.HistoryDatasetAssociation).get(copy_access_from) trans.app.security_agent.copy_dataset_permissions(copy_access_from.dataset, data.dataset) @@ -435,7 +435,7 @@ class RootController(controller.JSAppLauncher, UsesAnnotations): dataset = 'dataset' in kwd bypass_manage_permission = 'bypass_manage_permission' in kwd trans.app.security_agent.history_set_default_permissions(history, permissions, - dataset=dataset, bypass_manage_permission=bypass_manage_permission) + dataset=dataset, bypass_manage_permission=bypass_manage_permission) return trans.show_ok_message('Default history permissions have been changed.') return trans.fill_template('history/permissions.mako') else: diff --git a/lib/galaxy/webapps/galaxy/controllers/tag.py b/lib/galaxy/webapps/galaxy/controllers/tag.py index e45f7367b9a..aa48a3a0c3a 100644 --- a/lib/galaxy/webapps/galaxy/controllers/tag.py +++ b/lib/galaxy/webapps/galaxy/controllers/tag.py @@ -26,14 +26,14 @@ class TagsController (BaseUIController, UsesTagsMixin): if not item: return trans.show_error_message("No item of class %s with id %s " % (item_class, item_id)) return trans.fill_template("/tagging_common.mako", - tag_type="individual", - user=trans.user, - tagged_item=item, - elt_context=elt_context, - in_form=False, - input_size="22", - tag_click_fn="default_tag_click_fn", - use_toggle_link=False) + tag_type="individual", + user=trans.user, + tagged_item=item, + elt_context=elt_context, + in_form=False, + input_size="22", + tag_click_fn="default_tag_click_fn", + use_toggle_link=False) @web.expose @web.require_login("add tag to an item") @@ -114,16 +114,16 @@ class TagsController (BaseUIController, UsesTagsMixin): cols_to_select = [item_tag_assoc_class.table.c.tag_id, func.count('*')] from_obj = item_tag_assoc_class.table.join(item_class.table).join(trans.app.model.Tag.table) where_clause = and_(trans.app.model.Tag.table.c.name.like(q + "%"), - item_tag_assoc_class.table.c.user_id == user.id) + item_tag_assoc_class.table.c.user_id == user.id) order_by = [func.count("*").desc()] group_by = item_tag_assoc_class.table.c.tag_id # Do query and get result set. query = select(columns=cols_to_select, - from_obj=from_obj, - whereclause=where_clause, - group_by=group_by, - order_by=order_by, - limit=limit) + from_obj=from_obj, + whereclause=where_clause, + group_by=group_by, + order_by=order_by, + limit=limit) result_set = trans.sa_session.execute(query) # Create and return autocomplete data. ac_data = "#Header|Your Tags\n" @@ -160,17 +160,17 @@ class TagsController (BaseUIController, UsesTagsMixin): cols_to_select = [item_tag_assoc_class.table.c.value, func.count('*')] from_obj = item_tag_assoc_class.table.join(item_class.table).join(trans.app.model.Tag.table) where_clause = and_(item_tag_assoc_class.table.c.user_id == user.id, - trans.app.model.Tag.table.c.id == tag.id, - item_tag_assoc_class.table.c.value.like(tag_value + "%")) + trans.app.model.Tag.table.c.id == tag.id, + item_tag_assoc_class.table.c.value.like(tag_value + "%")) order_by = [func.count("*").desc(), item_tag_assoc_class.table.c.value] group_by = item_tag_assoc_class.table.c.value # Do query and get result set. query = select(columns=cols_to_select, - from_obj=from_obj, - whereclause=where_clause, - group_by=group_by, - order_by=order_by, - limit=limit) + from_obj=from_obj, + whereclause=where_clause, + group_by=group_by, + order_by=order_by, + limit=limit) result_set = trans.sa_session.execute(query) # Create and return autocomplete data. ac_data = "#Header|Your Values for '%s'\n" % (tag_name) @@ -187,14 +187,14 @@ class TagsController (BaseUIController, UsesTagsMixin): # Build select stmt. cols_to_select = [item_tag_assoc_class.table.c.user_tname, func.count('*')] where_clause = and_(item_tag_assoc_class.table.c.user_id == user.id, - item_tag_assoc_class.table.c.tag_id == tag.id) + item_tag_assoc_class.table.c.tag_id == tag.id) group_by = item_tag_assoc_class.table.c.user_tname order_by = [func.count("*").desc()] # Do query and get result set. query = select(columns=cols_to_select, - whereclause=where_clause, - group_by=group_by, - order_by=order_by) + whereclause=where_clause, + group_by=group_by, + order_by=order_by) result_set = trans.sa_session.execute(query) user_tag_names = list() for row in result_set: diff --git a/lib/galaxy/webapps/galaxy/controllers/tool_runner.py b/lib/galaxy/webapps/galaxy/controllers/tool_runner.py index 9e36f7bab36..08ccd536953 100644 --- a/lib/galaxy/webapps/galaxy/controllers/tool_runner.py +++ b/lib/galaxy/webapps/galaxy/controllers/tool_runner.py @@ -54,11 +54,11 @@ class ToolRunner(BaseUIController): if tool.require_login and not trans.user: redirect = url_for(controller='tool_runner', action='index', tool_id=tool_id, **kwd) return trans.response.send_redirect(url_for(controller='user', - action='login', - cntrller='user', - status='info', - message='You must be logged in to use this tool.', - redirect=redirect)) + action='login', + cntrller='user', + status='info', + message='You must be logged in to use this tool.', + redirect=redirect)) if not tool.allow_user_access(trans.user): return __tool_404__() if tool.tool_type == 'default': diff --git a/lib/galaxy/webapps/galaxy/controllers/user.py b/lib/galaxy/webapps/galaxy/controllers/user.py index 4f66af8832b..5be86c1b042 100644 --- a/lib/galaxy/webapps/galaxy/controllers/user.py +++ b/lib/galaxy/webapps/galaxy/controllers/user.py @@ -113,11 +113,11 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create trans.app.openid_manager.persist_session(trans, consumer) return form return trans.response.send_redirect(url_for(controller='user', - action='login', - redirect=redirect, - use_panels=use_panels, - message=message, - status='error')) + action='login', + redirect=redirect, + use_panels=use_panels, + message=message, + status='error')) @web.expose def openid_process(self, trans, **kwd): @@ -142,11 +142,11 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create if info.status == trans.app.openid_manager.FAILURE and display_identifier: message = "Login via OpenID failed. The technical reason for this follows, please include this message in your email if you need to %s to resolve this problem: %s" % (contact, info.message) return trans.response.send_redirect(url_for(controller='user', - action=action, - use_panels=True, - redirect=redirect, - message=message, - status='error')) + action=action, + use_panels=True, + redirect=redirect, + message=message, + status='error')) elif info.status == trans.app.openid_manager.SUCCESS: if info.endpoint.canonicalID: display_identifier = info.endpoint.canonicalID @@ -242,11 +242,11 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create else: message = "Unable to log in via OpenID. Setup at the provider is required before this OpenID can be used. Please visit your provider's site to complete this step." return trans.response.send_redirect(url_for(controller='user', - action=action, - use_panels=True, - redirect=redirect, - message=message, - status=status)) + action=action, + use_panels=True, + redirect=redirect, + message=message, + status=status)) @web.expose def openid_associate(self, trans, cntrller='user', **kwd): @@ -289,19 +289,19 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create message = '%s
  • %s
  • ' % (message, url_for(controller='user', action='openid_auth', openid_provider=openid.id, redirect=redirect, auto_associate=True), openid.name) message = "%s" % (message) return trans.response.send_redirect(url_for(controller='user', - action='openid_manage', - use_panels=use_panels, - redirect=redirect, - message=message, - status='info')) + action='openid_manage', + use_panels=use_panels, + redirect=redirect, + message=message, + status='info')) if redirect: return trans.response.send_redirect(redirect) return trans.response.send_redirect(url_for(controller='user', - action='openid_manage', - use_panels=use_panels, - redirect=redirect, - message=message, - status='info')) + action='openid_manage', + use_panels=use_panels, + redirect=redirect, + message=message, + status='info')) if kwd.get('create_user_button', False): password = kwd.get('password', '') confirm = kwd.get('confirm', '') @@ -316,9 +316,9 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create if not error: # all the values are valid message, status, user, success = self.__register(trans, - cntrller, - subscribe_checked, - **kwd) + cntrller, + subscribe_checked, + **kwd) if success: openid_objs = [] for openid in openids: @@ -341,37 +341,37 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create message = '%s
  • %s
  • ' % (message, url_for(controller='user', action='openid_auth', openid_provider=openid.id, redirect=redirect, auto_associate=True), openid.name) message = "%s" % (message) return trans.response.send_redirect(url_for(controller='user', - action='openid_manage', - use_panels=True, - redirect=redirect, - message=message, - status='info')) + action='openid_manage', + use_panels=True, + redirect=redirect, + message=message, + status='info')) if redirect: return trans.response.send_redirect(redirect) return trans.response.send_redirect(url_for(controller='user', - action='openid_manage', - use_panels=use_panels, - redirect=redirect, - message=message, - status='info')) + action='openid_manage', + use_panels=use_panels, + redirect=redirect, + message=message, + status='info')) else: message = error status = 'error' return trans.fill_template('/user/openid_associate.mako', - cntrller=cntrller, - email=email, - password='', - confirm='', - username=transform_publicname(trans, username), - header='', - use_panels=use_panels, - redirect=redirect, - refresh_frames=[], - message=message, - status=status, - active_view="user", - subscribe_checked=False, - openids=openids) + cntrller=cntrller, + email=email, + password='', + confirm='', + username=transform_publicname(trans, username), + header='', + use_panels=use_panels, + redirect=redirect, + refresh_frames=[], + message=message, + status=status, + active_view="user", + subscribe_checked=False, + openids=openids) @web.expose @web.require_login('manage OpenIDs') @@ -410,10 +410,10 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create message = '%s OpenIDs were disassociated from your Galaxy account.' % len(ids) status = 'done' return trans.response.send_redirect(url_for(controller='user', - action='openid_manage', - use_panels=use_panels, - message=message, - status=status)) + action='openid_manage', + use_panels=use_panels, + message=message, + status=status)) @web.expose @web.require_login('manage OpenIDs') @@ -426,9 +426,9 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create operation = kwd['operation'].lower() if operation == "delete": return trans.response.send_redirect(url_for(controller='user', - action='openid_disassociate', - use_panels=use_panels, - id=kwd['id'])) + action='openid_disassociate', + use_panels=use_panels, + id=kwd['id'])) kwd['redirect'] = kwd.get('redirect', url_for(controller='user', action='openid_manage', use_panels=True)).strip() kwd['openid_providers'] = trans.app.openid_providers return self.user_openid_grid(trans, **kwd) @@ -476,17 +476,17 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create else: header = REQUIRE_LOGIN_TEMPLATE % ("Galaxy tool shed", "") return trans.fill_template('/user/login.mako', - login=login, - header=header, - use_panels=use_panels, - redirect_url=redirect_url, - redirect=redirect, - refresh_frames=refresh_frames, - message=message, - status=status, - openid_providers=trans.app.openid_providers, - form_input_auto_focus=True, - active_view="user") + login=login, + header=header, + use_panels=use_panels, + redirect_url=redirect_url, + redirect=redirect, + refresh_frames=refresh_frames, + message=message, + status=status, + openid_providers=trans.app.openid_providers, + form_input_auto_focus=True, + active_view="user") def __validate_login(self, trans, **kwd): """Validates numerous cases that might happen during the login time.""" @@ -507,7 +507,7 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create kwd['email'] = autoreg[1] kwd['username'] = autoreg[2] message = " ".join([validate_email(trans, kwd['email']), - validate_publicname(trans, kwd['username'])]).rstrip() + validate_publicname(trans, kwd['username'])]).rstrip() if not message: message, status, user, success = self.__register(trans, 'user', False, **kwd) if success: @@ -629,8 +629,8 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create # Queue a quota recalculation (async) task -- this takes a # while sometimes, so we don't want to block on logout. send_local_control_task(trans.app, - 'recalculate_user_disk_usage', - {'user_id': trans.security.encode_id(trans.user.id)}) + 'recalculate_user_disk_usage', + {'user_id': trans.security.encode_id(trans.user.id)}) # Since logging an event requires a session, we'll log prior to ending the session trans.log_event("User logged out") else: @@ -702,9 +702,9 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create if not message: # All the values are valid message, status, user, success = self.__register(trans, - cntrller, - subscribe_checked, - **kwd) + cntrller, + subscribe_checked, + **kwd) if trans.webapp.name == 'tool_shed': redirect_url = url_for('/') if success and not is_admin: @@ -716,10 +716,10 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create if success and is_admin: message = 'Created new user account (%s)' % escape(user.email) trans.response.send_redirect(web.url_for(controller='admin', - action='users', - cntrller=cntrller, - message=message, - status=status)) + action='users', + cntrller=cntrller, + message=message, + status=status)) else: status = 'error' if trans.webapp.name == 'galaxy': @@ -728,17 +728,17 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create else: registration_warning_message = None return trans.fill_template('/user/register.mako', - cntrller=cntrller, - email=email, - username=transform_publicname(trans, username), - subscribe_checked=subscribe_checked, - use_panels=use_panels, - redirect=redirect, - redirect_url=redirect_url, - refresh_frames=refresh_frames, - registration_warning_message=registration_warning_message, - message=message, - status=status) + cntrller=cntrller, + email=email, + username=transform_publicname(trans, username), + subscribe_checked=subscribe_checked, + use_panels=use_panels, + redirect=redirect, + redirect_url=redirect_url, + refresh_frames=refresh_frames, + registration_warning_message=registration_warning_message, + message=message, + status=status) def __register(self, trans, cntrller, subscribe_checked, **kwd): email = util.restore_text(kwd.get('email', '')) @@ -773,9 +773,9 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create trans.log_event("User logged in") elif not error: trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message='Created new user account (%s)' % user.email, - status=status)) + action='users', + message='Created new user account (%s)' % user.email, + status=status)) if error: message = error status = 'error' @@ -884,8 +884,8 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create """Reset the user's password. Send an email with token that allows a password change.""" if trans.app.config.smtp_server is None: return trans.show_error_message("Mail is not configured for this Galaxy instance " - "and password reset information cannot be sent. " - "Please contact your local Galaxy administrator.") + "and password reset information cannot be sent. " + "Please contact your local Galaxy administrator.") message = None status = 'done' if kwd.get('reset_password_button', False): @@ -893,8 +893,8 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create if not message: # Default to a non-userinfo-leaking response message message = ("Your reset request for %s has been received. " - "Please check your email account for more instructions. " - "If you do not receive an email shortly, please contact an administrator." % (escape(email))) + "Please check your email account for more instructions. " + "If you do not receive an email shortly, please contact an administrator." % (escape(email))) reset_user = trans.sa_session.query(trans.app.model.User).filter(trans.app.model.User.table.c.email == email).first() if not reset_user: # Perform a case-insensitive check only if the user wasn't found @@ -907,10 +907,10 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create if host in ['localhost', '127.0.0.1', '0.0.0.0']: host = socket.getfqdn() reset_url = url_for(controller='user', - action="change_password", - token=prt.token, qualified=True) + action="change_password", + token=prt.token, qualified=True) body = PASSWORD_RESET_TEMPLATE % (host, prt.expiration_time.strftime(trans.app.config.pretty_datetime_format), - reset_url) + reset_url) frm = trans.app.config.email_from or 'galaxy-no-reply@' + host subject = 'Galaxy Password Reset' try: @@ -921,8 +921,8 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create except Exception: log.exception('Unable to reset password.') return trans.fill_template('/user/reset_password.mako', - message=message, - status=status) + message=message, + status=status) def __validate(self, trans, params, email, password, confirm, username): # If coming from the tool shed webapp, we'll require a public user name @@ -932,8 +932,8 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create if username in ['repos']: return "The term %s is a reserved word in the tool shed, so it cannot be used as a public user name." % escape(username) message = "\n".join([validate_email(trans, email), - validate_password(trans, password, confirm), - validate_publicname(trans, username)]).rstrip() + validate_password(trans, password, confirm), + validate_publicname(trans, username)]).rstrip() return message @web.expose @@ -1030,8 +1030,8 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create # Invalidate all other sessions for other_galaxy_session in trans.sa_session.query(trans.app.model.GalaxySession) \ .filter(and_(trans.app.model.GalaxySession.table.c.user_id == user.id, - trans.app.model.GalaxySession.table.c.is_valid == true(), - trans.app.model.GalaxySession.table.c.id != trans.galaxy_session.id)): + trans.app.model.GalaxySession.table.c.is_valid == true(), + trans.app.model.GalaxySession.table.c.id != trans.galaxy_session.id)): other_galaxy_session.is_valid = False trans.sa_session.add(other_galaxy_session) trans.sa_session.add(user) @@ -1043,10 +1043,10 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create return trans.show_ok_message('The password has been changed and any other existing Galaxy sessions have been logged out (but jobs in histories in those sessions will not be interrupted).') # Yes, this intentionally uses the template moved to tool_shed for right now, until it is removed. return trans.fill_template('/webapps/tool_shed/user/change_password.mako', - token=token, - status=status, - message=message, - display_top=kwd.get('redirect_home', False) + token=token, + status=status, + message=message, + display_top=kwd.get('redirect_home', False) ) @web.expose @@ -1150,6 +1150,6 @@ class User(BaseUIController, UsesFormDefinitionsMixin, CreatesUsersMixin, Create if status: kwd['status'] = status return trans.response.send_redirect(web.url_for(controller='user', - action='manage_user_info', - cntrller=cntrller, - **kwd)) + action='manage_user_info', + cntrller=cntrller, + **kwd)) diff --git a/lib/galaxy/webapps/galaxy/controllers/userskeys.py b/lib/galaxy/webapps/galaxy/controllers/userskeys.py index 2e28067e7d2..60b282119e4 100644 --- a/lib/galaxy/webapps/galaxy/controllers/userskeys.py +++ b/lib/galaxy/webapps/galaxy/controllers/userskeys.py @@ -50,10 +50,10 @@ class User(BaseUIController, UsesFormDefinitionsMixin): message = "A new web API key has been generated for (%s)" % escape(new_key.user.email) status = "done" return trans.response.send_redirect(web.url_for(controller='userskeys', - action='all_users', - cntrller=cntrller, - message=message, - status=status)) + action='all_users', + cntrller=cntrller, + message=message, + status=status)) @web.expose @web.require_login() @@ -73,7 +73,7 @@ class User(BaseUIController, UsesFormDefinitionsMixin): userkey = api_user.key users.append({'uid': uid, 'email': user.email, 'key': userkey}) return trans.fill_template('webapps/galaxy/user/list_users.mako', - cntrller=cntrller, - users=users, - message=message, - status=status) + cntrller=cntrller, + users=users, + message=message, + status=status) diff --git a/lib/galaxy/webapps/galaxy/controllers/visualization.py b/lib/galaxy/webapps/galaxy/controllers/visualization.py index 5b8f8b17cda..f134ebe48b4 100644 --- a/lib/galaxy/webapps/galaxy/controllers/visualization.py +++ b/lib/galaxy/webapps/galaxy/controllers/visualization.py @@ -63,7 +63,7 @@ class HistoryDatasetsSelectionGrid(grids.Grid): ] columns.append( grids.MulticolFilterColumn("Search name and filetype", cols_to_filter=[columns[1], columns[2]], - key="free-text-search", visible=False, filterable="standard") + key="free-text-search", visible=False, filterable="standard") ) def build_initial_query(self, trans, **kwargs): @@ -91,7 +91,7 @@ class LibraryDatasetsSelectionGrid(grids.Grid): ] columns.append( grids.MulticolFilterColumn("Search name and filetype", cols_to_filter=[columns[1], columns[2]], - key="free-text-search", visible=False, filterable="standard") + key="free-text-search", visible=False, filterable="standard") ) def build_initial_query(self, trans, **kwargs): @@ -218,7 +218,7 @@ class VisualizationAllPublishedGrid(grids.Grid): class VisualizationController(BaseUIController, SharableMixin, UsesVisualizationMixin, - UsesAnnotations, UsesItemRatings): + UsesAnnotations, UsesItemRatings): _visualization_list_grid = VisualizationListGrid() _published_list_grid = VisualizationAllPublishedGrid() _history_datasets_grid = HistoryDatasetsSelectionGrid() @@ -308,8 +308,8 @@ class VisualizationController(BaseUIController, SharableMixin, UsesVisualization .order_by(desc(model.Visualization.update_time)) \ .all() return [{'username' : v.visualization.user.username, - 'slug' : v.visualization.slug, - 'title' : v.visualization.title} for v in shared_by_others] + 'slug' : v.visualization.slug, + 'title' : v.visualization.title} for v in shared_by_others] # # -- Functions for operating on visualizations. -- @@ -452,7 +452,7 @@ class VisualizationController(BaseUIController, SharableMixin, UsesVisualization if email: other = trans.sa_session.query(model.User) \ .filter(and_(model.User.table.c.email == email, - model.User.table.c.deleted == false())) \ + model.User.table.c.deleted == false())) \ .first() if not other: mtype = "error" @@ -477,11 +477,11 @@ class VisualizationController(BaseUIController, SharableMixin, UsesVisualization trans.set_message("Visualization '%s' shared with user '%s'" % (viz_title, other_email)) return trans.response.send_redirect(web.url_for(controller='visualization', action='sharing', id=id)) return trans.fill_template("/ind_share_base.mako", - message=msg, - messagetype=mtype, - item=visualization, - email=email, - use_panels=use_panels) + message=msg, + messagetype=mtype, + item=visualization, + email=email, + use_panels=use_panels) @web.expose def display_by_username_and_slug(self, trans, username, slug): @@ -515,14 +515,14 @@ class VisualizationController(BaseUIController, SharableMixin, UsesVisualization # TODO: this will load the visualization twice (once above, once when the iframe src calls 'saved') encoded_visualization_id = trans.security.encode_id(visualization.id) return trans.stream_template_mako('visualization/display_in_frame.mako', - item=visualization, encoded_visualization_id=encoded_visualization_id, - user_item_rating=user_item_rating, ave_item_rating=ave_item_rating, num_ratings=num_ratings, - content_only=True) + item=visualization, encoded_visualization_id=encoded_visualization_id, + user_item_rating=user_item_rating, ave_item_rating=ave_item_rating, num_ratings=num_ratings, + content_only=True) visualization_config = self.get_visualization_config(trans, visualization) return trans.stream_template_mako("visualization/display.mako", item=visualization, item_data=visualization_config, - user_item_rating=user_item_rating, ave_item_rating=ave_item_rating, num_ratings=num_ratings, - content_only=True) + user_item_rating=user_item_rating, ave_item_rating=ave_item_rating, num_ratings=num_ratings, + content_only=True) @web.expose @web.json @@ -534,7 +534,7 @@ class VisualizationController(BaseUIController, SharableMixin, UsesVisualization if self.create_item_slug(trans.sa_session, visualization): trans.sa_session.flush() return_dict = {"name": visualization.title, - "link": web.url_for(controller='visualization', action="display_by_username_and_slug", username=visualization.user.username, slug=visualization.slug)} + "link": web.url_for(controller='visualization', action="display_by_username_and_slug", username=visualization.user.username, slug=visualization.slug)} return return_dict @web.expose @@ -549,22 +549,22 @@ class VisualizationController(BaseUIController, SharableMixin, UsesVisualization # Return content. visualization_config = self.get_visualization_config(trans, visualization) return trans.fill_template_mako("visualization/item_content.mako", encoded_id=trans.security.encode_id(visualization.id), - item=visualization, item_data=visualization_config, content_only=True) + item=visualization, item_data=visualization_config, content_only=True) @web.expose @web.require_login("create visualizations") def create(self, trans, visualization_title="", visualization_slug="", visualization_annotation="", visualization_dbkey="", - visualization_type=""): + visualization_type=""): """ Creates a new visualization or returns a form for creating visualization. """ visualization_title_err = visualization_slug_err = visualization_annotation_err = "" if trans.request.method == "POST": rval = self.create_visualization(trans, title=visualization_title, - slug=visualization_slug, - annotation=visualization_annotation, - dbkey=visualization_dbkey, - type=visualization_type) + slug=visualization_slug, + annotation=visualization_annotation, + dbkey=visualization_dbkey, + type=visualization_type) if isinstance(rval, dict): # Found error creating viz. visualization_title_err = rval['title_err'] @@ -579,14 +579,14 @@ class VisualizationController(BaseUIController, SharableMixin, UsesVisualization .add_text("visualization_title", "Visualization title", value=visualization_title, error=visualization_title_err) .add_select("visualization_type", "Type", options=viz_type_options, error=None) .add_text("visualization_slug", "Visualization identifier", value=visualization_slug, error=visualization_slug_err, - help="""A unique identifier that will be used for + help="""A unique identifier that will be used for public links to this visualization. A default is generated from the visualization title, but can be edited. This field must contain only lowercase letters, numbers, and the '-' character.""") .add_select("visualization_dbkey", "Visualization DbKey/Build", value=visualization_dbkey, options=trans.app.genomes.get_dbkeys(trans, chrom_info=True), error=None) .add_text("visualization_annotation", "Visualization annotation", value=visualization_annotation, error=visualization_annotation_err, - help="A description of the visualization; annotation is shown alongside published visualizations."), + help="A description of the visualization; annotation is shown alongside published visualizations."), template="visualization/create.mako" ) @@ -646,13 +646,13 @@ class VisualizationController(BaseUIController, SharableMixin, UsesVisualization web.FormBuilder(web.url_for(controller='visualization', action='edit', id=id), "Edit visualization attributes", submit_text="Submit") .add_text("visualization_title", "Visualization title", value=visualization_title, error=visualization_title_err) .add_text("visualization_slug", "Visualization identifier", value=visualization_slug, error=visualization_slug_err, - help="""A unique identifier that will be used for + help="""A unique identifier that will be used for public links to this visualization. A default is generated from the visualization title, but can be edited. This field must contain only lowercase letters, numbers, and the '-' character.""") .add_text("visualization_annotation", "Visualization annotation", value=visualization_annotation, error=visualization_annotation_err, - help="A description of the visualization; annotation is shown alongside published visualizations."), + help="A description of the visualization; annotation is shown alongside published visualizations."), template="visualization/create.mako") # ------------------------- registry. @@ -828,8 +828,8 @@ class VisualizationController(BaseUIController, SharableMixin, UsesVisualization if not dbkey or dbkey == '?': # Circster requires a valid dbkey. return trans.show_error_message("You must set the dataset's dbkey to view it. You can set " - "a dataset's dbkey by clicking on the pencil icon and editing " - "its attributes.", use_panels=True) + "a dataset's dbkey by clicking on the pencil icon and editing " + "its attributes.", use_panels=True) vis = self.create_visualization(trans, type="genome", dbkey=dbkey, save=False) diff --git a/lib/galaxy/webapps/galaxy/controllers/workflow.py b/lib/galaxy/webapps/galaxy/controllers/workflow.py index cfc14b89672..d9cd75d1a65 100644 --- a/lib/galaxy/webapps/galaxy/controllers/workflow.py +++ b/lib/galaxy/webapps/galaxy/controllers/workflow.py @@ -48,10 +48,10 @@ class StoredWorkflowListGrid(grids.Grid): columns = [ grids.TextColumn("Name", key="name", attach_popup=True, filterable="advanced"), grids.IndividualTagsColumn("Tags", - "tags", - model_tag_association_class=model.StoredWorkflowTagAssociation, - filterable="advanced", - grid_name="StoredWorkflowListGrid"), + "tags", + model_tag_association_class=model.StoredWorkflowTagAssociation, + filterable="advanced", + grid_name="StoredWorkflowListGrid"), StepsColumn("Steps"), grids.GridColumn("Created", key="create_time", format=time_ago), grids.GridColumn("Last Updated", key="update_time", format=time_ago), @@ -85,14 +85,14 @@ class StoredWorkflowAllPublishedGrid(grids.Grid): columns = [ grids.PublicURLColumn("Name", key="name", filterable="advanced", attach_popup=True), grids.OwnerAnnotationColumn("Annotation", - key="annotation", - model_annotation_association_class=model.StoredWorkflowAnnotationAssociation, - filterable="advanced"), + key="annotation", + model_annotation_association_class=model.StoredWorkflowAnnotationAssociation, + filterable="advanced"), grids.OwnerColumn("Owner", key="username", model_class=model.User, filterable="advanced"), grids.CommunityRatingColumn("Community Rating", key="rating"), grids.CommunityTagsColumn("Community Tags", key="tags", - model_tag_association_class=model.StoredWorkflowTagAssociation, - filterable="advanced", grid_name="PublicWorkflowListGrid"), + model_tag_association_class=model.StoredWorkflowTagAssociation, + filterable="advanced", grid_name="PublicWorkflowListGrid"), grids.ReverseSortColumn("Last Updated", key="update_time", format=time_ago) ] columns.append( @@ -238,7 +238,7 @@ class WorkflowController(BaseUIController, SharableMixin, UsesStoredWorkflowMixi user_item_rating = 0 ave_item_rating, num_ratings = self.get_ave_item_rating_data(trans.sa_session, stored_workflow) return trans.fill_template_mako("workflow/display.mako", item=stored_workflow, item_data=stored_workflow.latest_workflow.steps, - user_item_rating=user_item_rating, ave_item_rating=ave_item_rating, num_ratings=num_ratings) + user_item_rating=user_item_rating, ave_item_rating=ave_item_rating, num_ratings=num_ratings) @web.expose def get_item_content_async(self, trans, id): @@ -265,7 +265,7 @@ class WorkflowController(BaseUIController, SharableMixin, UsesStoredWorkflowMixi if email: other = trans.sa_session.query(model.User) \ .filter(and_(model.User.table.c.email == email, - model.User.table.c.deleted == expression.false())) \ + model.User.table.c.deleted == expression.false())) \ .first() if not other: mtype = "error" @@ -287,11 +287,11 @@ class WorkflowController(BaseUIController, SharableMixin, UsesStoredWorkflowMixi trans.set_message("Workflow '%s' shared with user '%s'" % (escape(stored.name), escape(other.email))) return trans.response.send_redirect(url_for(controller='workflow', action='sharing', id=id)) return trans.fill_template("/ind_share_base.mako", - message=msg, - messagetype=mtype, - item=stored, - email=email, - use_panels=use_panels) + message=msg, + messagetype=mtype, + item=stored, + email=email, + use_panels=use_panels) @web.expose @web.require_login("Share or export Galaxy workflows") @@ -380,9 +380,9 @@ class WorkflowController(BaseUIController, SharableMixin, UsesStoredWorkflowMixi return trans.response.send_redirect(redirect_url) else: return form(url_for(controller='workflow', action='rename', id=trans.security.encode_id(stored.id)), - "Rename workflow", - submit_text="Rename", - use_panels=True + "Rename workflow", + submit_text="Rename", + use_panels=True ).add_text("new_name", "Workflow Name", value=to_unicode(stored.name)) @web.expose @@ -455,10 +455,10 @@ class WorkflowController(BaseUIController, SharableMixin, UsesStoredWorkflowMixi stored = self.get_stored_workflow(trans, id) return_dict = {"name": stored.name, - "link": url_for(controller='workflow', - action="display_by_username_and_slug", - username=stored.user.username, - slug=stored.slug)} + "link": url_for(controller='workflow', + action="display_by_username_and_slug", + username=stored.user.username, + slug=stored.slug)} return return_dict @web.expose @@ -544,9 +544,9 @@ class WorkflowController(BaseUIController, SharableMixin, UsesStoredWorkflowMixi return form(url_for(controller="workflow", action="create"), "Create New Workflow", submit_text="Create", use_panels=True) \ .add_text("workflow_name", "Workflow Name", value="Unnamed workflow") \ .add_text("workflow_annotation", - "Workflow Annotation", - value="", - help="A description of the workflow; annotation is shown alongside shared or published workflows.") + "Workflow Annotation", + value="", + help="A description of the workflow; annotation is shown alongside shared or published workflows.") @web.json def save_workflow_as(self, trans, workflow_name, workflow_data, workflow_annotation=""): @@ -773,8 +773,8 @@ class WorkflowController(BaseUIController, SharableMixin, UsesStoredWorkflowMixi if tool_shed_url and not import_button: # Use urllib (send another request to the tool shed) to retrieve the workflow. params = dict(repository_metadata_id=repository_metadata_id, - workflow_name=encoding_util.tool_shed_encode(workflow_name), - open_for_url=True) + workflow_name=encoding_util.tool_shed_encode(workflow_name), + open_for_url=True) pathspec = ['workflow', 'import_workflow'] workflow_text = util.url_get(tool_shed_url, password_mgr=self.app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) import_button = True @@ -874,9 +874,9 @@ class WorkflowController(BaseUIController, SharableMixin, UsesStoredWorkflowMixi # workflow view, so we need to render the Galaxy panels. action = 'index' return trans.response.send_redirect(web.url_for(controller='admin', - action=action, - message=message, - status=status)) + action=action, + message=message, + status=status)) else: # TODO: Figure out what to do here... pass @@ -892,10 +892,10 @@ class WorkflowController(BaseUIController, SharableMixin, UsesStoredWorkflowMixi if cntrller == 'api': return status, message return trans.response.send_redirect(web.url_for(controller='admin_toolshed', - action='browse_repository', - id=repository_id, - message=message, - status=status)) + action='browse_repository', + id=repository_id, + message=message, + status=status)) redirect_url = url_for('/') + 'workflow?status=' + status + '&message=%s' % escape(message) return trans.response.send_redirect(redirect_url) if cntrller == 'api': @@ -944,9 +944,9 @@ class WorkflowController(BaseUIController, SharableMixin, UsesStoredWorkflowMixi # Index page with message workflow_id = trans.security.encode_id(stored_workflow.id) return trans.show_message('Workflow "%s" created from current history. ' - 'You can edit or run the workflow.' - % (escape(workflow_name), url_for(controller='workflow', action='editor', id=workflow_id), - url_for(controller='workflow', action='run', id=workflow_id))) + 'You can edit or run the workflow.' + % (escape(workflow_name), url_for(controller='workflow', action='editor', id=workflow_id), + url_for(controller='workflow', action='run', id=workflow_id))) def get_item(self, trans, id): return self.get_stored_workflow(trans, id) diff --git a/lib/galaxy/webapps/reports/app.py b/lib/galaxy/webapps/reports/app.py index 1e3135cf9d5..8d898854c81 100644 --- a/lib/galaxy/webapps/reports/app.py +++ b/lib/galaxy/webapps/reports/app.py @@ -26,9 +26,9 @@ class UniverseApplication(object): db_url = "sqlite:///%s?isolation_level=IMMEDIATE" % self.config.database # Setup the database engine and ORM self.model = galaxy.model.mapping.init(self.config.file_path, - db_url, - self.config.database_engine_options, - create_tables=True) + db_url, + self.config.database_engine_options, + create_tables=True) if not self.config.database_connection: self.targets_mysql = False else: diff --git a/lib/galaxy/webapps/reports/buildapp.py b/lib/galaxy/webapps/reports/buildapp.py index 9721dccb0d8..743c14f63e8 100644 --- a/lib/galaxy/webapps/reports/buildapp.py +++ b/lib/galaxy/webapps/reports/buildapp.py @@ -127,8 +127,8 @@ def wrap_in_middleware(app, global_conf, application_stack, **local_conf): try: from weberror import evalexception app = wrap_if_allowed_or_fail(app, stack, evalexception.EvalException, - args=(conf,), - kwargs=dict(templating_formatters=build_template_error_formatters())) + args=(conf,), + kwargs=dict(templating_formatters=build_template_error_formatters())) except MiddlewareWrapUnsupported as exc: log.warning(str(exc)) import galaxy.web.framework.middleware.error diff --git a/lib/galaxy/webapps/reports/controllers/history.py b/lib/galaxy/webapps/reports/controllers/history.py index db6eb1da268..a4a4d75b5b4 100644 --- a/lib/galaxy/webapps/reports/controllers/history.py +++ b/lib/galaxy/webapps/reports/controllers/history.py @@ -77,9 +77,9 @@ class History(BaseUIController): sa.func.sum(galaxy.model.Dataset.table.c.total_size).label('size'), galaxy.model.User.table.c.email.label('email')), from_obj=[galaxy.model.User.table, - galaxy.model.Dataset.table, - galaxy.model.HistoryDatasetAssociation.table, - galaxy.model.History.table], + galaxy.model.Dataset.table, + galaxy.model.HistoryDatasetAssociation.table, + galaxy.model.History.table], whereclause=and_(galaxy.model.Dataset.table.c.id == galaxy.model.HistoryDatasetAssociation.table.c.dataset_id, galaxy.model.History.table.c.id == galaxy.model.HistoryDatasetAssociation.table.c.history_id, galaxy.model.History.table.c.user_id == galaxy.model.User.table.c.id, @@ -90,9 +90,9 @@ class History(BaseUIController): # transform lists to dict with email as key and # number of (history/dataset)/size of history as value histories = dict([(_.email if _.email is not None else "Unknown", int(_.history)) - for _ in histories.execute()]) + for _ in histories.execute()]) datasets = dict([(_.email if _.email is not None else "Unknown", (int(_.dataset), int(_.size))) - for _ in datasets.execute()]) + for _ in datasets.execute()]) sorting_functions = [ lambda first, second: descending if first[0].lower() > second[0].lower() else -descending, @@ -117,11 +117,11 @@ class History(BaseUIController): data[user] = ("%d (%s)" % (history, int_to_octet(dataset[1])), dataset[0]) return trans.fill_template('/webapps/reports/history_and_dataset_per_user.mako', - data=data, - user_cutoff=user_cutoff, - sorting=sorting, - descending=descending, - message=message) + data=data, + user_cutoff=user_cutoff, + sorting=sorting, + descending=descending, + message=message) @web.expose def history_and_dataset_type(self, trans, **kwd): @@ -142,21 +142,21 @@ class History(BaseUIController): if user_selection is not None: from_obj.append(galaxy.model.User.table) whereclause = and_(galaxy.model.Dataset.table.c.id == galaxy.model.HistoryDatasetAssociation.table.c.dataset_id, - galaxy.model.History.table.c.id == galaxy.model.HistoryDatasetAssociation.table.c.history_id, - galaxy.model.User.table.c.id == galaxy.model.History.table.c.user_id, - galaxy.model.User.table.c.email == user_selection) + galaxy.model.History.table.c.id == galaxy.model.HistoryDatasetAssociation.table.c.history_id, + galaxy.model.User.table.c.id == galaxy.model.History.table.c.user_id, + galaxy.model.User.table.c.email == user_selection) else: whereclause = and_(galaxy.model.Dataset.table.c.id == galaxy.model.HistoryDatasetAssociation.table.c.dataset_id, galaxy.model.History.table.c.id == galaxy.model.HistoryDatasetAssociation.table.c.history_id) histories = sa.select((galaxy.model.Dataset.table.c.state.label('state'), - galaxy.model.History.table.c.name.label('name')), - from_obj=from_obj, - whereclause=whereclause, - order_by=['name']) + galaxy.model.History.table.c.name.label('name')), + from_obj=from_obj, + whereclause=whereclause, + order_by=['name']) # execute requests, replace None fields by "Unknown" data = [(_.name if _.name is not None else "NoNamedHistory", _.state) - for _ in histories.execute()] + for _ in histories.execute()] # sort by names descending or ascending data.sort(lambda first, second: descending if first[0].lower() > second[0].lower() else -descending) @@ -186,7 +186,7 @@ class History(BaseUIController): datas[name][no_status] += 1 return trans.fill_template('/webapps/reports/history_and_dataset_type.mako', - data=datas, - user_cutoff=user_cutoff, - descending=descending, - message=message) + data=datas, + user_cutoff=user_cutoff, + descending=descending, + message=message) diff --git a/lib/galaxy/webapps/reports/controllers/jobs.py b/lib/galaxy/webapps/reports/controllers/jobs.py index 161306de4d2..059a15416f0 100644 --- a/lib/galaxy/webapps/reports/controllers/jobs.py +++ b/lib/galaxy/webapps/reports/controllers/jobs.py @@ -117,8 +117,8 @@ class SpecifiedDateListGrid(grids.Grid): def filter(self, trans, user, query, column_filter): if column_filter == 'Unfinished': return query.filter(not_(or_(model.Job.table.c.state == model.Job.states.OK, - model.Job.table.c.state == model.Job.states.ERROR, - model.Job.table.c.state == model.Job.states.DELETED))) + model.Job.table.c.state == model.Job.states.ERROR, + model.Job.table.c.state == model.Job.states.DELETED))) return query class ToolColumn(grids.TextColumn): @@ -150,7 +150,7 @@ class SpecifiedDateListGrid(grids.Grid): if column_filter == 'All': return query return query.filter(and_(model.Job.table.c.user_id == model.User.table.c.id, - model.User.table.c.email == column_filter)) + model.User.table.c.email == column_filter)) class SpecifiedDateColumn(grids.GridColumn): @@ -169,7 +169,7 @@ class SpecifiedDateListGrid(grids.Grid): end_date = start_date + timedelta(days=calendar.monthrange(year, month)[1]) return query.filter(and_(self.model_class.table.c.create_time >= start_date, - self.model_class.table.c.create_time < end_date)) + self.model_class.table.c.create_time < end_date)) # Grid definition use_async = False @@ -179,43 +179,43 @@ class SpecifiedDateListGrid(grids.Grid): default_sort_key = "id" columns = [ JobIdColumn("Id", - key="id", - link=(lambda item: dict(operation="job_info", id=item.id, webapp="reports")), - attach_popup=False, - filterable="advanced"), + key="id", + link=(lambda item: dict(operation="job_info", id=item.id, webapp="reports")), + attach_popup=False, + filterable="advanced"), StateColumn("State", - key="state", - attach_popup=False), + key="state", + attach_popup=False), ToolColumn("Tool Id", - key="tool_id", - link=(lambda item: dict(operation="tool_per_month", id=item.id, webapp="reports")), - attach_popup=False), + key="tool_id", + link=(lambda item: dict(operation="tool_per_month", id=item.id, webapp="reports")), + attach_popup=False), CreateTimeColumn("Creation Time", - key="create_time", - attach_popup=False), + key="create_time", + attach_popup=False), UserColumn("User", - key="email", - model_class=model.User, - link=(lambda item: dict(operation="user_per_month", id=item.id, webapp="reports")), - attach_popup=False), + key="email", + model_class=model.User, + link=(lambda item: dict(operation="user_per_month", id=item.id, webapp="reports")), + attach_popup=False), # Columns that are valid for filtering but are not visible. SpecifiedDateColumn("Specified Date", - key="specified_date", - visible=False), + key="specified_date", + visible=False), EmailColumn("Email", - key="email", - model_class=model.User, - visible=False), + key="email", + model_class=model.User, + visible=False), grids.StateColumn("State", - key="state", - visible=False, - filterable="advanced") + key="state", + visible=False, + filterable="advanced") ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[1], columns[2]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[1], columns[2]], + key="free-text-search", + visible=False, + filterable="standard")) standard_filters = [] default_filter = {'specified_date': 'All'} num_rows_per_page = 50 @@ -261,8 +261,8 @@ class Jobs(BaseUIController, ReportQueryBuilder): operation = kwd['operation'].lower() if operation == "job_info": return trans.response.send_redirect(web.url_for(controller='jobs', - action='job_info', - **kwd)) + action='job_info', + **kwd)) elif operation == "tool_for_month": kwd['f-tool_id'] = kwd['tool_id'] elif operation == "tool_per_month": @@ -271,8 +271,8 @@ class Jobs(BaseUIController, ReportQueryBuilder): job = get_job(trans, job_id) kwd['tool_id'] = job.tool_id return trans.response.send_redirect(web.url_for(controller='jobs', - action='tool_per_month', - **kwd)) + action='tool_per_month', + **kwd)) elif operation == "user_for_month": kwd['f-email'] = util.restore_text(kwd['email']) elif operation == "user_per_month": @@ -285,8 +285,8 @@ class Jobs(BaseUIController, ReportQueryBuilder): else: kwd['email'] = None # For anonymous users return trans.response.send_redirect(web.url_for(controller='jobs', - action='user_per_month', - **kwd)) + action='user_per_month', + **kwd)) elif operation == "specified_date_in_error": kwd['f-state'] = 'error' elif operation == "unfinished": @@ -377,21 +377,21 @@ class Jobs(BaseUIController, ReportQueryBuilder): # Use to make the page table month_jobs = sa.select((sa.func.date(model.Job.table.c.create_time).label('date'), - sa.func.count(model.Job.table.c.id).label('total_jobs')), - whereclause=sa.and_(model.Job.table.c.user_id != monitor_user_id, - model.Job.table.c.create_time >= start_date, - model.Job.table.c.create_time < end_date), - from_obj=[model.Job.table], - group_by=['date'], - order_by=[_order], - offset=offset, - limit=limit) + sa.func.count(model.Job.table.c.id).label('total_jobs')), + whereclause=sa.and_(model.Job.table.c.user_id != monitor_user_id, + model.Job.table.c.create_time >= start_date, + model.Job.table.c.create_time < end_date), + from_obj=[model.Job.table], + group_by=['date'], + order_by=[_order], + offset=offset, + limit=limit) # Use to make trendline all_jobs = sa.select((model.Job.table.c.create_time.label('date'), model.Job.table.c.id.label('id')), whereclause=sa.and_(model.Job.table.c.user_id != monitor_user_id, - model.Job.table.c.create_time >= start_date, - model.Job.table.c.create_time < end_date)) + model.Job.table.c.create_time >= start_date, + model.Job.table.c.create_time < end_date)) trends = dict() for job in all_jobs.execute(): @@ -410,26 +410,26 @@ class Jobs(BaseUIController, ReportQueryBuilder): row_day = row.date.strftime("%d") jobs.append((row_dayname, - row_day, - row.total_jobs, - row.date + row_day, + row.total_jobs, + row.date )) pages_found = ceil(len(jobs) / float(entries)) page_specs = PageSpec(entries, offset, page, pages_found) return trans.fill_template('/webapps/reports/jobs_specified_month_all.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - month_label=month_label, - year_label=year_label, - month=month, - page_specs=page_specs, - jobs=jobs, - trends=trends, - is_user_jobs_only=monitor_user_id, - message=message) + order=order, + arrow=arrow, + sort_id=sort_id, + month_label=month_label, + year_label=year_label, + month=month, + page_specs=page_specs, + jobs=jobs, + trends=trends, + is_user_jobs_only=monitor_user_id, + message=message) @web.expose def specified_month_in_error(self, trans, **kwd): @@ -478,23 +478,23 @@ class Jobs(BaseUIController, ReportQueryBuilder): year_label = start_date.strftime("%Y") month_jobs_in_error = sa.select((sa.func.date(model.Job.table.c.create_time).label('date'), - sa.func.count(model.Job.table.c.id).label('total_jobs')), - whereclause=sa.and_(model.Job.table.c.user_id != monitor_user_id, - model.Job.table.c.state == 'error', - model.Job.table.c.create_time >= start_date, - model.Job.table.c.create_time < end_date), - from_obj=[model.Job.table], - group_by=['date'], - order_by=[_order], - offset=offset, - limit=limit) + sa.func.count(model.Job.table.c.id).label('total_jobs')), + whereclause=sa.and_(model.Job.table.c.user_id != monitor_user_id, + model.Job.table.c.state == 'error', + model.Job.table.c.create_time >= start_date, + model.Job.table.c.create_time < end_date), + from_obj=[model.Job.table], + group_by=['date'], + order_by=[_order], + offset=offset, + limit=limit) # Use to make trendline all_jobs_in_error = sa.select((model.Job.table.c.create_time.label('date'), model.Job.table.c.id.label('id')), whereclause=sa.and_(model.Job.table.c.user_id != monitor_user_id, - model.Job.table.c.state == 'error', - model.Job.table.c.create_time >= start_date, - model.Job.table.c.create_time < end_date)) + model.Job.table.c.state == 'error', + model.Job.table.c.create_time >= start_date, + model.Job.table.c.create_time < end_date)) trends = dict() for job in all_jobs_in_error.execute(): @@ -513,26 +513,26 @@ class Jobs(BaseUIController, ReportQueryBuilder): row_day = row.date.strftime("%d") jobs.append((row_dayname, - row_day, - row.total_jobs, - row.date + row_day, + row.total_jobs, + row.date )) pages_found = ceil(len(jobs) / float(entries)) page_specs = PageSpec(entries, offset, page, pages_found) return trans.fill_template('/webapps/reports/jobs_specified_month_in_error.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - month_label=month_label, - year_label=year_label, - month=month, - jobs=jobs, - trends=trends, - message=message, - is_user_jobs_only=monitor_user_id, - page_specs=page_specs) + order=order, + arrow=arrow, + sort_id=sort_id, + month_label=month_label, + year_label=year_label, + month=month, + jobs=jobs, + trends=trends, + message=message, + is_user_jobs_only=monitor_user_id, + page_specs=page_specs) @web.expose def per_month_all(self, trans, **kwd): @@ -575,16 +575,16 @@ class Jobs(BaseUIController, ReportQueryBuilder): # Use to make the page table jobs_by_month = sa.select((self.select_month(model.Job.table.c.create_time).label('date'), sa.func.count(model.Job.table.c.id).label('total_jobs')), - whereclause=model.Job.table.c.user_id != monitor_user_id, - from_obj=[model.Job.table], - group_by=self.group_by_month(model.Job.table.c.create_time), - order_by=[_order], - offset=offset, - limit=limit) + whereclause=model.Job.table.c.user_id != monitor_user_id, + from_obj=[model.Job.table], + group_by=self.group_by_month(model.Job.table.c.create_time), + order_by=[_order], + offset=offset, + limit=limit) # Use to make sparkline all_jobs = sa.select((self.select_day(model.Job.table.c.create_time).label('date'), - model.Job.table.c.id.label('id'))) + model.Job.table.c.id.label('id'))) trends = self._calculate_trends_for_jobs(all_jobs) jobs = self._calculate_job_table(jobs_by_month) @@ -593,14 +593,14 @@ class Jobs(BaseUIController, ReportQueryBuilder): page_specs = PageSpec(entries, offset, page, pages_found) return trans.fill_template('/webapps/reports/jobs_per_month_all.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - trends=trends, - jobs=jobs, - is_user_jobs_only=monitor_user_id, - message=message, - page_specs=page_specs) + order=order, + arrow=arrow, + sort_id=sort_id, + trends=trends, + jobs=jobs, + is_user_jobs_only=monitor_user_id, + message=message, + page_specs=page_specs) @web.expose def per_month_in_error(self, trans, **kwd): @@ -642,18 +642,18 @@ class Jobs(BaseUIController, ReportQueryBuilder): # Use to make the page table jobs_in_error_by_month = sa.select((self.select_month(model.Job.table.c.create_time).label('date'), - sa.func.count(model.Job.table.c.id).label('total_jobs')), - whereclause=sa.and_(model.Job.table.c.state == 'error', - model.Job.table.c.user_id != monitor_user_id), - from_obj=[model.Job.table], - group_by=self.group_by_month(model.Job.table.c.create_time), - order_by=[_order], - offset=offset, - limit=limit) + sa.func.count(model.Job.table.c.id).label('total_jobs')), + whereclause=sa.and_(model.Job.table.c.state == 'error', + model.Job.table.c.user_id != monitor_user_id), + from_obj=[model.Job.table], + group_by=self.group_by_month(model.Job.table.c.create_time), + order_by=[_order], + offset=offset, + limit=limit) # Use to make trendline all_jobs = sa.select((self.select_day(model.Job.table.c.create_time).label('date'), - model.Job.table.c.id.label('id')), + model.Job.table.c.id.label('id')), whereclause=sa.and_(model.Job.table.c.state == 'error', model.Job.table.c.user_id != monitor_user_id)) @@ -664,16 +664,16 @@ class Jobs(BaseUIController, ReportQueryBuilder): page_specs = PageSpec(entries, offset, page, pages_found) return trans.fill_template('/webapps/reports/jobs_per_month_in_error.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - trends=trends, - jobs=jobs, - message=message, - is_user_jobs_only=monitor_user_id, - page_specs=page_specs, - offset=offset, - limit=limit) + order=order, + arrow=arrow, + sort_id=sort_id, + trends=trends, + jobs=jobs, + message=message, + is_user_jobs_only=monitor_user_id, + page_specs=page_specs, + offset=offset, + limit=limit) @web.expose def per_user(self, trans, **kwd): @@ -715,32 +715,32 @@ class Jobs(BaseUIController, ReportQueryBuilder): jobs = [] jobs_per_user = sa.select((model.User.table.c.email.label('user_email'), - sa.func.count(model.Job.table.c.id).label('total_jobs')), - from_obj=[sa.outerjoin(model.Job.table, model.User.table)], - group_by=['user_email'], - order_by=[_order], - offset=offset, - limit=limit) + sa.func.count(model.Job.table.c.id).label('total_jobs')), + from_obj=[sa.outerjoin(model.Job.table, model.User.table)], + group_by=['user_email'], + order_by=[_order], + offset=offset, + limit=limit) q_time.start() for row in jobs_per_user.execute(): if (row.user_email is None): jobs.append(('Anonymous', - row.total_jobs)) + row.total_jobs)) elif (row.user_email == monitor_email): continue else: jobs.append((row.user_email, - row.total_jobs)) + row.total_jobs)) q_time.stop() query1time = q_time.time_elapsed() users = sa.select([model.User.table.c.email], - from_obj=[model.User.table]) + from_obj=[model.User.table]) all_jobs_per_user = sa.select((model.Job.table.c.id.label('id'), - model.Job.table.c.create_time.label('date'), - model.User.table.c.email.label('user_email')), + model.Job.table.c.create_time.label('date'), + model.User.table.c.email.label('user_email')), from_obj=[sa.outerjoin(model.Job.table, model.User.table)], whereclause=model.User.table.c.email.in_(users)) @@ -777,18 +777,18 @@ class Jobs(BaseUIController, ReportQueryBuilder): total_time.stop() ttime = total_time.time_elapsed() return trans.fill_template('/webapps/reports/jobs_per_user.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - spark_limit=spark_limit, - time_period=time_period, - q1time=query1time, - q2time=query2time, - ttime=ttime, - trends=trends, - jobs=jobs, - message=message, - page_specs=page_specs) + order=order, + arrow=arrow, + sort_id=sort_id, + spark_limit=spark_limit, + time_period=time_period, + q1time=query1time, + q2time=query2time, + ttime=ttime, + trends=trends, + jobs=jobs, + message=message, + page_specs=page_specs) @web.expose def user_per_month(self, trans, **kwd): @@ -803,16 +803,16 @@ class Jobs(BaseUIController, ReportQueryBuilder): _order = specs.exc_order q = sa.select((self.select_month(model.Job.table.c.create_time).label('date'), - sa.func.count(model.Job.table.c.id).label('total_jobs')), - whereclause=model.User.table.c.email == email, - from_obj=[sa.join(model.Job.table, model.User.table)], - group_by=self.group_by_month(model.Job.table.c.create_time), - order_by=[_order]) + sa.func.count(model.Job.table.c.id).label('total_jobs')), + whereclause=model.User.table.c.email == email, + from_obj=[sa.join(model.Job.table, model.User.table)], + group_by=self.group_by_month(model.Job.table.c.create_time), + order_by=[_order]) all_jobs_per_user = sa.select((model.Job.table.c.create_time.label('date'), model.Job.table.c.id.label('job_id')), - whereclause=sa.and_(model.User.table.c.email == email), - from_obj=[sa.join(model.Job.table, model.User.table)]) + whereclause=sa.and_(model.User.table.c.email == email), + from_obj=[sa.join(model.Job.table, model.User.table)]) trends = dict() for job in all_jobs_per_user.execute(): @@ -833,17 +833,17 @@ class Jobs(BaseUIController, ReportQueryBuilder): jobs = [] for row in q.execute(): jobs.append((row.date.strftime("%Y-%m"), - row.total_jobs, - row.date.strftime("%B"), - row.date.strftime("%Y"))) + row.total_jobs, + row.date.strftime("%B"), + row.date.strftime("%Y"))) return trans.fill_template('/webapps/reports/jobs_user_per_month.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - id=kwd.get('id'), - trends=trends, - email=util.sanitize_text(email), - jobs=jobs, message=message) + order=order, + arrow=arrow, + sort_id=sort_id, + id=kwd.get('id'), + trends=trends, + email=util.sanitize_text(email), + jobs=jobs, message=message) @web.expose def per_tool(self, trans, **kwd): @@ -884,17 +884,17 @@ class Jobs(BaseUIController, ReportQueryBuilder): jobs = [] q = sa.select((model.Job.table.c.tool_id.label('tool_id'), - sa.func.count(model.Job.table.c.id).label('total_jobs')), - whereclause=model.Job.table.c.user_id != monitor_user_id, - from_obj=[model.Job.table], - group_by=['tool_id'], - order_by=[_order], - offset=offset, - limit=limit) + sa.func.count(model.Job.table.c.id).label('total_jobs')), + whereclause=model.Job.table.c.user_id != monitor_user_id, + from_obj=[model.Job.table], + group_by=['tool_id'], + order_by=[_order], + offset=offset, + limit=limit) all_jobs_per_tool = sa.select((model.Job.table.c.tool_id.label('tool_id'), - model.Job.table.c.id.label('id'), - self.select_day(model.Job.table.c.create_time).label('date')), + model.Job.table.c.id.label('id'), + self.select_day(model.Job.table.c.create_time).label('date')), whereclause=model.Job.table.c.user_id != monitor_user_id, from_obj=[model.Job.table]) @@ -920,22 +920,22 @@ class Jobs(BaseUIController, ReportQueryBuilder): for row in q.execute(): jobs.append((row.tool_id, - row.total_jobs)) + row.total_jobs)) pages_found = ceil(len(jobs) / float(entries)) page_specs = PageSpec(entries, offset, page, pages_found) return trans.fill_template('/webapps/reports/jobs_per_tool.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - spark_limit=spark_limit, - time_period=time_period, - trends=trends, - jobs=jobs, - message=message, - is_user_jobs_only=monitor_user_id, - page_specs=page_specs) + order=order, + arrow=arrow, + sort_id=sort_id, + spark_limit=spark_limit, + time_period=time_period, + trends=trends, + jobs=jobs, + message=message, + is_user_jobs_only=monitor_user_id, + page_specs=page_specs) @web.expose def errors_per_tool(self, trans, **kwd): @@ -979,21 +979,21 @@ class Jobs(BaseUIController, ReportQueryBuilder): monitor_user_id = get_monitor_id(trans, monitor_email) jobs_in_error_per_tool = sa.select((model.Job.table.c.tool_id.label('tool_id'), - sa.func.count(model.Job.table.c.id).label('total_jobs')), - whereclause=sa.and_(model.Job.table.c.state == 'error', - model.Job.table.c.user_id != monitor_user_id), - from_obj=[model.Job.table], - group_by=['tool_id'], - order_by=[_order], - offset=offset, - limit=limit) + sa.func.count(model.Job.table.c.id).label('total_jobs')), + whereclause=sa.and_(model.Job.table.c.state == 'error', + model.Job.table.c.user_id != monitor_user_id), + from_obj=[model.Job.table], + group_by=['tool_id'], + order_by=[_order], + offset=offset, + limit=limit) all_jobs_per_tool_errors = sa.select((self.select_day(model.Job.table.c.create_time).label('date'), model.Job.table.c.id.label('id'), model.Job.table.c.tool_id.label('tool_id')), - whereclause=sa.and_(model.Job.table.c.state == 'error', - model.Job.table.c.user_id != monitor_user_id), - from_obj=[model.Job.table] + whereclause=sa.and_(model.Job.table.c.state == 'error', + model.Job.table.c.user_id != monitor_user_id), + from_obj=[model.Job.table] ) currday = date.today() @@ -1024,16 +1024,16 @@ class Jobs(BaseUIController, ReportQueryBuilder): page_specs = PageSpec(entries, offset, page, pages_found) return trans.fill_template('/webapps/reports/jobs_errors_per_tool.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - spark_limit=spark_limit, - time_period=time_period, - trends=trends, - jobs=jobs, - message=message, - is_user_jobs_only=monitor_user_id, - page_specs=page_specs) + order=order, + arrow=arrow, + sort_id=sort_id, + spark_limit=spark_limit, + time_period=time_period, + trends=trends, + jobs=jobs, + message=message, + is_user_jobs_only=monitor_user_id, + page_specs=page_specs) @web.expose def tool_per_month(self, trans, **kwd): @@ -1052,17 +1052,17 @@ class Jobs(BaseUIController, ReportQueryBuilder): tool_id = params.get('tool_id', 'Add a column1') specified_date = params.get('specified_date', datetime.utcnow().strftime("%Y-%m-%d")) q = sa.select((self.select_month(model.Job.table.c.create_time).label('date'), - sa.func.count(model.Job.table.c.id).label('total_jobs')), - whereclause=sa.and_(model.Job.table.c.tool_id == tool_id, - model.Job.table.c.user_id != monitor_user_id), - from_obj=[model.Job.table], - group_by=self.group_by_month(model.Job.table.c.create_time), - order_by=[_order]) + sa.func.count(model.Job.table.c.id).label('total_jobs')), + whereclause=sa.and_(model.Job.table.c.tool_id == tool_id, + model.Job.table.c.user_id != monitor_user_id), + from_obj=[model.Job.table], + group_by=self.group_by_month(model.Job.table.c.create_time), + order_by=[_order]) # Use to make sparkline all_jobs_for_tool = sa.select((self.select_month(model.Job.table.c.create_time).label('month'), - self.select_day(model.Job.table.c.create_time).label('day'), - model.Job.table.c.id.label('id')), + self.select_day(model.Job.table.c.create_time).label('day'), + model.Job.table.c.id.label('id')), whereclause=sa.and_(model.Job.table.c.tool_id == tool_id, model.Job.table.c.user_id != monitor_user_id), from_obj=[model.Job.table]) @@ -1085,19 +1085,19 @@ class Jobs(BaseUIController, ReportQueryBuilder): jobs = [] for row in q.execute(): jobs.append((row.date.strftime("%Y-%m"), - row.total_jobs, - row.date.strftime("%B"), - row.date.strftime("%Y"))) + row.total_jobs, + row.date.strftime("%B"), + row.date.strftime("%Y"))) return trans.fill_template('/webapps/reports/jobs_tool_per_month.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - specified_date=specified_date, - tool_id=tool_id, - trends=trends, - jobs=jobs, - message=message, - is_user_jobs_only=monitor_user_id) + order=order, + arrow=arrow, + sort_id=sort_id, + specified_date=specified_date, + tool_id=tool_id, + trends=trends, + jobs=jobs, + message=message, + is_user_jobs_only=monitor_user_id) @web.expose def job_info(self, trans, **kwd): @@ -1105,8 +1105,8 @@ class Jobs(BaseUIController, ReportQueryBuilder): job = trans.sa_session.query(model.Job) \ .get(trans.security.decode_id(kwd.get('id', ''))) return trans.fill_template('/webapps/reports/job_info.mako', - job=job, - message=message) + job=job, + message=message) # ---- Utility methods ------------------------------------------------------- diff --git a/lib/galaxy/webapps/reports/controllers/sample_tracking.py b/lib/galaxy/webapps/reports/controllers/sample_tracking.py index 9c6443261e8..1c95026c21f 100644 --- a/lib/galaxy/webapps/reports/controllers/sample_tracking.py +++ b/lib/galaxy/webapps/reports/controllers/sample_tracking.py @@ -39,7 +39,7 @@ class SpecifiedDateListGrid(grids.Grid): if column_filter == 'All': return query return query.filter(and_(model.Request.table.c.user_id == model.User.table.c.id, - model.User.table.c.email == column_filter)) + model.User.table.c.email == column_filter)) class SpecifiedDateColumn(grids.GridColumn): @@ -54,14 +54,14 @@ class SpecifiedDateListGrid(grids.Grid): start_date = date(year, month, day) end_date = start_date + timedelta(days=1) return query.filter(and_(self.model_class.table.c.create_time >= start_date, - self.model_class.table.c.create_time < end_date)) + self.model_class.table.c.create_time < end_date)) if column_filter.count('-') == 1: # We are filtering on a month like YYYY-MM year, month = map(int, column_filter.split("-")) start_date = date(year, month, 1) end_date = start_date + timedelta(days=calendar.monthrange(year, month)[1]) return query.filter(and_(self.model_class.table.c.create_time >= start_date, - self.model_class.table.c.create_time < end_date)) + self.model_class.table.c.create_time < end_date)) # Grid definition use_async = False @@ -71,31 +71,31 @@ class SpecifiedDateListGrid(grids.Grid): default_sort_key = "name" columns = [ RequestNameColumn("Name", - key="name", - attach_popup=False, - filterable="advanced"), + key="name", + attach_popup=False, + filterable="advanced"), CreateTimeColumn("Creation Time", - key="create_time", - attach_popup=False), + key="create_time", + attach_popup=False), UserColumn("User", - key="email", - model_class=model.User, - link=(lambda item: dict(operation="user_per_month", id=item.id, webapp="reports")), - attach_popup=False), + key="email", + model_class=model.User, + link=(lambda item: dict(operation="user_per_month", id=item.id, webapp="reports")), + attach_popup=False), # Columns that are valid for filtering but are not visible. SpecifiedDateColumn("Specified Date", - key="specified_date", - visible=False), + key="specified_date", + visible=False), EmailColumn("Email", - key="email", - model_class=model.User, - visible=False), + key="email", + model_class=model.User, + visible=False), ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0], columns[2]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[2]], + key="free-text-search", + visible=False, + filterable="standard")) standard_filters = [] default_filter = {'specified_date': 'All'} num_rows_per_page = 50 @@ -130,8 +130,8 @@ class SampleTracking(BaseUIController, ReportQueryBuilder): if operation == "request_per_month": # The received id is the request id. return trans.response.send_redirect(web.url_for(controller='sample_tracking', - action='request_per_month', - **kwd)) + action='request_per_month', + **kwd)) elif operation == "user_per_month": request_id = kwd.get('id', None) request = get_request(trans, request_id) @@ -140,40 +140,40 @@ class SampleTracking(BaseUIController, ReportQueryBuilder): else: kwd['email'] = None # For anonymous users ( shouldn't happen with requests ) return trans.response.send_redirect(web.url_for(controller='sample_tracking', - action='user_per_month', - **kwd)) + action='user_per_month', + **kwd)) return self.specified_date_list_grid(trans, **kwd) @web.expose def per_month_all(self, trans, **kwd): message = '' q = sa.select((self.select_month(model.Request.table.c.create_time).label('date'), - sa.func.count(model.Request.table.c.id).label('total')), - from_obj=[sa.outerjoin(model.Request.table, model.User.table)], - group_by=self.group_by_month(model.Request.table.c.create_time), - order_by=[sa.desc('date')]) + sa.func.count(model.Request.table.c.id).label('total')), + from_obj=[sa.outerjoin(model.Request.table, model.User.table)], + group_by=self.group_by_month(model.Request.table.c.create_time), + order_by=[sa.desc('date')]) requests = [] for row in q.execute(): requests.append((row.date.strftime("%Y-%m"), - row.total, - row.date.strftime("%B"), - row.date.strftime("%Y"))) + row.total, + row.date.strftime("%B"), + row.date.strftime("%Y"))) return trans.fill_template('/webapps/reports/requests_per_month_all.mako', - requests=requests, - message=message) + requests=requests, + message=message) @web.expose def per_user(self, trans, **kwd): message = '' requests = [] q = sa.select((model.User.table.c.email.label('user_email'), - sa.func.count(model.Request.table.c.id).label('total')), - from_obj=[sa.outerjoin(model.Request.table, model.User.table)], - group_by=['user_email'], - order_by=[sa.desc('total'), 'user_email']) + sa.func.count(model.Request.table.c.id).label('total')), + from_obj=[sa.outerjoin(model.Request.table, model.User.table)], + group_by=['user_email'], + order_by=[sa.desc('total'), 'user_email']) for row in q.execute(): requests.append((row.user_email, - row.total)) + row.total)) return trans.fill_template('/webapps/reports/requests_per_user.mako', requests=requests, message=message) @web.expose @@ -183,21 +183,21 @@ class SampleTracking(BaseUIController, ReportQueryBuilder): email = util.restore_text(params.get('email', '')) user_id = trans.security.decode_id(params.get('id', '')) q = sa.select((self.select_month(model.Request.table.c.create_time).label('date'), - sa.func.count(model.Request.table.c.id).label('total')), - whereclause=model.Request.table.c.user_id == user_id, - from_obj=[model.Request.table], - group_by=self.group_by_month(model.Request.table.c.create_time), - order_by=[sa.desc('date')]) + sa.func.count(model.Request.table.c.id).label('total')), + whereclause=model.Request.table.c.user_id == user_id, + from_obj=[model.Request.table], + group_by=self.group_by_month(model.Request.table.c.create_time), + order_by=[sa.desc('date')]) requests = [] for row in q.execute(): requests.append((row.date.strftime("%Y-%m"), - row.total, - row.date.strftime("%B"), - row.date.strftime("%Y"))) + row.total, + row.date.strftime("%B"), + row.date.strftime("%Y"))) return trans.fill_template('/webapps/reports/requests_user_per_month.mako', - email=util.sanitize_text(email), - requests=requests, - message=message) + email=util.sanitize_text(email), + requests=requests, + message=message) # ---- Utility methods ------------------------------------------------------- diff --git a/lib/galaxy/webapps/reports/controllers/system.py b/lib/galaxy/webapps/reports/controllers/system.py index eebd1333585..6359c1defd8 100644 --- a/lib/galaxy/webapps/reports/controllers/system.py +++ b/lib/galaxy/webapps/reports/controllers/system.py @@ -38,15 +38,15 @@ class System(BaseUIController): elif kwd['action'] == "deleted_datasets": deleted_datasets_days, message = self.deleted_datasets(trans, **kwd) return trans.fill_template('/webapps/reports/system.mako', - file_path=file_path, - disk_usage=disk_usage, - datasets=datasets, - file_size_str=file_size_str, - userless_histories_days=userless_histories_days, - deleted_histories_days=deleted_histories_days, - deleted_datasets_days=deleted_datasets_days, - message=message, - nice_size=nice_size) + file_path=file_path, + disk_usage=disk_usage, + datasets=datasets, + file_size_str=file_size_str, + userless_histories_days=userless_histories_days, + deleted_histories_days=deleted_histories_days, + deleted_datasets_days=deleted_datasets_days, + message=message, + nice_size=nice_size) def userless_histories(self, trans, **kwd): """The number of userless histories and associated datasets that have not been updated for the specified number of days.""" @@ -142,10 +142,10 @@ class System(BaseUIController): trans.model.LibraryDatasetDatasetAssociation.dataset_id == dataset.id)) \ .all() return trans.fill_template('/webapps/reports/dataset_info.mako', - dataset=dataset, - associated_hdas=associated_hdas, - associated_lddas=associated_lddas, - message=message) + dataset=dataset, + associated_hdas=associated_hdas, + associated_lddas=associated_lddas, + message=message) def get_disk_usage(self, file_path): df_cmd = 'df -h ' + file_path @@ -187,7 +187,7 @@ class System(BaseUIController): file_size_str = nice_size(min_file_size) datasets = trans.sa_session.query(model.Dataset) \ .filter(and_(model.Dataset.table.c.purged == false(), - model.Dataset.table.c.file_size > min_file_size)) \ + model.Dataset.table.c.file_size > min_file_size)) \ .order_by(desc(model.Dataset.table.c.file_size)) return file_path, disk_usage, datasets, file_size_str diff --git a/lib/galaxy/webapps/reports/controllers/tools.py b/lib/galaxy/webapps/reports/controllers/tools.py index 2248fe9466a..39037e779e9 100644 --- a/lib/galaxy/webapps/reports/controllers/tools.py +++ b/lib/galaxy/webapps/reports/controllers/tools.py @@ -77,24 +77,24 @@ class Tools(BaseUIController): sorting = 0 if sort_by == 'Tool' else 1 if sort_by == 'ok' else 2 descending = 1 if kwd.get('descending', 'desc') == 'desc' else -1 sort_functions = (lambda first, second: descending if first.lower() > second.lower() else -descending, - lambda first, second: -descending if tools_and_jobs_ok.get(first, 0) > tools_and_jobs_ok.get(second) else descending, - lambda first, second: -descending if tools_and_jobs_error.get(first, 0) > tools_and_jobs_error.get(second, 0) else descending) + lambda first, second: -descending if tools_and_jobs_ok.get(first, 0) > tools_and_jobs_ok.get(second) else descending, + lambda first, second: -descending if tools_and_jobs_error.get(first, 0) > tools_and_jobs_error.get(second, 0) else descending) data = collections.OrderedDict() # select count(id), tool_id from job where state='ok' group by tool_id; tools_and_jobs_ok = sa.select((galaxy.model.Job.table.c.tool_id .label('tool'), - sa.func.count(galaxy.model.Job.table.c.id).label('job')), - from_obj=[galaxy.model.Job.table], - whereclause=(galaxy.model.Job.table.c.state == 'ok'), - group_by=['tool']) + sa.func.count(galaxy.model.Job.table.c.id).label('job')), + from_obj=[galaxy.model.Job.table], + whereclause=(galaxy.model.Job.table.c.state == 'ok'), + group_by=['tool']) # select count(id), tool_id from job where state='error' group by tool_id; tools_and_jobs_error = sa.select((galaxy.model.Job.table.c.tool_id .label('tool'), - sa.func.count(galaxy.model.Job.table.c.id).label('job')), - from_obj=[galaxy.model.Job.table], - whereclause=(galaxy.model.Job.table.c.state == 'error'), - group_by=['tool']) + sa.func.count(galaxy.model.Job.table.c.id).label('job')), + from_obj=[galaxy.model.Job.table], + whereclause=(galaxy.model.Job.table.c.state == 'error'), + group_by=['tool']) tools_and_jobs_ok = dict(list(tools_and_jobs_ok.execute())) tools_and_jobs_error = dict(list(tools_and_jobs_error.execute())) @@ -107,11 +107,11 @@ class Tools(BaseUIController): data[tool] = (str(tools_and_jobs_ok.get(tool, '-')), str(tools_and_jobs_error.get(tool, '-'))) return trans.fill_template('/webapps/reports/tools_and_job_state.mako', - data=data, - user_cutoff=user_cutoff, - sorting=sorting, - descending=descending, - message=message) + data=data, + user_cutoff=user_cutoff, + sorting=sorting, + descending=descending, + message=message) @web.expose def tools_and_job_state_per_month(self, trans, **kwd): @@ -138,17 +138,17 @@ class Tools(BaseUIController): # select count(id), create_time from job where state='ok' and tool_id=$tool group by date; date_and_jobs_ok = sa.select((sa.func.date(galaxy.model.Job.table.c.create_time).label('date'), - sa.func.count(galaxy.model.Job.table.c.id).label('job')), - from_obj=[galaxy.model.Job.table], - whereclause=and_(galaxy.model.Job.table.c.state == 'ok', galaxy.model.Job.table.c.tool_id == tool), - group_by=['date']) + sa.func.count(galaxy.model.Job.table.c.id).label('job')), + from_obj=[galaxy.model.Job.table], + whereclause=and_(galaxy.model.Job.table.c.state == 'ok', galaxy.model.Job.table.c.tool_id == tool), + group_by=['date']) # select count(id), create_time from job where state='error' and tool_id=$tool group by date; date_and_jobs_error = sa.select((sa.func.date(galaxy.model.Job.table.c.create_time).label('date'), - sa.func.count(galaxy.model.Job.table.c.id).label('job')), - from_obj=[galaxy.model.Job.table], - whereclause=and_(galaxy.model.Job.table.c.state == 'error', galaxy.model.Job.table.c.tool_id == tool), - group_by=['date']) + sa.func.count(galaxy.model.Job.table.c.id).label('job')), + from_obj=[galaxy.model.Job.table], + whereclause=and_(galaxy.model.Job.table.c.state == 'error', galaxy.model.Job.table.c.tool_id == tool), + group_by=['date']) # sort_functions = (lambda first, second: descending if first.lower() > second.lower() else -descending, # lambda first, second: -descending if tools_and_jobs_ok.get( first, 0 ) > @@ -171,10 +171,10 @@ class Tools(BaseUIController): data[date_key][1] += int(date_and_jobs_error.get(date, 0)) return trans.fill_template('/webapps/reports/tools_and_job_state_per_month.mako', - data=data, - tool=tool, - user_cutoff=user_cutoff, - message=message) + data=data, + tool=tool, + user_cutoff=user_cutoff, + message=message) @web.expose def tool_execution_time(self, trans, **kwd): @@ -206,10 +206,10 @@ class Tools(BaseUIController): lambda first, second: field_sort(first, second, "max")] jobs_times = sa.select((galaxy.model.Job.table.c.tool_id.label("name"), - galaxy.model.Job.table.c.create_time.label("create_time"), - galaxy.model.Job.table.c.update_time.label("update_time"), - galaxy.model.Job.table.c.update_time - galaxy.model.Job.table.c.create_time), - from_obj=[galaxy.model.Job.table]) + galaxy.model.Job.table.c.create_time.label("create_time"), + galaxy.model.Job.table.c.update_time.label("update_time"), + galaxy.model.Job.table.c.update_time - galaxy.model.Job.table.c.create_time), + from_obj=[galaxy.model.Job.table]) jobs_times = [(name, (create, update, time)) for name, create, update, time in jobs_times.execute()] for tool, attr in jobs_times: @@ -232,15 +232,15 @@ class Tools(BaseUIController): tools.sort(sort_functions[sort_by]) for tool in tools: ordered_data[tool] = {"min": self.formatted(data[tool]["min"], color), - "max": self.formatted(data[tool]["max"], color), - "avg": self.formatted(data[tool]["avg"], color), - "last": self.formatted(data[tool]["last"], color)} + "max": self.formatted(data[tool]["max"], color), + "avg": self.formatted(data[tool]["avg"], color), + "last": self.formatted(data[tool]["last"], color)} return trans.fill_template('/webapps/reports/tool_execution_time.mako', - data=ordered_data, - descending=descending, - user_cutoff=user_cutoff, - sort_by=sort_by) + data=ordered_data, + descending=descending, + user_cutoff=user_cutoff, + sort_by=sort_by) @web.expose def tool_execution_time_per_month(self, trans, **kwd): @@ -266,12 +266,12 @@ class Tools(BaseUIController): sort_functions = [(lambda first, second, i=i: descending if first[i] < second[i] else -descending) for i in range(4)] jobs_times = sa.select((sa.func.date_trunc('month', galaxy.model.Job.table.c.create_time).label('date'), - sa.func.max(galaxy.model.Job.table.c.update_time - galaxy.model.Job.table.c.create_time), - sa.func.avg(galaxy.model.Job.table.c.update_time - galaxy.model.Job.table.c.create_time), - sa.func.min(galaxy.model.Job.table.c.update_time - galaxy.model.Job.table.c.create_time)), - from_obj=[galaxy.model.Job.table], - whereclause=galaxy.model.Job.table.c.tool_id == tool, - group_by=['date']) + sa.func.max(galaxy.model.Job.table.c.update_time - galaxy.model.Job.table.c.create_time), + sa.func.avg(galaxy.model.Job.table.c.update_time - galaxy.model.Job.table.c.create_time), + sa.func.min(galaxy.model.Job.table.c.update_time - galaxy.model.Job.table.c.create_time)), + from_obj=[galaxy.model.Job.table], + whereclause=galaxy.model.Job.table.c.tool_id == tool, + group_by=['date']) months = list(jobs_times.execute()) months.sort(sort_functions[sort_by]) @@ -280,15 +280,15 @@ class Tools(BaseUIController): for month in months: ordered_data[str(month[0]).split(' ')[0][:-3]] = (self.formatted(month[1], color), - self.formatted(month[2], color), - self.formatted(month[3], color)) + self.formatted(month[2], color), + self.formatted(month[3], color)) return trans.fill_template('/webapps/reports/tool_execution_time_per_month.mako', - data=ordered_data, - tool=tool, - descending=descending, - user_cutoff=user_cutoff, - sort_by=sort_by) + data=ordered_data, + tool=tool, + descending=descending, + user_cutoff=user_cutoff, + sort_by=sort_by) @web.expose def tool_error_messages(self, trans, **kwd): @@ -297,15 +297,15 @@ class Tools(BaseUIController): sort_by = 0 if kwd.get("sort_by", "time") == "time" else 1 cutoff = int(kwd.get("user_cutoff", 60)) sort_functions = (lambda _a, _b: -descending if counter[_a][1] > counter[_b][1] else descending, - lambda _a, _b: -descending if counter[_a][0] > counter[_b][0] else descending) + lambda _a, _b: -descending if counter[_a][0] > counter[_b][0] else descending) if tool_name is None: raise ValueError("Tool can't be none") tool_errors = [[unicode(a), b] for a, b in - sa.select((galaxy.model.Job.table.c.stderr, galaxy.model.Job.table.c.create_time), + sa.select((galaxy.model.Job.table.c.stderr, galaxy.model.Job.table.c.create_time), from_obj=[galaxy.model.Job.table], whereclause=and_(galaxy.model.Job.table.c.tool_id == tool_name, - galaxy.model.Job.table.c.state == 'error')).execute()] + galaxy.model.Job.table.c.state == 'error')).execute()] counter = {} for error in tool_errors: @@ -358,8 +358,8 @@ class Tools(BaseUIController): data[new_key] = counter[key] return trans.fill_template("/webapps/reports/tool_error_messages.mako", - data=data, - descending=descending, - tool_name=tool_name, - sort_by=sort_by, - user_cutoff=cutoff) + data=data, + descending=descending, + tool_name=tool_name, + sort_by=sort_by, + user_cutoff=cutoff) diff --git a/lib/galaxy/webapps/reports/controllers/users.py b/lib/galaxy/webapps/reports/controllers/users.py index e33acc092cf..3d9e6b4f2d1 100644 --- a/lib/galaxy/webapps/reports/controllers/users.py +++ b/lib/galaxy/webapps/reports/controllers/users.py @@ -34,22 +34,22 @@ class Users(BaseUIController, ReportQueryBuilder): _order = specs.exc_order q = sa.select((self.select_month(galaxy.model.User.table.c.create_time).label('date'), - sa.func.count(galaxy.model.User.table.c.id).label('num_users')), - from_obj=[galaxy.model.User.table], - group_by=self.group_by_month(galaxy.model.User.table.c.create_time), - order_by=[_order]) + sa.func.count(galaxy.model.User.table.c.id).label('num_users')), + from_obj=[galaxy.model.User.table], + group_by=self.group_by_month(galaxy.model.User.table.c.create_time), + order_by=[_order]) users = [] for row in q.execute(): users.append((row.date.strftime("%Y-%m"), - row.num_users, - row.date.strftime("%B"), - row.date.strftime("%Y"))) + row.num_users, + row.date.strftime("%B"), + row.date.strftime("%Y"))) return trans.fill_template('/webapps/reports/registered_users_per_month.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - users=users, - message=message) + order=order, + arrow=arrow, + sort_id=sort_id, + users=users, + message=message) @web.expose def specified_month(self, trans, **kwd): @@ -63,24 +63,24 @@ class Users(BaseUIController, ReportQueryBuilder): month_label = start_date.strftime("%B") year_label = start_date.strftime("%Y") q = sa.select((self.select_day(galaxy.model.User.table.c.create_time).label('date'), - sa.func.count(galaxy.model.User.table.c.id).label('num_users')), - whereclause=sa.and_(galaxy.model.User.table.c.create_time >= start_date, - galaxy.model.User.table.c.create_time < end_date), - from_obj=[galaxy.model.User.table], - group_by=self.group_by_day(galaxy.model.User.table.c.create_time), - order_by=[sa.desc('date')]) + sa.func.count(galaxy.model.User.table.c.id).label('num_users')), + whereclause=sa.and_(galaxy.model.User.table.c.create_time >= start_date, + galaxy.model.User.table.c.create_time < end_date), + from_obj=[galaxy.model.User.table], + group_by=self.group_by_day(galaxy.model.User.table.c.create_time), + order_by=[sa.desc('date')]) users = [] for row in q.execute(): users.append((row.date.strftime("%Y-%m-%d"), - row.date.strftime("%d"), - row.num_users, - row.date.strftime("%A"))) + row.date.strftime("%d"), + row.num_users, + row.date.strftime("%A"))) return trans.fill_template('/webapps/reports/registered_users_specified_month.mako', - month_label=month_label, - year_label=year_label, - month=month, - users=users, - message=message) + month_label=month_label, + year_label=year_label, + month=month, + users=users, + message=message) @web.expose def specified_date(self, trans, **kwd): @@ -95,22 +95,22 @@ class Users(BaseUIController, ReportQueryBuilder): month_label = start_date.strftime("%B") year_label = start_date.strftime("%Y") q = sa.select((self.select_day(galaxy.model.User.table.c.create_time).label('date'), - galaxy.model.User.table.c.email), - whereclause=sa.and_(galaxy.model.User.table.c.create_time >= start_date, - galaxy.model.User.table.c.create_time < end_date), - from_obj=[galaxy.model.User.table], - order_by=[galaxy.model.User.table.c.email]) + galaxy.model.User.table.c.email), + whereclause=sa.and_(galaxy.model.User.table.c.create_time >= start_date, + galaxy.model.User.table.c.create_time < end_date), + from_obj=[galaxy.model.User.table], + order_by=[galaxy.model.User.table.c.email]) users = [] for row in q.execute(): users.append((row.email)) return trans.fill_template('/webapps/reports/registered_users_specified_date.mako', - specified_date=start_date, - day_label=day_label, - month_label=month_label, - year_label=year_label, - day_of_month=day_of_month, - users=users, - message=message) + specified_date=start_date, + day_label=day_label, + month_label=month_label, + year_label=year_label, + day_of_month=day_of_month, + users=users, + message=message) @web.expose def last_access_date(self, trans, **kwd): @@ -152,12 +152,12 @@ class Users(BaseUIController, ReportQueryBuilder): users.append((user.email, "never logged in")) users = sorted(users, key=operator.itemgetter(name_to_num(sort_id)), reverse=_order) return trans.fill_template('/webapps/reports/users_last_access_date.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - days_not_logged_in=days_not_logged_in, - users=users, - message=message) + order=order, + arrow=arrow, + sort_id=sort_id, + days_not_logged_in=days_not_logged_in, + users=users, + message=message) @web.expose def user_disk_usage(self, trans, **kwd): @@ -178,12 +178,12 @@ class Users(BaseUIController, ReportQueryBuilder): if user_cutoff: users = users[:user_cutoff] return trans.fill_template('/webapps/reports/users_user_disk_usage.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - users=users, - user_cutoff=user_cutoff, - message=message) + order=order, + arrow=arrow, + sort_id=sort_id, + users=users, + user_cutoff=user_cutoff, + message=message) @web.expose def history_per_user(self, trans, **kwd): @@ -197,7 +197,7 @@ class Users(BaseUIController, ReportQueryBuilder): req = sa.select( (sa.func.count(galaxy.model.History.table.c.id).label('history'), - galaxy.model.User.table.c.username.label('username')), + galaxy.model.User.table.c.username.label('username')), from_obj=[sa.outerjoin(galaxy.model.History.table, galaxy.model.User.table)], whereclause=galaxy.model.History.table.c.user_id == galaxy.model.User.table.c.id, group_by=['username'], @@ -209,8 +209,8 @@ class Users(BaseUIController, ReportQueryBuilder): histories = histories[:user_cutoff] return trans.fill_template('/webapps/reports/history_per_user.mako', - histories=histories, - user_cutoff=user_cutoff, - sorting=sorting, - descending=descending, - message=message) + histories=histories, + user_cutoff=user_cutoff, + sorting=sorting, + descending=descending, + message=message) diff --git a/lib/galaxy/webapps/reports/controllers/workflows.py b/lib/galaxy/webapps/reports/controllers/workflows.py index 7ae277553f8..8e1d7f3bee2 100644 --- a/lib/galaxy/webapps/reports/controllers/workflows.py +++ b/lib/galaxy/webapps/reports/controllers/workflows.py @@ -43,7 +43,7 @@ class SpecifiedDateListGrid(grids.Grid): if column_filter == 'All': return query return query.filter(and_(model.StoredWorkflow.table.c.user_id == model.User.table.c.id, - model.User.table.c.email == column_filter)) + model.User.table.c.email == column_filter)) class SpecifiedDateColumn(grids.GridColumn): @@ -58,14 +58,14 @@ class SpecifiedDateListGrid(grids.Grid): start_date = date(year, month, day) end_date = start_date + timedelta(days=1) return query.filter(and_(self.model_class.table.c.create_time >= start_date, - self.model_class.table.c.create_time < end_date)) + self.model_class.table.c.create_time < end_date)) if column_filter.count('-') == 1: # We are filtering on a month like YYYY-MM year, month = map(int, column_filter.split("-")) start_date = date(year, month, 1) end_date = start_date + timedelta(days=calendar.monthrange(year, month)[1]) return query.filter(and_(self.model_class.table.c.create_time >= start_date, - self.model_class.table.c.create_time < end_date)) + self.model_class.table.c.create_time < end_date)) # Grid definition use_async = False @@ -75,31 +75,31 @@ class SpecifiedDateListGrid(grids.Grid): default_sort_key = "name" columns = [ WorkflowNameColumn("Name", - key="name", - attach_popup=False, - filterable="advanced"), + key="name", + attach_popup=False, + filterable="advanced"), CreateTimeColumn("Creation Time", - key="create_time", - attach_popup=False), + key="create_time", + attach_popup=False), UserColumn("User", - key="email", - model_class=model.User, - link=(lambda item: dict(operation="user_per_month", id=item.id, webapp="reports")), - attach_popup=False), + key="email", + model_class=model.User, + link=(lambda item: dict(operation="user_per_month", id=item.id, webapp="reports")), + attach_popup=False), # Columns that are valid for filtering but are not visible. SpecifiedDateColumn("Specified Date", - key="specified_date", - visible=False), + key="specified_date", + visible=False), EmailColumn("Email", - key="email", - model_class=model.User, - visible=False), + key="email", + model_class=model.User, + visible=False), ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0], columns[2]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[2]], + key="free-text-search", + visible=False, + filterable="standard")) standard_filters = [] default_filter = {'specified_date': 'All'} num_rows_per_page = 50 @@ -134,8 +134,8 @@ class Workflows(BaseUIController, ReportQueryBuilder): if operation == "workflow_per_month": # The received id is the stored_workflow id. return trans.response.send_redirect(web.url_for(controller='workflows', - action='workflow_per_month', - **kwd)) + action='workflow_per_month', + **kwd)) elif operation == "user_per_month": stored_workflow_id = kwd.get('id', None) workflow = get_workflow(trans, stored_workflow_id) @@ -144,8 +144,8 @@ class Workflows(BaseUIController, ReportQueryBuilder): else: kwd['email'] = None # For anonymous users ( shouldn't happen with workflows ) return trans.response.send_redirect(web.url_for(controller='workflows', - action='user_per_month', - **kwd)) + action='user_per_month', + **kwd)) return self.specified_date_list_grid(trans, **kwd) @web.expose @@ -178,12 +178,12 @@ class Workflows(BaseUIController, ReportQueryBuilder): page = 1 q = sa.select((self.select_month(model.StoredWorkflow.table.c.create_time).label('date'), - sa.func.count(model.StoredWorkflow.table.c.id).label('total_workflows')), - from_obj=[sa.outerjoin(model.StoredWorkflow.table, model.User.table)], - group_by=self.group_by_month(model.StoredWorkflow.table.c.create_time), - order_by=[_order], - offset=offset, - limit=limit) + sa.func.count(model.StoredWorkflow.table.c.id).label('total_workflows')), + from_obj=[sa.outerjoin(model.StoredWorkflow.table, model.User.table)], + group_by=self.group_by_month(model.StoredWorkflow.table.c.create_time), + order_by=[_order], + offset=offset, + limit=limit) all_workflows = sa.select((self.select_day(model.StoredWorkflow.table.c.create_time).label('date'), model.StoredWorkflow.table.c.id)) @@ -210,21 +210,21 @@ class Workflows(BaseUIController, ReportQueryBuilder): year = int(row.date.strftime("%Y")) workflows.append((row.date.strftime("%Y-%m"), - row.total_workflows, - month_name, - year)) + row.total_workflows, + month_name, + year)) pages_found = ceil(len(workflows) / float(entries)) page_specs = PageSpec(entries, offset, page, pages_found) return trans.fill_template('/webapps/reports/workflows_per_month_all.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - trends=trends, - workflows=workflows, - message=message, - page_specs=page_specs) + order=order, + arrow=arrow, + sort_id=sort_id, + trends=trends, + workflows=workflows, + message=message, + page_specs=page_specs) @web.expose def per_user(self, trans, **kwd): @@ -260,18 +260,18 @@ class Workflows(BaseUIController, ReportQueryBuilder): workflows = [] q = sa.select((model.User.table.c.email.label('user_email'), - sa.func.count(model.StoredWorkflow.table.c.id).label('total_workflows')), - from_obj=[sa.outerjoin(model.StoredWorkflow.table, model.User.table)], - group_by=['user_email'], - order_by=[_order], - offset=offset, - limit=limit) + sa.func.count(model.StoredWorkflow.table.c.id).label('total_workflows')), + from_obj=[sa.outerjoin(model.StoredWorkflow.table, model.User.table)], + group_by=['user_email'], + order_by=[_order], + offset=offset, + limit=limit) all_workflows_per_user = sa.select((model.User.table.c.email.label('user_email'), - self.select_day(model.StoredWorkflow.table.c.create_time).label('date'), - model.StoredWorkflow.table.c.id), + self.select_day(model.StoredWorkflow.table.c.create_time).label('date'), + model.StoredWorkflow.table.c.id), from_obj=[sa.outerjoin(model.StoredWorkflow.table, - model.User.table)]) + model.User.table)]) currday = datetime.today() trends = dict() for workflow in all_workflows_per_user.execute(): @@ -294,21 +294,21 @@ class Workflows(BaseUIController, ReportQueryBuilder): for row in q.execute(): workflows.append((row.user_email, - row.total_workflows)) + row.total_workflows)) pages_found = ceil(len(workflows) / float(entries)) page_specs = PageSpec(entries, offset, page, pages_found) return trans.fill_template('/webapps/reports/workflows_per_user.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - spark_limit=spark_limit, - trends=trends, - time_period=time_period, - workflows=workflows, - message=message, - page_specs=page_specs) + order=order, + arrow=arrow, + sort_id=sort_id, + spark_limit=spark_limit, + trends=trends, + time_period=time_period, + workflows=workflows, + message=message, + page_specs=page_specs) @web.expose def user_per_month(self, trans, **kwd): @@ -323,14 +323,14 @@ class Workflows(BaseUIController, ReportQueryBuilder): user_id = trans.security.decode_id(params.get('id', '')) q = sa.select((self.select_month(model.StoredWorkflow.table.c.create_time).label('date'), - sa.func.count(model.StoredWorkflow.table.c.id).label('total_workflows')), - whereclause=model.StoredWorkflow.table.c.user_id == user_id, - from_obj=[model.StoredWorkflow.table], - group_by=self.group_by_month(model.StoredWorkflow.table.c.create_time), - order_by=[_order]) + sa.func.count(model.StoredWorkflow.table.c.id).label('total_workflows')), + whereclause=model.StoredWorkflow.table.c.user_id == user_id, + from_obj=[model.StoredWorkflow.table], + group_by=self.group_by_month(model.StoredWorkflow.table.c.create_time), + order_by=[_order]) all_workflows_user_month = sa.select((self.select_day(model.StoredWorkflow.table.c.create_time).label('date'), - model.StoredWorkflow.table.c.id), + model.StoredWorkflow.table.c.id), whereclause=model.StoredWorkflow.table.c.user_id == user_id, from_obj=[model.StoredWorkflow.table]) @@ -353,17 +353,17 @@ class Workflows(BaseUIController, ReportQueryBuilder): workflows = [] for row in q.execute(): workflows.append((row.date.strftime("%Y-%m"), - row.total_workflows, - row.date.strftime("%B"), - row.date.strftime("%Y"))) + row.total_workflows, + row.date.strftime("%B"), + row.date.strftime("%Y"))) return trans.fill_template('/webapps/reports/workflows_user_per_month.mako', - email=util.sanitize_text(email), - order=order, - arrow=arrow, - sort_id=sort_id, - trends=trends, - workflows=workflows, - message=message) + email=util.sanitize_text(email), + order=order, + arrow=arrow, + sort_id=sort_id, + trends=trends, + workflows=workflows, + message=message) @web.expose def per_workflow(self, trans, **kwd): @@ -400,19 +400,19 @@ class Workflows(BaseUIController, ReportQueryBuilder): # In case we don't know which is the monitor user we will query for all jobs q = sa.select((model.Workflow.table.c.id.label('workflow_id'), - sa.func.min(model.Workflow.table.c.name).label('workflow_name'), + sa.func.min(model.Workflow.table.c.name).label('workflow_name'), sa.func.count(model.WorkflowInvocation.table.c.id).label('total_runs')), from_obj=[model.Workflow.table, model.WorkflowInvocation.table], whereclause=sa.and_(model.WorkflowInvocation.table.c.workflow_id == model.Workflow.table.c.id), group_by=[model.Workflow.table.c.id], order_by=[_order], - offset=offset, - limit=limit) + offset=offset, + limit=limit) all_runs_per_workflow = sa.select((model.Workflow.table.c.id.label('workflow_id'), - model.Workflow.table.c.name.label('workflow_name'), - self.select_day(model.WorkflowInvocation.table.c.create_time).label('date')), + model.Workflow.table.c.name.label('workflow_name'), + self.select_day(model.WorkflowInvocation.table.c.create_time).label('date')), from_obj=[model.Workflow.table, model.WorkflowInvocation.table], whereclause=sa.and_(model.WorkflowInvocation.table.c.workflow_id == model.Workflow.table.c.id)) @@ -440,22 +440,22 @@ class Workflows(BaseUIController, ReportQueryBuilder): runs = [] for row in q.execute(): runs.append((row.workflow_name, - row.total_runs, - row.workflow_id)) + row.total_runs, + row.workflow_id)) pages_found = ceil(len(runs) / float(entries)) page_specs = PageSpec(entries, offset, page, pages_found) return trans.fill_template('/webapps/reports/workflows_per_workflow.mako', - order=order, - arrow=arrow, - sort_id=sort_id, - spark_limit=spark_limit, - time_period=time_period, - trends=trends, - runs=runs, - message=message, - page_specs=page_specs) + order=order, + arrow=arrow, + sort_id=sort_id, + spark_limit=spark_limit, + time_period=time_period, + trends=trends, + runs=runs, + message=message, + page_specs=page_specs) # ---- Utility methods ------------------------------------------------------- diff --git a/lib/galaxy/webapps/tool_shed/api/categories.py b/lib/galaxy/webapps/tool_shed/api/categories.py index 5042801fc0c..b2e02d32a11 100644 --- a/lib/galaxy/webapps/tool_shed/api/categories.py +++ b/lib/galaxy/webapps/tool_shed/api/categories.py @@ -53,11 +53,11 @@ class CategoriesController(BaseAPIController): trans.sa_session.add(category) trans.sa_session.flush() category_dict = category.to_dict(view='element', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) category_dict['message'] = "Category '%s' has been created" % str(category.name) category_dict['url'] = web.url_for(controller='categories', - action='show', - id=trans.security.encode_id(category.id)) + action='show', + id=trans.security.encode_id(category.id)) else: raise exceptions.RequestParameterMissingException('Missing required parameter "name".') return category_dict @@ -76,13 +76,13 @@ class CategoriesController(BaseAPIController): category = suc.get_category(self.app, category_id) if category is None: category_dict = dict(message='Unable to locate category record for id %s.' % (str(id)), - status='error') + status='error') return category_dict category_dict = category.to_dict(view='element', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) category_dict['url'] = web.url_for(controller='categories', - action='show', - id=trans.security.encode_id(category.id)) + action='show', + id=trans.security.encode_id(category.id)) repositories = repository_util.get_repositories_by_category(self.app, category.id, installable=installable) category_dict['repositories'] = repositories return category_dict @@ -105,10 +105,10 @@ class CategoriesController(BaseAPIController): .filter(self.app.model.Category.table.c.deleted == deleted) \ .order_by(self.app.model.Category.table.c.name): category_dict = category.to_dict(view='collection', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) category_dict['url'] = web.url_for(controller='categories', - action='show', - id=trans.security.encode_id(category.id)) + action='show', + id=trans.security.encode_id(category.id)) category_dict['repositories'] = self.app.repository_registry.viewable_repositories_and_suites_by_category.get(category.name, 0) category_dicts.append(category_dict) return category_dicts @@ -126,11 +126,11 @@ class CategoriesController(BaseAPIController): category = suc.get_category(self.app, id) if category is None: category_dict = dict(message='Unable to locate category record for id %s.' % (str(id)), - status='error') + status='error') return category_dict category_dict = category.to_dict(view='element', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) category_dict['url'] = web.url_for(controller='categories', - action='show', - id=trans.security.encode_id(category.id)) + action='show', + id=trans.security.encode_id(category.id)) return category_dict diff --git a/lib/galaxy/webapps/tool_shed/api/groups.py b/lib/galaxy/webapps/tool_shed/api/groups.py index d5bc8db4322..d1c8eca145e 100644 --- a/lib/galaxy/webapps/tool_shed/api/groups.py +++ b/lib/galaxy/webapps/tool_shed/api/groups.py @@ -125,16 +125,16 @@ class GroupsController(BaseAPIController): ratings_mean = str(float(sum(ratings)) / len(ratings)) if len(ratings) > 0 else '' total_downloads += repo.times_downloaded group_repos.append({'name': repo.name, - 'times_downloaded': repo.times_downloaded, - 'owner': repo.user.username, - 'time_created_full': time_repo_created_full, - 'time_created': time_repo_created, - 'time_updated_full': time_repo_updated_full, - 'time_updated': time_repo_updated, - 'description': repo.description, - 'approved': approved, - 'ratings_mean': ratings_mean, - 'categories' : categories}) + 'times_downloaded': repo.times_downloaded, + 'owner': repo.user.username, + 'time_created_full': time_repo_created_full, + 'time_created': time_repo_created, + 'time_updated_full': time_repo_updated_full, + 'time_updated': time_repo_updated, + 'description': repo.description, + 'approved': approved, + 'ratings_mean': ratings_mean, + 'categories' : categories}) user_repos_count += 1 encoded_user_id = trans.app.security.encode_id(repo.user.id) user_repos_url = web.url_for(controller='repository', action='browse_repositories_by_user', user_id=encoded_user_id) diff --git a/lib/galaxy/webapps/tool_shed/api/repositories.py b/lib/galaxy/webapps/tool_shed/api/repositories.py index 991dabb45c0..6af9046438f 100644 --- a/lib/galaxy/webapps/tool_shed/api/repositories.py +++ b/lib/galaxy/webapps/tool_shed/api/repositories.py @@ -195,30 +195,30 @@ class RepositoriesController(BaseAPIController): return {}, {}, {} encoded_repository_id = trans.security.encode_id(repository.id) repository_dict = repository.to_dict(view='element', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) repository_dict['url'] = web.url_for(controller='repositories', - action='show', - id=encoded_repository_id) + action='show', + id=encoded_repository_id) # Get the repository_metadata information. repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, - encoded_repository_id, - changeset_revision) + encoded_repository_id, + changeset_revision) if repository_metadata is None: # The changeset_revision column in the repository_metadata table has been updated with a new # value value, so find the changeset_revision to which we need to update. repo = hg_util.get_repo_for_repository(self.app, repository=repository, repo_path=None, create=False) new_changeset_revision = metadata_util.get_next_downloadable_changeset_revision(repository, repo, changeset_revision) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, - encoded_repository_id, - new_changeset_revision) + encoded_repository_id, + new_changeset_revision) changeset_revision = new_changeset_revision if repository_metadata is not None: encoded_repository_metadata_id = trans.security.encode_id(repository_metadata.id) repository_metadata_dict = repository_metadata.to_dict(view='collection', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) repository_metadata_dict['url'] = web.url_for(controller='repository_revisions', - action='show', - id=encoded_repository_metadata_id) + action='show', + id=encoded_repository_metadata_id) if 'tools' in repository_metadata.metadata: repository_metadata_dict['valid_tools'] = repository_metadata.metadata['tools'] # Get the repo_info_dict for installing the repository. @@ -229,13 +229,13 @@ class RepositoriesController(BaseAPIController): has_repository_dependencies, \ has_repository_dependencies_only_if_compiling_contained_td = \ repository_util.get_repo_info_dict(self.app, - trans.user, - encoded_repository_id, - changeset_revision) + trans.user, + encoded_repository_id, + changeset_revision) return repository_dict, repository_metadata_dict, repo_info_dict else: log.debug("Unable to locate repository_metadata record for repository id %s and changeset_revision %s" % - (str(repository.id), str(changeset_revision))) + (str(repository.id), str(changeset_revision))) return repository_dict, {}, {} else: debug_msg = "Error in the Tool Shed repositories API in get_repository_revision_install_info: " @@ -266,8 +266,8 @@ class RepositoriesController(BaseAPIController): def __get_value_mapper(self, trans): value_mapper = {'id': trans.security.encode_id, - 'repository_id': trans.security.encode_id, - 'user_id': trans.security.encode_id} + 'repository_id': trans.security.encode_id, + 'user_id': trans.security.encode_id} return value_mapper @web.expose_api @@ -291,11 +291,11 @@ class RepositoriesController(BaseAPIController): raise HTTPBadRequest(detail="Missing required parameter 'capsule_file_name'.") capsule_file_path = os.path.abspath(capsule_file_name) capsule_dict = dict(error_message='', - encoded_file_path=None, - status='ok', - tar_archive=None, - uploaded_file=None, - capsule_file_name=None) + encoded_file_path=None, + status='ok', + tar_archive=None, + uploaded_file=None, + capsule_file_name=None) if os.path.getsize(os.path.abspath(capsule_file_name)) == 0: log.debug('Your capsule file %s is empty.' % str(capsule_file_name)) return {} @@ -306,9 +306,9 @@ class RepositoriesController(BaseAPIController): log.debug('Error opening capsule file %s: %s' % (str(capsule_file_name), str(e))) return {} irm = capsule_manager.ImportRepositoryManager(self.app, - trans.request.host, - trans.user, - trans.user_is_admin()) + trans.request.host, + trans.user, + trans.user_is_admin()) capsule_dict['tar_archive'] = tar_archive capsule_dict['capsule_file_name'] = capsule_file_name capsule_dict = irm.extract_capsule_files(**capsule_dict) @@ -316,7 +316,7 @@ class RepositoriesController(BaseAPIController): status = capsule_dict.get('status', 'error') if status == 'error': log.debug('The capsule contents are invalid and cannot be imported:
    %s' % - str(capsule_dict.get('error_message', ''))) + str(capsule_dict.get('error_message', ''))) return {} encoded_file_path = capsule_dict.get('encoded_file_path', None) if encoded_file_path is None: @@ -337,7 +337,7 @@ class RepositoriesController(BaseAPIController): repository_status_info_dict['capsule_file_name'] = capsule_file_name repository_status_info_dict['encoded_file_path'] = encoded_file_path import_results_tups = irm.create_repository_and_import_archive(repository_status_info_dict, - import_results_tups) + import_results_tups) irm.check_status_and_reset_downloadable(import_results_tups) basic_util.remove_dir(file_path) # NOTE: the order of installation is defined in import_results_tups, but order will be lost @@ -419,10 +419,10 @@ class RepositoriesController(BaseAPIController): # A valid GUID looks like toolshed.g2.bx.psu.edu/repos/bgruening/deeptools/deeptools_computeMatrix/1.1.0 shed, _, owner, name, tool, version = tool_id.split('/') clause_list = [and_(self.app.model.Repository.table.c.deprecated == false(), - self.app.model.Repository.table.c.deleted == false(), - self.app.model.Repository.table.c.name == name, - self.app.model.User.table.c.username == owner, - self.app.model.Repository.table.c.user_id == self.app.model.User.table.c.id)] + self.app.model.Repository.table.c.deleted == false(), + self.app.model.Repository.table.c.name == name, + self.app.model.User.table.c.username == owner, + self.app.model.Repository.table.c.user_id == self.app.model.User.table.c.id)] repository = trans.sa_session.query(self.app.model.Repository).filter(*clause_list).first() for changeset, changehash in repository.installable_revisions(self.app): metadata = metadata_util.get_current_repository_metadata_for_changeset_revision(self.app, repository, changehash) @@ -453,17 +453,17 @@ class RepositoriesController(BaseAPIController): return '{}' clause_list = [and_(self.app.model.Repository.table.c.deprecated == false(), - self.app.model.Repository.table.c.deleted == deleted)] + self.app.model.Repository.table.c.deleted == deleted)] if owner is not None: clause_list.append(and_(self.app.model.User.table.c.username == owner, - self.app.model.Repository.table.c.user_id == self.app.model.User.table.c.id)) + self.app.model.Repository.table.c.user_id == self.app.model.User.table.c.id)) if name is not None: clause_list.append(self.app.model.Repository.table.c.name == name) for repository in trans.sa_session.query(self.app.model.Repository) \ .filter(*clause_list) \ .order_by(self.app.model.Repository.table.c.name): repository_dict = repository.to_dict(view='collection', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) repository_dict['category_ids'] = \ [trans.security.encode_id(x.category.id) for x in repository.categories] repository_dicts.append(repository_dict) @@ -489,23 +489,23 @@ class RepositoriesController(BaseAPIController): repo_search = RepoSearch() Boosts = namedtuple('Boosts', ['repo_name_boost', - 'repo_description_boost', - 'repo_long_description_boost', - 'repo_homepage_url_boost', - 'repo_remote_repository_url_boost', - 'repo_owner_username_boost']) + 'repo_description_boost', + 'repo_long_description_boost', + 'repo_homepage_url_boost', + 'repo_remote_repository_url_boost', + 'repo_owner_username_boost']) boosts = Boosts(float(conf.get('repo_name_boost', 0.9)), - float(conf.get('repo_description_boost', 0.6)), - float(conf.get('repo_long_description_boost', 0.5)), - float(conf.get('repo_homepage_url_boost', 0.3)), - float(conf.get('repo_remote_repository_url_boost', 0.2)), - float(conf.get('repo_owner_username_boost', 0.3))) + float(conf.get('repo_description_boost', 0.6)), + float(conf.get('repo_long_description_boost', 0.5)), + float(conf.get('repo_homepage_url_boost', 0.3)), + float(conf.get('repo_remote_repository_url_boost', 0.2)), + float(conf.get('repo_owner_username_boost', 0.3))) results = repo_search.search(trans, - search_term, - page, - page_size, - boosts) + search_term, + page, + page_size, + boosts) results['hostname'] = web.url_for('/', qualified=True) return results @@ -613,10 +613,10 @@ class RepositoriesController(BaseAPIController): rmm_invalid_file_tups = rmm.get_invalid_file_tups() if rmm_invalid_file_tups: message = tool_util.generate_message_for_invalid_tools(self.app, - rmm_invalid_file_tups, - repository, - None, - as_html=False) + rmm_invalid_file_tups, + repository, + None, + as_html=False) results['unsuccessful_count'] += 1 else: message = "Successfully reset metadata on repository %s owned by %s" % \ @@ -630,15 +630,15 @@ class RepositoriesController(BaseAPIController): results['repository_status'].append(status) return results rmm = repository_metadata_manager.RepositoryMetadataManager(app=self.app, - user=trans.user, - resetting_all_metadata_on_repository=True, - updating_installed_repository=False, - persist=False) + user=trans.user, + resetting_all_metadata_on_repository=True, + updating_installed_repository=False, + persist=False) start_time = strftime("%Y-%m-%d %H:%M:%S") results = dict(start_time=start_time, - repository_status=[], - successful_count=0, - unsuccessful_count=0) + repository_status=[], + successful_count=0, + unsuccessful_count=0) handled_repository_ids = [] encoded_ids_to_skip = payload.get('encoded_ids_to_skip', []) skip_file = payload.get('skip_file', None) @@ -661,7 +661,7 @@ class RepositoriesController(BaseAPIController): encoded_id = trans.security.encode_id(repository.id) if encoded_id in encoded_ids_to_skip: log.debug("Skipping repository with id %s because it is in encoded_ids_to_skip %s" % - (str(repository.id), str(encoded_ids_to_skip))) + (str(repository.id), str(encoded_ids_to_skip))) elif repository.type == rt_util.TOOL_DEPENDENCY_DEFINITION and repository.id not in handled_repository_ids: results = handle_repository(trans, rmm, repository, results) # Now reset metadata on all remaining repositories. @@ -669,7 +669,7 @@ class RepositoriesController(BaseAPIController): encoded_id = trans.security.encode_id(repository.id) if encoded_id in encoded_ids_to_skip: log.debug("Skipping repository with id %s because it is in encoded_ids_to_skip %s" % - (str(repository.id), str(encoded_ids_to_skip))) + (str(repository.id), str(encoded_ids_to_skip))) elif repository.type != rt_util.TOOL_DEPENDENCY_DEFINITION and repository.id not in handled_repository_ids: results = handle_repository(trans, rmm, repository, results) stop_time = strftime("%Y-%m-%d %H:%M:%S") @@ -691,22 +691,22 @@ class RepositoriesController(BaseAPIController): def handle_repository(trans, start_time, repository): results = dict(start_time=start_time, - repository_status=[]) + repository_status=[]) try: rmm = repository_metadata_manager.RepositoryMetadataManager(app=self.app, - user=trans.user, - repository=repository, - resetting_all_metadata_on_repository=True, - updating_installed_repository=False, - persist=False) + user=trans.user, + repository=repository, + resetting_all_metadata_on_repository=True, + updating_installed_repository=False, + persist=False) rmm.reset_all_metadata_on_repository_in_tool_shed() rmm_invalid_file_tups = rmm.get_invalid_file_tups() if rmm_invalid_file_tups: message = tool_util.generate_message_for_invalid_tools(self.app, - rmm_invalid_file_tups, - repository, - None, - as_html=False) + rmm_invalid_file_tups, + repository, + None, + as_html=False) results['status'] = 'warning' else: message = "Successfully reset metadata on repository %s owned by %s" % \ @@ -755,7 +755,7 @@ class RepositoriesController(BaseAPIController): if repository is None: raise ObjectNotFound('Unable to locate repository for the given id.') repository_dict = repository.to_dict(view='element', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) # TODO the following property would be better suited in the to_dict method repository_dict['category_ids'] = \ [trans.security.encode_id(x.category.id) for x in repository.categories] @@ -788,8 +788,8 @@ class RepositoriesController(BaseAPIController): repository = repository_util.get_repository_by_name_and_owner(trans.app, name, owner) if repository: repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, - trans.security.encode_id(repository.id), - changeset_revision) + trans.security.encode_id(repository.id), + changeset_revision) repo = hg_util.get_repo_for_repository(trans.app, repository=repository, repo_path=None, create=False) tool_shed_status_dict = {} # Handle repository deprecation. @@ -836,15 +836,15 @@ class RepositoriesController(BaseAPIController): @expose_api_anonymous_and_sessionless def show_tools(self, trans, id, changeset, **kwd): repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, - id, - changeset) + id, + changeset) if repository_metadata is not None: encoded_repository_metadata_id = trans.security.encode_id(repository_metadata.id) repository_metadata_dict = repository_metadata.to_dict(view='collection', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) repository_metadata_dict['url'] = web.url_for(controller='repository_revisions', - action='show', - id=encoded_repository_metadata_id) + action='show', + id=encoded_repository_metadata_id) if 'tools' in repository_metadata.metadata: repository_metadata_dict['valid_tools'] = repository_metadata.metadata['tools'] # Get the repo_info_dict for installing the repository. @@ -855,13 +855,13 @@ class RepositoriesController(BaseAPIController): has_repository_dependencies, \ has_repository_dependencies_only_if_compiling_contained_td = \ repository_util.get_repo_info_dict(self.app, - trans.user, - id, - changeset) + trans.user, + id, + changeset) return repository_metadata_dict else: log.debug("Unable to locate repository_metadata record for repository id %s and changeset_revision %s" % - (str(id), str(changeset))) + (str(id), str(changeset))) return {} @expose_api_anonymous_and_sessionless @@ -1012,14 +1012,14 @@ class RepositoriesController(BaseAPIController): raise RequestParameterInvalidException(invalid_message) repo, message = repository_util.create_repository(app=self.app, - name=name, - type=repo_type, - description=synopsis, - long_description=description, - user_id=trans.user.id, - category_ids=category_ids, - remote_repository_url=remote_repository_url, - homepage_url=homepage_url) + name=name, + type=repo_type, + description=synopsis, + long_description=description, + user_id=trans.user.id, + category_ids=category_ids, + remote_repository_url=remote_repository_url, + homepage_url=homepage_url) repository_dict = repo.to_dict(view='element', value_mapper=self.__get_value_mapper(trans)) repository_dict['category_ids'] = \ @@ -1049,8 +1049,8 @@ class RepositoriesController(BaseAPIController): repository = repository_util.get_repository_in_tool_shed(self.app, id) if not (trans.user_is_admin() or - self.app.security_agent.user_can_administer_repository(trans.user, repository) or - self.app.security_agent.can_push(self.app, trans.user, repository)): + self.app.security_agent.user_can_administer_repository(trans.user, repository) or + self.app.security_agent.can_push(self.app, trans.user, repository)): trans.response.status = 400 return { "err_msg": "You do not have permission to update this repository.", @@ -1070,7 +1070,7 @@ class RepositoriesController(BaseAPIController): local_filename = util.mkstemp_ln(file_data.file.name, 'upload_file_data_') file_data.file.close() file_data = dict(filename=file_data.filename, - local_filename=local_filename) + local_filename=local_filename) elif type(file_data) == dict and 'local_filename' not in file_data: raise Exception('Uploaded file was encoded in a way not understood.') @@ -1116,12 +1116,12 @@ class RepositoriesController(BaseAPIController): ok = False else: rmm = repository_metadata_manager.RepositoryMetadataManager(app=self.app, - user=trans.user, - repository=repository) + user=trans.user, + repository=repository) status, error_message = \ rmm.set_repository_metadata_due_to_new_tip(trans.request.host, - content_alert_str=content_alert_str, - **kwd) + content_alert_str=content_alert_str, + **kwd) if error_message: ok = False trans.response.status = 500 diff --git a/lib/galaxy/webapps/tool_shed/api/repository_revisions.py b/lib/galaxy/webapps/tool_shed/api/repository_revisions.py index baefa16a3f1..5371945c1dd 100644 --- a/lib/galaxy/webapps/tool_shed/api/repository_revisions.py +++ b/lib/galaxy/webapps/tool_shed/api/repository_revisions.py @@ -53,18 +53,18 @@ class RepositoryRevisionsController(BaseAPIController): log.debug(error_message) return None, error_message erm = capsule_manager.ExportRepositoryManager(app=trans.app, - user=trans.user, - tool_shed_url=tool_shed_url, - repository=repository, - changeset_revision=changeset_revision, - export_repository_dependencies=export_repository_dependencies, - using_api=True) + user=trans.user, + tool_shed_url=tool_shed_url, + repository=repository, + changeset_revision=changeset_revision, + export_repository_dependencies=export_repository_dependencies, + using_api=True) return erm.export_repository() def __get_value_mapper(self, trans): value_mapper = {'id' : trans.security.encode_id, - 'repository_id' : trans.security.encode_id, - 'user_id' : trans.security.encode_id} + 'repository_id' : trans.security.encode_id, + 'user_id' : trans.security.encode_id} return value_mapper @web.expose_api_anonymous @@ -97,10 +97,10 @@ class RepositoryRevisionsController(BaseAPIController): .filter(and_(*clause_list)) \ .order_by(trans.app.model.RepositoryMetadata.table.c.repository_id.desc()): repository_metadata_dict = repository_metadata.to_dict(view='collection', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) repository_metadata_dict['url'] = web.url_for(controller='repository_revisions', - action='show', - id=trans.security.encode_id(repository_metadata.id)) + action='show', + id=trans.security.encode_id(repository_metadata.id)) repository_metadata_dicts.append(repository_metadata_dict) return repository_metadata_dicts @@ -142,17 +142,17 @@ class RepositoryRevisionsController(BaseAPIController): # The changeset_revision column in the repository_metadata table has been updated with a new # value value, so find the changeset_revision to which we need to update. repo = hg_util.get_repo_for_repository(trans.app, - repository=repository_dependency, - repo_path=None, - create=False) + repository=repository_dependency, + repo_path=None, + create=False) new_changeset_revision = metadata_util.get_next_downloadable_changeset_revision(repository_dependency, - repo, - changeset_revision) + repo, + changeset_revision) if new_changeset_revision != changeset_revision: repository_dependency_repository_metadata = \ metadata_util.get_repository_metadata_by_changeset_revision(trans.app, - repository_dependency_id, - new_changeset_revision) + repository_dependency_id, + new_changeset_revision) changeset_revision = new_changeset_revision else: decoded_repository_dependency_id = trans.security.decode_id(repository_dependency_id) @@ -164,9 +164,9 @@ class RepositoryRevisionsController(BaseAPIController): continue repository_dependency_metadata_dict = \ repository_dependency_repository_metadata.to_dict(view='element', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) repository_dependency_dict = repository_dependency.to_dict(view='element', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) # We need to be careful with the entries in our repository_dependency_dict here since this Tool Shed API # controller is working with repository_metadata records. The above to_dict() method returns a dictionary # with an id entry for the repository record. However, all of the other methods in this controller have @@ -177,8 +177,8 @@ class RepositoryRevisionsController(BaseAPIController): if k not in repository_dependency_metadata_dict: repository_dependency_metadata_dict[k] = v repository_dependency_metadata_dict['url'] = web.url_for(controller='repositories', - action='show', - id=repository_dependency_id) + action='show', + id=repository_dependency_id) repository_dependencies_dicts.append(repository_dependency_metadata_dict) return repository_dependencies_dicts @@ -197,10 +197,10 @@ class RepositoryRevisionsController(BaseAPIController): return {} encoded_repository_id = trans.security.encode_id(repository_metadata.repository_id) repository_metadata_dict = repository_metadata.to_dict(view='element', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) repository_metadata_dict['url'] = web.url_for(controller='repositories', - action='show', - id=encoded_repository_id) + action='show', + id=encoded_repository_id) return repository_metadata_dict @web.expose_api @@ -227,18 +227,18 @@ class RepositoryRevisionsController(BaseAPIController): # log information when setting attributes associated with the Tool Shed's install and test framework. if key in ['includes_tools', 'missing_test_components']: log.debug('Setting repository_metadata column %s to value %s for changeset_revision %s via the Tool Shed API.' % - (str(key), str(new_value), str(repository_metadata.changeset_revision))) + (str(key), str(new_value), str(repository_metadata.changeset_revision))) setattr(repository_metadata, key, new_value) flush_needed = True if flush_needed: log.debug('Updating repository_metadata record with id %s and changeset_revision %s.' % - (str(decoded_repository_metadata_id), str(repository_metadata.changeset_revision))) + (str(decoded_repository_metadata_id), str(repository_metadata.changeset_revision))) trans.sa_session.add(repository_metadata) trans.sa_session.flush() trans.sa_session.refresh(repository_metadata) repository_metadata_dict = repository_metadata.to_dict(view='element', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) repository_metadata_dict['url'] = web.url_for(controller='repository_revisions', - action='show', - id=repository_metadata_id) + action='show', + id=repository_metadata_id) return repository_metadata_dict diff --git a/lib/galaxy/webapps/tool_shed/api/tools.py b/lib/galaxy/webapps/tool_shed/api/tools.py index f411f791236..eb9f97ff39a 100644 --- a/lib/galaxy/webapps/tool_shed/api/tools.py +++ b/lib/galaxy/webapps/tool_shed/api/tools.py @@ -92,19 +92,19 @@ class ToolsController(BaseAPIController): tool_search = ToolSearch() Boosts = namedtuple('Boosts', ['tool_name_boost', - 'tool_description_boost', - 'tool_help_boost', - 'tool_repo_owner_username_boost']) + 'tool_description_boost', + 'tool_help_boost', + 'tool_repo_owner_username_boost']) boosts = Boosts(float(conf.get('tool_name_boost', 1.2)), - float(conf.get('tool_description_boost', 0.6)), - float(conf.get('tool_help_boost', 0.4)), - float(conf.get('tool_repo_owner_username_boost', 0.3))) + float(conf.get('tool_description_boost', 0.6)), + float(conf.get('tool_help_boost', 0.4)), + float(conf.get('tool_repo_owner_username_boost', 0.3))) results = tool_search.search(trans, - search_term, - page, - page_size, - boosts) + search_term, + page, + page_size, + boosts) results['hostname'] = web.url_for('/', qualified=True) return results @@ -139,9 +139,9 @@ class ToolsController(BaseAPIController): rb = relation_builder.RelationBuilder(trans.app, repository, repository_metadata, toolshed_base_url) repository_dependencies = rb.get_repository_dependencies_for_changeset_revision() containers_dict = tsucm.build_repository_containers(repository, - changeset, - repository_dependencies, - repository_metadata) + changeset, + repository_dependencies, + repository_metadata) found_tool = None for folder in containers_dict['valid_tools'].folders: if hasattr(folder, 'valid_tools'): @@ -158,8 +158,8 @@ class ToolsController(BaseAPIController): tv = tool_validator.ToolValidator(trans.app) repository, tool, message = tv.load_tool_from_changeset_revision(tsr_id, - changeset, - found_tool.tool_config) + changeset, + found_tool.tool_config) if message: status = 'error' return dict(message=message, status=status) diff --git a/lib/galaxy/webapps/tool_shed/api/users.py b/lib/galaxy/webapps/tool_shed/api/users.py index 10b19eb58ab..70846adeb78 100644 --- a/lib/galaxy/webapps/tool_shed/api/users.py +++ b/lib/galaxy/webapps/tool_shed/api/users.py @@ -29,16 +29,16 @@ class UsersController(BaseAPIController): :param username (required): the public username of the user """ user_dict = dict(message='', - status='ok') + status='ok') # Get the information about the user to be created from the payload. email = payload.get('email', '') password = payload.get('password', '') username = payload.get('username', '') message = self.__validate(trans, - email=email, - password=password, - confirm=password, - username=username) + email=email, + password=password, + confirm=password, + username=username) if message: message = 'email: %s, username: %s - %s' % (email, username, message) user_dict['message'] = message @@ -47,11 +47,11 @@ class UsersController(BaseAPIController): # Create the user. user = self.__create_user(trans, email, username, password) user_dict = user.to_dict(view='element', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) user_dict['message'] = "User '%s' has been created." % str(user.username) user_dict['url'] = web.url_for(controller='users', - action='show', - id=trans.security.encode_id(user.id)) + action='show', + id=trans.security.encode_id(user.id)) return user_dict def __create_user(self, trans, email, username, password): @@ -84,10 +84,10 @@ class UsersController(BaseAPIController): .filter(trans.app.model.User.table.c.deleted == deleted) \ .order_by(trans.app.model.User.table.c.username): user_dict = user.to_dict(view='collection', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) user_dict['url'] = web.url_for(controller='users', - action='show', - id=trans.security.encode_id(user.id)) + action='show', + id=trans.security.encode_id(user.id)) user_dicts.append(user_dict) return user_dicts @@ -109,13 +109,13 @@ class UsersController(BaseAPIController): if user is None: user_dict = dict(message='Unable to locate user record for id %s.' % (str(id)), - status='error') + status='error') return user_dict user_dict = user.to_dict(view='element', - value_mapper=self.__get_value_mapper(trans)) + value_mapper=self.__get_value_mapper(trans)) user_dict['url'] = web.url_for(controller='users', - action='show', - id=trans.security.encode_id(user.id)) + action='show', + id=trans.security.encode_id(user.id)) return user_dict def __validate(self, trans, email, password, confirm, username): diff --git a/lib/galaxy/webapps/tool_shed/app.py b/lib/galaxy/webapps/tool_shed/app.py index 545e363ae51..bfb4235af09 100644 --- a/lib/galaxy/webapps/tool_shed/app.py +++ b/lib/galaxy/webapps/tool_shed/app.py @@ -49,8 +49,8 @@ class UniverseApplication(object): # Set up the Tool Shed database engine and ORM. from galaxy.webapps.tool_shed.model import mapping self.model = mapping.init(self.config.file_path, - db_url, - self.config.database_engine_options) + db_url, + self.config.database_engine_options) # Initialize the Tool Shed security helper. self.security = security.SecurityHelper(id_secret=self.config.id_secret) # initialize the Tool Shed tag handler. diff --git a/lib/galaxy/webapps/tool_shed/buildapp.py b/lib/galaxy/webapps/tool_shed/buildapp.py index 687fc03c8eb..53f621af649 100644 --- a/lib/galaxy/webapps/tool_shed/buildapp.py +++ b/lib/galaxy/webapps/tool_shed/buildapp.py @@ -81,10 +81,10 @@ def app_factory(global_conf, load_app_kwds={}, **kwargs): webapp.add_route('/view/{owner}/{name}/{changeset_revision}', controller='repository', action='sharable_repository_revision') # Handle displaying tool help images and README file images for tools contained in repositories. webapp.add_route('/repository/static/images/{repository_id}/{image_file:.+?}', - controller='repository', - action='display_image_in_repository', - repository_id=None, - image_file=None) + controller='repository', + action='display_image_in_repository', + repository_id=None, + image_file=None) webapp.add_route('/{controller}/{action}', action='index') webapp.add_route('/{action}', controller='repository', action='index') # Enable 'hg clone' functionality on repos by letting hgwebapp handle the request @@ -92,105 +92,105 @@ def app_factory(global_conf, load_app_kwds={}, **kwargs): # Add the web API. # A good resource for RESTful services - http://routes.readthedocs.org/en/latest/restful.html webapp.add_api_controllers('galaxy.webapps.tool_shed.api', app) webapp.mapper.connect('api_key_retrieval', - '/api/authenticate/baseauth/', - controller='authenticate', - action='get_tool_shed_api_key', - conditions=dict(method=["GET"])) + '/api/authenticate/baseauth/', + controller='authenticate', + action='get_tool_shed_api_key', + conditions=dict(method=["GET"])) webapp.mapper.connect('group', - '/api/groups/', - controller='groups', - action='index', - conditions=dict(method=["GET"])) + '/api/groups/', + controller='groups', + action='index', + conditions=dict(method=["GET"])) webapp.mapper.connect('group', - '/api/groups/', - controller='groups', - action='create', - conditions=dict(method=["POST"])) + '/api/groups/', + controller='groups', + action='create', + conditions=dict(method=["POST"])) webapp.mapper.connect('group', - '/api/groups/{encoded_id}', - controller='groups', - action='show', - conditions=dict(method=["GET"])) + '/api/groups/{encoded_id}', + controller='groups', + action='show', + conditions=dict(method=["GET"])) webapp.mapper.resource('category', - 'categories', - controller='categories', - name_prefix='category_', - path_prefix='/api', - parent_resources=dict(member_name='category', collection_name='categories')) - webapp.mapper.connect('repositories_in_category', - '/api/categories/{category_id}/repositories', + 'categories', controller='categories', - action='get_repositories', - conditions=dict(method=["GET"])) + name_prefix='category_', + path_prefix='/api', + parent_resources=dict(member_name='category', collection_name='categories')) + webapp.mapper.connect('repositories_in_category', + '/api/categories/{category_id}/repositories', + controller='categories', + action='get_repositories', + conditions=dict(method=["GET"])) webapp.mapper.connect('show_updates_for_repository', - '/api/repositories/updates', - controller='repositories', - action='updates', - conditions=dict(method=["GET"])) + '/api/repositories/updates', + controller='repositories', + action='updates', + conditions=dict(method=["GET"])) webapp.mapper.resource('repository', - 'repositories', - controller='repositories', - collection={'add_repository_registry_entry': 'POST', - 'get_repository_revision_install_info': 'GET', - 'get_ordered_installable_revisions': 'GET', - 'get_installable_revisions': 'GET', - 'remove_repository_registry_entry': 'POST', - 'repository_ids_for_setting_metadata': 'GET', - 'reset_metadata_on_repositories': 'POST', - 'reset_metadata_on_repository': 'POST'}, - name_prefix='repository_', - path_prefix='/api', - new={'import_capsule': 'POST'}, - parent_resources=dict(member_name='repository', collection_name='repositories')) + 'repositories', + controller='repositories', + collection={'add_repository_registry_entry': 'POST', + 'get_repository_revision_install_info': 'GET', + 'get_ordered_installable_revisions': 'GET', + 'get_installable_revisions': 'GET', + 'remove_repository_registry_entry': 'POST', + 'repository_ids_for_setting_metadata': 'GET', + 'reset_metadata_on_repositories': 'POST', + 'reset_metadata_on_repository': 'POST'}, + name_prefix='repository_', + path_prefix='/api', + new={'import_capsule': 'POST'}, + parent_resources=dict(member_name='repository', collection_name='repositories')) webapp.mapper.resource('repository_revision', - 'repository_revisions', - member={'repository_dependencies': 'GET', - 'export': 'POST'}, - controller='repository_revisions', - name_prefix='repository_revision_', - path_prefix='/api', - parent_resources=dict(member_name='repository_revision', collection_name='repository_revisions')) + 'repository_revisions', + member={'repository_dependencies': 'GET', + 'export': 'POST'}, + controller='repository_revisions', + name_prefix='repository_revision_', + path_prefix='/api', + parent_resources=dict(member_name='repository_revision', collection_name='repository_revisions')) webapp.mapper.resource('user', - 'users', - controller='users', - name_prefix='user_', - path_prefix='/api', - parent_resources=dict(member_name='user', collection_name='users')) + 'users', + controller='users', + name_prefix='user_', + path_prefix='/api', + parent_resources=dict(member_name='user', collection_name='users')) webapp.mapper.connect('update_repository', - '/api/repositories/{id}', - controller='repositories', - action='update', - conditions=dict(method=["PATCH", "PUT"])) + '/api/repositories/{id}', + controller='repositories', + action='update', + conditions=dict(method=["PATCH", "PUT"])) webapp.mapper.connect('repository_create_changeset_revision', - '/api/repositories/{id}/changeset_revision', - controller='repositories', - action='create_changeset_revision', - conditions=dict(method=["POST"])) + '/api/repositories/{id}/changeset_revision', + controller='repositories', + action='create_changeset_revision', + conditions=dict(method=["POST"])) webapp.mapper.connect('repository_get_metadata', - '/api/repositories/{id}/metadata', - controller='repositories', - action='metadata', - conditions=dict(method=["GET"])) + '/api/repositories/{id}/metadata', + controller='repositories', + action='metadata', + conditions=dict(method=["GET"])) webapp.mapper.connect('repository_show_tools', - '/api/repositories/{id}/{changeset}/show_tools', - controller='repositories', - action='show_tools', - conditions=dict(method=["GET"])) + '/api/repositories/{id}/{changeset}/show_tools', + controller='repositories', + action='show_tools', + conditions=dict(method=["GET"])) webapp.mapper.connect('create_repository', - '/api/repositories', - controller='repositories', - action='create', - conditions=dict(method=["POST"])) + '/api/repositories', + controller='repositories', + action='create', + conditions=dict(method=["POST"])) webapp.mapper.connect('tools', - '/api/tools', - controller='tools', - action='index', - conditions=dict(method=["GET"])) + '/api/tools', + controller='tools', + action='index', + conditions=dict(method=["GET"])) webapp.mapper.connect('json', - '/api/tools/json', - controller='tools', - action='json', - conditions=dict(method=["GET"])) + '/api/tools/json', + controller='tools', + action='json', + conditions=dict(method=["GET"])) webapp.mapper.connect("version", "/api/version", controller="configuration", action="version", conditions=dict(method=["GET"])) webapp.finalize_config() @@ -233,7 +233,7 @@ def wrap_in_middleware(app, global_conf, application_stack, **local_conf): if asbool(conf.get('use_remote_user', False)): from galaxy.webapps.tool_shed.framework.middleware.remoteuser import RemoteUser app = wrap_if_allowed(app, stack, RemoteUser, - kwargs=dict( + kwargs=dict( maildomain=conf.get('remote_user_maildomain', None), display_servers=util.listify(conf.get('display_servers', '')), admin_users=conf.get('admin_users', '').split(','), @@ -278,8 +278,8 @@ def wrap_in_middleware(app, global_conf, application_stack, **local_conf): try: from weberror import evalexception app = wrap_if_allowed_or_fail(app, stack, evalexception.EvalException, - args=(conf,), - kwargs=dict(templating_formatters=build_template_error_formatters())) + args=(conf,), + kwargs=dict(templating_formatters=build_template_error_formatters())) except MiddlewareWrapUnsupported as exc: log.warning(str(exc)) import galaxy.web.framework.middleware.error diff --git a/lib/galaxy/webapps/tool_shed/controllers/admin.py b/lib/galaxy/webapps/tool_shed/controllers/admin.py index 41801818674..8cf7d5a81d1 100644 --- a/lib/galaxy/webapps/tool_shed/controllers/admin.py +++ b/lib/galaxy/webapps/tool_shed/controllers/admin.py @@ -37,12 +37,12 @@ class AdminController(BaseUIController, Admin): operation = kwd['operation'].lower() if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - **kwd)) + action='browse_repositories', + **kwd)) elif operation == "edit_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='edit_repository', - **kwd)) + action='edit_repository', + **kwd)) elif operation == "repositories_by_user": # Eliminate the current filters if any exist. for k, v in kwd.items(): @@ -70,8 +70,8 @@ class AdminController(BaseUIController, Admin): if kwd['id']: kwd['caller'] = 'browse_repositories' return trans.response.send_redirect(web.url_for(controller='repository', - action='set_email_alerts', - **kwd)) + action='set_email_alerts', + **kwd)) else: del kwd['operation'] elif operation == 'delete': @@ -91,10 +91,10 @@ class AdminController(BaseUIController, Admin): repository = repository_util.get_repository_in_tool_shed(trans.app, repository_id) if repository.tip(trans.app) != v: return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - operation='view_or_manage_repository', - id=trans.security.encode_id(repository.id), - changeset_revision=v)) + action='browse_repositories', + operation='view_or_manage_repository', + id=trans.security.encode_id(repository.id), + changeset_revision=v)) # Render the list view return self.repository_grid(trans, **kwd) @@ -115,8 +115,8 @@ class AdminController(BaseUIController, Admin): kwd['changeset_revision'] = repository_metadata.changeset_revision kwd['operation'] = 'view_or_manage_repository' return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - **kwd)) + action='browse_repositories', + **kwd)) return self.repository_metadata_grid(trans, **kwd) @web.expose @@ -143,14 +143,14 @@ class AdminController(BaseUIController, Admin): message = "Category '%s' has been created" % escape(category.name) status = 'done' trans.response.send_redirect(web.url_for(controller='admin', - action='manage_categories', - message=message, - status=status)) + action='manage_categories', + message=message, + status=status)) return trans.fill_template('/webapps/tool_shed/category/create_category.mako', - name=name, - description=description, - message=message, - status=status) + name=name, + description=description, + message=message, + status=status) @web.expose @web.require_admin @@ -191,9 +191,9 @@ class AdminController(BaseUIController, Admin): message = "No repository ids received for deleting." status = 'error' trans.response.send_redirect(web.url_for(controller='admin', - action='browse_repositories', - message=util.sanitize_text(message), - status=status)) + action='browse_repositories', + message=util.sanitize_text(message), + status=status)) @web.expose @web.require_admin @@ -215,9 +215,9 @@ class AdminController(BaseUIController, Admin): message = "No repository metadata ids received for deleting." status = 'error' trans.response.send_redirect(web.url_for(controller='admin', - action='browse_repository_metadata', - message=util.sanitize_text(message), - status=status)) + action='browse_repository_metadata', + message=util.sanitize_text(message), + status=status)) @web.expose @web.require_admin @@ -229,9 +229,9 @@ class AdminController(BaseUIController, Admin): if not id: message = "No category ids received for editing" trans.response.send_redirect(web.url_for(controller='admin', - action='manage_categories', - message=message, - status='error')) + action='manage_categories', + message=message, + status='error')) category = suc.get_category(trans.app, id) original_category_name = str(category.name) original_category_description = str(category.description) @@ -262,13 +262,13 @@ class AdminController(BaseUIController, Admin): message = "The information has been saved for category '%s'" % escape(category.name) status = 'done' return trans.response.send_redirect(web.url_for(controller='admin', - action='manage_categories', - message=message, - status=status)) + action='manage_categories', + message=message, + status=status)) return trans.fill_template('/webapps/tool_shed/category/edit_category.mako', - category=category, - message=message, - status=status) + category=category, + message=message, + status=status) @web.expose @web.require_admin @@ -279,30 +279,30 @@ class AdminController(BaseUIController, Admin): # template for the CategoryGrid. See ~/templates/webapps/tool_shed/category/grid.mako. # Since we are searching repositories and not categories, redirect to browse_repositories(). return trans.response.send_redirect(web.url_for(controller='admin', - action='browse_repositories', - **kwd)) + action='browse_repositories', + **kwd)) if 'operation' in kwd: operation = kwd['operation'].lower() if operation == "create": return trans.response.send_redirect(web.url_for(controller='admin', - action='create_category', - **kwd)) + action='create_category', + **kwd)) elif operation == "delete": return trans.response.send_redirect(web.url_for(controller='admin', - action='mark_category_deleted', - **kwd)) + action='mark_category_deleted', + **kwd)) elif operation == "undelete": return trans.response.send_redirect(web.url_for(controller='admin', - action='undelete_category', - **kwd)) + action='undelete_category', + **kwd)) elif operation == "purge": return trans.response.send_redirect(web.url_for(controller='admin', - action='purge_category', - **kwd)) + action='purge_category', + **kwd)) elif operation == "edit": return trans.response.send_redirect(web.url_for(controller='admin', - action='edit_category', - **kwd)) + action='edit_category', + **kwd)) return self.manage_category_grid(trans, **kwd) @web.expose @@ -314,8 +314,8 @@ class AdminController(BaseUIController, Admin): trans.app.shed_counter.generate_statistics() message = "Successfully regenerated statistics" return trans.fill_template('/webapps/tool_shed/admin/statistics.mako', - message=message, - status=status) + message=message, + status=status) @web.expose @web.require_admin @@ -327,9 +327,9 @@ class AdminController(BaseUIController, Admin): repository_role_association = role.repositories[0] repository = repository_role_association.repository associations_dict = repository_util.handle_role_associations(trans.app, - role, - repository, - **kwd) + role, + repository, + **kwd) in_users = associations_dict.get('in_users', []) out_users = associations_dict.get('out_users', []) in_groups = associations_dict.get('in_groups', []) @@ -337,15 +337,15 @@ class AdminController(BaseUIController, Admin): message = associations_dict.get('message', '') status = associations_dict.get('status', 'done') return trans.fill_template('/webapps/tool_shed/role/role.mako', - in_admin_controller=True, - repository=repository, - role=role, - in_users=in_users, - out_users=out_users, - in_groups=in_groups, - out_groups=out_groups, - message=message, - status=status) + in_admin_controller=True, + repository=repository, + role=role, + in_users=in_users, + out_users=out_users, + in_groups=in_groups, + out_groups=out_groups, + message=message, + status=status) @web.expose @web.require_admin @@ -357,13 +357,13 @@ class AdminController(BaseUIController, Admin): message = escape(util.restore_text(kwd.get('message', ''))) status = kwd.get('status', 'done') repositories_select_field = rmm.build_repository_ids_select_field(name='repository_ids', - multiple=True, - display='checkboxes', - my_writable=False) + multiple=True, + display='checkboxes', + my_writable=False) return trans.fill_template('/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako', - repositories_select_field=repositories_select_field, - message=message, - status=status) + repositories_select_field=repositories_select_field, + message=message, + status=status) @web.expose @web.require_admin @@ -407,9 +407,9 @@ class AdminController(BaseUIController, Admin): else: message = "No repository ids received for undeleting." trans.response.send_redirect(web.url_for(controller='admin', - action='browse_repositories', - message=util.sanitize_text(message), - status='done')) + action='browse_repositories', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin @@ -433,9 +433,9 @@ class AdminController(BaseUIController, Admin): else: message = "No category ids received for deleting." trans.response.send_redirect(web.url_for(controller='admin', - action='manage_categories', - message=util.sanitize_text(message), - status='done')) + action='manage_categories', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin @@ -462,9 +462,9 @@ class AdminController(BaseUIController, Admin): else: message = "No category ids received for purging." trans.response.send_redirect(web.url_for(controller='admin', - action='manage_categories', - message=util.sanitize_text(message), - status='done')) + action='manage_categories', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin @@ -489,6 +489,6 @@ class AdminController(BaseUIController, Admin): else: message = "No category ids received for undeleting." trans.response.send_redirect(web.url_for(controller='admin', - action='manage_categories', - message=util.sanitize_text(message), - status='done')) + action='manage_categories', + message=util.sanitize_text(message), + status='done')) diff --git a/lib/galaxy/webapps/tool_shed/controllers/groups.py b/lib/galaxy/webapps/tool_shed/controllers/groups.py index 35971f3a2a2..a3f6c2ac5a4 100644 --- a/lib/galaxy/webapps/tool_shed/controllers/groups.py +++ b/lib/galaxy/webapps/tool_shed/controllers/groups.py @@ -15,6 +15,6 @@ class Group(BaseUIController): 'jscript' : "../toolshed/scripts/toolshed.groups" } return trans.fill_template('/webapps/tool_shed/group/index.mako', - config={ + config={ 'title': 'Tool Shed Groups', 'app': app}) diff --git a/lib/galaxy/webapps/tool_shed/controllers/repository.py b/lib/galaxy/webapps/tool_shed/controllers/repository.py index 2e3d392e397..c3736c43f77 100644 --- a/lib/galaxy/webapps/tool_shed/controllers/repository.py +++ b/lib/galaxy/webapps/tool_shed/controllers/repository.py @@ -76,17 +76,17 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) elif operation == "repositories_by_user": return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories_by_user', - **kwd)) + action='browse_repositories_by_user', + **kwd)) elif operation in ['mark as deprecated', 'mark as not deprecated']: kwd['mark_deprecated'] = operation == 'mark as deprecated' return trans.response.send_redirect(web.url_for(controller='repository', - action='deprecate', - **kwd)) + action='deprecate', + **kwd)) @web.expose def browse_categories(self, trans, **kwd): @@ -106,8 +106,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): except: pass return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - **kwd)) + action='browse_repositories', + **kwd)) if 'operation' in kwd: operation = kwd['operation'].lower() if operation in ["repositories_by_category", "repositories_by_user"]: @@ -116,11 +116,11 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if k.startswith('f-'): del kwd[k] return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - **kwd)) + action='browse_repositories', + **kwd)) title = trans.app.repository_grid_filter_manager.get_grid_title(trans, - trailing_string='by Category', - default='Repositories') + trailing_string='by Category', + default='Repositories') self.category_grid.title = title return self.category_grid(trans, **kwd) @@ -134,11 +134,11 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repository_id = trans.security.encode_id(repository_metadata.repository_id) changeset_revision = repository_metadata.changeset_revision new_kwd = dict(id=repository_id, - changeset_revision=changeset_revision) + changeset_revision=changeset_revision) if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - **new_kwd)) + action='view_or_manage_repository', + **new_kwd)) return self.datatypes_grid(trans, **kwd) @web.expose @@ -147,15 +147,15 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) selected_changeset_revision, repository = suc.get_repository_from_refresh_on_change(trans.app, **kwd) if repository: return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - operation='view_or_manage_repository', - id=trans.security.encode_id(repository.id), - changeset_revision=selected_changeset_revision)) + action='browse_repositories', + operation='view_or_manage_repository', + id=trans.security.encode_id(repository.id), + changeset_revision=selected_changeset_revision)) return self.deprecated_repositories_i_own_grid(trans, **kwd) @web.expose @@ -167,10 +167,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): selected_changeset_revision, repository = suc.get_repository_from_refresh_on_change(trans.app, **kwd) if repository: return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - operation='view_or_manage_repository', - id=trans.security.encode_id(repository.id), - changeset_revision=selected_changeset_revision)) + action='browse_repositories', + operation='view_or_manage_repository', + id=trans.security.encode_id(repository.id), + changeset_revision=selected_changeset_revision)) return self.my_writable_repositories_grid(trans, **kwd) @web.expose @@ -216,35 +216,35 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) elif operation == "edit_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='edit_repository', - **kwd)) + action='edit_repository', + **kwd)) elif operation == "repositories_by_user": return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories_by_user', - **kwd)) + action='browse_repositories_by_user', + **kwd)) elif operation == "reviewed_repositories_i_own": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='reviewed_repositories_i_own')) + action='reviewed_repositories_i_own')) elif operation == "repositories_by_category": category_id = kwd.get('id', None) message = escape(kwd.get('message', '')) status = kwd.get('status', 'done') return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories_in_category', - id=category_id, - message=message, - status=status)) + action='browse_repositories_in_category', + id=category_id, + message=message, + status=status)) elif operation == "receive email alerts": if trans.user: if kwd['id']: kwd['caller'] = 'browse_repositories' return trans.response.send_redirect(web.url_for(controller='repository', - action='set_email_alerts', - **kwd)) + action='set_email_alerts', + **kwd)) else: kwd['message'] = 'You must be logged in to set email alerts.' kwd['status'] = 'error' @@ -252,13 +252,13 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): selected_changeset_revision, repository = suc.get_repository_from_refresh_on_change(trans.app, **kwd) if repository: return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - operation='view_or_manage_repository', - id=trans.security.encode_id(repository.id), - changeset_revision=selected_changeset_revision)) + action='browse_repositories', + operation='view_or_manage_repository', + id=trans.security.encode_id(repository.id), + changeset_revision=selected_changeset_revision)) title = trans.app.repository_grid_filter_manager.get_grid_title(trans, - trailing_string='', - default='Repositories') + trailing_string='', + default='Repositories') self.repository_grid.title = title return self.repository_grid(trans, **kwd) @@ -273,8 +273,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) user_id = kwd.get('user_id', None) if user_id is None: # The received id is the repository id, so we need to get the id of the user that owns the repository. @@ -288,9 +288,9 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): selected_changeset_revision, repository = suc.get_repository_from_refresh_on_change(trans.app, **kwd) if repository: return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - id=trans.security.encode_id(repository.id), - changeset_revision=selected_changeset_revision)) + action='view_or_manage_repository', + id=trans.security.encode_id(repository.id), + changeset_revision=selected_changeset_revision)) if user_id: user = suc.get_user(trans.app, user_id) trailing_string = '' @@ -299,8 +299,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): trailing_string = '' default = 'Repositories' title = trans.app.repository_grid_filter_manager.get_grid_title(trans, - trailing_string=trailing_string, - default=default) + trailing_string=trailing_string, + default=default) self.repositories_by_user_grid.title = title return self.repositories_by_user_grid(trans, **kwd) @@ -313,10 +313,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): selected_changeset_revision, repository = suc.get_repository_from_refresh_on_change(trans.app, **kwd) if repository: return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - operation='view_or_manage_repository', - id=trans.security.encode_id(repository.id), - changeset_revision=selected_changeset_revision)) + action='browse_repositories', + operation='view_or_manage_repository', + id=trans.security.encode_id(repository.id), + changeset_revision=selected_changeset_revision)) return self.repositories_i_can_administer_grid(trans, **kwd) @web.expose @@ -328,10 +328,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): selected_changeset_revision, repository = suc.get_repository_from_refresh_on_change(trans.app, **kwd) if repository: return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - operation='view_or_manage_repository', - id=trans.security.encode_id(repository.id), - changeset_revision=selected_changeset_revision)) + action='browse_repositories', + operation='view_or_manage_repository', + id=trans.security.encode_id(repository.id), + changeset_revision=selected_changeset_revision)) return self.repositories_i_own_grid(trans, **kwd) @web.expose @@ -340,8 +340,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) if operation == 'repositories_by_user': user_id = kwd.get('user_id', None) if user_id is None: @@ -358,9 +358,9 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if repository: # The user selected a repository revision which results in a refresh_on_change. return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - id=trans.security.encode_id(repository.id), - changeset_revision=selected_changeset_revision)) + action='view_or_manage_repository', + id=trans.security.encode_id(repository.id), + changeset_revision=selected_changeset_revision)) category_id = kwd.get('id', None) if category_id: category = suc.get_category(trans.app, category_id) @@ -371,8 +371,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): else: trailing_string = 'in Category' title = trans.app.repository_grid_filter_manager.get_grid_title(trans, - trailing_string=trailing_string, - default='Repositories') + trailing_string=trailing_string, + default='Repositories') self.repositories_in_category_grid.title = title return self.repositories_in_category_grid(trans, **kwd) @@ -419,18 +419,18 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): hg_util.update_repository(repo) changeset_revision = repository.tip(trans.app) metadata = metadata_util.get_repository_metadata_by_repository_id_changeset_revision(trans.app, - id, - changeset_revision, - metadata_only=True) + id, + changeset_revision, + metadata_only=True) repository_type_select_field = rt_util.build_repository_type_select_field(trans, repository=repository) return trans.fill_template('/webapps/tool_shed/repository/browse_repository.mako', - repository=repository, - changeset_revision=changeset_revision, - metadata=metadata, - commit_message=commit_message, - repository_type_select_field=repository_type_select_field, - message=message, - status=status) + repository=repository, + changeset_revision=changeset_revision, + metadata=metadata, + commit_message=commit_message, + repository_type_select_field=repository_type_select_field, + message=message, + status=status) @web.expose def browse_repository_dependencies(self, trans, **kwd): @@ -442,15 +442,15 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repository_id = trans.security.encode_id(repository_metadata.repository_id) changeset_revision = repository_metadata.changeset_revision new_kwd = dict(id=repository_id, - changeset_revision=changeset_revision) + changeset_revision=changeset_revision) if operation == "browse_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repository', - **new_kwd)) + action='browse_repository', + **new_kwd)) if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - **new_kwd)) + action='view_or_manage_repository', + **new_kwd)) return self.repository_dependencies_grid(trans, **kwd) @web.expose @@ -463,11 +463,11 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repository_id = trans.security.encode_id(repository_metadata.repository_id) changeset_revision = repository_metadata.changeset_revision new_kwd = dict(id=repository_id, - changeset_revision=changeset_revision) + changeset_revision=changeset_revision) if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - **new_kwd)) + action='view_or_manage_repository', + **new_kwd)) return self.tools_grid(trans, **kwd) @web.expose @@ -480,11 +480,11 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repository_id = trans.security.encode_id(repository_metadata.repository_id) changeset_revision = repository_metadata.changeset_revision new_kwd = dict(id=repository_id, - changeset_revision=changeset_revision) + changeset_revision=changeset_revision) if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - **new_kwd)) + action='view_or_manage_repository', + **new_kwd)) return self.tool_dependencies_grid(trans, **kwd) @web.expose @@ -518,11 +518,11 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if k.startswith('f-'): del kwd[k] return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_valid_repositories', - **kwd)) + action='browse_valid_repositories', + **kwd)) title = trans.app.repository_grid_filter_manager.get_grid_title(trans, - trailing_string='by Category', - default='Categories of Valid Repositories') + trailing_string='by Category', + default='Categories of Valid Repositories') self.valid_category_grid.title = title return self.valid_category_grid(trans, **kwd) @@ -547,9 +547,9 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repository_metadata = metadata_util.get_latest_repository_metadata(trans.app, repository.id, downloadable=True) latest_installable_changeset_revision = repository_metadata.changeset_revision return trans.response.send_redirect(web.url_for(controller='repository', - action='preview_tools_in_changeset', - repository_id=repository_id, - changeset_revision=latest_installable_changeset_revision)) + action='preview_tools_in_changeset', + repository_id=repository_id, + changeset_revision=latest_installable_changeset_revision)) elif operation == "valid_repositories_by_category": # Eliminate the current filters if any exist. for k, v in kwd.items(): @@ -561,19 +561,19 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): selected_changeset_revision, repository = suc.get_repository_from_refresh_on_change(trans.app, **kwd) if repository: return trans.response.send_redirect(web.url_for(controller='repository', - action='preview_tools_in_changeset', - repository_id=trans.security.encode_id(repository.id), - changeset_revision=selected_changeset_revision)) + action='preview_tools_in_changeset', + repository_id=trans.security.encode_id(repository.id), + changeset_revision=selected_changeset_revision)) url_args = dict(action='browse_valid_repositories', - operation='preview_tools_in_changeset', - repository_id=repository_id) + operation='preview_tools_in_changeset', + repository_id=repository_id) self.valid_repository_grid.operations = [grids.GridOperation("Preview and install", - url_args=url_args, - allow_multiple=False, - async_compatible=False)] + url_args=url_args, + allow_multiple=False, + async_compatible=False)] title = trans.app.repository_grid_filter_manager.get_grid_title(trans, - trailing_string='', - default='Valid Repositories') + trailing_string='', + default='Valid Repositories') self.valid_repository_grid.title = title return self.valid_repository_grid(trans, **kwd) @@ -598,9 +598,9 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): elif galaxy_url: # Start building up the url to redirect back to the calling Galaxy instance. params = dict(tool_shed_url=web.url_for('/', qualified=True), - name=str(repository.name), - owner=str(repository.user.username), - changeset_revision=changeset_revision) + name=str(repository.name), + owner=str(repository.user.username), + changeset_revision=changeset_revision) pathspec = ['admin_toolshed', 'update_to_changeset_revision'] else: message = 'Unable to check for updates due to an invalid Galaxy URL: %s. ' % galaxy_url @@ -613,8 +613,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): # Return the same value for changeset_revision and latest_changeset_revision. else: repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, - trans.security.encode_id(repository.id), - changeset_revision) + trans.security.encode_id(repository.id), + changeset_revision) if repository_metadata: # If changeset_revision is in the repository_metadata table for this repository, there are no # additional updates. @@ -636,8 +636,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): break else: repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, - trans.security.encode_id(repository.id), - changeset_hash) + trans.security.encode_id(repository.id), + changeset_hash) if repository_metadata: # We found a RepositoryMetadata record. update_to_ctx = hg_util.get_changectx_for_changeset(repo, changeset_hash) @@ -664,15 +664,15 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): status = kwd.get('status', 'done') repository = repository_util.get_repository_in_tool_shed(trans.app, id) metadata = metadata_util.get_repository_metadata_by_repository_id_changeset_revision(trans.app, - id, - repository.tip(trans.app), - metadata_only=True) + id, + repository.tip(trans.app), + metadata_only=True) if trans.user and trans.user.email: return trans.fill_template("/webapps/tool_shed/repository/contact_owner.mako", - repository=repository, - metadata=metadata, - message=message, - status=status) + repository=repository, + metadata=metadata, + message=message, + status=status) else: # Do all we can to eliminate spam. return trans.show_error_message("You must be logged in to contact the owner of a repository.") @@ -690,13 +690,13 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): for repository_id in repository_ids: repository = repository_util.get_repository_by_id(trans.app, repository_id) repository_tups.append((str(repository.name), - str(repository.user.username), - str(repository.type))) + str(repository.user.username), + str(repository.type))) return trans.fill_template("/webapps/tool_shed/repository/docker_image_repositories.mako", - id=','.join(repository_ids), - repository_tups=repository_tups, - message=message, - status=status) + id=','.join(repository_ids), + repository_tups=repository_tups, + message=message, + status=status) else: # This can only occur when there is a multi-select grid with check boxes and an operation, # and the user clicked the operation button without checking any of the check boxes. @@ -713,8 +713,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): template = basic_util.SELECTED_REPOSITORIES_TEMPLATE repository_template = \ string.Template(template).safe_substitute(tool_shed_url=tool_shed_url, - repository_owner=str(repository.user.username), - repository_name=str(repository.name)) + repository_owner=str(repository.user.username), + repository_name=str(repository.name)) repository_string = '%s\n%s' % (repository_string, repository_template) template = basic_util.DOCKER_IMAGE_TEMPLATE docker_image_template = \ @@ -743,9 +743,9 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): message += 'An administrator needs to create some via the Administrator control panel before creating repositories.' status = 'error' return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - message=message, - status=status)) + action='browse_repositories', + message=message, + status=status)) name = kwd.get('name', '').strip() remote_repository_url = kwd.get('remote_repository_url', '') homepage_url = kwd.get('homepage_url', '') @@ -766,30 +766,30 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): status = 'error' else: repository, message = repository_util.create_repository(trans.app, - name, - repository_type, - description, - long_description, - user_id=trans.user.id, - category_ids=category_ids, - remote_repository_url=remote_repository_url, - homepage_url=homepage_url) + name, + repository_type, + description, + long_description, + user_id=trans.user.id, + category_ids=category_ids, + remote_repository_url=remote_repository_url, + homepage_url=homepage_url) trans.response.send_redirect(web.url_for(controller='repository', - action='manage_repository', - message=message, - id=trans.security.encode_id(repository.id))) + action='manage_repository', + message=message, + id=trans.security.encode_id(repository.id))) repository_type_select_field = rt_util.build_repository_type_select_field(trans) return trans.fill_template('/webapps/tool_shed/repository/create_repository.mako', - name=name, - remote_repository_url=remote_repository_url, - homepage_url=homepage_url, - description=description, - long_description=long_description, - selected_categories=selected_categories, - categories=categories, - repository_type_select_field=repository_type_select_field, - message=message, - status=status) + name=name, + remote_repository_url=remote_repository_url, + homepage_url=homepage_url, + description=description, + long_description=long_description, + selected_categories=selected_categories, + categories=categories, + repository_type_select_field=repository_type_select_field, + message=message, + status=status) @web.expose @web.require_login("deprecate repository") @@ -815,10 +815,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): trans.app.repository_registry.add_entry(repository) message = 'The repository %s has been marked as not deprecated.' % escape(repository.name) trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - operation='repositories_i_own', - message=message, - status=status)) + action='browse_repositories', + operation='repositories_i_own', + message=message, + status=status)) @web.expose def display_image_in_repository(self, trans, **kwd): @@ -859,41 +859,41 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): render_repository_actions_for = kwd.get('render_repository_actions_for', 'tool_shed') tv = tool_validator.ToolValidator(trans.app) repository, tool, message = tv.load_tool_from_changeset_revision(repository_id, - changeset_revision, - tool_config) + changeset_revision, + tool_config) if message: status = 'error' tool_state = tool_util.new_state(trans, tool, invalid=False) metadata = metadata_util.get_repository_metadata_by_repository_id_changeset_revision(trans.app, - repository_id, - changeset_revision, - metadata_only=True) + repository_id, + changeset_revision, + metadata_only=True) try: return trans.fill_template("/webapps/tool_shed/repository/tool_form.mako", - repository=repository, - render_repository_actions_for=render_repository_actions_for, - metadata=metadata, - changeset_revision=changeset_revision, - tool=tool, - tool_state=tool_state, - message=message, - status=status) + repository=repository, + render_repository_actions_for=render_repository_actions_for, + metadata=metadata, + changeset_revision=changeset_revision, + tool=tool, + tool_state=tool_state, + message=message, + status=status) except Exception as e: message = "Error displaying tool, probably due to a problem in the tool config. The exception is: %s." % str(e) if trans.webapp.name == 'galaxy' or render_repository_actions_for == 'galaxy': return trans.response.send_redirect(web.url_for(controller='repository', - action='preview_tools_in_changeset', - repository_id=repository_id, - changeset_revision=changeset_revision, - message=message, - status='error')) + action='preview_tools_in_changeset', + repository_id=repository_id, + changeset_revision=changeset_revision, + message=message, + status='error')) return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - operation='view_or_manage_repository', - id=repository_id, - changeset_revision=changeset_revision, - message=message, - status='error')) + action='browse_repositories', + operation='view_or_manage_repository', + id=repository_id, + changeset_revision=changeset_revision, + message=message, + status='error')) @web.expose def download(self, trans, repository_id, changeset_revision, file_type, **kwd): @@ -925,12 +925,12 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): export_repository_dependencies = CheckboxField.is_checked(export_repository_dependencies) tool_shed_url = web.url_for('/', qualified=True) erm = capsule_manager.ExportRepositoryManager(app=trans.app, - user=trans.user, - tool_shed_url=tool_shed_url, - repository=repository, - changeset_revision=changeset_revision, - export_repository_dependencies=export_repository_dependencies, - using_api=False) + user=trans.user, + tool_shed_url=tool_shed_url, + repository=repository, + changeset_revision=changeset_revision, + export_repository_dependencies=export_repository_dependencies, + using_api=False) repositories_archive, error_message = erm.export_repository() repositories_archive_filename = os.path.basename(repositories_archive.name) if error_message: @@ -958,28 +958,28 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if repository_dependencies: # Only display repository dependencies if they exist. exclude = ['datatypes', 'invalid_repository_dependencies', 'invalid_tool_dependencies', 'invalid_tools', - 'readme_files', 'tool_dependencies', 'tools', 'workflows', 'data_manager'] + 'readme_files', 'tool_dependencies', 'tools', 'workflows', 'data_manager'] tsucm = ToolShedUtilityContainerManager(trans.app) containers_dict = tsucm.build_repository_containers(repository, - changeset_revision, - repository_dependencies, - repository_metadata, - exclude=exclude) + changeset_revision, + repository_dependencies, + repository_metadata, + exclude=exclude) export_repository_dependencies_check_box = CheckboxField('export_repository_dependencies', checked=True) else: containers_dict = None export_repository_dependencies_check_box = None revision_label = hg_util.get_revision_label(trans.app, repository, changeset_revision, include_date=True) return trans.fill_template("/webapps/tool_shed/repository/export_repository.mako", - changeset_revision=changeset_revision, - containers_dict=containers_dict, - export_repository_dependencies_check_box=export_repository_dependencies_check_box, - repository=repository, - repository_metadata=repository_metadata, - revision_label=revision_label, - metadata=metadata, - message=message, - status=status) + changeset_revision=changeset_revision, + containers_dict=containers_dict, + export_repository_dependencies_check_box=export_repository_dependencies_check_box, + repository=repository, + repository_metadata=repository_metadata, + revision_label=revision_label, + metadata=metadata, + message=message, + status=status) @web.expose def export_via_api(self, trans, **kwd): @@ -1015,8 +1015,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): else: a = 'view_repository' return trans.response.send_redirect(web.url_for(controller='repository', - action=a, - **kwd)) + action=a, + **kwd)) if operation == "install to galaxy": # We've received a list of RepositoryMetadata ids, so we need to build a list of associated Repository ids. encoded_repository_ids = [] @@ -1029,8 +1029,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): new_kwd['repository_ids'] = encoded_repository_ids new_kwd['changeset_revisions'] = changeset_revisions return trans.response.send_redirect(web.url_for(controller='repository', - action='install_repositories_by_revision', - **new_kwd)) + action='install_repositories_by_revision', + **new_kwd)) else: # This can only occur when there is a multi-select grid with check boxes and an operation, # and the user clicked the operation button without checking any of the check boxes. @@ -1044,21 +1044,21 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): ok = True if tool_ids or tool_names or tool_versions: ok, match_tuples = search_util.search_repository_metadata(trans.app, - exact_matches_checked, - tool_ids=tool_ids, - tool_names=tool_names, - tool_versions=tool_versions) + exact_matches_checked, + tool_ids=tool_ids, + tool_names=tool_names, + tool_versions=tool_versions) if ok: kwd['match_tuples'] = match_tuples # Render the list view if trans.webapp.name == 'galaxy': # Our initial request originated from a Galaxy instance. global_actions = [grids.GridAction("Browse valid repositories", - dict(controller='repository', action='browse_valid_categories')), - grids.GridAction("Search for valid tools", - dict(controller='repository', action='find_tools')), - grids.GridAction("Search for workflows", - dict(controller='repository', action='find_workflows'))] + dict(controller='repository', action='browse_valid_categories')), + grids.GridAction("Search for valid tools", + dict(controller='repository', action='find_tools')), + grids.GridAction("Search for workflows", + dict(controller='repository', action='find_workflows'))] self.install_matched_repository_grid.global_actions = global_actions install_url_args = dict(controller='repository', action='find_tools') operations = [grids.GridOperation("Install", url_args=install_url_args, allow_multiple=True, async_compatible=False)] @@ -1067,9 +1067,9 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): else: kwd['message'] = "tool id: %s
    tool name: %s
    tool version: %s
    exact matches only: %s" % \ (basic_util.stringify(tool_ids), - escape(basic_util.stringify(tool_names)), - escape(basic_util.stringify(tool_versions)), - str(exact_matches_checked)) + escape(basic_util.stringify(tool_names)), + escape(basic_util.stringify(tool_versions)), + str(exact_matches_checked)) self.matched_repository_grid.title = "Repositories with matching tools" return self.matched_repository_grid(trans, **kwd) else: @@ -1077,12 +1077,12 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): status = "error" exact_matches_check_box = CheckboxField('exact_matches', checked=exact_matches_checked) return trans.fill_template('/webapps/tool_shed/repository/find_tools.mako', - tool_id=basic_util.stringify(tool_ids), - tool_name=basic_util.stringify(tool_names), - tool_version=basic_util.stringify(tool_versions), - exact_matches_check_box=exact_matches_check_box, - message=message, - status=status) + tool_id=basic_util.stringify(tool_ids), + tool_name=basic_util.stringify(tool_names), + tool_version=basic_util.stringify(tool_versions), + exact_matches_check_box=exact_matches_check_box, + message=message, + status=status) @web.expose def find_workflows(self, trans, **kwd): @@ -1106,8 +1106,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): else: a = 'view_repository' return trans.response.send_redirect(web.url_for(controller='repository', - action=a, - **kwd)) + action=a, + **kwd)) if operation == "install to galaxy": # We've received a list of RepositoryMetadata ids, so we need to build a list of associated Repository ids. encoded_repository_ids = [] @@ -1120,8 +1120,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): new_kwd['repository_ids'] = encoded_repository_ids new_kwd['changeset_revisions'] = changeset_revisions return trans.response.send_redirect(web.url_for(controller='repository', - action='install_repositories_by_revision', - **new_kwd)) + action='install_repositories_by_revision', + **new_kwd)) else: # This can only occur when there is a multi-select grid with check boxes and an operation, # and the user clicked the operation button without checking any of the check boxes. @@ -1134,23 +1134,23 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): ok = True if workflow_names: ok, match_tuples = search_util.search_repository_metadata(trans.app, - exact_matches_checked, - workflow_names=workflow_names) + exact_matches_checked, + workflow_names=workflow_names) else: ok, match_tuples = search_util.search_repository_metadata(trans.app, - exact_matches_checked, - workflow_names=[], - all_workflows=True) + exact_matches_checked, + workflow_names=[], + all_workflows=True) if ok: kwd['match_tuples'] = match_tuples if trans.webapp.name == 'galaxy': # Our initial request originated from a Galaxy instance. global_actions = [grids.GridAction("Browse valid repositories", - dict(controller='repository', action='browse_valid_repositories')), - grids.GridAction("Search for valid tools", - dict(controller='repository', action='find_tools')), - grids.GridAction("Search for workflows", - dict(controller='repository', action='find_workflows'))] + dict(controller='repository', action='browse_valid_repositories')), + grids.GridAction("Search for valid tools", + dict(controller='repository', action='find_tools')), + grids.GridAction("Search for workflows", + dict(controller='repository', action='find_workflows'))] self.install_matched_repository_grid.global_actions = global_actions install_url_args = dict(controller='repository', action='find_workflows') operations = [grids.GridOperation("Install", url_args=install_url_args, allow_multiple=True, async_compatible=False)] @@ -1169,10 +1169,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): workflow_names = [] exact_matches_check_box = CheckboxField('exact_matches', checked=exact_matches_checked) return trans.fill_template('/webapps/tool_shed/repository/find_workflows.mako', - workflow_name=basic_util.stringify(workflow_names), - exact_matches_check_box=exact_matches_check_box, - message=message, - status=status) + workflow_name=basic_util.stringify(workflow_names), + exact_matches_check_box=exact_matches_check_box, + message=message, + status=status) @web.expose def generate_workflow_image(self, trans, workflow_name, repository_metadata_id=None): @@ -1184,13 +1184,13 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): """Handle a request from a local Galaxy instance to retrieve the changeset revision hash to which an installed repository can be updated.""" def has_galaxy_utilities(repository_metadata): has_galaxy_utilities_dict = dict(includes_data_managers=False, - includes_datatypes=False, - includes_tools=False, - includes_tools_for_display_in_tool_panel=False, - has_repository_dependencies=False, - has_repository_dependencies_only_if_compiling_contained_td=False, - includes_tool_dependencies=False, - includes_workflows=False) + includes_datatypes=False, + includes_tools=False, + includes_tools_for_display_in_tool_panel=False, + has_repository_dependencies=False, + has_repository_dependencies_only_if_compiling_contained_td=False, + includes_tool_dependencies=False, + includes_workflows=False) if repository_metadata: metadata = repository_metadata.metadata if metadata: @@ -1235,15 +1235,15 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): ctx_rev = str(update_to_ctx.rev()) latest_changeset_revision = changeset_revision update_dict = dict(changeset_revision=changeset_revision, - ctx_rev=ctx_rev, - includes_data_managers=includes_data_managers, - includes_datatypes=includes_datatypes, - includes_tools=includes_tools, - includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, - includes_tool_dependencies=includes_tool_dependencies, - has_repository_dependencies=has_repository_dependencies, - has_repository_dependencies_only_if_compiling_contained_td=has_repository_dependencies_only_if_compiling_contained_td, - includes_workflows=includes_workflows) + ctx_rev=ctx_rev, + includes_data_managers=includes_data_managers, + includes_datatypes=includes_datatypes, + includes_tools=includes_tools, + includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, + includes_tool_dependencies=includes_tool_dependencies, + has_repository_dependencies=has_repository_dependencies, + has_repository_dependencies_only_if_compiling_contained_td=has_repository_dependencies_only_if_compiling_contained_td, + includes_workflows=includes_workflows) if changeset_revision == repository.tip(trans.app): # If changeset_revision is the repository tip, there are no additional updates. return encoding_util.tool_shed_encode(update_dict) @@ -1263,8 +1263,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): hg_util.get_changectx_for_changeset(repo, changeset_hash) if update_to_changeset_hash: update_to_repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, - trans.security.encode_id(repository.id), - changeset_hash) + trans.security.encode_id(repository.id), + changeset_hash) if update_to_repository_metadata: has_galaxy_utilities_dict = has_galaxy_utilities(repository_metadata) includes_data_managers = has_galaxy_utilities_dict['includes_data_managers'] @@ -1350,15 +1350,15 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if repository: repository_metadata = \ metadata_util.get_repository_metadata_by_changeset_revision(trans.app, - trans.security.encode_id(repository.id), - changeset_revision) + trans.security.encode_id(repository.id), + changeset_revision) if repository_metadata: metadata = repository_metadata.metadata if metadata: return readme_util.build_readme_files_dict(trans.app, - repository, - changeset_revision, - repository_metadata.metadata) + repository, + changeset_revision, + repository_metadata.metadata) return {} @web.json @@ -1416,11 +1416,11 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): includes_tools_for_display_in_tool_panel = True repo_info_dicts.append(encoding_util.tool_shed_encode(repo_info_dict)) return dict(includes_tools=includes_tools, - includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, - has_repository_dependencies=has_repository_dependencies, - has_repository_dependencies_only_if_compiling_contained_td=has_repository_dependencies_only_if_compiling_contained_td, - includes_tool_dependencies=includes_tool_dependencies, - repo_info_dicts=repo_info_dicts) + includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, + has_repository_dependencies=has_repository_dependencies, + has_repository_dependencies_only_if_compiling_contained_td=has_repository_dependencies_only_if_compiling_contained_td, + includes_tool_dependencies=includes_tool_dependencies, + repo_info_dicts=repo_info_dicts) @web.expose def get_repository_type(self, trans, **kwd): @@ -1505,8 +1505,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): encoded_id = trans.app.security.encode_id(repository.id) repository_tip = repository.tip(trans.app) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, - encoded_id, - repository_tip) + encoded_id, + repository_tip) return repository_metadata.metadata @web.expose @@ -1524,8 +1524,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): for changeset in repo.changelog: current_changeset_revision = str(repo.changectx(changeset)) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, - trans.security.encode_id(repository.id), - current_changeset_revision) + trans.security.encode_id(repository.id), + current_changeset_revision) if repository_metadata and repository_metadata.tool_versions: tool_version_dicts.append(repository_metadata.tool_versions) if current_changeset_revision == changeset_revision: @@ -1549,20 +1549,20 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): # The received changeset_revision is no longer associated with metadata, so get the next changeset_revision in the repository # changelog that is associated with metadata. changeset_revision = metadata_util.get_next_downloadable_changeset_revision(repository, - repo, - after_changeset_revision=changeset_revision) + repo, + after_changeset_revision=changeset_revision) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, repository_id, changeset_revision) ctx = hg_util.get_changectx_for_changeset(repo, changeset_revision) repo_info_dict = repository_util.create_repo_info_dict(app=trans.app, - repository_clone_url=repository_clone_url, - changeset_revision=changeset_revision, - ctx_rev=str(ctx.rev()), - repository_owner=repository.user.username, - repository_name=repository.name, - repository=repository, - repository_metadata=repository_metadata, - tool_dependencies=None, - repository_dependencies=None) + repository_clone_url=repository_clone_url, + changeset_revision=changeset_revision, + ctx_rev=str(ctx.rev()), + repository_owner=repository.user.username, + repository_name=repository.name, + repository=repository, + repository_metadata=repository_metadata, + tool_dependencies=None, + repository_dependencies=None) includes_data_managers = False includes_datatypes = False includes_tools = False @@ -1606,15 +1606,15 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if tool_dependencies and not includes_tool_dependencies: includes_tool_dependencies = True return dict(includes_data_managers=includes_data_managers, - includes_datatypes=includes_datatypes, - includes_tools=includes_tools, - includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, - has_repository_dependencies=has_repository_dependencies, - has_repository_dependencies_only_if_compiling_contained_td=has_repository_dependencies_only_if_compiling_contained_td, - includes_tool_dependencies=includes_tool_dependencies, - includes_workflows=includes_workflows, - readme_files_dict=readme_files_dict, - repo_info_dict=repo_info_dict) + includes_datatypes=includes_datatypes, + includes_tools=includes_tools, + includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, + has_repository_dependencies=has_repository_dependencies, + has_repository_dependencies_only_if_compiling_contained_td=has_repository_dependencies_only_if_compiling_contained_td, + includes_tool_dependencies=includes_tool_dependencies, + includes_workflows=includes_workflows, + readme_files_dict=readme_files_dict, + repo_info_dict=repo_info_dict) @web.expose def help(self, trans, **kwd): @@ -1631,9 +1631,9 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): file_path = encoding_util.tool_shed_decode(encoded_file_path) export_info_file_path = os.path.join(file_path, 'export_info.xml') irm = capsule_manager.ImportRepositoryManager(trans.app, - trans.request.host, - trans.user, - trans.user_is_admin()) + trans.request.host, + trans.user, + trans.user_is_admin()) export_info_dict = irm.get_export_info_dict(export_info_file_path) manifest_file_path = os.path.join(file_path, 'manifest.xml') # The manifest.xml file has already been validated, so no error_message should be returned here. @@ -1650,20 +1650,20 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repository_status_info_dict['capsule_file_name'] = capsule_file_name repository_status_info_dict['encoded_file_path'] = encoded_file_path import_results_tups = irm.create_repository_and_import_archive(repository_status_info_dict, - import_results_tups) + import_results_tups) irm.check_status_and_reset_downloadable(import_results_tups) basic_util.remove_dir(file_path) return trans.fill_template('/webapps/tool_shed/repository/import_capsule_results.mako', - export_info_dict=export_info_dict, - import_results_tups=import_results_tups, - message=message, - status=status) + export_info_dict=export_info_dict, + import_results_tups=import_results_tups, + message=message, + status=status) return trans.fill_template('/webapps/tool_shed/repository/import_capsule.mako', - encoded_file_path=encoded_file_path, - export_info_dict=export_info_dict, - repository_status_info_dicts=repository_status_info_dicts, - message=message, - status=status) + encoded_file_path=encoded_file_path, + export_info_dict=export_info_dict, + repository_status_info_dicts=repository_status_info_dicts, + message=message, + status=status) @web.expose def index(self, trans, **kwd): @@ -1704,15 +1704,15 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repository_id = kwd.get('repository_id', None) changeset_revision = kwd.get('changeset_revision', None) return trans.fill_template('/webapps/tool_shed/index.mako', - repository_metadata=repository_metadata, - can_administer_repositories=can_administer_repositories, - has_reviewed_repositories=has_reviewed_repositories, - has_deprecated_repositories=has_deprecated_repositories, - user_id=user_id, - repository_id=repository_id, - changeset_revision=changeset_revision, - message=message, - status=status) + repository_metadata=repository_metadata, + can_administer_repositories=can_administer_repositories, + has_reviewed_repositories=has_reviewed_repositories, + has_deprecated_repositories=has_deprecated_repositories, + user_id=user_id, + repository_id=repository_id, + changeset_revision=changeset_revision, + message=message, + status=status) @web.expose def install_repositories_by_revision(self, trans, **kwd): @@ -1732,8 +1732,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if galaxy_url: # Redirect back to local Galaxy to perform install. params = dict(tool_shed_url=web.url_for('/', qualified=True), - repository_ids=','.join(util.listify(repository_ids)), - changeset_revisions=','.join(util.listify(changeset_revisions))) + repository_ids=','.join(util.listify(repository_ids)), + changeset_revisions=','.join(util.listify(changeset_revisions))) pathspec = ['admin_toolshed', 'prepare_for_install'] url = util.build_url(galaxy_url, pathspec=pathspec, params=params) return trans.response.send_redirect(url) @@ -1742,9 +1742,9 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): message += 'You may need to enable third-party cookies in your browser. ' status = 'error' return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_valid_categories', - message=message, - status=status)) + action='browse_valid_categories', + message=message, + status=status)) @web.expose def load_invalid_tool(self, trans, repository_id, tool_config, changeset_revision, **kwd): @@ -1752,49 +1752,49 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): render_repository_actions_for = kwd.get('render_repository_actions_for', 'tool_shed') tv = tool_validator.ToolValidator(trans.app) repository, tool, error_message = tv.load_tool_from_changeset_revision(repository_id, - changeset_revision, - tool_config) + changeset_revision, + tool_config) tool_state = tool_util.new_state(trans, tool, invalid=True) invalid_file_tups = [] if tool: invalid_file_tups = tv.check_tool_input_params(repository.repo_path(trans.app), - tool_config, - tool, - []) + tool_config, + tool, + []) if invalid_file_tups: message = tool_util.generate_message_for_invalid_tools(trans.app, - invalid_file_tups, - repository, - {}, - as_html=True, - displaying_invalid_tool=True) + invalid_file_tups, + repository, + {}, + as_html=True, + displaying_invalid_tool=True) elif error_message: message = error_message try: return trans.fill_template("/webapps/tool_shed/repository/tool_form.mako", - repository=repository, - render_repository_actions_for=render_repository_actions_for, - changeset_revision=changeset_revision, - tool=tool, - tool_state=tool_state, - message=message, - status='error') + repository=repository, + render_repository_actions_for=render_repository_actions_for, + changeset_revision=changeset_revision, + tool=tool, + tool_state=tool_state, + message=message, + status='error') except Exception as e: message = "Exception thrown attempting to display tool: %s." % str(e) if trans.webapp.name == 'galaxy': return trans.response.send_redirect(web.url_for(controller='repository', - action='preview_tools_in_changeset', - repository_id=repository_id, - changeset_revision=changeset_revision, - message=message, - status='error')) + action='preview_tools_in_changeset', + repository_id=repository_id, + changeset_revision=changeset_revision, + message=message, + status='error')) return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - operation='view_or_manage_repository', - id=repository_id, - changeset_revision=changeset_revision, - message=message, - status='error')) + action='browse_repositories', + operation='view_or_manage_repository', + id=repository_id, + changeset_revision=changeset_revision, + message=message, + status='error')) @web.expose @web.require_login("manage email alerts") @@ -1817,15 +1817,15 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): email_alert_repositories = [] for repository in trans.sa_session.query(trans.model.Repository) \ .filter(and_(trans.model.Repository.table.c.deleted == false(), - trans.model.Repository.table.c.email_alerts != null())) \ + trans.model.Repository.table.c.email_alerts != null())) \ .order_by(trans.model.Repository.table.c.name): if user.email in repository.email_alerts: email_alert_repositories.append(repository) return trans.fill_template("/webapps/tool_shed/user/manage_email_alerts.mako", - new_repo_alert_check_box=new_repo_alert_check_box, - email_alert_repositories=email_alert_repositories, - message=message, - status=status) + new_repo_alert_check_box=new_repo_alert_check_box, + email_alert_repositories=email_alert_repositories, + message=message, + status=status) @web.expose @web.require_login("manage repository") @@ -1869,10 +1869,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repository, message = repository_util.update_repository(app=trans.app, trans=trans, id=id, **update_kwds) if repository is None: return trans.response.send_redirect(web.url_for(controller='repository', - action='view_repository', - id=id, - message=message, - status='error')) + action='view_repository', + id=id, + message=message, + status='error')) elif kwd.get('manage_categories_button', False): flush_needed = False @@ -1929,10 +1929,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): checked = alerts_checked or user.email in email_alerts alerts_check_box = CheckboxField('alerts', checked=checked) changeset_revision_select_field = grids_util.build_changeset_revision_select_field(trans, - repository, - selected_value=changeset_revision, - add_id_to_name=False, - downloadable=False) + repository, + selected_value=changeset_revision, + add_id_to_name=False, + downloadable=False) revision_label = hg_util.get_revision_label(trans.app, repository, repository.tip(trans.app), include_date=False) repository_metadata = None metadata = None @@ -1965,14 +1965,14 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if str(repository.type) != rt_util.REPOSITORY_SUITE_DEFINITION: # Handle messaging for resetting repository type to the optimal value. change_repository_type_message = rt_util.generate_message_for_repository_type_change(trans.app, - repository) + repository) if change_repository_type_message: message += change_repository_type_message status = 'warning' elif str(repository.type) != rt_util.TOOL_DEPENDENCY_DEFINITION: # Handle messaging for resetting repository type to the optimal value. change_repository_type_message = rt_util.generate_message_for_repository_type_change(trans.app, - repository) + repository) if change_repository_type_message: message += change_repository_type_message status = 'warning' @@ -1995,42 +1995,42 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): selected_categories = [_rca.category_id for _rca in repository.categories] tsucm = ToolShedUtilityContainerManager(trans.app) containers_dict = tsucm.build_repository_containers(repository, - changeset_revision, - repository_dependencies, - repository_metadata) + changeset_revision, + repository_dependencies, + repository_metadata) heads = hg_util.get_repository_heads(repo) deprecated_repository_dependency_tups = \ metadata_util.get_repository_dependency_tups_from_repository_metadata(trans.app, - repository_metadata, - deprecated_only=True) + repository_metadata, + deprecated_only=True) return trans.fill_template('/webapps/tool_shed/repository/manage_repository.mako', - repo_name=repo_name, - remote_repository_url=remote_repository_url, - homepage_url=homepage_url, - description=description, - long_description=long_description, - current_allow_push_list=current_allow_push_list, - allow_push_select_field=allow_push_select_field, - deprecated_repository_dependency_tups=deprecated_repository_dependency_tups, - repo=repo, - heads=heads, - repository=repository, - containers_dict=containers_dict, - repository_metadata=repository_metadata, - changeset_revision=changeset_revision, - changeset_revision_select_field=changeset_revision_select_field, - revision_label=revision_label, - selected_categories=selected_categories, - categories=categories, - metadata=metadata, - avg_rating=avg_rating, - display_reviews=display_reviews, - num_ratings=num_ratings, - alerts_check_box=alerts_check_box, - malicious_check_box=malicious_check_box, - repository_type_select_field=repository_type_select_field, - message=message, - status=status) + repo_name=repo_name, + remote_repository_url=remote_repository_url, + homepage_url=homepage_url, + description=description, + long_description=long_description, + current_allow_push_list=current_allow_push_list, + allow_push_select_field=allow_push_select_field, + deprecated_repository_dependency_tups=deprecated_repository_dependency_tups, + repo=repo, + heads=heads, + repository=repository, + containers_dict=containers_dict, + repository_metadata=repository_metadata, + changeset_revision=changeset_revision, + changeset_revision_select_field=changeset_revision_select_field, + revision_label=revision_label, + selected_categories=selected_categories, + categories=categories, + metadata=metadata, + avg_rating=avg_rating, + display_reviews=display_reviews, + num_ratings=num_ratings, + alerts_check_box=alerts_check_box, + malicious_check_box=malicious_check_box, + repository_type_select_field=repository_type_select_field, + message=message, + status=status) @web.expose @web.require_login("manage repository administrators") @@ -2050,20 +2050,20 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repo = hg_util.get_repo_for_repository(trans.app, repository=repository, repo_path=None, create=False) previous_changeset_revision = \ metadata_util.get_previous_metadata_changeset_revision(repository, - repo, - changeset_revision, - downloadable=False) + repo, + changeset_revision, + downloadable=False) if previous_changeset_revision != hg_util.INITIAL_CHANGELOG_HASH: repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, - id, - previous_changeset_revision) + id, + previous_changeset_revision) if repository_metadata: metadata = repository_metadata.metadata role = repository.admin_role associations_dict = repository_util.handle_role_associations(trans.app, - role, - repository, - **kwd) + role, + repository, + **kwd) in_users = associations_dict.get('in_users', []) out_users = associations_dict.get('out_users', []) in_groups = associations_dict.get('in_groups', []) @@ -2071,24 +2071,24 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): message = associations_dict.get('message', '') status = associations_dict.get('status', 'done') return trans.fill_template('/webapps/tool_shed/role/role.mako', - in_admin_controller=False, - repository=repository, - metadata=metadata, - changeset_revision=changeset_revision, - role=role, - in_users=in_users, - out_users=out_users, - in_groups=in_groups, - out_groups=out_groups, - message=message, - status=status) + in_admin_controller=False, + repository=repository, + metadata=metadata, + changeset_revision=changeset_revision, + role=role, + in_users=in_users, + out_users=out_users, + in_groups=in_groups, + out_groups=out_groups, + message=message, + status=status) @web.expose @web.require_login("review repository revision") def manage_repository_reviews_of_revision(self, trans, **kwd): return trans.response.send_redirect(web.url_for(controller='repository_review', - action='manage_repository_reviews_of_revision', - **kwd)) + action='manage_repository_reviews_of_revision', + **kwd)) @web.expose @web.require_login("multi select email alerts") @@ -2100,16 +2100,16 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if kwd['id']: kwd['caller'] = 'multi_select_email_alerts' return trans.response.send_redirect(web.url_for(controller='repository', - action='set_email_alerts', - **kwd)) + action='set_email_alerts', + **kwd)) else: kwd['message'] = 'You must be logged in to set email alerts.' kwd['status'] = 'error' del kwd['operation'] elif operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) self.email_alerts_repository_grid.title = "Set email alerts for repository changes" return self.email_alerts_repository_grid(trans, **kwd) @@ -2174,7 +2174,7 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if invalid: dd = dependency_display.DependencyDisplayer(trans.app) message = dd.generate_message_for_invalid_repository_dependencies(metadata, - error_from_tuple=False) + error_from_tuple=False) status = 'error' else: repository_metadata_id = None @@ -2182,25 +2182,25 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repository_dependencies = None revision_label = hg_util.get_revision_label(trans.app, repository, changeset_revision, include_date=True) changeset_revision_select_field = grids_util.build_changeset_revision_select_field(trans, - repository, - selected_value=changeset_revision, - add_id_to_name=False, - downloadable=False) + repository, + selected_value=changeset_revision, + add_id_to_name=False, + downloadable=False) tsucm = ToolShedUtilityContainerManager(trans.app) containers_dict = tsucm.build_repository_containers(repository, - changeset_revision, - repository_dependencies, - repository_metadata) + changeset_revision, + repository_dependencies, + repository_metadata) return trans.fill_template('/webapps/tool_shed/repository/preview_tools_in_changeset.mako', - repository=repository, - containers_dict=containers_dict, - repository_metadata_id=repository_metadata_id, - changeset_revision=changeset_revision, - revision_label=revision_label, - changeset_revision_select_field=changeset_revision_select_field, - metadata=metadata, - message=message, - status=status) + repository=repository, + containers_dict=containers_dict, + repository_metadata_id=repository_metadata_id, + changeset_revision=changeset_revision, + revision_label=revision_label, + changeset_revision_select_field=changeset_revision_select_field, + metadata=metadata, + message=message, + status=status) @web.expose def previous_changeset_revisions(self, trans, from_tip=False, **kwd): @@ -2229,14 +2229,14 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repo = hg_util.get_repo_for_repository(trans.app, repository=repository, repo_path=None, create=False) # Get the lower bound changeset revision. lower_bound_changeset_revision = metadata_util.get_previous_metadata_changeset_revision(repository, - repo, - changeset_revision, - downloadable=True) + repo, + changeset_revision, + downloadable=True) # Build the list of changeset revision hashes. changeset_hashes = [] for changeset in hg_util.reversed_lower_upper_bounded_changelog(repo, - lower_bound_changeset_revision, - changeset_revision): + lower_bound_changeset_revision, + changeset_revision): changeset_hashes.append(str(repo.changectx(changeset))) if changeset_hashes: changeset_hashes_str = ','.join(changeset_hashes) @@ -2252,16 +2252,16 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): id = kwd.get('id', None) if not id: return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - message='Select a repository to rate', - status='error')) + action='browse_repositories', + message='Select a repository to rate', + status='error')) repository = repository_util.get_repository_in_tool_shed(trans.app, id) changeset_revision = repository.tip(trans.app) if repository.user == trans.user: return trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repositories', - message="You are not allowed to rate your own repository", - status='error')) + action='browse_repositories', + message="You are not allowed to rate your own repository", + status='error')) if kwd.get('rate_button', False): rating = int(kwd.get('rating', '0')) comment = kwd.get('comment', '') @@ -2270,22 +2270,22 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): display_reviews = util.string_as_bool(kwd.get('display_reviews', False)) rra = self.get_user_item_rating(trans.sa_session, trans.user, repository, webapp_model=trans.model) metadata = metadata_util.get_repository_metadata_by_repository_id_changeset_revision(trans.app, - id, - changeset_revision, - metadata_only=True) + id, + changeset_revision, + metadata_only=True) repository_type_select_field = rt_util.build_repository_type_select_field(trans, repository=repository) revision_label = hg_util.get_revision_label(trans.app, repository, changeset_revision, include_date=True) return trans.fill_template('/webapps/tool_shed/repository/rate_repository.mako', - repository=repository, - metadata=metadata, - revision_label=revision_label, - avg_rating=avg_rating, - display_reviews=display_reviews, - num_ratings=num_ratings, - rra=rra, - repository_type_select_field=repository_type_select_field, - message=message, - status=status) + repository=repository, + metadata=metadata, + revision_label=revision_label, + avg_rating=avg_rating, + display_reviews=display_reviews, + num_ratings=num_ratings, + rra=rra, + repository_type_select_field=repository_type_select_field, + message=message, + status=status) @web.expose def reset_all_metadata(self, trans, id, **kwd): @@ -2293,26 +2293,26 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): # This method is called only from the ~/templates/webapps/tool_shed/repository/manage_repository.mako template. repository = repository_util.get_repository_in_tool_shed(trans.app, id) rmm = repository_metadata_manager.RepositoryMetadataManager(app=trans.app, - user=trans.user, - repository=repository, - resetting_all_metadata_on_repository=True) + user=trans.user, + repository=repository, + resetting_all_metadata_on_repository=True) rmm.reset_all_metadata_on_repository_in_tool_shed() rmm_metadata_dict = rmm.get_metadata_dict() rmm_invalid_file_tups = rmm.get_invalid_file_tups() if rmm_invalid_file_tups: message = tool_util.generate_message_for_invalid_tools(trans.app, - rmm_invalid_file_tups, - repository, - rmm_metadata_dict) + rmm_invalid_file_tups, + repository, + rmm_metadata_dict) status = 'error' else: message = "All repository metadata has been reset. " status = 'done' return trans.response.send_redirect(web.url_for(controller='repository', - action='manage_repository', - id=id, - message=message, - status=status)) + action='manage_repository', + id=id, + message=message, + status=status)) @web.expose def reset_metadata_on_my_writable_repositories_in_tool_shed(self, trans, **kwd): @@ -2323,13 +2323,13 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): message = escape(kwd.get('message', '')) status = kwd.get('status', 'done') repositories_select_field = rmm.build_repository_ids_select_field(name='repository_ids', - multiple=True, - display='checkboxes', - my_writable=True) + multiple=True, + display='checkboxes', + my_writable=True) return trans.fill_template('/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako', - repositories_select_field=repositories_select_field, - message=message, - status=status) + repositories_select_field=repositories_select_field, + message=message, + status=status) @web.expose def select_files_to_delete(self, trans, id, **kwd): @@ -2374,10 +2374,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if not commit_message: commit_message = 'Deleted selected files' hg_util.commit_changeset(repo.ui, - repo, - full_path_to_changeset=repo_dir, - username=trans.user.username, - message=commit_message) + repo, + full_path_to_changeset=repo_dir, + username=trans.user.username, + message=commit_message) suc.handle_email_alerts(trans.app, trans.request.host, repository) # Update the repository files for browsing. hg_util.update_repository(repo) @@ -2386,8 +2386,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): message += 'No changes to repository. ' else: rmm = repository_metadata_manager.RepositoryMetadataManager(app=trans.app, - user=trans.user, - repository=repository) + user=trans.user, + repository=repository) status, error_message = rmm.set_repository_metadata_due_to_new_tip(trans.request.host, **kwd) if error_message: message = error_message @@ -2399,18 +2399,18 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): repository_type_select_field = rt_util.build_repository_type_select_field(trans, repository=repository) changeset_revision = repository.tip(trans.app) metadata = metadata_util.get_repository_metadata_by_repository_id_changeset_revision(trans.app, - id, - changeset_revision, - metadata_only=True) + id, + changeset_revision, + metadata_only=True) return trans.fill_template('/webapps/tool_shed/repository/browse_repository.mako', - repo=repo, - repository=repository, - changeset_revision=changeset_revision, - metadata=metadata, - commit_message=commit_message, - repository_type_select_field=repository_type_select_field, - message=message, - status=status) + repo=repo, + repository=repository, + changeset_revision=changeset_revision, + metadata=metadata, + commit_message=commit_message, + repository_type_select_field=repository_type_select_field, + message=message, + status=status) @web.expose def send_to_owner(self, trans, id, message=''): @@ -2429,10 +2429,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): # Build the email message body = string.Template(suc.contact_owner_template) \ .safe_substitute(username=trans.user.username, - repository_name=repository.name, - email=trans.user.email, - message=message, - host=host) + repository_name=repository.name, + email=trans.user.email, + message=message, + host=host) subject = "Regarding your tool shed repository named %s" % repository.name # Send it try: @@ -2446,10 +2446,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): # Do all we can to eliminate spam. return trans.show_error_message("You must be logged in to contact the owner of a repository.") return trans.response.send_redirect(web.url_for(controller='repository', - action='contact_owner', - id=id, - message=message, - status=status)) + action='contact_owner', + id=id, + message=message, + status=status)) @web.expose @web.require_login("set email alerts") @@ -2488,8 +2488,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): kwd['status'] = 'done' del kwd['operation'] return trans.response.send_redirect(web.url_for(controller='repository', - action=caller, - **kwd)) + action=caller, + **kwd)) @web.expose @web.require_login("set repository as malicious") @@ -2507,12 +2507,12 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): message = "The repository tip has been defined as not malicious." status = 'done' return trans.response.send_redirect(web.url_for(controller='repository', - action='manage_repository', - id=id, - changeset_revision=ctx_str, - malicious=malicious, - message=message, - status=status)) + action='manage_repository', + id=id, + changeset_revision=ctx_str, + malicious=malicious, + message=message, + status=status)) @web.expose def sharable_owner(self, trans, owner): @@ -2524,11 +2524,11 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if user: user_id = trans.security.encode_id(user.id) return trans.response.send_redirect(web.url_for(controller='repository', - action='index', - user_id=user_id)) + action='index', + user_id=user_id)) else: return trans.show_error_message("The tool shed %s contains no repositories owned by %s." % - (web.url_for('/', qualified=True).rstrip('/'), str(owner))) + (web.url_for('/', qualified=True).rstrip('/'), str(owner))) @web.expose def sharable_repository(self, trans, owner, name): @@ -2540,8 +2540,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if repository: repository_id = trans.security.encode_id(repository.id) return trans.response.send_redirect(web.url_for(controller='repository', - action='index', - repository_id=repository_id)) + action='index', + repository_id=repository_id)) else: # If the owner is valid, then show all of their repositories. try: @@ -2552,13 +2552,13 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): user_id = trans.security.encode_id(user.id) message = "This list of repositories owned by %s, does not include one named %s." % (str(owner), str(name)) return trans.response.send_redirect(web.url_for(controller='repository', - action='index', - user_id=user_id, - message=message, - status='error')) + action='index', + user_id=user_id, + message=message, + status='error')) else: return trans.show_error_message("The tool shed %s contains no repositories named %s with owner %s." % - (web.url_for('/', qualified=True).rstrip('/'), str(name), str(owner))) + (web.url_for('/', qualified=True).rstrip('/'), str(name), str(owner))) @web.expose def sharable_repository_revision(self, trans, owner, name, changeset_revision): @@ -2570,8 +2570,8 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if repository: repository_id = trans.security.encode_id(repository.id) repository_metadata = metadata_util.get_repository_metadata_by_repository_id_changeset_revision(trans.app, - repository_id, - changeset_revision) + repository_id, + changeset_revision) if not repository_metadata: # Get updates to the received changeset_revision if any exist. repo = hg_util.get_repo_for_repository(trans.app, repository=repository, repo_path=None, create=False) @@ -2579,26 +2579,26 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if upper_bound_changeset_revision and upper_bound_changeset_revision != changeset_revision: changeset_revision = upper_bound_changeset_revision repository_metadata = metadata_util.get_repository_metadata_by_repository_id_changeset_revision(trans.app, - repository_id, - changeset_revision) + repository_id, + changeset_revision) if repository_metadata: return trans.response.send_redirect(web.url_for(controller='repository', - action='index', - repository_id=repository_id, - changeset_revision=changeset_revision)) + action='index', + repository_id=repository_id, + changeset_revision=changeset_revision)) else: message = "The change log for the repository named %s owned by %s does not include revision %s." % \ (escape(str(name)), escape(str(owner)), escape(str(changeset_revision))) return trans.response.send_redirect(web.url_for(controller='repository', - action='index', - repository_id=repository_id, - message=message, - status='error')) + action='index', + repository_id=repository_id, + message=message, + status='error')) else: # See if the owner is valid. return trans.response.send_redirect(web.url_for(controller='repository', - action='sharable_owner', - owner=owner)) + action='sharable_owner', + owner=owner)) @web.expose def updated_changeset_revisions(self, trans, **kwd): @@ -2625,9 +2625,9 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): url = kwd.get('url', '') if 'upload_capsule_button' in kwd: irm = capsule_manager.ImportRepositoryManager(trans.app, - trans.request.host, - trans.user, - trans.user_is_admin()) + trans.request.host, + trans.user, + trans.user_is_admin()) capsule_dict = irm.upload_capsule(**kwd) status = capsule_dict.get('status', 'error') if status == 'error': @@ -2638,15 +2638,15 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): status = capsule_dict.get('status', 'error') if status == 'ok': return trans.response.send_redirect(web.url_for(controller='repository', - action='import_capsule', - **capsule_dict)) + action='import_capsule', + **capsule_dict)) else: message = 'The capsule contents are invalid and cannot be imported:
    %s' % \ str(capsule_dict.get('error_message', '')) return trans.fill_template('/webapps/tool_shed/repository/upload_capsule.mako', - url=url, - message=message, - status=status) + url=url, + message=message, + status=status) @web.expose def view_changelog(self, trans, id, **kwd): @@ -2662,26 +2662,26 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): else: has_metadata = False change_dict = {'ctx': ctx, - 'rev': str(ctx.rev()), - 'date': date, - 'display_date': hg_util.get_readable_ctx_date(ctx), - 'description': ctx.description(), - 'files': ctx.files(), - 'user': ctx.user(), - 'parent': ctx.parents()[0], - 'has_metadata': has_metadata} + 'rev': str(ctx.rev()), + 'date': date, + 'display_date': hg_util.get_readable_ctx_date(ctx), + 'description': ctx.description(), + 'files': ctx.files(), + 'user': ctx.user(), + 'parent': ctx.parents()[0], + 'has_metadata': has_metadata} # Make sure we'll view latest changeset first. changesets.insert(0, change_dict) metadata = metadata_util.get_repository_metadata_by_repository_id_changeset_revision(trans.app, - id, - repository.tip(trans.app), - metadata_only=True) + id, + repository.tip(trans.app), + metadata_only=True) return trans.fill_template('/webapps/tool_shed/repository/view_changelog.mako', - repository=repository, - metadata=metadata, - changesets=changesets, - message=message, - status=status) + repository=repository, + metadata=metadata, + changesets=changesets, + message=message, + status=status) @web.expose def view_changeset(self, trans, id, ctx_str, **kwd): @@ -2694,10 +2694,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): message = "Repository does not include changeset revision '%s'." % str(ctx_str) status = 'error' return trans.response.send_redirect(web.url_for(controller='repository', - action='view_changelog', - id=id, - message=message, - status=status)) + action='view_changelog', + id=id, + message=message, + status=status)) ctx_parent = ctx.parents()[0] if ctx.children(): ctx_child = ctx.children()[0] @@ -2717,9 +2717,9 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): modified, added, removed, deleted, unknown, ignored, clean = repo.status(node1=ctx_parent.node(), node2=ctx.node()) anchors = modified + added + removed + deleted + unknown + ignored + clean metadata = metadata_util.get_repository_metadata_by_repository_id_changeset_revision(trans.app, - id, - ctx_str, - metadata_only=True) + id, + ctx_str, + metadata_only=True) # For rendering the prev button. if ctx_parent: ctx_parent_date = hg_util.get_readable_ctx_date(ctx_parent) @@ -2737,24 +2737,24 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): else: next = None return trans.fill_template('/webapps/tool_shed/repository/view_changeset.mako', - repository=repository, - metadata=metadata, - prev=prev, - next=next, - ctx=ctx, - ctx_parent=ctx_parent, - ctx_child=ctx_child, - anchors=anchors, - modified=modified, - added=added, - removed=removed, - deleted=deleted, - unknown=unknown, - ignored=ignored, - clean=clean, - diffs=diffs, - message=message, - status=status) + repository=repository, + metadata=metadata, + prev=prev, + next=next, + ctx=ctx, + ctx_parent=ctx_parent, + ctx_child=ctx_child, + anchors=anchors, + modified=modified, + added=added, + removed=removed, + deleted=deleted, + unknown=unknown, + ignored=ignored, + clean=clean, + diffs=diffs, + message=message, + status=status) @web.expose def view_or_manage_repository(self, trans, **kwd): @@ -2764,14 +2764,14 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): user = trans.user if repository: if user is not None and (trans.user_is_admin() or - trans.app.security_agent.user_can_administer_repository(user, repository)): + trans.app.security_agent.user_can_administer_repository(user, repository)): return trans.response.send_redirect(web.url_for(controller='repository', - action='manage_repository', - **kwd)) + action='manage_repository', + **kwd)) else: return trans.response.send_redirect(web.url_for(controller='repository', - action='view_repository', - **kwd)) + action='view_repository', + **kwd)) return trans.show_error_message("Invalid repository id '%s' received." % repository_id) return trans.show_error_message("The repository id was not received.") @@ -2812,10 +2812,10 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): checked = alerts_checked or (user and user.email in email_alerts) alerts_check_box = CheckboxField('alerts', checked=checked) changeset_revision_select_field = grids_util.build_changeset_revision_select_field(trans, - repository, - selected_value=changeset_revision, - add_id_to_name=False, - downloadable=False) + repository, + selected_value=changeset_revision, + add_id_to_name=False, + downloadable=False) revision_label = hg_util.get_revision_label(trans.app, repository, changeset_revision, include_date=False) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, id, changeset_revision) if repository_metadata: @@ -2842,28 +2842,28 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): status = 'error' tsucm = ToolShedUtilityContainerManager(trans.app) containers_dict = tsucm.build_repository_containers(repository, - changeset_revision, - repository_dependencies, - repository_metadata) + changeset_revision, + repository_dependencies, + repository_metadata) repository_type_select_field = rt_util.build_repository_type_select_field(trans, repository=repository) heads = hg_util.get_repository_heads(repo) return trans.fill_template('/webapps/tool_shed/repository/view_repository.mako', - repo=repo, - heads=heads, - repository=repository, - repository_metadata=repository_metadata, - metadata=metadata, - containers_dict=containers_dict, - avg_rating=avg_rating, - display_reviews=display_reviews, - num_ratings=num_ratings, - alerts_check_box=alerts_check_box, - changeset_revision=changeset_revision, - changeset_revision_select_field=changeset_revision_select_field, - revision_label=revision_label, - repository_type_select_field=repository_type_select_field, - message=message, - status=status) + repo=repo, + heads=heads, + repository=repository, + repository_metadata=repository_metadata, + metadata=metadata, + containers_dict=containers_dict, + avg_rating=avg_rating, + display_reviews=display_reviews, + num_ratings=num_ratings, + alerts_check_box=alerts_check_box, + changeset_revision=changeset_revision, + changeset_revision_select_field=changeset_revision_select_field, + revision_label=revision_label, + repository_type_select_field=repository_type_select_field, + message=message, + status=status) @web.expose def view_tool_metadata(self, trans, repository_id, changeset_revision, tool_id, **kwd): @@ -2894,25 +2894,25 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): full_path_to_tool_config = os.path.abspath(relative_path_to_tool_config) full_path_to_dir, tool_config_filename = os.path.split(full_path_to_tool_config) can_use_disk_file = tv.can_use_tool_config_disk_file(repository, - repo, - full_path_to_tool_config, - changeset_revision) + repo, + full_path_to_tool_config, + changeset_revision) if can_use_disk_file: trans.app.config.tool_data_path = work_dir tool, valid, message, sample_files = \ tv.handle_sample_files_and_load_tool_from_disk(repo_files_dir, - repository_id, - full_path_to_tool_config, - work_dir) + repository_id, + full_path_to_tool_config, + work_dir) if message: status = 'error' else: tool, message, sample_files = \ tv.handle_sample_files_and_load_tool_from_tmp_config(repo, - repository_id, - changeset_revision, - tool_config_filename, - work_dir) + repository_id, + changeset_revision, + tool_config_filename, + work_dir) if message: status = 'error' basic_util.remove_dir(work_dir) @@ -2920,30 +2920,30 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): if guid: tvm = tool_version_manager.ToolVersionManager(trans.app) tool_lineage = tvm.get_version_lineage_for_tool(repository_id, - repository_metadata, - guid) + repository_metadata, + guid) else: repository_metadata_id = None metadata = None changeset_revision_select_field = grids_util.build_changeset_revision_select_field(trans, - repository, - selected_value=changeset_revision, - add_id_to_name=False, - downloadable=False) + repository, + selected_value=changeset_revision, + add_id_to_name=False, + downloadable=False) trans.app.config.tool_data_path = original_tool_data_path return trans.fill_template("/webapps/tool_shed/repository/view_tool_metadata.mako", - render_repository_actions_for=render_repository_actions_for, - repository=repository, - repository_metadata_id=repository_metadata_id, - metadata=metadata, - tool=tool, - tool_metadata_dict=tool_metadata_dict, - tool_lineage=tool_lineage, - changeset_revision=changeset_revision, - revision_label=revision_label, - changeset_revision_select_field=changeset_revision_select_field, - message=message, - status=status) + render_repository_actions_for=render_repository_actions_for, + repository=repository, + repository_metadata_id=repository_metadata_id, + metadata=metadata, + tool=tool, + tool_metadata_dict=tool_metadata_dict, + tool_lineage=tool_lineage, + changeset_revision=changeset_revision, + revision_label=revision_label, + changeset_revision_select_field=changeset_revision_select_field, + message=message, + status=status) @web.expose def view_workflow(self, trans, workflow_name, repository_metadata_id, **kwd): @@ -2958,11 +2958,11 @@ class RepositoryController(BaseUIController, ratings_util.ItemRatings): changeset_revision = repository_metadata.changeset_revision metadata = repository_metadata.metadata return trans.fill_template("/webapps/tool_shed/repository/view_workflow.mako", - repository=repository, - render_repository_actions_for=render_repository_actions_for, - changeset_revision=changeset_revision, - repository_metadata_id=repository_metadata_id, - workflow_name=workflow_name, - metadata=metadata, - message=message, - status=status) + repository=repository, + render_repository_actions_for=render_repository_actions_for, + changeset_revision=changeset_revision, + repository_metadata_id=repository_metadata_id, + workflow_name=workflow_name, + metadata=metadata, + message=message, + status=status) diff --git a/lib/galaxy/webapps/tool_shed/controllers/repository_review.py b/lib/galaxy/webapps/tool_shed/controllers/repository_review.py index ddb34088c78..62f00bc20e7 100644 --- a/lib/galaxy/webapps/tool_shed/controllers/repository_review.py +++ b/lib/galaxy/webapps/tool_shed/controllers/repository_review.py @@ -50,11 +50,11 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): repository_id = trans.security.encode_id(review.repository_id) changeset_revision = review.changeset_revision return trans.response.send_redirect(web.url_for(controller='repository_review', - action='manage_repository_reviews_of_revision', - id=repository_id, - changeset_revision=changeset_revision, - message=message, - status=status)) + action='manage_repository_reviews_of_revision', + id=repository_id, + changeset_revision=changeset_revision, + message=message, + status=status)) @web.expose @web.require_login("browse components") @@ -63,8 +63,8 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "create": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='create_component', - **kwd)) + action='create_component', + **kwd)) return self.component_grid(trans, **kwd) @web.expose @@ -77,20 +77,20 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): repo = hg_util.get_repo_for_repository(trans.app, repository=repository, repo_path=None, create=False) rev, changeset_revision_label = hg_util.get_rev_label_from_changeset_revision(repo, review.changeset_revision) return trans.fill_template('/webapps/tool_shed/repository_review/browse_review.mako', - repository=repository, - changeset_revision_label=changeset_revision_label, - review=review, - message=message, - status=status) + repository=repository, + changeset_revision_label=changeset_revision_label, + review=review, + message=message, + status=status) def copy_review(self, trans, review_to_copy, review): for component_review in review_to_copy.component_reviews: copied_component_review = trans.model.ComponentReview(repository_review_id=review.id, - component_id=component_review.component.id, - comment=component_review.comment, - private=component_review.private, - approved=component_review.approved, - rating=component_review.rating) + component_id=component_review.component.id, + comment=component_review.comment, + private=component_review.private, + approved=component_review.approved, + rating=component_review.rating) trans.sa_session.add(copied_component_review) trans.sa_session.flush() review.approved = review_to_copy.approved @@ -119,14 +119,14 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): message = "Component '%s' has been created" % escape(component.name) status = 'done' trans.response.send_redirect(web.url_for(controller='repository_review', - action='manage_components', - message=message, - status=status)) + action='manage_components', + message=message, + status=status)) return trans.fill_template('/webapps/tool_shed/repository_review/create_component.mako', - name=name, - description=description, - message=message, - status=status) + name=name, + description=description, + message=message, + status=status) @web.expose @web.require_login("create review") @@ -143,9 +143,9 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): # Make sure there is not already a review of the revision by the user. repository = repository_util.get_repository_in_tool_shed(trans.app, repository_id) if review_util.get_review_by_repository_id_changeset_revision_user_id(app=trans.app, - repository_id=repository_id, - changeset_revision=changeset_revision, - user_id=trans.security.encode_id(trans.user.id)): + repository_id=repository_id, + changeset_revision=changeset_revision, + user_id=trans.security.encode_id(trans.user.id)): message = "You have already created a review for revision %s of repository %s." % (changeset_revision, escape(repository.name)) status = "error" else: @@ -154,8 +154,8 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): not previous_review_id and \ review_util.has_previous_repository_reviews(trans.app, repository, changeset_revision): return trans.response.send_redirect(web.url_for(controller='repository_review', - action='select_previous_review', - **kwd)) + action='select_previous_review', + **kwd)) # A review can be initially performed only on an installable revision of a repository, so make sure we have metadata associated # with the received changeset_revision. repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, repository_id, changeset_revision) @@ -163,10 +163,10 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): metadata = repository_metadata.metadata if metadata: review = trans.app.model.RepositoryReview(repository_id=repository_metadata.repository_id, - changeset_revision=changeset_revision, - user_id=trans.user.id, - rating=None, - deleted=False) + changeset_revision=changeset_revision, + user_id=trans.user.id, + rating=None, + deleted=False) trans.sa_session.add(review) trans.sa_session.flush() if previous_review_id: @@ -177,10 +177,10 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): % (changeset_revision, repository.name) status = 'done' trans.response.send_redirect(web.url_for(controller='repository_review', - action='edit_review', - id=review_id, - message=message, - status=status)) + action='edit_review', + id=review_id, + message=message, + status=status)) else: message = "A new review cannot be created for revision %s of repository %s. Select a valid revision and try again." \ % (changeset_revision, escape(repository.name)) @@ -188,11 +188,11 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): kwd['status'] = 'error' else: return trans.response.send_redirect(web.url_for(controller='repository_review', - action='manage_repository_reviews', - **kwd)) + action='manage_repository_reviews', + **kwd)) return trans.response.send_redirect(web.url_for(controller='repository_review', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) @web.expose @web.require_login("edit component") @@ -203,9 +203,9 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): if not id: message = "No component ids received for editing" trans.response.send_redirect(web.url_for(controller='admin', - action='manage_categories', - message=message, - status='error')) + action='manage_categories', + message=message, + status='error')) component = review_util.get_component(trans.app, id) if kwd.get('edit_component_button', False): new_description = kwd.get('description', '').strip() @@ -216,13 +216,13 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): message = "The information has been saved for the component named %s" % escape(component.name) status = 'done' return trans.response.send_redirect(web.url_for(controller='repository_review', - action='manage_components', - message=message, - status=status)) + action='manage_components', + message=message, + status=status)) return trans.fill_template('/webapps/tool_shed/repository_review/edit_component.mako', - component=component, - message=message, - status=status) + component=component, + message=message, + status=status) @web.expose @web.require_login("edit review") @@ -286,8 +286,8 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): component = review_util.get_component(trans.app, component_id) component_review = \ review_util.get_component_review_by_repository_review_id_component_id(trans.app, - review_id, - component_id) + review_id, + component_id) if component_review: # See if the existing component review should be updated. if component_review.comment != comment or \ @@ -306,10 +306,10 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): # See if a new component_review should be created. if comment or private or approved != trans.model.ComponentReview.approved_states.NO or rating: component_review = trans.model.ComponentReview(repository_review_id=review.id, - component_id=component.id, - comment=comment, - approved=approved, - rating=rating) + component_id=component.id, + comment=comment, + approved=approved, + rating=rating) trans.sa_session.add(component_review) trans.sa_session.flush() flushed = True @@ -318,8 +318,8 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): # Update the repository rating value to be the average of all component review ratings. average_rating = trans.sa_session.query(func.avg(trans.model.ComponentReview.table.c.rating)) \ .filter(and_(trans.model.ComponentReview.table.c.repository_review_id == review.id, - trans.model.ComponentReview.table.c.deleted == false(), - trans.model.ComponentReview.table.c.approved != trans.model.ComponentReview.approved_states.NA)) \ + trans.model.ComponentReview.table.c.deleted == false(), + trans.model.ComponentReview.table.c.approved != trans.model.ComponentReview.approved_states.NA)) \ .scalar() if average_rating is not None: review.rating = int(average_rating) @@ -341,18 +341,18 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): else: selected_value = trans.model.ComponentReview.approved_states.NO revision_approved_select_field = grids_util.build_approved_select_field(trans, - name='revision_approved', - selected_value=selected_value, - for_component=False) + name='revision_approved', + selected_value=selected_value, + for_component=False) rev, changeset_revision_label = hg_util.get_rev_label_from_changeset_revision(repo, review.changeset_revision) return trans.fill_template('/webapps/tool_shed/repository_review/edit_review.mako', - repository=repository, - review=review, - changeset_revision_label=changeset_revision_label, - revision_approved_select_field=revision_approved_select_field, - components_dict=components_dict, - message=message, - status=status) + repository=repository, + review=review, + changeset_revision_label=changeset_revision_label, + revision_approved_select_field=revision_approved_select_field, + components_dict=components_dict, + message=message, + status=status) @web.expose @web.require_login("manage components") @@ -361,12 +361,12 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "create": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='create_component', - **kwd)) + action='create_component', + **kwd)) elif operation == "edit": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='edit_component', - **kwd)) + action='edit_component', + **kwd)) if 'message' not in kwd: message = "This is a list of repository components (features) that can be reviewed. You can add new components or change " message += "the description of an existing component if appropriate. Click on the name link to change the description." @@ -388,12 +388,12 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "inspect repository revisions": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='create_review', - **kwd)) + action='create_review', + **kwd)) if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) message = 'Any of these repositories that contain tools have been installed into Galaxy and proven to be functionally correct by executing the tests defined ' message += 'for each tool. Repositories that do not contain tools have not been installed into Galaxy. ' kwd['message'] = message @@ -407,8 +407,8 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): if 'operation' in kwd: kwd['mine'] = True return trans.response.send_redirect(web.url_for(controller='repository_review', - action='manage_repositories_with_reviews', - **kwd)) + action='manage_repositories_with_reviews', + **kwd)) self.repositories_reviewed_by_me_grid.title = 'Repositories reviewed by me' return self.repositories_reviewed_by_me_grid(trans, **kwd) @@ -423,12 +423,12 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "inspect repository revisions": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='create_review', - **kwd)) + action='create_review', + **kwd)) if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) message = 'These repositories contain tools with missing functional tests or test data. ' kwd['message'] = message kwd['status'] = 'warning' @@ -442,12 +442,12 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "inspect repository revisions": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='manage_repository_reviews', - **kwd)) + action='manage_repository_reviews', + **kwd)) if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) return self.repositories_with_reviews_grid(trans, **kwd) @web.expose @@ -457,12 +457,12 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "inspect repository revisions": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='create_review', - **kwd)) + action='create_review', + **kwd)) if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) return self.repositories_without_reviews_grid(trans, **kwd) @web.expose @@ -487,8 +487,8 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): # Find the review for this changeset_revision repository_reviews = \ review_util.get_reviews_by_repository_id_changeset_revision(trans.app, - repository_id, - changeset_revision) + repository_id, + changeset_revision) # Determine if the current user can add a review to this revision. can_add_review = trans.user not in [repository_review.user for repository_review in repository_reviews] repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, repository_id, changeset_revision) @@ -502,17 +502,17 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): can_add_review = True installable = changeset_revision in metadata_revision_hashes revision_dict = dict(changeset_revision_label=changeset_revision_label, - repository_reviews=repository_reviews, - repository_metadata_reviews=repository_metadata_reviews, - installable=installable, - can_add_review=can_add_review) + repository_reviews=repository_reviews, + repository_metadata_reviews=repository_metadata_reviews, + installable=installable, + can_add_review=can_add_review) reviews_dict[changeset_revision] = revision_dict return trans.fill_template('/webapps/tool_shed/repository_review/reviews_of_repository.mako', - repository=repository, - reviews_dict=reviews_dict, - mine=mine, - message=message, - status=status) + repository=repository, + reviews_dict=reviews_dict, + mine=mine, + message=message, + status=status) @web.expose @web.require_login("manage repository reviews of revision") @@ -527,16 +527,16 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): installable = changeset_revision in [metadata_revision.changeset_revision for metadata_revision in repository.metadata_revisions] rev, changeset_revision_label = hg_util.get_rev_label_from_changeset_revision(repo, changeset_revision) reviews = review_util.get_reviews_by_repository_id_changeset_revision(trans.app, - repository_id, - changeset_revision) + repository_id, + changeset_revision) return trans.fill_template('/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako', - repository=repository, - changeset_revision=changeset_revision, - changeset_revision_label=changeset_revision_label, - reviews=reviews, - installable=installable, - message=message, - status=status) + repository=repository, + changeset_revision=changeset_revision, + changeset_revision_label=changeset_revision_label, + reviews=reviews, + installable=installable, + message=message, + status=status) @web.expose @web.require_login("repository reviews by user") @@ -550,13 +550,13 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): kwd['id'] = trans.security.encode_id(repository.id) if operation == "inspect repository revisions": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='manage_repository_reviews', - **kwd)) + action='manage_repository_reviews', + **kwd)) if operation == "view_or_manage_repository": kwd['changeset_revision'] = review.changeset_revision return trans.response.send_redirect(web.url_for(controller='repository_review', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) # The user may not be the current user. The value of the received id is the encoded user id. user = suc.get_user(trans.app, kwd['id']) self.repository_reviews_by_user_grid.title = "All repository revision reviews for user '%s'" % user.username @@ -570,12 +570,12 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): operation = kwd['operation'].lower() if operation == "inspect repository revisions": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='manage_repository_reviews', - **kwd)) + action='manage_repository_reviews', + **kwd)) if operation == "view_or_manage_repository": return trans.response.send_redirect(web.url_for(controller='repository_review', - action='view_or_manage_repository', - **kwd)) + action='view_or_manage_repository', + **kwd)) return self.reviewed_repositories_i_own_grid(trans, **kwd) @web.expose @@ -588,16 +588,16 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): changeset_revision = kwd.get('changeset_revision', None) repo = hg_util.get_repo_for_repository(trans.app, repository=repository, repo_path=None, create=False) previous_reviews_dict = review_util.get_previous_repository_reviews(trans.app, - repository, - changeset_revision) + repository, + changeset_revision) rev, changeset_revision_label = hg_util.get_rev_label_from_changeset_revision(repo, changeset_revision) return trans.fill_template('/webapps/tool_shed/repository_review/select_previous_review.mako', - repository=repository, - changeset_revision=changeset_revision, - changeset_revision_label=changeset_revision_label, - previous_reviews_dict=previous_reviews_dict, - message=message, - status=status) + repository=repository, + changeset_revision=changeset_revision, + changeset_revision_label=changeset_revision_label, + previous_reviews_dict=previous_reviews_dict, + message=message, + status=status) @web.expose @web.require_login("view or manage repository") @@ -605,9 +605,9 @@ class RepositoryReviewController(BaseUIController, ratings_util.ItemRatings): repository = repository_util.get_repository_in_tool_shed(trans.app, kwd['id']) if trans.user_is_admin() or repository.user == trans.user: return trans.response.send_redirect(web.url_for(controller='repository', - action='manage_repository', - **kwd)) + action='manage_repository', + **kwd)) else: return trans.response.send_redirect(web.url_for(controller='repository', - action='view_repository', - **kwd)) + action='view_repository', + **kwd)) diff --git a/lib/galaxy/webapps/tool_shed/controllers/upload.py b/lib/galaxy/webapps/tool_shed/controllers/upload.py index b9b431f1c7f..1695cf69507 100644 --- a/lib/galaxy/webapps/tool_shed/controllers/upload.py +++ b/lib/galaxy/webapps/tool_shed/controllers/upload.py @@ -143,21 +143,21 @@ class UploadController(BaseUIController): elif uploaded_directory: ok, message, files_to_remove, content_alert_str, undesirable_dirs_removed, undesirable_files_removed = \ self.upload_directory(trans, - rdah, - tdah, - repository, - uploaded_directory, - upload_point, - remove_repo_files_not_in_tar, - commit_message, - new_repo_alert) + rdah, + tdah, + repository, + uploaded_directory, + upload_point, + remove_repo_files_not_in_tar, + commit_message, + new_repo_alert) else: if (isgzip or isbz2) and uncompress_file: uploaded_file_filename = commit_util.uncompress(repository, - uploaded_file_name, - uploaded_file_filename, - isgzip=isgzip, - isbz2=isbz2) + uploaded_file_name, + uploaded_file_filename, + isgzip=isgzip, + isbz2=isbz2) if repository.type == rt_util.REPOSITORY_SUITE_DEFINITION and \ uploaded_file_filename != rt_util.REPOSITORY_DEPENDENCY_DEFINITION_FILENAME: ok = False @@ -215,10 +215,10 @@ class UploadController(BaseUIController): # Convert from unicode to prevent "TypeError: array item must be char" full_path = full_path.encode('ascii', 'replace') hg_util.commit_changeset(repo.ui, - repo, - full_path_to_changeset=full_path, - username=trans.user.username, - message=commit_message) + repo, + full_path_to_changeset=full_path, + username=trans.user.username, + message=commit_message) if full_path.endswith('tool_data_table_conf.xml.sample'): # Handle the special case where a tool_data_table_conf.xml.sample file is being uploaded # by parsing the file and adding new entries to the in-memory trans.app.tool_data_tables @@ -229,11 +229,11 @@ class UploadController(BaseUIController): # See if the content of the change set was valid. admin_only = len(repository.downloadable_revisions) != 1 suc.handle_email_alerts(trans.app, - trans.request.host, - repository, - content_alert_str=content_alert_str, - new_repo_alert=new_repo_alert, - admin_only=admin_only) + trans.request.host, + repository, + content_alert_str=content_alert_str, + new_repo_alert=new_repo_alert, + admin_only=admin_only) if ok: # Update the repository files for browsing. hg_util.update_repository(repo) @@ -265,12 +265,12 @@ class UploadController(BaseUIController): else: message += " %d files were removed from the repository root. " % len(files_to_remove) rmm = repository_metadata_manager.RepositoryMetadataManager(app=trans.app, - user=trans.user, - repository=repository) + user=trans.user, + repository=repository) status, error_message = \ rmm.set_repository_metadata_due_to_new_tip(trans.request.host, - content_alert_str=content_alert_str, - **kwd) + content_alert_str=content_alert_str, + **kwd) if error_message: message = error_message kwd['message'] = message @@ -282,9 +282,9 @@ class UploadController(BaseUIController): metadata_dict = {} dd = dependency_display.DependencyDisplayer(trans.app) if str(repository.type) not in [rt_util.REPOSITORY_SUITE_DEFINITION, - rt_util.TOOL_DEPENDENCY_DEFINITION]: + rt_util.TOOL_DEPENDENCY_DEFINITION]: change_repository_type_message = rt_util.generate_message_for_repository_type_change(trans.app, - repository) + repository) if change_repository_type_message: message += change_repository_type_message status = 'warning' @@ -307,7 +307,7 @@ class UploadController(BaseUIController): # Handle messaging for invalid repository dependencies. invalid_repository_dependencies_message = \ dd.generate_message_for_invalid_repository_dependencies(metadata_dict, - error_from_tuple=True) + error_from_tuple=True) if invalid_repository_dependencies_message: message += invalid_repository_dependencies_message status = 'error' @@ -316,11 +316,11 @@ class UploadController(BaseUIController): if uploaded_directory: basic_util.remove_dir(uploaded_directory) trans.response.send_redirect(web.url_for(controller='repository', - action='browse_repository', - id=repository_id, - commit_message='Deleted selected files', - message=message, - status=status)) + action='browse_repository', + id=repository_id, + commit_message='Deleted selected files', + message=message, + status=status)) else: if uploaded_directory: basic_util.remove_dir(uploaded_directory) @@ -328,17 +328,17 @@ class UploadController(BaseUIController): # Reset the tool_data_tables by loading the empty tool_data_table_conf.xml file. tdtm.reset_tool_data_tables() return trans.fill_template('/webapps/tool_shed/repository/upload.mako', - repository=repository, - changeset_revision=tip, - url=url, - commit_message=commit_message, - uncompress_file=uncompress_file, - remove_repo_files_not_in_tar=remove_repo_files_not_in_tar, - message=message, - status=status) + repository=repository, + changeset_revision=tip, + url=url, + commit_message=commit_message, + uncompress_file=uncompress_file, + remove_repo_files_not_in_tar=remove_repo_files_not_in_tar, + message=message, + status=status) def upload_directory(self, trans, rdah, tdah, repository, uploaded_directory, upload_point, remove_repo_files_not_in_tar, - commit_message, new_repo_alert): + commit_message, new_repo_alert): repo_dir = repository.repo_path(trans.app) undesirable_dirs_removed = 0 undesirable_files_removed = 0 @@ -396,13 +396,13 @@ class UploadController(BaseUIController): shutil.move(os.path.join(uploaded_directory, relative_path), repo_path) filenames_in_archive.append(relative_path) return commit_util.handle_directory_changes(trans.app, - trans.request.host, - trans.user.username, - repository, - full_path, - filenames_in_archive, - remove_repo_files_not_in_tar, - new_repo_alert, - commit_message, - undesirable_dirs_removed, - undesirable_files_removed) + trans.request.host, + trans.user.username, + repository, + full_path, + filenames_in_archive, + remove_repo_files_not_in_tar, + new_repo_alert, + commit_message, + undesirable_dirs_removed, + undesirable_files_removed) diff --git a/lib/galaxy/webapps/tool_shed/controllers/user.py b/lib/galaxy/webapps/tool_shed/controllers/user.py index 085c9c7e4dd..2c6eb322ee6 100644 --- a/lib/galaxy/webapps/tool_shed/controllers/user.py +++ b/lib/galaxy/webapps/tool_shed/controllers/user.py @@ -37,12 +37,12 @@ class User(BaseUser): message = escape(util.restore_text(params.get('message', ''))) status = params.get('status', 'done') return trans.fill_template('/webapps/tool_shed/user/manage_info.mako', - cntrller=cntrller, - user=user, - email=email, - username=username, - message=message, - status=status) + cntrller=cntrller, + user=user, + email=email, + username=username, + message=message, + status=status) @web.expose @web.require_login() @@ -55,10 +55,10 @@ class User(BaseUser): message = "Generated a new web API key" status = "done" return trans.fill_template('/webapps/tool_shed/user/api_keys.mako', - cntrller=cntrller, - user=trans.user, - message=message, - status=status) + cntrller=cntrller, + user=trans.user, + message=message, + status=status) # For REMOTE_USER, we need the ability to just edit the username @web.expose @@ -85,11 +85,11 @@ class User(BaseUser): trans.sa_session.flush() message = 'The username has been updated with the changes.' return trans.fill_template('/webapps/tool_shed/user/username.mako', - cntrller=cntrller, - user=user, - username=user.username, - message=message, - status=status) + cntrller=cntrller, + user=user, + username=user.username, + message=message, + status=status) @web.expose def edit_info(self, trans, cntrller, **kwd): @@ -183,9 +183,9 @@ class User(BaseUser): if status: kwd['status'] = status return trans.response.send_redirect(web.url_for(controller='user', - action='manage_user_info', - cntrller=cntrller, - **kwd)) + action='manage_user_info', + cntrller=cntrller, + **kwd)) @web.expose def change_password(self, trans, token=None, **kwd): @@ -231,8 +231,8 @@ class User(BaseUser): # Invalidate all other sessions for other_galaxy_session in trans.sa_session.query(trans.app.model.GalaxySession) \ .filter(and_(trans.app.model.GalaxySession.table.c.user_id == user.id, - trans.app.model.GalaxySession.table.c.is_valid == true(), - trans.app.model.GalaxySession.table.c.id != trans.galaxy_session.id)): + trans.app.model.GalaxySession.table.c.is_valid == true(), + trans.app.model.GalaxySession.table.c.id != trans.galaxy_session.id)): other_galaxy_session.is_valid = False trans.sa_session.add(other_galaxy_session) trans.sa_session.add(user) @@ -243,8 +243,8 @@ class User(BaseUser): else: return trans.show_ok_message('The password has been changed and any other existing Galaxy sessions have been logged out (but jobs in histories in those sessions will not be interrupted).') return trans.fill_template('/webapps/tool_shed/user/change_password.mako', - token=token, - status=status, - message=message, - display_top=kwd.get('redirect_home', False) + token=token, + status=status, + message=message, + display_top=kwd.get('redirect_home', False) ) diff --git a/lib/galaxy/webapps/tool_shed/model/__init__.py b/lib/galaxy/webapps/tool_shed/model/__init__.py index 551bb859b8e..9491d722bbd 100644 --- a/lib/galaxy/webapps/tool_shed/model/__init__.py +++ b/lib/galaxy/webapps/tool_shed/model/__init__.py @@ -88,10 +88,10 @@ class Role(object, Dictifiable): dict_element_visible_keys = ('id', 'name', 'description', 'type') private_id = None types = Bunch(PRIVATE='private', - SYSTEM='system', - USER='user', - ADMIN='admin', - SHARING='sharing') + SYSTEM='system', + USER='user', + ADMIN='admin', + SHARING='sharing') def __init__(self, name="", description="", type="system", deleted=False): self.name = name @@ -136,16 +136,16 @@ class RepositoryRoleAssociation(object): class GalaxySession(object): def __init__(self, - id=None, - user=None, - remote_host=None, - remote_addr=None, - referer=None, - current_history=None, - session_key=None, - is_valid=False, - prev_session_id=None, - last_action=None): + id=None, + user=None, + remote_host=None, + remote_addr=None, + referer=None, + current_history=None, + session_key=None, + is_valid=False, + prev_session_id=None, + last_action=None): self.id = id self.user = user self.remote_host = remote_host @@ -160,18 +160,18 @@ class GalaxySession(object): class Repository(object, Dictifiable): dict_collection_visible_keys = ('id', 'name', 'type', 'remote_repository_url', 'homepage_url', 'description', 'user_id', 'private', 'deleted', - 'times_downloaded', 'deprecated') + 'times_downloaded', 'deprecated') dict_element_visible_keys = ('id', 'name', 'type', 'remote_repository_url', 'homepage_url', 'description', 'long_description', 'user_id', 'private', - 'deleted', 'times_downloaded', 'deprecated') + 'deleted', 'times_downloaded', 'deprecated') file_states = Bunch(NORMAL='n', - NEEDS_MERGING='m', - MARKED_FOR_REMOVAL='r', - MARKED_FOR_ADDITION='a', - NOT_TRACKED='?') + NEEDS_MERGING='m', + MARKED_FOR_REMOVAL='r', + MARKED_FOR_ADDITION='a', + NOT_TRACKED='?') def __init__(self, id=None, name=None, type=None, remote_repository_url=None, homepage_url=None, - description=None, long_description=None, user_id=None, private=False, - deleted=None, email_alerts=None, times_downloaded=0, deprecated=False): + description=None, long_description=None, user_id=None, private=False, + deleted=None, email_alerts=None, times_downloaded=0, deprecated=False): self.id = id self.name = name or "Unnamed repository" self.type = type @@ -194,7 +194,7 @@ class Repository(object, Dictifiable): if str(role.name) == admin_role_name: return role raise Exception('Repository %s owned by %s is not associated with a required administrative role.' % - (str(self.name), str(self.user.username))) + (str(self.name), str(self.user.username))) def allow_push(self, app): repo = hg.repository(ui.ui(), self.repo_path(app)) @@ -231,8 +231,8 @@ class Repository(object, Dictifiable): # is made that does not create a new downloadable changeset revision but updates the existing # one, we still want to be able to get repository dependencies. repository_metadata = metadata_util.get_current_repository_metadata_for_changeset_revision(app, - self, - changeset) + self, + changeset) if repository_metadata: metadata = repository_metadata.metadata if metadata: @@ -255,8 +255,8 @@ class Repository(object, Dictifiable): def installable_revisions(self, app, sort_revisions=True): return metadata_util.get_metadata_revisions(self, - hg.repository(ui.ui(), self.repo_path(app)), - sort_revisions=sort_revisions) + hg.repository(ui.ui(), self.repo_path(app)), + sort_revisions=sort_revisions) def is_new(self, app): repo = hg.repository(ui.ui(), self.repo_path(app)) @@ -305,16 +305,16 @@ class Repository(object, Dictifiable): class RepositoryMetadata(object, Dictifiable): dict_collection_visible_keys = ('id', 'repository_id', 'changeset_revision', 'malicious', 'downloadable', 'missing_test_components', - 'has_repository_dependencies', 'includes_datatypes', 'includes_tools', 'includes_tool_dependencies', - 'includes_tools_for_display_in_tool_panel', 'includes_workflows') + 'has_repository_dependencies', 'includes_datatypes', 'includes_tools', 'includes_tool_dependencies', + 'includes_tools_for_display_in_tool_panel', 'includes_workflows') dict_element_visible_keys = ('id', 'repository_id', 'changeset_revision', 'malicious', 'downloadable', 'missing_test_components', - 'has_repository_dependencies', 'includes_datatypes', 'includes_tools', 'includes_tool_dependencies', - 'includes_tools_for_display_in_tool_panel', 'includes_workflows', 'repository_dependencies') + 'has_repository_dependencies', 'includes_datatypes', 'includes_tools', 'includes_tool_dependencies', + 'includes_tools_for_display_in_tool_panel', 'includes_workflows', 'repository_dependencies') def __init__(self, id=None, repository_id=None, changeset_revision=None, metadata=None, tool_versions=None, malicious=False, - downloadable=False, missing_test_components=None, tools_functionally_correct=False, test_install_error=False, - has_repository_dependencies=False, includes_datatypes=False, includes_tools=False, includes_tool_dependencies=False, - includes_workflows=False): + downloadable=False, missing_test_components=None, tools_functionally_correct=False, test_install_error=False, + has_repository_dependencies=False, includes_datatypes=False, includes_tools=False, includes_tool_dependencies=False, + includes_workflows=False): self.id = id self.repository_id = repository_id self.changeset_revision = changeset_revision diff --git a/lib/galaxy/webapps/tool_shed/model/mapping.py b/lib/galaxy/webapps/tool_shed/model/mapping.py index a3ad199bc99..e18b55bf08d 100644 --- a/lib/galaxy/webapps/tool_shed/model/mapping.py +++ b/lib/galaxy/webapps/tool_shed/model/mapping.py @@ -27,22 +27,22 @@ metadata = MetaData() APIKeys.table = Table("api_keys", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("key", TrimmedString(32), index=True, unique=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("key", TrimmedString(32), index=True, unique=True)) User.table = Table("galaxy_user", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("email", TrimmedString(255), nullable=False), - Column("username", String(255), index=True), - Column("password", TrimmedString(40), nullable=False), - Column("external", Boolean, default=False), - Column("new_repo_alert", Boolean, default=False), - Column("deleted", Boolean, index=True, default=False), - Column("purged", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("email", TrimmedString(255), nullable=False), + Column("username", String(255), index=True), + Column("password", TrimmedString(40), nullable=False), + Column("external", Boolean, default=False), + Column("new_repo_alert", Boolean, default=False), + Column("deleted", Boolean, index=True, default=False), + Column("purged", Boolean, index=True, default=False)) PasswordResetToken.table = Table("password_reset_token", metadata, Column("token", String(32), primary_key=True, unique=True, index=True), @@ -50,262 +50,262 @@ PasswordResetToken.table = Table("password_reset_token", metadata, Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True)) Group.table = Table("galaxy_group", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("name", String(255), index=True, unique=True), - Column("deleted", Boolean, index=True, default=False)) - -Role.table = Table("role", metadata, Column("id", Integer, primary_key=True), Column("create_time", DateTime, default=now), Column("update_time", DateTime, default=now, onupdate=now), Column("name", String(255), index=True, unique=True), - Column("description", TEXT), - Column("type", String(40), index=True), Column("deleted", Boolean, index=True, default=False)) -UserGroupAssociation.table = Table("user_group_association", metadata, - Column("id", Integer, primary_key=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("group_id", Integer, ForeignKey("galaxy_group.id"), index=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now)) +Role.table = Table("role", metadata, + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("name", String(255), index=True, unique=True), + Column("description", TEXT), + Column("type", String(40), index=True), + Column("deleted", Boolean, index=True, default=False)) -UserRoleAssociation.table = Table("user_role_association", metadata, +UserGroupAssociation.table = Table("user_group_association", metadata, Column("id", Integer, primary_key=True), Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("group_id", Integer, ForeignKey("galaxy_group.id"), index=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now)) + +UserRoleAssociation.table = Table("user_role_association", metadata, + Column("id", Integer, primary_key=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("role_id", Integer, ForeignKey("role.id"), index=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now)) + +GroupRoleAssociation.table = Table("group_role_association", metadata, + Column("id", Integer, primary_key=True), + Column("group_id", Integer, ForeignKey("galaxy_group.id"), index=True), Column("role_id", Integer, ForeignKey("role.id"), index=True), Column("create_time", DateTime, default=now), Column("update_time", DateTime, default=now, onupdate=now)) -GroupRoleAssociation.table = Table("group_role_association", metadata, - Column("id", Integer, primary_key=True), - Column("group_id", Integer, ForeignKey("galaxy_group.id"), index=True), - Column("role_id", Integer, ForeignKey("role.id"), index=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now)) - RepositoryRoleAssociation.table = Table("repository_role_association", metadata, - Column("id", Integer, primary_key=True), - Column("repository_id", Integer, ForeignKey("repository.id"), index=True), - Column("role_id", Integer, ForeignKey("role.id"), index=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now)) + Column("id", Integer, primary_key=True), + Column("repository_id", Integer, ForeignKey("repository.id"), index=True), + Column("role_id", Integer, ForeignKey("role.id"), index=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now)) GalaxySession.table = Table("galaxy_session", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=True), - Column("remote_host", String(255)), - Column("remote_addr", String(255)), - Column("referer", TEXT), - Column("session_key", TrimmedString(255), index=True, unique=True), # unique 128 bit random number coerced to a string - Column("is_valid", Boolean, default=False), - Column("prev_session_id", Integer), # saves a reference to the previous session so we have a way to chain them together - Column("last_action", DateTime)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=True), + Column("remote_host", String(255)), + Column("remote_addr", String(255)), + Column("referer", TEXT), + Column("session_key", TrimmedString(255), index=True, unique=True), # unique 128 bit random number coerced to a string + Column("is_valid", Boolean, default=False), + Column("prev_session_id", Integer), # saves a reference to the previous session so we have a way to chain them together + Column("last_action", DateTime)) Repository.table = Table("repository", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("name", TrimmedString(255), index=True), - Column("type", TrimmedString(255), index=True), - Column("remote_repository_url", TrimmedString(255)), - Column("homepage_url", TrimmedString(255)), - Column("description", TEXT), - Column("long_description", TEXT), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("private", Boolean, default=False), - Column("deleted", Boolean, index=True, default=False), - Column("email_alerts", JSONType, nullable=True), - Column("times_downloaded", Integer), - Column("deprecated", Boolean, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("name", TrimmedString(255), index=True), + Column("type", TrimmedString(255), index=True), + Column("remote_repository_url", TrimmedString(255)), + Column("homepage_url", TrimmedString(255)), + Column("description", TEXT), + Column("long_description", TEXT), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("private", Boolean, default=False), + Column("deleted", Boolean, index=True, default=False), + Column("email_alerts", JSONType, nullable=True), + Column("times_downloaded", Integer), + Column("deprecated", Boolean, default=False)) RepositoryMetadata.table = Table("repository_metadata", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("repository_id", Integer, ForeignKey("repository.id"), index=True), - Column("changeset_revision", TrimmedString(255), index=True), - Column("metadata", JSONType, nullable=True), - Column("tool_versions", JSONType, nullable=True), - Column("malicious", Boolean, default=False), - Column("downloadable", Boolean, default=True), - Column("missing_test_components", Boolean, default=False, index=True), - Column("has_repository_dependencies", Boolean, default=False, index=True), - Column("includes_datatypes", Boolean, default=False, index=True), - Column("includes_tools", Boolean, default=False, index=True), - Column("includes_tool_dependencies", Boolean, default=False, index=True), - Column("includes_workflows", Boolean, default=False, index=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("repository_id", Integer, ForeignKey("repository.id"), index=True), + Column("changeset_revision", TrimmedString(255), index=True), + Column("metadata", JSONType, nullable=True), + Column("tool_versions", JSONType, nullable=True), + Column("malicious", Boolean, default=False), + Column("downloadable", Boolean, default=True), + Column("missing_test_components", Boolean, default=False, index=True), + Column("has_repository_dependencies", Boolean, default=False, index=True), + Column("includes_datatypes", Boolean, default=False, index=True), + Column("includes_tools", Boolean, default=False, index=True), + Column("includes_tool_dependencies", Boolean, default=False, index=True), + Column("includes_workflows", Boolean, default=False, index=True)) RepositoryReview.table = Table("repository_review", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("repository_id", Integer, ForeignKey("repository.id"), index=True), - Column("changeset_revision", TrimmedString(255), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("approved", TrimmedString(255)), - Column("rating", Integer, index=True), - Column("deleted", Boolean, index=True, default=False)) - -ComponentReview.table = Table("component_review", metadata, Column("id", Integer, primary_key=True), Column("create_time", DateTime, default=now), Column("update_time", DateTime, default=now, onupdate=now), - Column("repository_review_id", Integer, ForeignKey("repository_review.id"), index=True), - Column("component_id", Integer, ForeignKey("component.id"), index=True), - Column("comment", TEXT), - Column("private", Boolean, default=False), + Column("repository_id", Integer, ForeignKey("repository.id"), index=True), + Column("changeset_revision", TrimmedString(255), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), Column("approved", TrimmedString(255)), - Column("rating", Integer), + Column("rating", Integer, index=True), Column("deleted", Boolean, index=True, default=False)) +ComponentReview.table = Table("component_review", metadata, + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("repository_review_id", Integer, ForeignKey("repository_review.id"), index=True), + Column("component_id", Integer, ForeignKey("component.id"), index=True), + Column("comment", TEXT), + Column("private", Boolean, default=False), + Column("approved", TrimmedString(255)), + Column("rating", Integer), + Column("deleted", Boolean, index=True, default=False)) + Component.table = Table("component", metadata, - Column("id", Integer, primary_key=True), - Column("name", TrimmedString(255)), - Column("description", TEXT)) + Column("id", Integer, primary_key=True), + Column("name", TrimmedString(255)), + Column("description", TEXT)) RepositoryRatingAssociation.table = Table("repository_rating_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("repository_id", Integer, ForeignKey("repository.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("rating", Integer, index=True), - Column("comment", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("repository_id", Integer, ForeignKey("repository.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("rating", Integer, index=True), + Column("comment", TEXT)) RepositoryCategoryAssociation.table = Table("repository_category_association", metadata, - Column("id", Integer, primary_key=True), - Column("repository_id", Integer, ForeignKey("repository.id"), index=True), - Column("category_id", Integer, ForeignKey("category.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("repository_id", Integer, ForeignKey("repository.id"), index=True), + Column("category_id", Integer, ForeignKey("category.id"), index=True)) Category.table = Table("category", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("name", TrimmedString(255), index=True, unique=True), - Column("description", TEXT), - Column("deleted", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("name", TrimmedString(255), index=True, unique=True), + Column("description", TEXT), + Column("deleted", Boolean, index=True, default=False)) Tag.table = Table("tag", metadata, - Column("id", Integer, primary_key=True), - Column("type", Integer), - Column("parent_id", Integer, ForeignKey("tag.id")), - Column("name", TrimmedString(255)), - UniqueConstraint("name")) + Column("id", Integer, primary_key=True), + Column("type", Integer), + Column("parent_id", Integer, ForeignKey("tag.id")), + Column("name", TrimmedString(255)), + UniqueConstraint("name")) # With the tables defined we can define the mappers and setup the relationships between the model objects. mapper(User, User.table, - properties=dict(active_repositories=relation(Repository, primaryjoin=((Repository.table.c.user_id == User.table.c.id) & (not_(Repository.table.c.deleted))), order_by=(Repository.table.c.name)), - galaxy_sessions=relation(GalaxySession, order_by=desc(GalaxySession.table.c.update_time)), - api_keys=relation(APIKeys, backref="user", order_by=desc(APIKeys.table.c.create_time)))) + properties=dict(active_repositories=relation(Repository, primaryjoin=((Repository.table.c.user_id == User.table.c.id) & (not_(Repository.table.c.deleted))), order_by=(Repository.table.c.name)), + galaxy_sessions=relation(GalaxySession, order_by=desc(GalaxySession.table.c.update_time)), + api_keys=relation(APIKeys, backref="user", order_by=desc(APIKeys.table.c.create_time)))) mapper(PasswordResetToken, PasswordResetToken.table, - properties=dict(user=relation(User, backref="reset_tokens"))) + properties=dict(user=relation(User, backref="reset_tokens"))) mapper(APIKeys, APIKeys.table, properties={}) mapper(Group, Group.table, - properties=dict(users=relation(UserGroupAssociation))) + properties=dict(users=relation(UserGroupAssociation))) mapper(Role, Role.table, - properties=dict( + properties=dict( repositories=relation(RepositoryRoleAssociation, - primaryjoin=((Role.table.c.id == RepositoryRoleAssociation.table.c.role_id) & (RepositoryRoleAssociation.table.c.repository_id == Repository.table.c.id))), + primaryjoin=((Role.table.c.id == RepositoryRoleAssociation.table.c.role_id) & (RepositoryRoleAssociation.table.c.repository_id == Repository.table.c.id))), users=relation(UserRoleAssociation, - primaryjoin=((Role.table.c.id == UserRoleAssociation.table.c.role_id) & (UserRoleAssociation.table.c.user_id == User.table.c.id))), + primaryjoin=((Role.table.c.id == UserRoleAssociation.table.c.role_id) & (UserRoleAssociation.table.c.user_id == User.table.c.id))), groups=relation(GroupRoleAssociation, - primaryjoin=((Role.table.c.id == GroupRoleAssociation.table.c.role_id) & (GroupRoleAssociation.table.c.group_id == Group.table.c.id))))) + primaryjoin=((Role.table.c.id == GroupRoleAssociation.table.c.role_id) & (GroupRoleAssociation.table.c.group_id == Group.table.c.id))))) mapper(RepositoryRoleAssociation, RepositoryRoleAssociation.table, - properties=dict( + properties=dict( repository=relation(Repository), role=relation(Role))) mapper(UserGroupAssociation, UserGroupAssociation.table, - properties=dict(user=relation(User, backref="groups"), - group=relation(Group, backref="members"))) + properties=dict(user=relation(User, backref="groups"), + group=relation(Group, backref="members"))) mapper(UserRoleAssociation, UserRoleAssociation.table, - properties=dict( + properties=dict( user=relation(User, backref="roles"), non_private_roles=relation(User, - backref="non_private_roles", - primaryjoin=((User.table.c.id == UserRoleAssociation.table.c.user_id) & (UserRoleAssociation.table.c.role_id == Role.table.c.id) & not_(Role.table.c.name == User.table.c.email))), + backref="non_private_roles", + primaryjoin=((User.table.c.id == UserRoleAssociation.table.c.user_id) & (UserRoleAssociation.table.c.role_id == Role.table.c.id) & not_(Role.table.c.name == User.table.c.email))), role=relation(Role))) mapper(GroupRoleAssociation, GroupRoleAssociation.table, - properties=dict( + properties=dict( group=relation(Group, backref="roles"), role=relation(Role))) mapper(GalaxySession, GalaxySession.table, - properties=dict(user=relation(User))) + properties=dict(user=relation(User))) mapper(Tag, Tag.table, - properties=dict(children=relation(Tag, backref=backref('parent', remote_side=[Tag.table.c.id])))) + properties=dict(children=relation(Tag, backref=backref('parent', remote_side=[Tag.table.c.id])))) mapper(Category, Category.table, - properties=dict(repositories=relation(RepositoryCategoryAssociation, - secondary=Repository.table, - primaryjoin=(Category.table.c.id == RepositoryCategoryAssociation.table.c.category_id), - secondaryjoin=(RepositoryCategoryAssociation.table.c.repository_id == Repository.table.c.id)))) + properties=dict(repositories=relation(RepositoryCategoryAssociation, + secondary=Repository.table, + primaryjoin=(Category.table.c.id == RepositoryCategoryAssociation.table.c.category_id), + secondaryjoin=(RepositoryCategoryAssociation.table.c.repository_id == Repository.table.c.id)))) mapper(Repository, Repository.table, - properties=dict( + properties=dict( categories=relation(RepositoryCategoryAssociation), ratings=relation(RepositoryRatingAssociation, order_by=desc(RepositoryRatingAssociation.table.c.update_time), backref="repositories"), user=relation(User), downloadable_revisions=relation(RepositoryMetadata, - primaryjoin=((Repository.table.c.id == RepositoryMetadata.table.c.repository_id) & (RepositoryMetadata.table.c.downloadable == true())), - order_by=desc(RepositoryMetadata.table.c.update_time)), + primaryjoin=((Repository.table.c.id == RepositoryMetadata.table.c.repository_id) & (RepositoryMetadata.table.c.downloadable == true())), + order_by=desc(RepositoryMetadata.table.c.update_time)), metadata_revisions=relation(RepositoryMetadata, - order_by=desc(RepositoryMetadata.table.c.update_time)), + order_by=desc(RepositoryMetadata.table.c.update_time)), roles=relation(RepositoryRoleAssociation), reviews=relation(RepositoryReview, - primaryjoin=((Repository.table.c.id == RepositoryReview.table.c.repository_id))), + primaryjoin=((Repository.table.c.id == RepositoryReview.table.c.repository_id))), reviewers=relation(User, - secondary=RepositoryReview.table, - primaryjoin=(Repository.table.c.id == RepositoryReview.table.c.repository_id), - secondaryjoin=(RepositoryReview.table.c.user_id == User.table.c.id)))) + secondary=RepositoryReview.table, + primaryjoin=(Repository.table.c.id == RepositoryReview.table.c.repository_id), + secondaryjoin=(RepositoryReview.table.c.user_id == User.table.c.id)))) mapper(RepositoryMetadata, RepositoryMetadata.table, - properties=dict(repository=relation(Repository), - reviews=relation(RepositoryReview, - foreign_keys=[RepositoryMetadata.table.c.repository_id, RepositoryMetadata.table.c.changeset_revision], - primaryjoin=((RepositoryMetadata.table.c.repository_id == RepositoryReview.table.c.repository_id) & (RepositoryMetadata.table.c.changeset_revision == RepositoryReview.table.c.changeset_revision))))) + properties=dict(repository=relation(Repository), + reviews=relation(RepositoryReview, + foreign_keys=[RepositoryMetadata.table.c.repository_id, RepositoryMetadata.table.c.changeset_revision], + primaryjoin=((RepositoryMetadata.table.c.repository_id == RepositoryReview.table.c.repository_id) & (RepositoryMetadata.table.c.changeset_revision == RepositoryReview.table.c.changeset_revision))))) mapper(RepositoryReview, RepositoryReview.table, - properties=dict(repository=relation(Repository, - primaryjoin=(RepositoryReview.table.c.repository_id == Repository.table.c.id)), - # Take care when using the mapper below! It should be used only when a new review is being created for a repository change set revision. - # Keep in mind that repository_metadata records can be removed from the database for certain change set revisions when metadata is being - # reset on a repository! - repository_metadata=relation(RepositoryMetadata, - foreign_keys=[RepositoryReview.table.c.repository_id, RepositoryReview.table.c.changeset_revision], - primaryjoin=((RepositoryReview.table.c.repository_id == RepositoryMetadata.table.c.repository_id) & (RepositoryReview.table.c.changeset_revision == RepositoryMetadata.table.c.changeset_revision)), - backref='review'), - user=relation(User, backref="repository_reviews"), - component_reviews=relation(ComponentReview, - primaryjoin=((RepositoryReview.table.c.id == ComponentReview.table.c.repository_review_id) & (ComponentReview.table.c.deleted == false()))), - private_component_reviews=relation(ComponentReview, - primaryjoin=((RepositoryReview.table.c.id == ComponentReview.table.c.repository_review_id) & (ComponentReview.table.c.deleted == false()) & (ComponentReview.table.c.private == true()))))) + properties=dict(repository=relation(Repository, + primaryjoin=(RepositoryReview.table.c.repository_id == Repository.table.c.id)), + # Take care when using the mapper below! It should be used only when a new review is being created for a repository change set revision. + # Keep in mind that repository_metadata records can be removed from the database for certain change set revisions when metadata is being + # reset on a repository! + repository_metadata=relation(RepositoryMetadata, + foreign_keys=[RepositoryReview.table.c.repository_id, RepositoryReview.table.c.changeset_revision], + primaryjoin=((RepositoryReview.table.c.repository_id == RepositoryMetadata.table.c.repository_id) & (RepositoryReview.table.c.changeset_revision == RepositoryMetadata.table.c.changeset_revision)), + backref='review'), + user=relation(User, backref="repository_reviews"), + component_reviews=relation(ComponentReview, + primaryjoin=((RepositoryReview.table.c.id == ComponentReview.table.c.repository_review_id) & (ComponentReview.table.c.deleted == false()))), + private_component_reviews=relation(ComponentReview, + primaryjoin=((RepositoryReview.table.c.id == ComponentReview.table.c.repository_review_id) & (ComponentReview.table.c.deleted == false()) & (ComponentReview.table.c.private == true()))))) mapper(ComponentReview, ComponentReview.table, - properties=dict(repository_review=relation(RepositoryReview), - component=relation(Component, - primaryjoin=(ComponentReview.table.c.component_id == Component.table.c.id)))) + properties=dict(repository_review=relation(RepositoryReview), + component=relation(Component, + primaryjoin=(ComponentReview.table.c.component_id == Component.table.c.id)))) mapper(Component, Component.table) mapper(RepositoryRatingAssociation, RepositoryRatingAssociation.table, - properties=dict(repository=relation(Repository), user=relation(User))) + properties=dict(repository=relation(Repository), user=relation(User))) mapper(RepositoryCategoryAssociation, RepositoryCategoryAssociation.table, - properties=dict( + properties=dict( category=relation(Category), repository=relation(Repository))) diff --git a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0001_initial_tables.py b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0001_initial_tables.py index 87a4a2b6f30..77c6d8e15f9 100644 --- a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0001_initial_tables.py +++ b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0001_initial_tables.py @@ -22,126 +22,126 @@ log.addHandler(handler) metadata = MetaData() User_table = Table("galaxy_user", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("email", TrimmedString(255), nullable=False), - Column("username", String(255), index=True), - Column("password", TrimmedString(40), nullable=False), - Column("external", Boolean, default=False), - Column("deleted", Boolean, index=True, default=False), - Column("purged", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("email", TrimmedString(255), nullable=False), + Column("username", String(255), index=True), + Column("password", TrimmedString(40), nullable=False), + Column("external", Boolean, default=False), + Column("deleted", Boolean, index=True, default=False), + Column("purged", Boolean, index=True, default=False)) Group_table = Table("galaxy_group", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("name", String(255), index=True, unique=True), - Column("deleted", Boolean, index=True, default=False)) - -Role_table = Table("role", metadata, Column("id", Integer, primary_key=True), Column("create_time", DateTime, default=now), Column("update_time", DateTime, default=now, onupdate=now), Column("name", String(255), index=True, unique=True), - Column("description", TEXT), - Column("type", String(40), index=True), Column("deleted", Boolean, index=True, default=False)) -UserGroupAssociation_table = Table("user_group_association", metadata, - Column("id", Integer, primary_key=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("group_id", Integer, ForeignKey("galaxy_group.id"), index=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now)) +Role_table = Table("role", metadata, + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("name", String(255), index=True, unique=True), + Column("description", TEXT), + Column("type", String(40), index=True), + Column("deleted", Boolean, index=True, default=False)) -UserRoleAssociation_table = Table("user_role_association", metadata, +UserGroupAssociation_table = Table("user_group_association", metadata, Column("id", Integer, primary_key=True), Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("group_id", Integer, ForeignKey("galaxy_group.id"), index=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now)) + +UserRoleAssociation_table = Table("user_role_association", metadata, + Column("id", Integer, primary_key=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("role_id", Integer, ForeignKey("role.id"), index=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now)) + +GroupRoleAssociation_table = Table("group_role_association", metadata, + Column("id", Integer, primary_key=True), + Column("group_id", Integer, ForeignKey("galaxy_group.id"), index=True), Column("role_id", Integer, ForeignKey("role.id"), index=True), Column("create_time", DateTime, default=now), Column("update_time", DateTime, default=now, onupdate=now)) -GroupRoleAssociation_table = Table("group_role_association", metadata, - Column("id", Integer, primary_key=True), - Column("group_id", Integer, ForeignKey("galaxy_group.id"), index=True), - Column("role_id", Integer, ForeignKey("role.id"), index=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now)) - GalaxySession_table = Table("galaxy_session", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=True), - Column("remote_host", String(255)), - Column("remote_addr", String(255)), - Column("referer", TEXT), - Column("session_key", TrimmedString(255), index=True, unique=True), # unique 128 bit random number coerced to a string - Column("is_valid", Boolean, default=False), - Column("prev_session_id", Integer)) # saves a reference to the previous session so we have a way to chain them together + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=True), + Column("remote_host", String(255)), + Column("remote_addr", String(255)), + Column("referer", TEXT), + Column("session_key", TrimmedString(255), index=True, unique=True), # unique 128 bit random number coerced to a string + Column("is_valid", Boolean, default=False), + Column("prev_session_id", Integer)) # saves a reference to the previous session so we have a way to chain them together Tool_table = Table("tool", metadata, - Column("id", Integer, primary_key=True), - Column("guid", TrimmedString(255), index=True, unique=True), - Column("tool_id", TrimmedString(255), index=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("newer_version_id", Integer, ForeignKey("tool.id"), nullable=True), - Column("name", TrimmedString(255), index=True), - Column("description", TEXT), - Column("user_description", TEXT), - Column("version", TrimmedString(255)), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("external_filename", TEXT), - Column("deleted", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("guid", TrimmedString(255), index=True, unique=True), + Column("tool_id", TrimmedString(255), index=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("newer_version_id", Integer, ForeignKey("tool.id"), nullable=True), + Column("name", TrimmedString(255), index=True), + Column("description", TEXT), + Column("user_description", TEXT), + Column("version", TrimmedString(255)), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("external_filename", TEXT), + Column("deleted", Boolean, index=True, default=False)) Event_table = Table('event', metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("state", TrimmedString(255), index=True), - Column("comment", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("state", TrimmedString(255), index=True), + Column("comment", TEXT)) ToolEventAssociation_table = Table("tool_event_association", metadata, - Column("id", Integer, primary_key=True), - Column("tool_id", Integer, ForeignKey("tool.id"), index=True), - Column("event_id", Integer, ForeignKey("event.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("tool_id", Integer, ForeignKey("tool.id"), index=True), + Column("event_id", Integer, ForeignKey("event.id"), index=True)) Category_table = Table("category", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("name", TrimmedString(255), index=True, unique=True), - Column("description", TEXT), - Column("deleted", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("name", TrimmedString(255), index=True, unique=True), + Column("description", TEXT), + Column("deleted", Boolean, index=True, default=False)) ToolCategoryAssociation_table = Table("tool_category_association", metadata, - Column("id", Integer, primary_key=True), - Column("tool_id", Integer, ForeignKey("tool.id"), index=True), - Column("category_id", Integer, ForeignKey("category.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("tool_id", Integer, ForeignKey("tool.id"), index=True), + Column("category_id", Integer, ForeignKey("category.id"), index=True)) Tag_table = Table("tag", metadata, - Column("id", Integer, primary_key=True), - Column("type", Integer), - Column("parent_id", Integer, ForeignKey("tag.id")), - Column("name", TrimmedString(255)), - UniqueConstraint("name")) + Column("id", Integer, primary_key=True), + Column("type", Integer), + Column("parent_id", Integer, ForeignKey("tag.id")), + Column("name", TrimmedString(255)), + UniqueConstraint("name")) ToolTagAssociation_table = Table("tool_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("tool_id", Integer, ForeignKey("tool.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("user_tname", TrimmedString(255), index=True), - Column("value", TrimmedString(255), index=True), - Column("user_value", TrimmedString(255), index=True)) + Column("id", Integer, primary_key=True), + Column("tool_id", Integer, ForeignKey("tool.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("user_tname", TrimmedString(255), index=True), + Column("value", TrimmedString(255), index=True), + Column("user_value", TrimmedString(255), index=True)) ToolAnnotationAssociation_table = Table("tool_annotation_association", metadata, - Column("id", Integer, primary_key=True), - Column("tool_id", Integer, ForeignKey("tool.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("annotation", TEXT)) + Column("id", Integer, primary_key=True), + Column("tool_id", Integer, ForeignKey("tool.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("annotation", TEXT)) def upgrade(migrate_engine): diff --git a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0003_review_and_review_association_tables.py b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0003_review_and_review_association_tables.py index 8acfe64130d..1577a1a63a1 100644 --- a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0003_review_and_review_association_tables.py +++ b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0003_review_and_review_association_tables.py @@ -19,13 +19,13 @@ log.addHandler(handler) metadata = MetaData() ToolRatingAssociation_table = Table("tool_rating_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_id", Integer, ForeignKey("tool.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("rating", Integer, index=True), - Column("comment", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_id", Integer, ForeignKey("tool.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("rating", Integer, index=True), + Column("comment", TEXT)) def upgrade(migrate_engine): diff --git a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0004_repository_tables.py b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0004_repository_tables.py index 536464e39b3..5c439eae6cb 100644 --- a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0004_repository_tables.py +++ b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0004_repository_tables.py @@ -22,28 +22,28 @@ log.addHandler(handler) metadata = MetaData() Repository_table = Table("repository", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("name", TrimmedString(255), index=True), - Column("description", TEXT), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("private", Boolean, default=False), - Column("deleted", Boolean, index=True, default=False)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("name", TrimmedString(255), index=True), + Column("description", TEXT), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("private", Boolean, default=False), + Column("deleted", Boolean, index=True, default=False)) RepositoryRatingAssociation_table = Table("repository_rating_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("repository_id", Integer, ForeignKey("repository.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("rating", Integer, index=True), - Column("comment", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("repository_id", Integer, ForeignKey("repository.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("rating", Integer, index=True), + Column("comment", TEXT)) RepositoryCategoryAssociation_table = Table("repository_category_association", metadata, - Column("id", Integer, primary_key=True), - Column("repository_id", Integer, ForeignKey("repository.id"), index=True), - Column("category_id", Integer, ForeignKey("category.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("repository_id", Integer, ForeignKey("repository.id"), index=True), + Column("category_id", Integer, ForeignKey("category.id"), index=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0005_drop_tool_related_tables.py b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0005_drop_tool_related_tables.py index 028af37486a..df60b0f3358 100644 --- a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0005_drop_tool_related_tables.py +++ b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0005_drop_tool_related_tables.py @@ -102,61 +102,61 @@ def downgrade(migrate_engine): # We've lost all of our data, so downgrading is useless. However, we'll # at least re-create the dropped tables. Event_table = Table('event', metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("state", TrimmedString(255), index=True), - Column("comment", TEXT)) - - Tool_table = Table("tool", metadata, Column("id", Integer, primary_key=True), - Column("guid", TrimmedString(255), index=True, unique=True), - Column("tool_id", TrimmedString(255), index=True), Column("create_time", DateTime, default=now), Column("update_time", DateTime, default=now, onupdate=now), - Column("newer_version_id", Integer, ForeignKey("tool.id"), nullable=True), - Column("name", TrimmedString(255), index=True), - Column("description", TEXT), - Column("user_description", TEXT), - Column("version", TrimmedString(255)), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("external_filename", TEXT), - Column("deleted", Boolean, index=True, default=False), - Column("suite", Boolean, default=False, index=True)) + Column("state", TrimmedString(255), index=True), + Column("comment", TEXT)) + + Tool_table = Table("tool", metadata, + Column("id", Integer, primary_key=True), + Column("guid", TrimmedString(255), index=True, unique=True), + Column("tool_id", TrimmedString(255), index=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("newer_version_id", Integer, ForeignKey("tool.id"), nullable=True), + Column("name", TrimmedString(255), index=True), + Column("description", TEXT), + Column("user_description", TEXT), + Column("version", TrimmedString(255)), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("external_filename", TEXT), + Column("deleted", Boolean, index=True, default=False), + Column("suite", Boolean, default=False, index=True)) ToolCategoryAssociation_table = Table("tool_category_association", metadata, - Column("id", Integer, primary_key=True), - Column("tool_id", Integer, ForeignKey("tool.id"), index=True), - Column("category_id", Integer, ForeignKey("category.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("tool_id", Integer, ForeignKey("tool.id"), index=True), + Column("category_id", Integer, ForeignKey("category.id"), index=True)) ToolEventAssociation_table = Table("tool_event_association", metadata, - Column("id", Integer, primary_key=True), - Column("tool_id", Integer, ForeignKey("tool.id"), index=True), - Column("event_id", Integer, ForeignKey("event.id"), index=True)) + Column("id", Integer, primary_key=True), + Column("tool_id", Integer, ForeignKey("tool.id"), index=True), + Column("event_id", Integer, ForeignKey("event.id"), index=True)) ToolRatingAssociation_table = Table("tool_rating_association", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("tool_id", Integer, ForeignKey("tool.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("rating", Integer, index=True), - Column("comment", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("tool_id", Integer, ForeignKey("tool.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("rating", Integer, index=True), + Column("comment", TEXT)) ToolTagAssociation_table = Table("tool_tag_association", metadata, - Column("id", Integer, primary_key=True), - Column("tool_id", Integer, ForeignKey("tool.id"), index=True), - Column("tag_id", Integer, ForeignKey("tag.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("user_tname", TrimmedString(255), index=True), - Column("value", TrimmedString(255), index=True), - Column("user_value", TrimmedString(255), index=True)) + Column("id", Integer, primary_key=True), + Column("tool_id", Integer, ForeignKey("tool.id"), index=True), + Column("tag_id", Integer, ForeignKey("tag.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("user_tname", TrimmedString(255), index=True), + Column("value", TrimmedString(255), index=True), + Column("user_value", TrimmedString(255), index=True)) ToolAnnotationAssociation_table = Table("tool_annotation_association", metadata, - Column("id", Integer, primary_key=True), - Column("tool_id", Integer, ForeignKey("tool.id"), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("annotation", TEXT, index=True)) + Column("id", Integer, primary_key=True), + Column("tool_id", Integer, ForeignKey("tool.id"), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("annotation", TEXT, index=True)) # Create the event table try: diff --git a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0008_add_repository_metadata_table.py b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0008_add_repository_metadata_table.py index 266402c4555..e471022f3b2 100644 --- a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0008_add_repository_metadata_table.py +++ b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0008_add_repository_metadata_table.py @@ -22,12 +22,12 @@ log.addHandler(handler) metadata = MetaData() RepositoryMetadata_table = Table("repository_metadata", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("repository_id", Integer, ForeignKey("repository.id"), index=True), - Column("changeset_revision", TrimmedString(255), index=True), - Column("metadata", JSONType, nullable=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("repository_id", Integer, ForeignKey("repository.id"), index=True), + Column("changeset_revision", TrimmedString(255), index=True), + Column("metadata", JSONType, nullable=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0013_add_review_tables.py b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0013_add_review_tables.py index 6bb1d48ee27..ee7120772dc 100644 --- a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0013_add_review_tables.py +++ b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0013_add_review_tables.py @@ -54,32 +54,32 @@ def boolean_false(migrate_engine): RepositoryReview_table = Table("repository_review", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=NOW), - Column("update_time", DateTime, default=NOW, onupdate=NOW), - Column("repository_id", Integer, ForeignKey("repository.id"), index=True), - Column("changeset_revision", TrimmedString(255), index=True), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), - Column("approved", TrimmedString(255)), - Column("rating", Integer, index=True), - Column("deleted", Boolean, index=True, default=False)) - -ComponentReview_table = Table("component_review", metadata, Column("id", Integer, primary_key=True), Column("create_time", DateTime, default=NOW), Column("update_time", DateTime, default=NOW, onupdate=NOW), - Column("repository_review_id", Integer, ForeignKey("repository_review.id"), index=True), - Column("component_id", Integer, ForeignKey("component.id"), index=True), - Column("comment", TEXT), - Column("private", Boolean, default=False), + Column("repository_id", Integer, ForeignKey("repository.id"), index=True), + Column("changeset_revision", TrimmedString(255), index=True), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True, nullable=False), Column("approved", TrimmedString(255)), - Column("rating", Integer), + Column("rating", Integer, index=True), Column("deleted", Boolean, index=True, default=False)) +ComponentReview_table = Table("component_review", metadata, + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=NOW), + Column("update_time", DateTime, default=NOW, onupdate=NOW), + Column("repository_review_id", Integer, ForeignKey("repository_review.id"), index=True), + Column("component_id", Integer, ForeignKey("component.id"), index=True), + Column("comment", TEXT), + Column("private", Boolean, default=False), + Column("approved", TrimmedString(255)), + Column("rating", Integer), + Column("deleted", Boolean, index=True, default=False)) + Component_table = Table("component", metadata, - Column("id", Integer, primary_key=True), - Column("name", TrimmedString(255)), - Column("description", TEXT)) + Column("id", Integer, primary_key=True), + Column("name", TrimmedString(255)), + Column("description", TEXT)) def upgrade(migrate_engine): @@ -105,11 +105,11 @@ def upgrade(migrate_engine): # Insert default Component values. names = ['Data types', 'Functional tests', 'README', 'Tool dependencies', 'Tools', 'Workflows'] descriptions = ['Proprietary datatypes defined in a file named datatypes_conf.xml included in the repository', - 'Functional tests defined in each tool config included in the repository along with test data files', - 'An appropriately named file included in the repository that contains installation information or 3rd-party tool dependency licensing information', - 'Tool dependencies defined in a file named tool_dependencies.xml included in the repository for contained tools', - 'Galaxy tools included in the repository', - 'Exported Galaxy workflows included in the repository'] + 'Functional tests defined in each tool config included in the repository along with test data files', + 'An appropriately named file included in the repository that contains installation information or 3rd-party tool dependency licensing information', + 'Tool dependencies defined in a file named tool_dependencies.xml included in the repository for contained tools', + 'Galaxy tools included in the repository', + 'Exported Galaxy workflows included in the repository'] for tup in zip(names, descriptions): name, description = tup cmd = "INSERT INTO component VALUES (" diff --git a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0015_add_api_keys_table.py b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0015_add_api_keys_table.py index d69ae8572a0..5e871d232e2 100644 --- a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0015_add_api_keys_table.py +++ b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0015_add_api_keys_table.py @@ -23,10 +23,10 @@ now = datetime.datetime.utcnow metadata = MetaData() APIKeys_table = Table("api_keys", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), - Column("key", TrimmedString(32), index=True, unique=True)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("user_id", Integer, ForeignKey("galaxy_user.id"), index=True), + Column("key", TrimmedString(32), index=True, unique=True)) def upgrade(migrate_engine): diff --git a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0019_add_skip_tool_test_table_and_test_install_error_column.py b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0019_add_skip_tool_test_table_and_test_install_error_column.py index 869feacfda4..66887751f39 100644 --- a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0019_add_skip_tool_test_table_and_test_install_error_column.py +++ b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0019_add_skip_tool_test_table_and_test_install_error_column.py @@ -24,12 +24,12 @@ now = datetime.datetime.utcnow metadata = MetaData() SkipToolTest_table = Table("skip_tool_test", metadata, - Column("id", Integer, primary_key=True), - Column("create_time", DateTime, default=now), - Column("update_time", DateTime, default=now, onupdate=now), - Column("repository_metadata_id", Integer, ForeignKey("repository_metadata.id"), index=True), - Column("initial_changeset_revision", TrimmedString(255), index=True), - Column("comment", TEXT)) + Column("id", Integer, primary_key=True), + Column("create_time", DateTime, default=now), + Column("update_time", DateTime, default=now, onupdate=now), + Column("repository_metadata_id", Integer, ForeignKey("repository_metadata.id"), index=True), + Column("initial_changeset_revision", TrimmedString(255), index=True), + Column("comment", TEXT)) def upgrade(migrate_engine): diff --git a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0022_add_repository_admin_roles.py b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0022_add_repository_admin_roles.py index cd623d67be2..fa918b6739d 100644 --- a/lib/galaxy/webapps/tool_shed/model/migrate/versions/0022_add_repository_admin_roles.py +++ b/lib/galaxy/webapps/tool_shed/model/migrate/versions/0022_add_repository_admin_roles.py @@ -24,11 +24,11 @@ NOW = datetime.datetime.utcnow ROLE_TYPE = 'system' RepositoryRoleAssociation_table = Table("repository_role_association", metadata, - Column("id", Integer, primary_key=True), - Column("repository_id", Integer, ForeignKey("repository.id"), index=True), - Column("role_id", Integer, ForeignKey("role.id"), index=True), - Column("create_time", DateTime, default=NOW), - Column("update_time", DateTime, default=NOW, onupdate=NOW)) + Column("id", Integer, primary_key=True), + Column("repository_id", Integer, ForeignKey("repository.id"), index=True), + Column("role_id", Integer, ForeignKey("role.id"), index=True), + Column("create_time", DateTime, default=NOW), + Column("update_time", DateTime, default=NOW, onupdate=NOW)) def nextval(migrate_engine, table, col='id'): diff --git a/lib/galaxy/webapps/tool_shed/search/repo_search.py b/lib/galaxy/webapps/tool_shed/search/repo_search.py index 618eadc6f0c..6ba3de04bc4 100644 --- a/lib/galaxy/webapps/tool_shed/search/repo_search.py +++ b/lib/galaxy/webapps/tool_shed/search/repo_search.py @@ -73,11 +73,11 @@ class RepoSearch(object): # http://en.wikipedia.org/wiki/Okapi_BM25 # __Basically__ the higher number the bigger weight. repo_weighting = RepoWeighting(field_B={'name_B' : boosts.repo_name_boost, - 'description_B' : boosts.repo_description_boost, - 'long_description_B' : boosts.repo_long_description_boost, - 'homepage_url_B' : boosts.repo_homepage_url_boost, - 'remote_repository_url_B' : boosts.repo_remote_repository_url_boost, - 'repo_owner_username' : boosts.repo_owner_username_boost}) + 'description_B' : boosts.repo_description_boost, + 'long_description_B' : boosts.repo_long_description_boost, + 'homepage_url_B' : boosts.repo_homepage_url_boost, + 'remote_repository_url_B' : boosts.repo_remote_repository_url_boost, + 'repo_owner_username' : boosts.repo_owner_username_boost}) searcher = index.searcher(weighting=repo_weighting) diff --git a/lib/galaxy/webapps/tool_shed/security/__init__.py b/lib/galaxy/webapps/tool_shed/security/__init__.py index e9573087730..f67168e6a64 100644 --- a/lib/galaxy/webapps/tool_shed/security/__init__.py +++ b/lib/galaxy/webapps/tool_shed/security/__init__.py @@ -135,7 +135,7 @@ class CommunityRBACAgent(RBACAgent): def get_private_user_role(self, user, auto_create=False): role = self.sa_session.query(self.model.Role) \ .filter(and_(self.model.Role.table.c.name == user.email, - self.model.Role.table.c.type == self.model.Role.types.PRIVATE)) \ + self.model.Role.table.c.type == self.model.Role.types.PRIVATE)) \ .first() if not role: if auto_create: @@ -147,7 +147,7 @@ class CommunityRBACAgent(RBACAgent): def get_repository_reviewer_role(self): return self.sa_session.query(self.model.Role) \ .filter(and_(self.model.Role.table.c.name == 'Repository Reviewer', - self.model.Role.table.c.type == self.model.Role.types.SYSTEM)) \ + self.model.Role.table.c.type == self.model.Role.types.SYSTEM)) \ .first() def set_entity_group_associations(self, groups=None, users=None, roles=None, delete_existing_assocs=True): @@ -241,7 +241,7 @@ class CommunityRBACAgent(RBACAgent): # A member of the IUC is authorized to create new repositories that are owned by another user. iuc_group = self.sa_session.query(self.model.Group) \ .filter(and_(self.model.Group.table.c.name == 'Intergalactic Utilities Commission', - self.model.Group.table.c.deleted == false())) \ + self.model.Group.table.c.deleted == false())) \ .first() if iuc_group is not None: for uga in iuc_group.users: diff --git a/lib/galaxy/workflow/extract.py b/lib/galaxy/workflow/extract.py index b510536766c..f113a9f3146 100644 --- a/lib/galaxy/workflow/extract.py +++ b/lib/galaxy/workflow/extract.py @@ -41,7 +41,7 @@ def extract_workflow(trans, user, history=None, job_ids=None, dataset_ids=None, for j, index in enumerate(steps_at_level): step = steps[index] step.position = dict(top=(base_pos + 120 * j), - left=(base_pos + 220 * i)) + left=(base_pos + 220 * i)) # Store it stored = model.StoredWorkflow() stored.user = user diff --git a/lib/galaxy/workflow/render.py b/lib/galaxy/workflow/render.py index 10c02e97022..82d97bf2e26 100644 --- a/lib/galaxy/workflow/render.py +++ b/lib/galaxy/workflow/render.py @@ -101,10 +101,10 @@ class WorkflowCanvas(object): out_conn_pos = self.out_pos[out_pos_index][key] adjusted = (out_conn_pos[0] + self.widths[output_dict['id']], out_conn_pos[1]) self.text.append(svgwrite.shapes.Circle(center=(out_conn_pos[0] + self.widths[output_dict['id']] - MARGIN, - out_conn_pos[1] - MARGIN), - r=5, - fill="#ffffff", - stroke="#000000")) + out_conn_pos[1] - MARGIN), + r=5, + fill="#ffffff", + stroke="#000000")) marker = self.canvas.marker(overflow='visible', refX="0", refY="5", viewBox="0 0 10 5", @@ -115,8 +115,8 @@ class WorkflowCanvas(object): marker.add(self.canvas.path(d="M 0 0 L 10 5 L 0 10 z")) self.canvas.defs.add(marker) conn = svgwrite.shapes.Line((adjusted[0], adjusted[1] - MARGIN), - (in_coords[0] - 10, in_coords[1]), - stroke="#000000") + (in_coords[0] - 10, in_coords[1]), + stroke="#000000") conn['marker-end'] = marker.get_funciri() self.connectors.append(conn) diff --git a/lib/tool_shed/capsule/capsule_manager.py b/lib/tool_shed/capsule/capsule_manager.py index 4dba49e830b..422d663c4a9 100644 --- a/lib/tool_shed/capsule/capsule_manager.py +++ b/lib/tool_shed/capsule/capsule_manager.py @@ -59,8 +59,8 @@ class ExportRepositoryManager(object): if self.repository: repository_metadata = \ metadata_util.get_current_repository_metadata_for_changeset_revision(self.app, - self.repository, - self.changeset_revision) + self.repository, + self.changeset_revision) if repository_metadata: ordered_repository_ids = [self.repository_id] ordered_repositories = [self.repository] @@ -73,19 +73,19 @@ class ExportRepositoryManager(object): repositories_archive = tarfile.open(repositories_archive_filename, "w:%s" % self.file_type) exported_repository_registry = ExportedRepositoryRegistry() for repository_id, ordered_repository, ordered_changeset_revision in zip(ordered_repository_ids, - ordered_repositories, - ordered_changeset_revisions): + ordered_repositories, + ordered_changeset_revisions): with self.__tempdir(prefix='tmp-toolshed-export-er') as work_dir: repository_archive, error_message = self.generate_repository_archive(ordered_repository, - ordered_changeset_revision, - work_dir) + ordered_changeset_revision, + work_dir) if error_message: error_messages = '%s %s' % (error_messages, error_message) else: archive_name = str(os.path.basename(repository_archive.name)) repositories_archive.add(repository_archive.name, arcname=archive_name) attributes, sub_elements = self.get_repository_attributes_and_sub_elements(ordered_repository, - archive_name) + archive_name) elem = xml_util.create_element('repository', attributes=attributes, sub_elements=sub_elements) exported_repository_registry.exported_repository_elems.append(elem) # Keep information about the export in a file named export_info.xml in the archive. @@ -135,9 +135,9 @@ class ExportRepositoryManager(object): file_type_str = basic_util.get_file_type_str(changeset_revision, self.file_type) file_name = '%s-%s' % (repository.name, file_type_str) return_code, error_message = hg_util.archive_repository_revision(self.app, - repository, - work_dir, - changeset_revision) + repository, + work_dir, + changeset_revision) if return_code: return None, error_message repository_archive_name = os.path.join(work_dir, file_name) @@ -180,16 +180,16 @@ class ExportRepositoryManager(object): file_type_str = basic_util.get_file_type_str(self.changeset_revision, self.file_type) if self.export_repository_dependencies: repositories_archive_filename = '%s_%s_%s_%s_%s' % (self.capsule_with_dependencies_filename, - tool_shed, - str(self.repository.name), - str(self.repository.user.username), - file_type_str) + tool_shed, + str(self.repository.name), + str(self.repository.user.username), + file_type_str) else: repositories_archive_filename = '%s_%s_%s_%s_%s' % (self.capsule_filename, - tool_shed, - str(self.repository.name), - str(self.repository.user.username), - file_type_str) + tool_shed, + str(self.repository.name), + str(self.repository.user.username), + file_type_str) if use_tmp_archive_dir: tmp_archive_dir = tempfile.mkdtemp(prefix="tmp-toolshed-arcdir") repositories_archive_filename = os.path.join(tmp_archive_dir, repositories_archive_filename) @@ -207,8 +207,8 @@ class ExportRepositoryManager(object): repository_util.get_repo_info_tuple_contents(repo_info_tup) repository = repository_util.get_repository_by_name_and_owner(self.app, repository_name, repository_owner) repository_metadata = metadata_util.get_current_repository_metadata_for_changeset_revision(self.app, - repository, - changeset_revision) + repository, + changeset_revision) if repository_metadata: return repository, repository_metadata.changeset_revision return None, None @@ -234,8 +234,8 @@ class ExportRepositoryManager(object): rdim = RepositoryDependencyInstallManager(self.app) repository = repository_util.get_repository_in_tool_shed(self.app, self.repository_id) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, - self.repository_id, - self.changeset_revision) + self.repository_id, + self.changeset_revision) # Get a dictionary of all repositories upon which the contents of the current # repository_metadata record depend. toolshed_base_url = str(web.url_for('/', qualified=True)).rstrip('/') @@ -245,20 +245,20 @@ class ExportRepositoryManager(object): rb.set_filter_dependencies_needed_for_compiling(False) repository_dependencies = rb.get_repository_dependencies_for_changeset_revision() repo = hg_util.get_repo_for_repository(self.app, - repository=self.repository, - repo_path=None, - create=False) + repository=self.repository, + repo_path=None, + create=False) ctx = hg_util.get_changectx_for_changeset(repo, self.changeset_revision) repo_info_dict = {} # Cast unicode to string. repo_info_dict[str(repository.name)] = (str(self.repository.description), - common_util.generate_clone_url_for_repository_in_tool_shed(self.user, - self.repository), - str(self.changeset_revision), - str(ctx.rev()), - str(self.repository.user.username), - repository_dependencies, - None) + common_util.generate_clone_url_for_repository_in_tool_shed(self.user, + self.repository), + str(self.changeset_revision), + str(ctx.rev()), + str(self.repository.user.username), + repository_dependencies, + None) all_required_repo_info_dict = rdim.get_required_repo_info_dicts(self.tool_shed_url, [repo_info_dict]) all_repo_info_dicts = all_required_repo_info_dict.get('all_repo_info_dicts', []) return all_repo_info_dicts @@ -319,13 +319,13 @@ class ExportRepositoryManager(object): # repository_ids, each of which is contained in the received list of repository_ids and whose associated # repository must be imported prior to the repository associated with the repository_id key. prior_import_required_dict = repository_util.get_prior_import_or_install_required_dict(self.app, - repository_ids, - repo_info_dicts) + repository_ids, + repo_info_dicts) processed_repository_ids = [] # Process the list of repository dependencies defined for the primary exported repository. while len(processed_repository_ids) != len(prior_import_required_dict.keys()): repository_id = suc.get_next_prior_import_or_install_required_dict_entry(prior_import_required_dict, - processed_repository_ids) + processed_repository_ids) if repository_id == self.repository_id: # Append self.repository_id without processing it since it must be returned last in the order. # It will be processed below after all dependencies are processed. @@ -339,8 +339,8 @@ class ExportRepositoryManager(object): # Import the associated repository dependency first. prior_repo_info_dict = \ self.get_repo_info_dict_for_import(prior_import_required_id, - repository_ids, - repo_info_dicts) + repository_ids, + repo_info_dicts) prior_repository, prior_import_changeset_revision = \ self.get_components_from_repo_info_dict(prior_repo_info_dict) if prior_repository and prior_import_changeset_revision: @@ -398,8 +398,8 @@ class ImportRepositoryManager(object): # Do not allow the repository to be automatically installed if population resulted in errors. tip_changeset_revision = repository.tip(self.app) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, - self.app.security.encode_id(repository.id), - tip_changeset_revision) + self.app.security.encode_id(repository.id), + tip_changeset_revision) if repository_metadata: if repository_metadata.downloadable: repository_metadata.downloadable = False @@ -463,12 +463,12 @@ class ImportRepositoryManager(object): category_ids.append(self.app.security.encode_id(category.id)) # Create the repository record in the database. repository, create_message = repository_util.create_repository(self.app, - name, - type, - description, - long_description, - user_id=user_id, - category_ids=category_ids) + name, + type, + description, + long_description, + user_id=user_id, + category_ids=category_ids) if create_message: results_message += create_message # Populate the new repository with the contents of exported repository archive. @@ -555,8 +555,8 @@ class ImportRepositoryManager(object): dependent_downloadable_revisions = [] for repository in sa_session.query(self.app.model.Repository) \ .filter(and_(self.app.model.Repository.table.c.id != rm_repository.id, - self.app.model.Repository.table.c.deleted == false(), - self.app.model.Repository.table.c.deprecated == false())): + self.app.model.Repository.table.c.deleted == false(), + self.app.model.Repository.table.c.deprecated == false())): downloadable_revisions = repository.downloadable_revisions if downloadable_revisions: for downloadable_revision in downloadable_revisions: @@ -587,13 +587,13 @@ class ImportRepositoryManager(object): # record, so updates must be necessary. defined_repository = repository_util.get_repository_by_name_and_owner(self.app, name, owner) defined_repo = hg_util.get_repo_for_repository(self.app, - repository=defined_repository, - repo_path=None, - create=False) + repository=defined_repository, + repo_path=None, + create=False) updated_changeset_revision = \ metadata_util.get_next_downloadable_changeset_revision(defined_repository, - defined_repo, - changeset_revision) + defined_repo, + changeset_revision) if updated_changeset_revision == rm_changeset_revision and updated_changeset_revision != changeset_revision: dependent_downloadable_revisions.append(downloadable_revision) return dependent_downloadable_revisions @@ -682,8 +682,8 @@ class ImportRepositoryManager(object): repository_status_info_dicts = [] for repository_info_dict in repository_info_dicts: repository = repository_util.get_repository_by_name_and_owner(self.app, - repository_info_dict['name'], - repository_info_dict['owner']) + repository_info_dict['name'], + repository_info_dict['owner']) if repository: if repository.deleted: repository_info_dict['status'] = 'Exists, deleted' @@ -697,7 +697,7 @@ class ImportRepositoryManager(object): if self.user_is_admin: repository_info_dict['status'] = None elif self.app.security_agent.user_can_import_repository_archive(self.user, - repository_info_dict['owner']): + repository_info_dict['owner']): repository_info_dict['status'] = None else: repository_info_dict['status'] = 'Not authorized to import' @@ -760,25 +760,25 @@ class ImportRepositoryManager(object): undesirable_dirs_removed = 0 ok, error_message, files_to_remove, content_alert_str, undesirable_dirs_removed, undesirable_files_removed = \ commit_util.handle_directory_changes(self.app, - self.host, - self.user.username, - repository, - full_path, - filenames_in_archive, - remove_repo_files_not_in_tar, - new_repo_alert, - commit_message, - undesirable_dirs_removed, - undesirable_files_removed) + self.host, + self.user.username, + repository, + full_path, + filenames_in_archive, + remove_repo_files_not_in_tar, + new_repo_alert, + commit_message, + undesirable_dirs_removed, + undesirable_files_removed) if error_message: results_dict['ok'] = False results_dict['error_message'] += error_message try: rmm = repository_metadata_manager.RepositoryMetadataManager(app=self.app, - user=self.user, - repository=repository) + user=self.user, + repository=repository) status, error_message = rmm.set_repository_metadata_due_to_new_tip(self.host, - content_alert_str=content_alert_str) + content_alert_str=content_alert_str) if error_message: results_dict['ok'] = False results_dict['error_message'] += error_message @@ -803,11 +803,11 @@ class ImportRepositoryManager(object): url = kwd.get('url', '') uploaded_file = None return_dict = dict(error_message='', - encoded_file_path=None, - status='ok', - tar_archive=None, - uploaded_file=None, - capsule_file_name=None) + encoded_file_path=None, + status='ok', + tar_archive=None, + uploaded_file=None, + capsule_file_name=None) if url: valid_url = True try: diff --git a/lib/tool_shed/dependencies/attribute_handlers.py b/lib/tool_shed/dependencies/attribute_handlers.py index 914837a8241..b63c648f9bf 100644 --- a/lib/tool_shed/dependencies/attribute_handlers.py +++ b/lib/tool_shed/dependencies/attribute_handlers.py @@ -110,9 +110,9 @@ class RepositoryDependencyAttributeHandler(object): repository = repository_util.get_repository_by_name_and_owner(self.app, name, owner) if repository: repo = hg_util.get_repo_for_repository(self.app, - repository=repository, - repo_path=None, - create=False) + repository=repository, + repo_path=None, + create=False) lastest_installable_changeset_revision = \ metadata_util.get_latest_downloadable_changeset_revision(self.app, repository, repo) if lastest_installable_changeset_revision != hg_util.INITIAL_CHANGELOG_HASH: diff --git a/lib/tool_shed/dependencies/repository/relation_builder.py b/lib/tool_shed/dependencies/repository/relation_builder.py index 829156785c8..27b94ba1e88 100644 --- a/lib/tool_shed/dependencies/repository/relation_builder.py +++ b/lib/tool_shed/dependencies/repository/relation_builder.py @@ -81,9 +81,9 @@ class RelationBuilder(object): # Get the changeset revision to which the current value of required_repository_changeset_revision # should be updated if it's not current. text = metadata_util.get_updated_changeset_revisions(self.app, - name=str(self.repository.name), - owner=str(self.repository.user.username), - changeset_revision=current_changeset_revision) + name=str(self.repository.name), + owner=str(self.repository.user.username), + changeset_revision=current_changeset_revision) if text: valid_changeset_revisions = listify(text) if current_changeset_revision not in valid_changeset_revisions: @@ -112,11 +112,11 @@ class RelationBuilder(object): self.get_prior_installation_required_and_only_if_compiling_contained_td() # Create a key with the value of prior_installation_required defaulted to False. key = container_util.generate_repository_dependencies_key_for_repository(self.tool_shed_url, - self.repository.name, - self.repository.user.username, - self.repository_metadata.changeset_revision, - prior_installation_required, - only_if_compiling_contained_td) + self.repository.name, + self.repository.user.username, + self.repository_metadata.changeset_revision, + prior_installation_required, + only_if_compiling_contained_td) return key def get_repository_dependencies_for_changeset_revision(self): @@ -143,7 +143,7 @@ class RelationBuilder(object): # the various repository dependency objects for this round of processing. current_repository_key_rd_dicts = \ self.populate_repository_dependency_objects_for_processing(current_repository_key, - repository_dependencies_dict) + repository_dependencies_dict) if current_repository_key: if current_repository_key_rd_dicts: # There should be only a single current_repository_key_rd_dict in this list. @@ -165,11 +165,11 @@ class RelationBuilder(object): tool_shed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = \ common_util.parse_repository_dependency_tuple(repository_dependency) return container_util.generate_repository_dependencies_key_for_repository(tool_shed, - name, - owner, - changeset_revision, - prior_installation_required, - only_if_compiling_contained_td) + name, + owner, + changeset_revision, + prior_installation_required, + only_if_compiling_contained_td) def get_updated_changeset_revisions_for_repository_dependencies(self, key_rd_dicts): updated_key_rd_dicts = [] @@ -186,8 +186,8 @@ class RelationBuilder(object): repository_id = self.app.security.encode_id(repository.id) repository_metadata = \ metadata_util.get_repository_metadata_by_repository_id_changeset_revision(self.app, - repository_id, - rd_changeset_revision) + repository_id, + rd_changeset_revision) if repository_metadata: # The repository changeset_revision is installable, so no updates are available. new_key_rd_dict = {} @@ -200,17 +200,17 @@ class RelationBuilder(object): if changeset_revision != rd_changeset_revision: repository_metadata = \ metadata_util.get_repository_metadata_by_repository_id_changeset_revision(self.app, - repository_id, - changeset_revision) + repository_id, + changeset_revision) if repository_metadata: new_key_rd_dict = {} new_key_rd_dict[key] = \ [rd_toolshed, - rd_name, - rd_owner, - repository_metadata.changeset_revision, - rd_prior_installation_required, - rd_only_if_compiling_contained_td] + rd_name, + rd_owner, + repository_metadata.changeset_revision, + rd_prior_installation_required, + rd_only_if_compiling_contained_td] # We have the updated changeset revision. updated_key_rd_dicts.append(new_key_rd_dict) else: @@ -238,8 +238,8 @@ class RelationBuilder(object): all_repository_dependencies_root_key = self.all_repository_dependencies['root_key'] repository_dependency_as_key = self.get_repository_dependency_as_key(repository_dependency) self.update_circular_repository_dependencies(repository_key, - repository_dependency, - self.all_repository_dependencies[repository_dependency_as_key]) + repository_dependency, + self.all_repository_dependencies[repository_dependency_as_key]) if all_repository_dependencies_root_key != repository_dependency_as_key: self.all_repository_dependencies[repository_key] = [repository_dependency] @@ -265,8 +265,8 @@ class RelationBuilder(object): repository_id = self.app.security.encode_id(required_repository.id) required_repository_metadata = \ metadata_util.get_repository_metadata_by_repository_id_changeset_revision(self.app, - repository_id, - changeset_revision) + repository_id, + changeset_revision) self.repository_metadata = required_repository_metadata if required_repository_metadata: # The required_repository_metadata changeset_revision is installable. diff --git a/lib/tool_shed/dependencies/tool/tag_attribute_handler.py b/lib/tool_shed/dependencies/tool/tag_attribute_handler.py index 144a7602fbf..7bac8de9add 100644 --- a/lib/tool_shed/dependencies/tool/tag_attribute_handler.py +++ b/lib/tool_shed/dependencies/tool/tag_attribute_handler.py @@ -27,9 +27,9 @@ class TagAttributeHandler(object): if sub_elem.tag == 'repository': altered, new_sub_elem, error_message = \ self.process_repository_tag_set(parent_elem=elem, - elem_index=sub_index, - elem=sub_elem, - message=message) + elem_index=sub_index, + elem=sub_elem, + message=message) if error_message and error_message not in message: message += error_message if altered: @@ -52,8 +52,8 @@ class TagAttributeHandler(object): error_message = '' if sub_elem.tag == 'package': altered, new_sub_elem, error_message = self.process_package_tag_set(elem=sub_elem, - message=message, - skip_actions_tags=skip_actions_tags) + message=message, + skip_actions_tags=skip_actions_tags) elif sub_elem.tag == 'action': # # @@ -61,13 +61,13 @@ class TagAttributeHandler(object): # # altered, new_sub_elem, error_message = self.process_action_tag_set(elem=sub_elem, - message=message) + message=message) else: # Inspect the sub elements of elem to locate all tags and # populate them with toolshed and changeset_revision attributes if necessary. altered, new_sub_elem, error_message = self.rdd.handle_sub_elem(parent_elem=elem, - elem_index=sub_index, - elem=sub_elem) + elem_index=sub_index, + elem=sub_elem) if error_message and error_message not in message: message += error_message if altered: @@ -97,8 +97,8 @@ class TagAttributeHandler(object): continue altered, new_sub_elem, error_message = \ self.process_actions_tag_set(elem=sub_elem, - message=message, - skip_actions_tags=skip_actions_tags) + message=message, + skip_actions_tags=skip_actions_tags) if error_message and error_message not in message: message += error_message if altered: @@ -119,8 +119,8 @@ class TagAttributeHandler(object): # altered, new_elem, error_message = \ self.process_package_tag_set(elem=elem, - message=error_message, - skip_actions_tags=skip_actions_tags) + message=error_message, + skip_actions_tags=skip_actions_tags) if altered: if not self.altered: self.altered = True @@ -139,13 +139,13 @@ class TagAttributeHandler(object): if sub_elem.tag == 'actions_group': altered, new_sub_elem, error_message = \ self.process_actions_group_tag_set(elem=sub_elem, - message=message, - skip_actions_tags=skip_actions_tags) + message=message, + skip_actions_tags=skip_actions_tags) elif sub_elem.tag == 'actions': altered, new_sub_elem, error_message = \ self.process_actions_tag_set(elem=sub_elem, - message=message, - skip_actions_tags=skip_actions_tags) + message=message, + skip_actions_tags=skip_actions_tags) else: package_name = elem.get('name', '') package_version = elem.get('version', '') @@ -172,14 +172,14 @@ class TagAttributeHandler(object): if sub_elem.tag == 'install': altered, new_sub_elem, error_message = \ self.process_install_tag_set(elem=sub_elem, - message=message, - skip_actions_tags=skip_actions_tags) + message=message, + skip_actions_tags=skip_actions_tags) elif sub_elem.tag == 'repository': altered, new_sub_elem, error_message = \ self.process_repository_tag_set(parent_elem=elem, - elem_index=sub_index, - elem=sub_elem, - message=message) + elem_index=sub_index, + elem=sub_elem, + message=message) if error_message and error_message not in message: message += error_message if altered: @@ -193,8 +193,8 @@ class TagAttributeHandler(object): def process_repository_tag_set(self, parent_elem, elem_index, elem, message): # We have a complex repository dependency. altered, new_elem, error_message = self.rdd.handle_complex_dependency_elem(parent_elem=parent_elem, - elem_index=elem_index, - elem=elem) + elem_index=elem_index, + elem=elem) if error_message and error_message not in message: message += error_message if altered: 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 cfb73b9b035..859c5e8159c 100644 --- a/lib/tool_shed/galaxy_install/datatypes/custom_datatype_manager.py +++ b/lib/tool_shed/galaxy_install/datatypes/custom_datatype_manager.py @@ -13,7 +13,7 @@ class CustomDatatypeLoader(object): self.app = app def alter_config_and_load_prorietary_datatypes(self, datatypes_config, relative_install_dir, - deactivate=False, override=True): + deactivate=False, override=True): """ Parse a custom datatypes config (a datatypes_conf.xml file included in an installed tool shed repository) and add information to appropriate element attributes that will @@ -32,7 +32,7 @@ class CustomDatatypeLoader(object): # We have valid XML, but not a valid custom datatypes definition. return None, None converter_path, display_path = self.get_converter_and_display_paths(registration, - relative_install_dir) + relative_install_dir) if converter_path: # Path to datatype converters registration.attrib['proprietary_converter_path'] = converter_path @@ -80,20 +80,20 @@ class CustomDatatypeLoader(object): elem.attrib['proprietary_datatype_module'] = proprietary_datatype_module # Load custom datatypes self.app.datatypes_registry.load_datatypes(root_dir=self.app.config.root, - config=datatypes_config_root, - deactivate=deactivate, - override=override) + config=datatypes_config_root, + deactivate=deactivate, + override=override) return converter_path, display_path def create_repository_dict_for_proprietary_datatypes(self, tool_shed, name, owner, installed_changeset_revision, - tool_dicts, converter_path=None, display_path=None): + tool_dicts, converter_path=None, display_path=None): return dict(tool_shed=tool_shed, - repository_name=name, - repository_owner=owner, - installed_changeset_revision=installed_changeset_revision, - tool_dicts=tool_dicts, - converter_path=converter_path, - display_path=display_path) + repository_name=name, + repository_owner=owner, + installed_changeset_revision=installed_changeset_revision, + tool_dicts=tool_dicts, + converter_path=converter_path, + display_path=display_path) def get_converter_and_display_paths(self, registration_elem, relative_install_dir): """ @@ -144,8 +144,8 @@ class CustomDatatypeLoader(object): def load_installed_datatype_converters(self, installed_repository_dict, deactivate=False): """Load or deactivate proprietary datatype converters.""" self.app.datatypes_registry.load_datatype_converters(self.app.toolbox, - installed_repository_dict=installed_repository_dict, - deactivate=deactivate) + installed_repository_dict=installed_repository_dict, + deactivate=deactivate) def load_installed_datatypes(self, repository, relative_install_dir, deactivate=False): """ @@ -158,21 +158,21 @@ class CustomDatatypeLoader(object): if datatypes_config: converter_path, display_path = \ self.alter_config_and_load_prorietary_datatypes(datatypes_config, - relative_install_dir, - deactivate=deactivate) + relative_install_dir, + deactivate=deactivate) if converter_path or display_path: # Create a dictionary of tool shed repository related information. repository_dict = \ self.create_repository_dict_for_proprietary_datatypes(tool_shed=repository.tool_shed, - name=repository.name, - owner=repository.owner, - installed_changeset_revision=repository.installed_changeset_revision, - tool_dicts=metadata.get('tools', []), - converter_path=converter_path, - display_path=display_path) + name=repository.name, + owner=repository.owner, + installed_changeset_revision=repository.installed_changeset_revision, + tool_dicts=metadata.get('tools', []), + converter_path=converter_path, + display_path=display_path) return repository_dict def load_installed_display_applications(self, installed_repository_dict, deactivate=False): """Load or deactivate custom datatype display applications.""" self.app.datatypes_registry.load_display_applications(self.app, installed_repository_dict=installed_repository_dict, - deactivate=deactivate) + deactivate=deactivate) diff --git a/lib/tool_shed/galaxy_install/dependency_display.py b/lib/tool_shed/galaxy_install/dependency_display.py index 5437078fb3e..2ab5f97b706 100644 --- a/lib/tool_shed/galaxy_install/dependency_display.py +++ b/lib/tool_shed/galaxy_install/dependency_display.py @@ -42,11 +42,11 @@ class DependencyDisplayer(object): else: root_dir = '' install_dir = os.path.join(root_dir, - dependency_name, - version, - repository_owner, - repository_name, - changeset_revision) + dependency_name, + version, + repository_owner, + repository_name, + changeset_revision) requirements_dict['install_dir'] = install_dir tool_dependencies[dependency_key] = requirements_dict return tool_dependencies @@ -199,9 +199,9 @@ class DependencyDisplayer(object): version = None type = td_info_dict['type'] tool_dependency = tool_dependency_util.get_tool_dependency_by_name_type_repository(self.app, - repository, - name, - type) + repository, + name, + type) if tool_dependency: td_info_dict['repository_id'] = repository.id td_info_dict['tool_dependency_id'] = tool_dependency.id @@ -220,10 +220,10 @@ class DependencyDisplayer(object): version = val['version'] type = val['type'] tool_dependency = tool_dependency_util.get_tool_dependency_by_name_version_type_repository(self.app, - repository, - name, - version, - type) + repository, + name, + version, + type) if tool_dependency: val['repository_id'] = repository.id val['tool_dependency_id'] = tool_dependency.id @@ -251,14 +251,14 @@ class DependencyDisplayer(object): dependencies entries into a single container and return it for display. """ new_containers_dict = dict(readme_files=None, - datatypes=None, - missing_repository_dependencies=None, - repository_dependencies=None, - missing_tool_dependencies=None, - tool_dependencies=None, - invalid_tools=None, - valid_tools=None, - workflows=None) + datatypes=None, + missing_repository_dependencies=None, + repository_dependencies=None, + missing_tool_dependencies=None, + tool_dependencies=None, + invalid_tools=None, + valid_tools=None, + workflows=None) if containers_dicts: lock = threading.Lock() lock.acquire(True) @@ -273,14 +273,14 @@ class DependencyDisplayer(object): if old_container_repository_dependencies_root: if repository_dependencies_root_folder is None: repository_dependencies_root_folder = utility_container_manager.Folder(id=folder_id, - key='root', - label='root', - parent=None) + key='root', + label='root', + parent=None) folder_id += 1 repository_dependencies_folder = utility_container_manager.Folder(id=folder_id, - key='merged', - label='Repository dependencies', - parent=repository_dependencies_root_folder) + key='merged', + label='Repository dependencies', + parent=repository_dependencies_root_folder) folder_id += 1 # The old_container_repository_dependencies_root will be a root folder containing a single sub_folder. old_container_repository_dependencies_folder = old_container_repository_dependencies_root.folders[0] @@ -299,14 +299,14 @@ class DependencyDisplayer(object): if old_container_tool_dependencies_root: if tool_dependencies_root_folder is None: tool_dependencies_root_folder = utility_container_manager.Folder(id=folder_id, - key='root', - label='root', - parent=None) + key='root', + label='root', + parent=None) folder_id += 1 tool_dependencies_folder = utility_container_manager.Folder(id=folder_id, - key='merged', - label='Tool dependencies', - parent=tool_dependencies_root_folder) + key='merged', + label='Tool dependencies', + parent=tool_dependencies_root_folder) folder_id += 1 else: td_list = [td.listify for td in tool_dependencies_folder.tool_dependencies] @@ -392,9 +392,9 @@ class DependencyDisplayer(object): return containers_dict def populate_containers_dict_for_new_install(self, tool_shed_url, tool_path, readme_files_dict, - installed_repository_dependencies, missing_repository_dependencies, - installed_tool_dependencies, missing_tool_dependencies, - updating=False): + installed_repository_dependencies, missing_repository_dependencies, + installed_tool_dependencies, missing_tool_dependencies, + updating=False): """ Return the populated containers for a repository being installed for the first time or for an installed repository that is being updated and the updates include newly @@ -402,27 +402,27 @@ class DependencyDisplayer(object): """ installed_tool_dependencies, missing_tool_dependencies = \ self.populate_tool_dependencies_dicts(tool_shed_url=tool_shed_url, - tool_path=tool_path, - repository_installed_tool_dependencies=installed_tool_dependencies, - repository_missing_tool_dependencies=missing_tool_dependencies, - required_repo_info_dicts=None) + tool_path=tool_path, + repository_installed_tool_dependencies=installed_tool_dependencies, + repository_missing_tool_dependencies=missing_tool_dependencies, + required_repo_info_dicts=None) # Most of the repository contents are set to None since we don't yet know what they are. gucm = GalaxyUtilityContainerManager(self.app) containers_dict = gucm.build_repository_containers(repository=None, - datatypes=None, - invalid_tools=None, - missing_repository_dependencies=missing_repository_dependencies, - missing_tool_dependencies=missing_tool_dependencies, - readme_files_dict=readme_files_dict, - repository_dependencies=installed_repository_dependencies, - tool_dependencies=installed_tool_dependencies, - valid_tools=None, - workflows=None, - valid_data_managers=None, - invalid_data_managers=None, - data_managers_errors=None, - new_install=True, - reinstalling=False) + datatypes=None, + invalid_tools=None, + missing_repository_dependencies=missing_repository_dependencies, + missing_tool_dependencies=missing_tool_dependencies, + readme_files_dict=readme_files_dict, + repository_dependencies=installed_repository_dependencies, + tool_dependencies=installed_tool_dependencies, + valid_tools=None, + workflows=None, + valid_data_managers=None, + invalid_data_managers=None, + data_managers_errors=None, + new_install=True, + reinstalling=False) if not updating: # If we installing a new repository and not updaing an installed repository, we can merge # the missing_repository_dependencies container contents to the installed_repository_dependencies @@ -434,7 +434,7 @@ class DependencyDisplayer(object): return containers_dict def populate_containers_dict_from_repository_metadata(self, tool_shed_url, tool_path, repository, reinstalling=False, - required_repo_info_dicts=None): + required_repo_info_dicts=None): """ Retrieve necessary information from the received repository's metadata to populate the containers_dict for display. This method is called only from Galaxy (not the tool shed) @@ -451,20 +451,20 @@ class DependencyDisplayer(object): if repository.has_readme_files: if reinstalling or repository.status not in \ [self.app.install_model.ToolShedRepository.installation_status.DEACTIVATED, - self.app.install_model.ToolShedRepository.installation_status.INSTALLED]: + self.app.install_model.ToolShedRepository.installation_status.INSTALLED]: # Since we're reinstalling, we need to send a request to the tool shed to get the README files. tool_shed_url = common_util.get_tool_shed_url_from_tool_shed_registry(self.app, tool_shed_url) params = dict(name=str(repository.name), - owner=str(repository.owner), - changeset_revision=str(repository.installed_changeset_revision)) + owner=str(repository.owner), + changeset_revision=str(repository.installed_changeset_revision)) pathspec = ['repository', 'get_readme_files'] raw_text = util.url_get(tool_shed_url, password_mgr=self.app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) readme_files_dict = json.loads(raw_text) else: readme_files_dict = readme_util.build_readme_files_dict(self.app, - repository, - repository.changeset_revision, - repository.metadata, tool_path) + repository, + repository.changeset_revision, + repository.metadata, tool_path) else: readme_files_dict = None # Handle repository dependencies. @@ -480,14 +480,14 @@ class DependencyDisplayer(object): repository_tool_dependencies.update(repository_invalid_tool_dependencies) repository_installed_tool_dependencies, repository_missing_tool_dependencies = \ self.get_installed_and_missing_tool_dependencies_for_installed_repository(repository, - repository_tool_dependencies) + repository_tool_dependencies) if reinstalling: installed_tool_dependencies, missing_tool_dependencies = \ self.populate_tool_dependencies_dicts(tool_shed_url, - tool_path, - repository_installed_tool_dependencies, - repository_missing_tool_dependencies, - required_repo_info_dicts) + tool_path, + repository_installed_tool_dependencies, + repository_missing_tool_dependencies, + required_repo_info_dicts) else: installed_tool_dependencies = repository_installed_tool_dependencies missing_tool_dependencies = repository_missing_tool_dependencies @@ -505,32 +505,32 @@ class DependencyDisplayer(object): data_managers_errors = metadata['data_manager'].get('messages', None) gucm = GalaxyUtilityContainerManager(self.app) containers_dict = gucm.build_repository_containers(repository=repository, - datatypes=datatypes, - invalid_tools=invalid_tools, - missing_repository_dependencies=missing_repository_dependencies, - missing_tool_dependencies=missing_tool_dependencies, - readme_files_dict=readme_files_dict, - repository_dependencies=installed_repository_dependencies, - tool_dependencies=installed_tool_dependencies, - valid_tools=valid_tools, - workflows=workflows, - valid_data_managers=valid_data_managers, - invalid_data_managers=invalid_data_managers, - data_managers_errors=data_managers_errors, - new_install=False, - reinstalling=reinstalling) + datatypes=datatypes, + invalid_tools=invalid_tools, + missing_repository_dependencies=missing_repository_dependencies, + missing_tool_dependencies=missing_tool_dependencies, + readme_files_dict=readme_files_dict, + repository_dependencies=installed_repository_dependencies, + tool_dependencies=installed_tool_dependencies, + valid_tools=valid_tools, + workflows=workflows, + valid_data_managers=valid_data_managers, + invalid_data_managers=invalid_data_managers, + data_managers_errors=data_managers_errors, + new_install=False, + reinstalling=reinstalling) else: containers_dict = dict(datatypes=None, - invalid_tools=None, - readme_files_dict=None, - repository_dependencies=None, - tool_dependencies=None, - valid_tools=None, - workflows=None) + invalid_tools=None, + readme_files_dict=None, + repository_dependencies=None, + tool_dependencies=None, + valid_tools=None, + workflows=None) return containers_dict def populate_tool_dependencies_dicts(self, tool_shed_url, tool_path, repository_installed_tool_dependencies, - repository_missing_tool_dependencies, required_repo_info_dicts): + repository_missing_tool_dependencies, required_repo_info_dicts): """ Return the populated installed_tool_dependencies and missing_tool_dependencies dictionaries for all repositories defined by entries in the received required_repo_info_dicts. @@ -563,14 +563,14 @@ class DependencyDisplayer(object): # The required_repository may have been installed with a different changeset revision. required_repository, installed_changeset_revision = \ repository_util.repository_was_previously_installed(self.app, - tool_shed_url, - name, - repo_info_tuple, - from_tip=False) + tool_shed_url, + name, + repo_info_tuple, + from_tip=False) if required_repository: required_repository_installed_tool_dependencies, required_repository_missing_tool_dependencies = \ self.get_installed_and_missing_tool_dependencies_for_installed_repository(required_repository, - tool_dependencies) + tool_dependencies) if required_repository_installed_tool_dependencies: # Add the install_dir attribute to the tool_dependencies. required_repository_installed_tool_dependencies = \ 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 f5639b31c0e..6d4ee907790 100644 --- a/lib/tool_shed/galaxy_install/grids/admin_toolshed_grids.py +++ b/lib/tool_shed/galaxy_install/grids/admin_toolshed_grids.py @@ -128,94 +128,94 @@ class InstalledRepositoryGrid(grids.Grid): columns = [ ToolShedStatusColumn(label=""), NameColumn(label="Name", - key="name", - link=(lambda item: iff(item.status in [tool_shed_install.ToolShedRepository.installation_status.CLONING], - None, - dict(operation="manage_repository", id=item.id))), - attach_popup=True), + key="name", + link=(lambda item: iff(item.status in [tool_shed_install.ToolShedRepository.installation_status.CLONING], + None, + dict(operation="manage_repository", id=item.id))), + attach_popup=True), DescriptionColumn(label="Description"), OwnerColumn(label="Owner"), RevisionColumn(label="Revision"), StatusColumn(label="Installation Status", - filterable="advanced"), + filterable="advanced"), ToolShedColumn(label="Tool shed"), # Columns that are valid for filtering but are not visible. DeletedColumn(label="Status", - key="deleted", - visible=False, - filterable="advanced") + key="deleted", + visible=False, + filterable="advanced") ] columns.append(grids.MulticolFilterColumn("Search repository name", - cols_to_filter=[columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) global_actions = [ grids.GridAction(label="Update tool shed status", - url_args=dict(controller='admin_toolshed', - action='update_tool_shed_status_for_installed_repository', - all_installed_repositories=True)) + url_args=dict(controller='admin_toolshed', + action='update_tool_shed_status_for_installed_repository', + all_installed_repositories=True)) ] operations = [grids.GridOperation(label="Update tool shed status", - condition=(lambda item: not item.deleted), - allow_multiple=False, - url_args=dict(controller='admin_toolshed', - action='browse_repositories', - operation='update tool shed status')), - grids.GridOperation(label="Get updates", - condition=(lambda item: - not item.deleted and - item.revision_update_available and - item.status not in [ + condition=(lambda item: not item.deleted), + allow_multiple=False, + url_args=dict(controller='admin_toolshed', + action='browse_repositories', + operation='update tool shed status')), + grids.GridOperation(label="Get updates", + condition=(lambda item: + not item.deleted and + item.revision_update_available and + item.status not in [ tool_shed_install.ToolShedRepository.installation_status.ERROR, tool_shed_install.ToolShedRepository.installation_status.NEW]), - allow_multiple=False, - url_args=dict(controller='admin_toolshed', - action='browse_repositories', - operation='get updates')), - grids.GridOperation(label="Install latest revision", - condition=(lambda item: item.upgrade_available), - allow_multiple=False, - url_args=dict(controller='admin_toolshed', - action='browse_repositories', - operation='install latest revision')), - grids.GridOperation(label="Install", - condition=(lambda item: - not item.deleted and - item.status == tool_shed_install.ToolShedRepository.installation_status.NEW), - allow_multiple=False, - url_args=dict(controller='admin_toolshed', - action='manage_repository', - operation='install')), - grids.GridOperation(label="Deactivate or uninstall", - condition=(lambda item: - not item.deleted and - item.status != tool_shed_install.ToolShedRepository.installation_status.NEW), - allow_multiple=True, - url_args=dict(controller='admin_toolshed', - action='browse_repositories', - operation='deactivate or uninstall')), - grids.GridOperation(label="Reset to install", - condition=(lambda item: - (item.status == tool_shed_install.ToolShedRepository.installation_status.ERROR)), - allow_multiple=False, - url_args=dict(controller='admin_toolshed', - action='browse_repositories', - operation='reset to install')), - grids.GridOperation(label="Activate or reinstall", - condition=(lambda item: item.deleted), - allow_multiple=False, - target=None, - url_args=dict(controller='admin_toolshed', - action='browse_repositories', - operation='activate or reinstall')), - grids.GridOperation(label="Purge", - condition=(lambda item: item.is_new), - allow_multiple=False, - target=None, - url_args=dict(controller='admin_toolshed', - action='browse_repositories', - operation='purge'))] + allow_multiple=False, + url_args=dict(controller='admin_toolshed', + action='browse_repositories', + operation='get updates')), + grids.GridOperation(label="Install latest revision", + condition=(lambda item: item.upgrade_available), + allow_multiple=False, + url_args=dict(controller='admin_toolshed', + action='browse_repositories', + operation='install latest revision')), + grids.GridOperation(label="Install", + condition=(lambda item: + not item.deleted and + item.status == tool_shed_install.ToolShedRepository.installation_status.NEW), + allow_multiple=False, + url_args=dict(controller='admin_toolshed', + action='manage_repository', + operation='install')), + grids.GridOperation(label="Deactivate or uninstall", + condition=(lambda item: + not item.deleted and + item.status != tool_shed_install.ToolShedRepository.installation_status.NEW), + allow_multiple=True, + url_args=dict(controller='admin_toolshed', + action='browse_repositories', + operation='deactivate or uninstall')), + grids.GridOperation(label="Reset to install", + condition=(lambda item: + (item.status == tool_shed_install.ToolShedRepository.installation_status.ERROR)), + allow_multiple=False, + url_args=dict(controller='admin_toolshed', + action='browse_repositories', + operation='reset to install')), + grids.GridOperation(label="Activate or reinstall", + condition=(lambda item: item.deleted), + allow_multiple=False, + target=None, + url_args=dict(controller='admin_toolshed', + action='browse_repositories', + operation='activate or reinstall')), + grids.GridOperation(label="Purge", + condition=(lambda item: item.is_new), + allow_multiple=False, + target=None, + url_args=dict(controller='admin_toolshed', + action='browse_repositories', + operation='purge'))] standard_filters = [] default_filter = dict(deleted="False") num_rows_per_page = 50 @@ -225,9 +225,9 @@ class InstalledRepositoryGrid(grids.Grid): def build_initial_query(self, trans, **kwd): return trans.install_model.context.query(self.model_class) \ .order_by(self.model_class.table.c.tool_shed, - self.model_class.table.c.name, - self.model_class.table.c.owner, - self.model_class.table.c.ctx_rev) + self.model_class.table.c.name, + self.model_class.table.c.owner, + self.model_class.table.c.ctx_rev) @property def legend(self): @@ -267,9 +267,9 @@ class RepositoryInstallationGrid(grids.Grid): def get_value(self, trans, grid, tool_shed_repository): status_label = tool_shed_repository.status if tool_shed_repository.status in [trans.install_model.ToolShedRepository.installation_status.CLONING, - trans.install_model.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS, - trans.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES, - trans.install_model.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES]: + trans.install_model.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS, + trans.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES, + trans.install_model.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES]: bgcolor = trans.install_model.ToolShedRepository.states.INSTALLING elif tool_shed_repository.status in [trans.install_model.ToolShedRepository.installation_status.NEW, trans.install_model.ToolShedRepository.installation_status.UNINSTALLED]: @@ -304,16 +304,16 @@ class RepositoryInstallationGrid(grids.Grid): use_paging = False columns = [ NameColumn("Name", - link=(lambda item: iff(item.status in - [tool_shed_install.ToolShedRepository.installation_status.NEW, - tool_shed_install.ToolShedRepository.installation_status.CLONING, - tool_shed_install.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS, - tool_shed_install.ToolShedRepository.installation_status.INSTALLING_REPOSITORY_DEPENDENCIES, - tool_shed_install.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES, - tool_shed_install.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES, - tool_shed_install.ToolShedRepository.installation_status.UNINSTALLED], - None, dict(action="manage_repository", id=item.id))), - filterable="advanced"), + link=(lambda item: iff(item.status in + [tool_shed_install.ToolShedRepository.installation_status.NEW, + tool_shed_install.ToolShedRepository.installation_status.CLONING, + tool_shed_install.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS, + tool_shed_install.ToolShedRepository.installation_status.INSTALLING_REPOSITORY_DEPENDENCIES, + tool_shed_install.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES, + tool_shed_install.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES, + tool_shed_install.ToolShedRepository.installation_status.UNINSTALLED], + None, dict(action="manage_repository", id=item.id))), + filterable="advanced"), DescriptionColumn("Description", filterable="advanced"), OwnerColumn("Owner", @@ -321,8 +321,8 @@ class RepositoryInstallationGrid(grids.Grid): RevisionColumn("Revision", filterable="advanced"), StatusColumn("Installation Status", - filterable="advanced", - label_id_prefix="RepositoryStatus-") + filterable="advanced", + label_id_prefix="RepositoryStatus-") ] operations = [] @@ -379,7 +379,7 @@ class ToolDependencyGrid(grids.Grid): if tool_dependency.status in [trans.install_model.ToolDependency.installation_status.INSTALLING]: bgcolor = trans.install_model.ToolDependency.states.INSTALLING elif tool_dependency.status in [trans.install_model.ToolDependency.installation_status.NEVER_INSTALLED, - trans.install_model.ToolDependency.installation_status.UNINSTALLED]: + trans.install_model.ToolDependency.installation_status.UNINSTALLED]: bgcolor = trans.install_model.ToolDependency.states.UNINSTALLED elif tool_dependency.status in [trans.install_model.ToolDependency.installation_status.ERROR]: bgcolor = trans.install_model.ToolDependency.states.ERROR @@ -398,18 +398,18 @@ class ToolDependencyGrid(grids.Grid): use_paging = False columns = [ NameColumn("Name", - link=(lambda item: iff(item.status in [tool_shed_install.ToolDependency.installation_status.NEVER_INSTALLED, - tool_shed_install.ToolDependency.installation_status.INSTALLING, - tool_shed_install.ToolDependency.installation_status.UNINSTALLED], - None, - dict(action="manage_tool_dependencies", operation='browse', id=item.id))), - filterable="advanced"), + link=(lambda item: iff(item.status in [tool_shed_install.ToolDependency.installation_status.NEVER_INSTALLED, + tool_shed_install.ToolDependency.installation_status.INSTALLING, + tool_shed_install.ToolDependency.installation_status.UNINSTALLED], + None, + dict(action="manage_tool_dependencies", operation='browse', id=item.id))), + filterable="advanced"), VersionColumn("Version", - filterable="advanced"), - TypeColumn("Type", - filterable="advanced"), - StatusColumn("Installation Status", filterable="advanced"), + TypeColumn("Type", + filterable="advanced"), + StatusColumn("Installation Status", + filterable="advanced"), ] def build_initial_query(self, trans, **kwd): diff --git a/lib/tool_shed/galaxy_install/install_manager.py b/lib/tool_shed/galaxy_install/install_manager.py index a21c1070c4c..1fc7c6bee09 100644 --- a/lib/tool_shed/galaxy_install/install_manager.py +++ b/lib/tool_shed/galaxy_install/install_manager.py @@ -33,8 +33,8 @@ class InstallToolDependencyManager(object): self.app = app self.install_model = self.app.install_model self.INSTALL_ACTIONS = ['download_binary', 'download_by_url', 'download_file', - 'setup_perl_environment', 'setup_python_environment', - 'setup_r_environment', 'setup_ruby_environment', 'shell_command'] + 'setup_perl_environment', 'setup_python_environment', + 'setup_r_environment', 'setup_ruby_environment', 'shell_command'] def format_traceback(self): ex_type, ex, tb = sys.exc_info() @@ -67,16 +67,16 @@ class InstallToolDependencyManager(object): # download. tool_dependency, filtered_actions, dir = \ step_manager.execute_step(tool_dependency=tool_dependency, - package_name=package_name, - actions=actions, - action_type=action_type, - action_dict=action_dict, - filtered_actions=filtered_actions, - env_file_builder=env_file_builder, - install_environment=install_environment, - work_dir=work_dir, - current_dir=None, - initial_download=True) + package_name=package_name, + actions=actions, + action_type=action_type, + action_dict=action_dict, + filtered_actions=filtered_actions, + env_file_builder=env_file_builder, + install_environment=install_environment, + work_dir=work_dir, + current_dir=None, + initial_download=True) else: # We're handling a complex repository dependency where we only have a set_environment tag set. # @@ -94,16 +94,16 @@ class InstallToolDependencyManager(object): action_type, action_dict = action_tup tool_dependency, tmp_filtered_actions, tmp_dir = \ step_manager.execute_step(tool_dependency=tool_dependency, - package_name=package_name, - actions=actions, - action_type=action_type, - action_dict=action_dict, - filtered_actions=filtered_actions, - env_file_builder=env_file_builder, - install_environment=install_environment, - work_dir=work_dir, - current_dir=current_dir, - initial_download=False) + package_name=package_name, + actions=actions, + action_type=action_type, + action_dict=action_dict, + filtered_actions=filtered_actions, + env_file_builder=env_file_builder, + install_environment=install_environment, + work_dir=work_dir, + current_dir=current_dir, + initial_download=False) if tool_dependency.status in [self.install_model.ToolDependency.installation_status.ERROR]: # If the tool_dependency status is in an error state, return it with no additional # processing. @@ -132,7 +132,7 @@ class InstallToolDependencyManager(object): return tool_dependency def install_specified_tool_dependencies(self, tool_shed_repository, tool_dependencies_config, tool_dependencies, - from_tool_migration_manager=False): + from_tool_migration_manager=False): """ Follow the recipe in the received tool_dependencies_config to install specified packages for repository tools. The received list of tool_dependencies are the database records for those @@ -182,18 +182,18 @@ class InstallToolDependencyManager(object): # handle everything - no additional installation is necessary. tool_dependency, proceed_with_install, action_elem_tuples = \ tag_manager.process_tag_set(tool_shed_repository, - tool_dependency, - elem, - name, - version, - from_tool_migration_manager=from_tool_migration_manager, - tool_dependency_db_records=tool_dependencies) + tool_dependency, + elem, + name, + version, + from_tool_migration_manager=from_tool_migration_manager, + tool_dependency_db_records=tool_dependencies) if (tool_dependency.type == 'package' and proceed_with_install): try: tool_dependency = self.install_package(elem, - tool_shed_repository, - tool_dependencies=tool_dependencies, - from_tool_migration_manager=from_tool_migration_manager) + tool_shed_repository, + tool_dependencies=tool_dependencies, + from_tool_migration_manager=from_tool_migration_manager) except Exception as e: error_message = "Error installing tool dependency %s version %s: %s" % \ (str(name), str(version), str(e)) @@ -207,16 +207,16 @@ class InstallToolDependencyManager(object): status=self.app.install_model.ToolDependency.installation_status.ERROR, error_message=error_message) if tool_dependency and tool_dependency.status in [self.install_model.ToolDependency.installation_status.INSTALLED, - self.install_model.ToolDependency.installation_status.ERROR]: + self.install_model.ToolDependency.installation_status.ERROR]: installed_packages.append(tool_dependency) if self.app.config.manage_dependency_relationships: # Add the tool_dependency to the in-memory dictionaries in the installed_repository_manager. self.app.installed_repository_manager.handle_tool_dependency_install(tool_shed_repository, - tool_dependency) + tool_dependency) return installed_packages def install_via_fabric(self, tool_shed_repository, tool_dependency, install_dir, package_name=None, custom_fabfile_path=None, - actions_elem=None, action_elem=None, **kwd): + actions_elem=None, action_elem=None, **kwd): """ Parse a tool_dependency.xml file's tag set to gather information for installation using self.install_and_build_package(). The use of fabric is being eliminated, so some of these functions @@ -249,11 +249,11 @@ class InstallToolDependencyManager(object): action_type = action_elem.get('type', None) if action_type is not None: action_dict = step_manager.prepare_step(tool_dependency=tool_dependency, - action_type=action_type, - action_elem=action_elem, - action_dict=action_dict, - install_environment=install_environment, - is_binary_download=is_binary_download) + action_type=action_type, + action_elem=action_elem, + action_dict=action_dict, + install_environment=install_environment, + is_binary_download=is_binary_download) action_tuple = (action_type, action_dict) if action_type == 'set_environment': if action_tuple not in actions: @@ -267,9 +267,9 @@ class InstallToolDependencyManager(object): raise Exception('Tool dependency installation using proprietary fabric scripts is not yet supported.') else: tool_dependency = self.install_and_build_package_via_fabric(install_environment, - tool_shed_repository, - tool_dependency, - actions_dict) + tool_shed_repository, + tool_dependency, + actions_dict) return tool_dependency def install_package(self, elem, tool_shed_repository, tool_dependencies=None, from_tool_migration_manager=False): @@ -291,23 +291,23 @@ class InstallToolDependencyManager(object): for package_elem in elem: tool_dependency, proceed_with_install, actions_elem_tuples = \ tag_manager.process_tag_set(tool_shed_repository, - tool_dependency, - package_elem, - package_name, - package_version, - from_tool_migration_manager=from_tool_migration_manager, - tool_dependency_db_records=None) + tool_dependency, + package_elem, + package_name, + package_version, + from_tool_migration_manager=from_tool_migration_manager, + tool_dependency_db_records=None) if proceed_with_install and actions_elem_tuples: # Get the installation directory for tool dependencies that will be installed for the received # tool_shed_repository. install_dir = \ tool_dependency_util.get_tool_dependency_install_dir(app=self.app, - repository_name=tool_shed_repository.name, - repository_owner=tool_shed_repository.owner, - repository_changeset_revision=tool_shed_repository.installed_changeset_revision, - tool_dependency_type='package', - tool_dependency_name=package_name, - tool_dependency_version=package_version) + repository_name=tool_shed_repository.name, + repository_owner=tool_shed_repository.owner, + repository_changeset_revision=tool_shed_repository.installed_changeset_revision, + tool_dependency_type='package', + tool_dependency_name=package_name, + tool_dependency_version=package_version) # At this point we have a list of elems that are either defined within an # tag set with sub-elements that contains os and architecture attributes filtered by the # platform into which the appropriate compiled binary will be installed, or not defined within an @@ -335,11 +335,11 @@ class InstallToolDependencyManager(object): continue # No platform-specific recipe has yet resulted in a successful installation. tool_dependency = self.install_via_fabric(tool_shed_repository, - tool_dependency, - install_dir, - package_name=package_name, - actions_elem=actions_elem, - action_elem=None) + tool_dependency, + install_dir, + package_name=package_name, + actions_elem=actions_elem, + action_elem=None) if tool_dependency.status == self.install_model.ToolDependency.installation_status.INSTALLED: # If an tag was found that matches the current platform, and # self.install_via_fabric() did not result in an error state, set binary_installed @@ -349,7 +349,7 @@ class InstallToolDependencyManager(object): # Process the next matching tag, or any defined tags that do not # contain platform dependent recipes. log.debug('Error downloading binary for tool dependency %s version %s: %s' % - (str(package_name), str(package_version), str(tool_dependency.error_message))) + (str(package_name), str(package_version), str(tool_dependency.error_message))) else: if actions_elem.tag == 'actions': # We've reached an tag that defines the recipe for installing and compiling from @@ -366,7 +366,7 @@ class InstallToolDependencyManager(object): can_install_from_source = True else: log.debug('Error removing old files from installation directory %s: %s' % - (str(installation_directory, str(error_message)))) + (str(installation_directory, str(error_message)))) else: can_install_from_source = True else: @@ -375,52 +375,52 @@ class InstallToolDependencyManager(object): # We now know that binary installation was not successful, so proceed with the # tag set that defines the recipe to install and compile from source. log.debug('Proceeding with install and compile recipe for tool dependency %s.' % - str(tool_dependency.name)) + str(tool_dependency.name)) # Reset above error to installing tool_dependency.status = self.install_model.ToolDependency.installation_status.INSTALLING tool_dependency = self.install_via_fabric(tool_shed_repository, - tool_dependency, - install_dir, - package_name=package_name, - actions_elem=actions_elem, - action_elem=None) + tool_dependency, + install_dir, + package_name=package_name, + actions_elem=actions_elem, + action_elem=None) if actions_elem.tag == 'action' and \ tool_dependency.status != self.install_model.ToolDependency.installation_status.ERROR: # If the tool dependency is not in an error state, perform any final actions that have been # defined within the actions_group tag set, but outside of an tag, which defines # the recipe for installing and compiling from source. tool_dependency = self.install_via_fabric(tool_shed_repository, - tool_dependency, - install_dir, - package_name=package_name, - actions_elem=None, - action_elem=actions_elem) + tool_dependency, + install_dir, + package_name=package_name, + actions_elem=None, + action_elem=actions_elem) else: # Checks for "os" and "architecture" attributes are not made for any tag sets outside of # an tag set. If the attributes are defined, they will be ignored. All tags # outside of an tag set will always be processed. tool_dependency = self.install_via_fabric(tool_shed_repository, - tool_dependency, - install_dir, - package_name=package_name, - actions_elem=actions_elems, - action_elem=None) + tool_dependency, + install_dir, + package_name=package_name, + actions_elem=actions_elems, + action_elem=None) if tool_dependency.status != self.install_model.ToolDependency.installation_status.ERROR: log.debug('Tool dependency %s version %s has been installed in %s.' % - (str(package_name), str(package_version), str(install_dir))) + (str(package_name), str(package_version), str(install_dir))) return tool_dependency def mark_tool_dependency_installed(self, tool_dependency): if tool_dependency.status not in [self.install_model.ToolDependency.installation_status.ERROR, - self.install_model.ToolDependency.installation_status.INSTALLED]: + self.install_model.ToolDependency.installation_status.INSTALLED]: log.debug('Changing status for tool dependency %s from %s to %s.' % - (str(tool_dependency.name), - str(tool_dependency.status), - str(self.install_model.ToolDependency.installation_status.INSTALLED))) + (str(tool_dependency.name), + str(tool_dependency.status), + str(self.install_model.ToolDependency.installation_status.INSTALLED))) status = self.install_model.ToolDependency.installation_status.INSTALLED tool_dependency = tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency=tool_dependency, - status=status) + tool_dependency=tool_dependency, + status=status) return tool_dependency @@ -436,7 +436,7 @@ class InstallRepositoryManager(object): self.tpm = tpm def get_repository_components_for_installation(self, encoded_tsr_id, encoded_tsr_ids, repo_info_dicts, - tool_panel_section_keys): + tool_panel_section_keys): """ The received encoded_tsr_ids, repo_info_dicts, and tool_panel_section_keys are 3 lists that contain associated elements @@ -446,16 +446,16 @@ class InstallRepositoryManager(object): encoded_tsr_ids list. """ for tsr_id, repo_info_dict, tool_panel_section_key in zip(encoded_tsr_ids, - repo_info_dicts, - tool_panel_section_keys): + repo_info_dicts, + tool_panel_section_keys): if tsr_id == encoded_tsr_id: return repo_info_dict, tool_panel_section_key return None, None def __get_install_info_from_tool_shed(self, tool_shed_url, name, owner, changeset_revision): params = dict(name=str(name), - owner=str(owner), - changeset_revision=str(changeset_revision)) + owner=str(owner), + changeset_revision=str(changeset_revision)) pathspec = ['api', 'repositories', 'get_repository_revision_install_info'] try: raw_text = util.url_get(tool_shed_url, password_mgr=self.app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) @@ -491,8 +491,8 @@ class InstallRepositoryManager(object): return repository_revision_dict, repo_info_dicts def __handle_repository_contents(self, tool_shed_repository, tool_path, repository_clone_url, relative_install_dir, - tool_shed=None, tool_section=None, shed_tool_conf=None, reinstalling=False, - tool_panel_section_mapping={}): + tool_shed=None, tool_section=None, shed_tool_conf=None, reinstalling=False, + tool_panel_section_mapping={}): """ Generate the metadata for the installed tool shed repository, among other things. This method is called when an administrator is installing a new repository or @@ -501,16 +501,16 @@ class InstallRepositoryManager(object): shed_config_dict = self.app.toolbox.get_shed_config_dict_by_filename(shed_tool_conf) tdtm = data_table_manager.ToolDataTableManager(self.app) irmm = InstalledRepositoryMetadataManager(app=self.app, - tpm=self.tpm, - repository=tool_shed_repository, - changeset_revision=tool_shed_repository.changeset_revision, - repository_clone_url=repository_clone_url, - shed_config_dict=shed_config_dict, - relative_install_dir=relative_install_dir, - repository_files_dir=None, - resetting_all_metadata_on_repository=False, - updating_installed_repository=False, - persist=True) + tpm=self.tpm, + repository=tool_shed_repository, + changeset_revision=tool_shed_repository.changeset_revision, + repository_clone_url=repository_clone_url, + shed_config_dict=shed_config_dict, + relative_install_dir=relative_install_dir, + repository_files_dir=None, + resetting_all_metadata_on_repository=False, + updating_installed_repository=False, + persist=True) irmm.generate_metadata_for_changeset_revision() irmm_metadata_dict = irmm.get_metadata_dict() tool_shed_repository.metadata = irmm_metadata_dict @@ -522,9 +522,9 @@ class InstallRepositoryManager(object): self.install_model.context.flush() if 'tool_dependencies' in irmm_metadata_dict and not reinstalling: tool_dependency_util.create_tool_dependency_objects(self.app, - tool_shed_repository, - relative_install_dir, - set_status=True) + tool_shed_repository, + relative_install_dir, + set_status=True) if 'sample_files' in irmm_metadata_dict: sample_files = irmm_metadata_dict.get('sample_files', []) tool_index_sample_files = tdtm.get_tool_index_sample_files(sample_files) @@ -532,13 +532,13 @@ class InstallRepositoryManager(object): tdtm.install_tool_data_tables(tool_shed_repository, tool_index_sample_files) if tool_data_table_elems: self.app.tool_data_tables.add_new_entries_from_config_file(tool_data_table_conf_filename, - None, - self.app.config.shed_tool_data_table_config, - persist=True) + None, + self.app.config.shed_tool_data_table_config, + persist=True) if 'tools' in irmm_metadata_dict: # Get the tool_versions from the Tool Shed for each tool in the installed change set. self.update_tool_shed_repository_status(tool_shed_repository, - self.install_model.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS) + self.install_model.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS) tool_version_dicts = fetch_tool_versions(self.app, tool_shed_repository) tvm = tool_version_manager.ToolVersionManager(self.app) tvm.handle_tool_versions(tool_version_dicts, tool_shed_repository) @@ -551,40 +551,40 @@ class InstallRepositoryManager(object): if repository_tools_tups: # Handle missing data table entries for tool parameters that are dynamically generated select lists. repository_tools_tups = tdtm.handle_missing_data_table_entry(relative_install_dir, - tool_path, - repository_tools_tups) + tool_path, + repository_tools_tups) # Handle missing index files for tool parameters that are dynamically generated select lists. repository_tools_tups, sample_files_copied = tool_util.handle_missing_index_file(self.app, - tool_path, - sample_files, - repository_tools_tups, - sample_files_copied) + tool_path, + sample_files, + repository_tools_tups, + sample_files_copied) # Copy remaining sample files included in the repository to the ~/tool-data directory of the # local Galaxy instance. tool_util.copy_sample_files(self.app, - sample_files, - tool_path=tool_path, - sample_files_copied=sample_files_copied) + sample_files, + tool_path=tool_path, + sample_files_copied=sample_files_copied) self.tpm.add_to_tool_panel(repository_name=tool_shed_repository.name, - repository_clone_url=repository_clone_url, - changeset_revision=tool_shed_repository.installed_changeset_revision, - repository_tools_tups=repository_tools_tups, - owner=tool_shed_repository.owner, - shed_tool_conf=shed_tool_conf, - tool_panel_dict=tool_panel_dict, - new_install=True, - tool_panel_section_mapping=tool_panel_section_mapping) + repository_clone_url=repository_clone_url, + changeset_revision=tool_shed_repository.installed_changeset_revision, + repository_tools_tups=repository_tools_tups, + owner=tool_shed_repository.owner, + shed_tool_conf=shed_tool_conf, + tool_panel_dict=tool_panel_dict, + new_install=True, + tool_panel_section_mapping=tool_panel_section_mapping) if 'data_manager' in irmm_metadata_dict: dmh = data_manager.DataManagerHandler(self.app) dmh.install_data_managers(self.app.config.shed_data_manager_config_file, - irmm_metadata_dict, - shed_config_dict, - relative_install_dir, - tool_shed_repository, - repository_tools_tups) + irmm_metadata_dict, + shed_config_dict, + relative_install_dir, + tool_shed_repository, + repository_tools_tups) if 'datatypes' in irmm_metadata_dict: self.update_tool_shed_repository_status(tool_shed_repository, - self.install_model.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES) + self.install_model.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES) if not tool_shed_repository.includes_datatypes: tool_shed_repository.includes_datatypes = True self.install_model.context.add(tool_shed_repository) @@ -601,12 +601,12 @@ class InstallRepositoryManager(object): # Create a dictionary of tool shed repository related information. repository_dict = \ cdl.create_repository_dict_for_proprietary_datatypes(tool_shed=tool_shed, - name=tool_shed_repository.name, - owner=tool_shed_repository.owner, - installed_changeset_revision=tool_shed_repository.installed_changeset_revision, - tool_dicts=irmm_metadata_dict.get('tools', []), - converter_path=converter_path, - display_path=display_path) + name=tool_shed_repository.name, + owner=tool_shed_repository.owner, + installed_changeset_revision=tool_shed_repository.installed_changeset_revision, + tool_dicts=irmm_metadata_dict.get('tools', []), + converter_path=converter_path, + display_path=display_path) if converter_path: # Load proprietary datatype converters self.app.datatypes_registry.load_datatype_converters(self.app.toolbox, installed_repository_dict=repository_dict, use_cached=True) @@ -626,12 +626,12 @@ class InstallRepositoryManager(object): rdim = repository_dependency_manager.RepositoryDependencyInstallManager(self.app) created_or_updated_tool_shed_repositories, tool_panel_section_keys, repo_info_dicts, filtered_repo_info_dicts = \ rdim.create_repository_dependency_objects(tool_path=tool_path, - tool_shed_url=tool_shed_url, - repo_info_dicts=repo_info_dicts, - install_repository_dependencies=install_repository_dependencies, - no_changes_checked=no_changes_checked, - tool_panel_section_id=tool_panel_section_id, - new_tool_panel_section_label=new_tool_panel_section_label) + tool_shed_url=tool_shed_url, + repo_info_dicts=repo_info_dicts, + install_repository_dependencies=install_repository_dependencies, + no_changes_checked=no_changes_checked, + tool_panel_section_id=tool_panel_section_id, + new_tool_panel_section_label=new_tool_panel_section_label) return created_or_updated_tool_shed_repositories, tool_panel_section_keys, repo_info_dicts, filtered_repo_info_dicts def initiate_repository_installation(self, installation_dict): @@ -657,8 +657,8 @@ class InstallRepositoryManager(object): # Handle contained tools. if includes_tools_for_display_in_tool_panel and (new_tool_panel_section_label or tool_panel_section_id): self.tpm.handle_tool_panel_section(self.app.toolbox, - tool_panel_section_id=tool_panel_section_id, - new_tool_panel_section_label=new_tool_panel_section_label) + tool_panel_section_id=tool_panel_section_id, + new_tool_panel_section_label=new_tool_panel_section_label) if includes_tools_for_display_in_tool_panel and (tool_panel_section_mapping is not None): for tool_guid in tool_panel_section_mapping: if tool_panel_section_mapping[tool_guid]['action'] == 'create': @@ -667,20 +667,20 @@ class InstallRepositoryManager(object): self.tpm.handle_tool_panel_section(self.app.toolbox, None, tool_panel_section_mapping[tool_guid]['tool_panel_section']) encoded_repository_ids = [self.app.security.encode_id(tsr.id) for tsr in created_or_updated_tool_shed_repositories] new_kwd = dict(includes_tools=includes_tools, - includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, - has_repository_dependencies=has_repository_dependencies, - install_repository_dependencies=install_repository_dependencies, - includes_tool_dependencies=includes_tool_dependencies, - install_resolver_dependencies=install_resolver_dependencies, - install_tool_dependencies=install_tool_dependencies, - message=message, - repo_info_dicts=filtered_repo_info_dicts, - shed_tool_conf=shed_tool_conf, - status=status, - tool_path=tool_path, - tool_panel_section_keys=tool_panel_section_keys, - tool_shed_repository_ids=encoded_repository_ids, - tool_shed_url=tool_shed_url) + includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, + has_repository_dependencies=has_repository_dependencies, + install_repository_dependencies=install_repository_dependencies, + includes_tool_dependencies=includes_tool_dependencies, + install_resolver_dependencies=install_resolver_dependencies, + install_tool_dependencies=install_tool_dependencies, + message=message, + repo_info_dicts=filtered_repo_info_dicts, + shed_tool_conf=shed_tool_conf, + status=status, + tool_path=tool_path, + tool_panel_section_keys=tool_panel_section_keys, + tool_shed_repository_ids=encoded_repository_ids, + tool_shed_url=tool_shed_url) encoded_kwd = encoding_util.tool_shed_encode(new_kwd) tsr_ids = [r.id for r in created_or_updated_tool_shed_repositories] tool_shed_repositories = [] @@ -696,9 +696,9 @@ class InstallRepositoryManager(object): def install(self, tool_shed_url, name, owner, changeset_revision, install_options): # Get all of the information necessary for installing the repository from the specified tool shed. repository_revision_dict, repo_info_dicts = self.__get_install_info_from_tool_shed(tool_shed_url, - name, - owner, - changeset_revision) + name, + owner, + changeset_revision) installed_tool_shed_repositories = self.__initiate_and_install_repositories( tool_shed_url, repository_revision_dict, @@ -749,36 +749,36 @@ class InstallRepositoryManager(object): # Build the dictionary of information necessary for creating tool_shed_repository database records # for each repository being installed. installation_dict = dict(install_repository_dependencies=install_repository_dependencies, - new_tool_panel_section_label=new_tool_panel_section_label, - tool_panel_section_mapping=tool_panel_section_mapping, - no_changes_checked=False, - repo_info_dicts=repo_info_dicts, - tool_panel_section_id=tool_panel_section_id, - tool_path=tool_path, - tool_shed_url=tool_shed_url) + new_tool_panel_section_label=new_tool_panel_section_label, + tool_panel_section_mapping=tool_panel_section_mapping, + no_changes_checked=False, + repo_info_dicts=repo_info_dicts, + tool_panel_section_id=tool_panel_section_id, + tool_path=tool_path, + tool_shed_url=tool_shed_url) # Create the tool_shed_repository database records and gather additional information for repository installation. created_or_updated_tool_shed_repositories, tool_panel_section_keys, repo_info_dicts, filtered_repo_info_dicts = \ self.handle_tool_shed_repositories(installation_dict) if created_or_updated_tool_shed_repositories: # Build the dictionary of information necessary for installing the repositories. installation_dict = dict(created_or_updated_tool_shed_repositories=created_or_updated_tool_shed_repositories, - filtered_repo_info_dicts=filtered_repo_info_dicts, - has_repository_dependencies=has_repository_dependencies, - includes_tool_dependencies=includes_tool_dependencies, - includes_tools=includes_tools, - includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, - install_repository_dependencies=install_repository_dependencies, - install_resolver_dependencies=install_resolver_dependencies, - install_tool_dependencies=install_tool_dependencies, - message='', - new_tool_panel_section_label=new_tool_panel_section_label, - shed_tool_conf=shed_tool_conf, - status='done', - tool_panel_section_id=tool_panel_section_id, - tool_panel_section_keys=tool_panel_section_keys, - tool_panel_section_mapping=tool_panel_section_mapping, - tool_path=tool_path, - tool_shed_url=tool_shed_url) + filtered_repo_info_dicts=filtered_repo_info_dicts, + has_repository_dependencies=has_repository_dependencies, + includes_tool_dependencies=includes_tool_dependencies, + includes_tools=includes_tools, + includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, + install_repository_dependencies=install_repository_dependencies, + install_resolver_dependencies=install_resolver_dependencies, + install_tool_dependencies=install_tool_dependencies, + message='', + new_tool_panel_section_label=new_tool_panel_section_label, + shed_tool_conf=shed_tool_conf, + status='done', + tool_panel_section_id=tool_panel_section_id, + tool_panel_section_keys=tool_panel_section_keys, + tool_panel_section_mapping=tool_panel_section_mapping, + tool_path=tool_path, + tool_shed_url=tool_shed_url) # Prepare the repositories for installation. Even though this # method receives a single combination of tool_shed_url, name, # owner and changeset_revision, there may be multiple repositories @@ -820,60 +820,60 @@ class InstallRepositoryManager(object): # required order. ordered_tsr_ids, ordered_repo_info_dicts, ordered_tool_panel_section_keys = \ self.order_components_for_installation(tsr_ids, - repo_info_dicts, - tool_panel_section_keys=tool_panel_section_keys) + repo_info_dicts, + tool_panel_section_keys=tool_panel_section_keys) for tsr_id in ordered_tsr_ids: repository = self.install_model.context.query(self.install_model.ToolShedRepository) \ .get(self.app.security.decode_id(tsr_id)) if repository.status in [self.install_model.ToolShedRepository.installation_status.NEW, - self.install_model.ToolShedRepository.installation_status.UNINSTALLED]: + self.install_model.ToolShedRepository.installation_status.UNINSTALLED]: repositories_for_installation.append(repository) repo_info_dict, tool_panel_section_key = \ self.get_repository_components_for_installation(tsr_id, - ordered_tsr_ids, - ordered_repo_info_dicts, - ordered_tool_panel_section_keys) + ordered_tsr_ids, + ordered_repo_info_dicts, + ordered_tool_panel_section_keys) filtered_repo_info_dicts.append(repo_info_dict) filtered_tool_panel_section_keys.append(tool_panel_section_key) installed_tool_shed_repositories = [] if repositories_for_installation: for tool_shed_repository, repo_info_dict, tool_panel_section_key in zip(repositories_for_installation, - filtered_repo_info_dicts, - filtered_tool_panel_section_keys): + filtered_repo_info_dicts, + filtered_tool_panel_section_keys): self.install_tool_shed_repository(tool_shed_repository, - repo_info_dict=repo_info_dict, - tool_panel_section_key=tool_panel_section_key, - shed_tool_conf=shed_tool_conf, - tool_path=tool_path, - install_resolver_dependencies=install_resolver_dependencies, - install_tool_dependencies=install_tool_dependencies, - reinstalling=reinstalling, - tool_panel_section_mapping=tool_panel_section_mapping) + repo_info_dict=repo_info_dict, + tool_panel_section_key=tool_panel_section_key, + shed_tool_conf=shed_tool_conf, + tool_path=tool_path, + install_resolver_dependencies=install_resolver_dependencies, + install_tool_dependencies=install_tool_dependencies, + reinstalling=reinstalling, + tool_panel_section_mapping=tool_panel_section_mapping) installed_tool_shed_repositories.append(tool_shed_repository) else: raise RepositoriesInstalledException() return installed_tool_shed_repositories def install_tool_shed_repository(self, tool_shed_repository, repo_info_dict, tool_panel_section_key, shed_tool_conf, tool_path, - install_resolver_dependencies, install_tool_dependencies, reinstalling=False, tool_panel_section_mapping={}): + install_resolver_dependencies, install_tool_dependencies, reinstalling=False, tool_panel_section_mapping={}): self.app.install_model.context.flush() if tool_panel_section_key: _, tool_section = self.app.toolbox.get_section(tool_panel_section_key) if tool_section is None: log.debug('Invalid tool_panel_section_key "%s" specified. Tools will be loaded outside of sections in the tool panel.', - str(tool_panel_section_key)) + str(tool_panel_section_key)) else: tool_section = None if isinstance(repo_info_dict, string_types): repo_info_dict = encoding_util.tool_shed_decode(repo_info_dict) # Clone the repository to the configured location. self.update_tool_shed_repository_status(tool_shed_repository, - self.install_model.ToolShedRepository.installation_status.CLONING) + self.install_model.ToolShedRepository.installation_status.CLONING) repo_info_tuple = repo_info_dict[tool_shed_repository.name] description, repository_clone_url, changeset_revision, ctx_rev, repository_owner, repository_dependencies, tool_dependencies = repo_info_tuple relative_clone_dir = repository_util.generate_tool_shed_repository_install_dir(repository_clone_url, - tool_shed_repository.installed_changeset_revision) + tool_shed_repository.installed_changeset_revision) relative_install_dir = os.path.join(relative_clone_dir, tool_shed_repository.name) install_dir = os.path.join(tool_path, relative_install_dir) cloned_ok, error_message = hg_util.clone_repository(repository_clone_url, os.path.abspath(install_dir), ctx_rev) @@ -886,25 +886,25 @@ class InstallRepositoryManager(object): current_ctx_rev = changeset_revision_dict.get('ctx_rev', None) if current_ctx_rev != ctx_rev: repo = hg_util.get_repo_for_repository(self.app, - repository=None, - repo_path=os.path.abspath(install_dir), - create=False) + repository=None, + repo_path=os.path.abspath(install_dir), + create=False) hg_util.pull_repository(repo, repository_clone_url, current_changeset_revision) hg_util.update_repository(repo, ctx_rev=current_ctx_rev) self.__handle_repository_contents(tool_shed_repository=tool_shed_repository, - tool_path=tool_path, - repository_clone_url=repository_clone_url, - relative_install_dir=relative_install_dir, - tool_shed=tool_shed_repository.tool_shed, - tool_section=tool_section, - shed_tool_conf=shed_tool_conf, - reinstalling=reinstalling, - tool_panel_section_mapping=tool_panel_section_mapping) + tool_path=tool_path, + repository_clone_url=repository_clone_url, + relative_install_dir=relative_install_dir, + tool_shed=tool_shed_repository.tool_shed, + tool_section=tool_section, + shed_tool_conf=shed_tool_conf, + reinstalling=reinstalling, + tool_panel_section_mapping=tool_panel_section_mapping) self.install_model.context.refresh(tool_shed_repository) metadata = tool_shed_repository.metadata if 'tools' in metadata and install_resolver_dependencies: self.update_tool_shed_repository_status(tool_shed_repository, - self.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES) + self.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES) new_tools = [self.app.toolbox._tools_by_id.get(tool_d['guid'], None) for tool_d in metadata['tools']] new_requirements = set([tool.requirements.packages for tool in new_tools if tool]) [self._view.install_dependencies(r) for r in new_requirements] @@ -915,17 +915,17 @@ class InstallRepositoryManager(object): work_dir = tempfile.mkdtemp(prefix="tmp-toolshed-itsr") # Install tool dependencies. self.update_tool_shed_repository_status(tool_shed_repository, - self.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES) + self.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES) # Get the tool_dependencies.xml file from the repository. tool_dependencies_config = hg_util.get_config_from_disk('tool_dependencies.xml', install_dir) itdm = InstallToolDependencyManager(self.app) itdm.install_specified_tool_dependencies(tool_shed_repository=tool_shed_repository, - tool_dependencies_config=tool_dependencies_config, - tool_dependencies=tool_shed_repository.tool_dependencies, - from_tool_migration_manager=False) + tool_dependencies_config=tool_dependencies_config, + tool_dependencies=tool_shed_repository.tool_dependencies, + from_tool_migration_manager=False) basic_util.remove_dir(work_dir) self.update_tool_shed_repository_status(tool_shed_repository, - self.install_model.ToolShedRepository.installation_status.INSTALLED) + self.install_model.ToolShedRepository.installation_status.INSTALLED) if self.app.config.manage_dependency_relationships: # Add the installed repository and any tool dependencies to the in-memory dictionaries # in the installed_repository_manager. @@ -933,12 +933,12 @@ class InstallRepositoryManager(object): else: # An error occurred while cloning the repository, so reset everything necessary to enable another attempt. repository_util.set_repository_attributes(self.app, - tool_shed_repository, - status=self.install_model.ToolShedRepository.installation_status.ERROR, - error_message=error_message, - deleted=False, - uninstalled=False, - remove_from_disk=True) + tool_shed_repository, + status=self.install_model.ToolShedRepository.installation_status.ERROR, + error_message=error_message, + deleted=False, + uninstalled=False, + remove_from_disk=True) def order_components_for_installation(self, tsr_ids, repo_info_dicts, tool_panel_section_keys): """ @@ -958,12 +958,12 @@ class InstallRepositoryManager(object): # tsr_ids, each of which is contained in the received list of tsr_ids and whose associated # repository must be installed prior to the repository associated with the tsr_id key. prior_install_required_dict = repository_util.get_prior_import_or_install_required_dict(self.app, - tsr_ids, - repo_info_dicts) + tsr_ids, + repo_info_dicts) processed_tsr_ids = [] while len(processed_tsr_ids) != len(prior_install_required_dict.keys()): tsr_id = suc.get_next_prior_import_or_install_required_dict_entry(prior_install_required_dict, - processed_tsr_ids) + processed_tsr_ids) processed_tsr_ids.append(tsr_id) # Create the ordered_tsr_ids, the ordered_repo_info_dicts and the ordered_tool_panel_section_keys lists. if tsr_id not in ordered_tsr_ids: @@ -973,17 +973,17 @@ class InstallRepositoryManager(object): # Install the associated repository dependency first. prior_repo_info_dict, prior_tool_panel_section_key = \ self.get_repository_components_for_installation(prior_install_required_id, - tsr_ids, - repo_info_dicts, - tool_panel_section_keys=tool_panel_section_keys) + tsr_ids, + repo_info_dicts, + tool_panel_section_keys=tool_panel_section_keys) ordered_tsr_ids.append(prior_install_required_id) ordered_repo_info_dicts.append(prior_repo_info_dict) ordered_tool_panel_section_keys.append(prior_tool_panel_section_key) repo_info_dict, tool_panel_section_key = \ self.get_repository_components_for_installation(tsr_id, - tsr_ids, - repo_info_dicts, - tool_panel_section_keys=tool_panel_section_keys) + tsr_ids, + repo_info_dicts, + tool_panel_section_keys=tool_panel_section_keys) if tsr_id not in ordered_tsr_ids: ordered_tsr_ids.append(tsr_id) ordered_repo_info_dicts.append(repo_info_dict) @@ -1021,8 +1021,8 @@ def fetch_tool_versions(app, tool_shed_repository): try: tool_shed_url = common_util.get_tool_shed_url_from_tool_shed_registry(app, str(tool_shed_repository.tool_shed)) params = dict(name=str(tool_shed_repository.name), - owner=str(tool_shed_repository.owner), - changeset_revision=str(tool_shed_repository.changeset_revision)) + owner=str(tool_shed_repository.owner), + changeset_revision=str(tool_shed_repository.changeset_revision)) pathspec = ['repository', 'get_tool_versions'] url = util.build_url(tool_shed_url, pathspec=pathspec, params=params) text = util.url_get(tool_shed_url, password_mgr=app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) diff --git a/lib/tool_shed/galaxy_install/installed_repository_manager.py b/lib/tool_shed/galaxy_install/installed_repository_manager.py index 8af56252c6a..a97fbf7e76b 100644 --- a/lib/tool_shed/galaxy_install/installed_repository_manager.py +++ b/lib/tool_shed/galaxy_install/installed_repository_manager.py @@ -86,32 +86,32 @@ class InstalledRepositoryManager(object): repository_clone_url = common_util.generate_clone_url_for_installed_repository(self.app, repository) tpm = tool_panel_manager.ToolPanelManager(self.app) irmm = InstalledRepositoryMetadataManager(app=self.app, - tpm=tpm, - repository=repository, - changeset_revision=repository.changeset_revision, - metadata_dict=repository.metadata) + tpm=tpm, + repository=repository, + changeset_revision=repository.changeset_revision, + metadata_dict=repository.metadata) repository_tools_tups = irmm.get_repository_tools_tups() # Reload tools into the appropriate tool panel section. tool_panel_dict = repository.metadata['tool_panel_section'] tpm.add_to_tool_panel(repository.name, - repository_clone_url, - repository.installed_changeset_revision, - repository_tools_tups, - repository.owner, - shed_tool_conf, - tool_panel_dict, - new_install=False) + repository_clone_url, + repository.installed_changeset_revision, + repository_tools_tups, + repository.owner, + shed_tool_conf, + tool_panel_dict, + new_install=False) if repository.includes_data_managers: tp, data_manager_relative_install_dir = repository.get_tool_relative_path(self.app) # Hack to add repository.name here, which is actually the root of the installed repository data_manager_relative_install_dir = os.path.join(data_manager_relative_install_dir, repository.name) dmh = data_manager.DataManagerHandler(self.app) dmh.install_data_managers(self.app.config.shed_data_manager_config_file, - repository.metadata, - repository.get_shed_config_dict(self.app), - data_manager_relative_install_dir, - repository, - repository_tools_tups) + repository.metadata, + repository.get_shed_config_dict(self.app), + data_manager_relative_install_dir, + repository, + repository_tools_tups) self.install_model.context.current.add(repository) self.install_model.context.current.flush() if repository.includes_datatypes: @@ -122,8 +122,8 @@ class InstalledRepositoryManager(object): # Activate proprietary datatypes. cdl = custom_datatype_manager.CustomDatatypeLoader(self.app) installed_repository_dict = cdl.load_installed_datatypes(repository, - repository_install_dir, - deactivate=False) + repository_install_dir, + deactivate=False) if installed_repository_dict: converter_path = installed_repository_dict.get('converter_path') if converter_path is not None: @@ -170,7 +170,7 @@ class InstalledRepositoryManager(object): log.debug(debug_msg) status = self.install_model.ToolDependency.installation_status.INSTALLED installed_runtime_dependent_tool_dependency_tups = self.get_runtime_dependent_tool_dependency_tuples(tool_dependency, - status=status) + status=status) self.installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies[tool_dependency_tup] = \ installed_runtime_dependent_tool_dependency_tups @@ -209,7 +209,7 @@ class InstalledRepositoryManager(object): debug_msg += "to runtime_tool_dependencies_of_installed_tool_dependencies." log.debug(debug_msg) runtime_dependent_tool_dependency_tups = self.get_runtime_dependent_tool_dependency_tuples(tool_dependency, - status=None) + status=None) self.runtime_tool_dependencies_of_installed_tool_dependencies[tool_dependency_tup] = \ runtime_dependent_tool_dependency_tups @@ -258,10 +258,10 @@ class InstalledRepositoryManager(object): # We have a repository with one or more defined repository dependencies. if not repository: repository = repository_util.get_repository_for_dependency_relationship(self.app, - tool_shed_url, - name, - repository_owner, - changeset_revision) + tool_shed_url, + name, + repository_owner, + changeset_revision) if not updating and repository and repository.metadata: installed_rd, missing_rd = self.get_installed_and_missing_repository_dependencies(repository) else: @@ -316,17 +316,17 @@ class InstalledRepositoryManager(object): required_repo_info_dicts = all_repo_info_dict.get('all_repo_info_dicts', []) dependencies_for_repository_dict = \ dict(changeset_revision=changeset_revision, - has_repository_dependencies=has_repository_dependencies, - has_repository_dependencies_only_if_compiling_contained_td=has_repository_dependencies_only_if_compiling_contained_td, - includes_tool_dependencies=includes_tool_dependencies, - includes_tools=includes_tools, - includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, - installed_repository_dependencies=installed_rd, - installed_tool_dependencies=installed_td, - missing_repository_dependencies=missing_rd, - missing_tool_dependencies=missing_td, - name=name, - repository_owner=repository_owner) + has_repository_dependencies=has_repository_dependencies, + has_repository_dependencies_only_if_compiling_contained_td=has_repository_dependencies_only_if_compiling_contained_td, + includes_tool_dependencies=includes_tool_dependencies, + includes_tools=includes_tools, + includes_tools_for_display_in_tool_panel=includes_tools_for_display_in_tool_panel, + installed_repository_dependencies=installed_rd, + installed_tool_dependencies=installed_td, + missing_repository_dependencies=missing_rd, + missing_tool_dependencies=missing_td, + name=name, + repository_owner=repository_owner) return dependencies_for_repository_dict def get_installed_and_missing_repository_dependencies(self, repository): @@ -351,13 +351,13 @@ class InstalledRepositoryManager(object): prior_installation_required = self.set_prior_installation_required(repository, tsr) only_if_compiling_contained_td = self.set_only_if_compiling_contained_td(repository, tsr) rd_tup = [tsr.tool_shed, - tsr.name, - tsr.owner, - tsr.changeset_revision, - prior_installation_required, - only_if_compiling_contained_td, - tsr.id, - tsr.status] + tsr.name, + tsr.owner, + tsr.changeset_revision, + prior_installation_required, + only_if_compiling_contained_td, + tsr.id, + tsr.status] if tsr.status == self.app.install_model.ToolShedRepository.installation_status.INSTALLED: installed_rd_tups.append(rd_tup) else: @@ -378,11 +378,11 @@ class InstalledRepositoryManager(object): # We need to add a root_key entry to one or both of installed_repository_dependencies dictionary and the # missing_repository_dependencies dictionaries for proper display parsing. root_key = container_util.generate_repository_dependencies_key_for_repository(repository.tool_shed, - repository.name, - repository.owner, - repository.installed_changeset_revision, - prior_installation_required, - only_if_compiling_contained_td) + repository.name, + repository.owner, + repository.installed_changeset_revision, + prior_installation_required, + only_if_compiling_contained_td) if installed_rd_tups: installed_repository_dependencies['root_key'] = root_key installed_repository_dependencies[root_key] = installed_rd_tups @@ -404,7 +404,7 @@ class InstalledRepositoryManager(object): missing_rd_tups = [] installed_rd_tups = [] (description, repository_clone_url, changeset_revision, ctx_rev, - repository_owner, repository_dependencies, tool_dependencies) = repository_util.get_repo_info_tuple_contents(repo_info_tuple) + repository_owner, repository_dependencies, tool_dependencies) = repository_util.get_repo_info_tuple_contents(repo_info_tuple) if repository_dependencies: description = repository_dependencies['description'] root_key = repository_dependencies['root_key'] @@ -424,19 +424,19 @@ class InstalledRepositoryManager(object): tmp_clone_url = common_util.generate_clone_url_from_repo_info_tup(self.app, rd_tup) tmp_repo_info_tuple = (None, tmp_clone_url, changeset_revision, None, owner, None, None) repository, installed_changeset_revision = repository_util.repository_was_previously_installed(self.app, - tool_shed, - name, - tmp_repo_info_tuple, - from_tip=False) + tool_shed, + name, + tmp_repo_info_tuple, + from_tip=False) if repository: new_rd_tup = [tool_shed, - name, - owner, - changeset_revision, - prior_installation_required, - only_if_compiling_contained_td, - repository.id, - repository.status] + name, + owner, + changeset_revision, + prior_installation_required, + only_if_compiling_contained_td, + repository.id, + repository.status] if repository.status == self.install_model.ToolShedRepository.installation_status.INSTALLED: if new_rd_tup not in installed_rd_tups: installed_rd_tups.append(new_rd_tup) @@ -451,13 +451,13 @@ class InstalledRepositoryManager(object): missing_rd_tups.append(new_rd_tup) else: new_rd_tup = [tool_shed, - name, - owner, - changeset_revision, - prior_installation_required, - only_if_compiling_contained_td, - None, - 'Never installed'] + name, + owner, + changeset_revision, + prior_installation_required, + only_if_compiling_contained_td, + None, + 'Never installed'] if not util.asbool(only_if_compiling_contained_td): # A repository dependency that is not installed will not be considered missing if its value for # only_if_compiling_contained_td is True - see above... @@ -504,9 +504,9 @@ class InstalledRepositoryManager(object): # 'type': 'package'} tool_dependency = \ tool_dependency_util.get_tool_dependency_by_name_version_type(self.app, - requirement_dict.get('name', None), - requirement_dict.get('version', None), - requirement_dict.get('type', 'package')) + requirement_dict.get('name', None), + requirement_dict.get('version', None), + requirement_dict.get('type', 'package')) if tool_dependency: tool_dependency_status = tool_dependency.status requirement_dict['status'] = tool_dependency_status @@ -530,9 +530,9 @@ class InstalledRepositoryManager(object): # 'changeset_revision': 'zz', # 'type': 'package'} tool_dependency = tool_dependency_util.get_tool_dependency_by_name_version_type(self.app, - val.get('name', None), - val.get('version', None), - val.get('type', 'package')) + val.get('name', None), + val.get('version', None), + val.get('type', 'package')) if tool_dependency: tool_dependency_status = tool_dependency.status val['status'] = tool_dependency_status @@ -562,14 +562,14 @@ class InstalledRepositoryManager(object): if required_repository_tup not in dependency_tups: dependency_tups.append(required_repository_tup) return self.get_repository_dependency_tups_for_installed_repository(required_repository, - dependency_tups=dependency_tups) + dependency_tups=dependency_tups) return dependency_tups def get_repository_tuple_for_installed_repository_manager(self, repository): return (str(repository.tool_shed), - str(repository.name), - str(repository.owner), - str(repository.installed_changeset_revision)) + str(repository.name), + str(repository.owner), + str(repository.installed_changeset_revision)) def get_repository_install_dir(self, tool_shed_repository): for tool_config in self.tool_configs: @@ -581,11 +581,11 @@ class InstalledRepositoryManager(object): if tool_path: ts = common_util.remove_port_from_tool_shed_url(str(tool_shed_repository.tool_shed)) relative_path = os.path.join(tool_path, - ts, - 'repos', - str(tool_shed_repository.owner), - str(tool_shed_repository.name), - str(tool_shed_repository.installed_changeset_revision)) + ts, + 'repos', + str(tool_shed_repository.owner), + str(tool_shed_repository.name), + str(tool_shed_repository.installed_changeset_revision)) if os.path.exists(relative_path): return relative_path return None @@ -609,7 +609,7 @@ class InstalledRepositoryManager(object): except Exception as e: contents = None log.debug('Error reading file %s, so cannot determine if package %s requires package %s at run time: %s' % - (str(env_shell_file_path), str(td.name), str(tool_dependency.name), str(e))) + (str(env_shell_file_path), str(td.name), str(tool_dependency.name), str(e))) if contents is not None and contents.find(required_env_shell_file_path) >= 0: td_tuple = self.get_tool_dependency_tuple_for_installed_repository_manager(td) runtime_dependent_tool_dependency_tups.append(td_tuple) @@ -623,7 +623,7 @@ class InstalledRepositoryManager(object): return (tool_dependency.tool_shed_repository_id, str(tool_dependency.name), str(tool_dependency.version), type) def handle_existing_tool_dependencies_that_changed_in_update(self, repository, original_dependency_dict, - new_dependency_dict): + new_dependency_dict): """ This method is called when a Galaxy admin is getting updates for an installed tool shed repository in order to cover the case where an existing tool dependency was changed (e.g., @@ -638,8 +638,8 @@ class InstalledRepositoryManager(object): for original_dependency_key, original_dependency_val_dict in original_dependency_dict.items(): if original_dependency_key not in new_dependency_dict: updated_tool_dependency = self.update_existing_tool_dependency(repository, - original_dependency_val_dict, - new_dependency_dict) + original_dependency_val_dict, + new_dependency_dict) if updated_tool_dependency: updated_tool_dependency_names.append(updated_tool_dependency.name) else: @@ -712,7 +712,7 @@ class InstalledRepositoryManager(object): # Get the list of installed tool shed repositories. for repository in self.context.query(self.app.install_model.ToolShedRepository) \ .filter(self.app.install_model.ToolShedRepository.table.c.status == - self.app.install_model.ToolShedRepository.installation_status.INSTALLED): + self.app.install_model.ToolShedRepository.installation_status.INSTALLED): # Populate self.repository_dependencies_of_installed_repositories. self.add_entry_to_repository_dependencies_of_installed_repositories(repository) # Populate self.installed_repository_dependencies_of_installed_repositories. @@ -724,7 +724,7 @@ class InstalledRepositoryManager(object): # Get the list of installed tool dependencies. for tool_dependency in self.context.query(self.app.install_model.ToolDependency) \ .filter(self.app.install_model.ToolDependency.table.c.status == - self.app.install_model.ToolDependency.installation_status.INSTALLED): + self.app.install_model.ToolDependency.installation_status.INSTALLED): # Populate self.runtime_tool_dependencies_of_installed_tool_dependencies. self.add_entry_to_runtime_tool_dependencies_of_installed_tool_dependencies(tool_dependency) # Populate self.installed_runtime_dependent_tool_dependencies_of_installed_tool_dependencies. @@ -734,7 +734,7 @@ class InstalledRepositoryManager(object): cdl = custom_datatype_manager.CustomDatatypeLoader(self.app) for tool_shed_repository in self.context.query(self.install_model.ToolShedRepository) \ .filter(and_(self.install_model.ToolShedRepository.table.c.includes_datatypes == true(), - self.install_model.ToolShedRepository.table.c.deleted == false())) \ + self.install_model.ToolShedRepository.table.c.deleted == false())) \ .order_by(self.install_model.ToolShedRepository.table.c.id): relative_install_dir = self.get_repository_install_dir(tool_shed_repository) if relative_install_dir: @@ -773,8 +773,8 @@ class InstalledRepositoryManager(object): # Deactivate proprietary datatypes. cdl = custom_datatype_manager.CustomDatatypeLoader(app=self.app) installed_repository_dict = cdl.load_installed_datatypes(repository, - repository_install_dir, - deactivate=True) + repository_install_dir, + deactivate=True) if installed_repository_dict: converter_path = installed_repository_dict.get('converter_path') if converter_path is not None: @@ -1023,7 +1023,7 @@ class InstalledRepositoryManager(object): repository_dependency.name == name and \ repository_dependency.owner == owner and \ (repository_dependency.installed_changeset_revision == changeset_revision or - repository_dependency.changeset_revision == changeset_revision): + repository_dependency.changeset_revision == changeset_revision): return True return False @@ -1036,9 +1036,9 @@ class InstalledRepositoryManager(object): # for an installed tool shed repository. # TODO: Do we need to check more than changeset_revision here? required_repository_tup = [required_repository.tool_shed, - required_repository.name, - required_repository.owner, - required_repository.changeset_revision] + required_repository.name, + required_repository.owner, + required_repository.changeset_revision] for tup in repository.tuples_of_repository_dependencies_needed_for_compiling_td: partial_tup = tup[0:4] if partial_tup == required_repository_tup: @@ -1051,11 +1051,11 @@ class InstalledRepositoryManager(object): received repository. """ tool_shed_url = common_util.get_tool_shed_url_from_tool_shed_registry(self.app, - str(required_repository.tool_shed)) + str(required_repository.tool_shed)) required_repository_tup = [tool_shed_url, - str(required_repository.name), - str(required_repository.owner), - str(required_repository.changeset_revision)] + str(required_repository.name), + str(required_repository.owner), + str(required_repository.changeset_revision)] # Get the list of repository dependency tuples associated with the received repository # where prior_installation_required is True. required_rd_tups_that_must_be_installed = repository.requires_prior_installation_of @@ -1112,11 +1112,11 @@ class InstalledRepositoryManager(object): if new_dependency_name and new_dependency_type and new_dependency_version: # Update all attributes of the tool_dependency record in the database. log.debug("Updating version %s of tool dependency %s %s to have new version %s and type %s." - % (str(tool_dependency.version), - str(tool_dependency.type), - str(tool_dependency.name), - str(new_dependency_version), - str(new_dependency_type))) + % (str(tool_dependency.version), + str(tool_dependency.type), + str(tool_dependency.name), + str(new_dependency_version), + str(new_dependency_type))) tool_dependency.type = new_dependency_type tool_dependency.version = new_dependency_version tool_dependency.status = self.app.install_model.ToolDependency.installation_status.UNINSTALLED @@ -1128,7 +1128,7 @@ class InstalledRepositoryManager(object): # We have no new tool dependency definition based on a matching dependency name, so remove # the existing tool dependency record from the database. log.debug("Deleting version %s of tool dependency %s %s from the database since it is no longer defined." - % (str(tool_dependency.version), str(tool_dependency.type), str(tool_dependency.name))) + % (str(tool_dependency.version), str(tool_dependency.type), str(tool_dependency.name))) context.delete(tool_dependency) context.flush() return new_tool_dependency diff --git a/lib/tool_shed/galaxy_install/metadata/installed_repository_metadata_manager.py b/lib/tool_shed/galaxy_install/metadata/installed_repository_metadata_manager.py index a099692776e..4b35c2e77f2 100644 --- a/lib/tool_shed/galaxy_install/metadata/installed_repository_metadata_manager.py +++ b/lib/tool_shed/galaxy_install/metadata/installed_repository_metadata_manager.py @@ -19,15 +19,15 @@ log = logging.getLogger(__name__) class InstalledRepositoryMetadataManager(metadata_generator.MetadataGenerator): def __init__(self, app, tpm=None, repository=None, changeset_revision=None, repository_clone_url=None, - shed_config_dict=None, relative_install_dir=None, repository_files_dir=None, - resetting_all_metadata_on_repository=False, updating_installed_repository=False, - persist=False, metadata_dict=None): + shed_config_dict=None, relative_install_dir=None, repository_files_dir=None, + resetting_all_metadata_on_repository=False, updating_installed_repository=False, + persist=False, metadata_dict=None): super(InstalledRepositoryMetadataManager, self).__init__(app, repository, changeset_revision, - repository_clone_url, shed_config_dict, - relative_install_dir, repository_files_dir, - resetting_all_metadata_on_repository, - updating_installed_repository, persist, - metadata_dict=metadata_dict, user=None) + repository_clone_url, shed_config_dict, + relative_install_dir, repository_files_dir, + resetting_all_metadata_on_repository, + updating_installed_repository, persist, + metadata_dict=metadata_dict, user=None) if tpm is None: self.tpm = tool_panel_manager.ToolPanelManager(self.app) else: @@ -54,7 +54,7 @@ class InstalledRepositoryMetadataManager(metadata_generator.MetadataGenerator): return self.app.install_model.context.query(self.app.install_model.ToolShedRepository) \ .filter(self.app.install_model.ToolShedRepository.table.c.uninstalled == false()) \ .order_by(self.app.install_model.ToolShedRepository.table.c.name, - self.app.install_model.ToolShedRepository.table.c.owner) + self.app.install_model.ToolShedRepository.table.c.owner) else: return self.app.install_model.context.query(self.app.install_model.ToolShedRepository) \ .filter(self.app.install_model.ToolShedRepository.table.c.uninstalled == false()) @@ -115,10 +115,10 @@ class InstalledRepositoryMetadataManager(metadata_generator.MetadataGenerator): self.reset_all_metadata_on_installed_repository() if self.invalid_file_tups: message = tool_util.generate_message_for_invalid_tools(self.app, - self.invalid_file_tups, - repository, - None, - as_html=False) + self.invalid_file_tups, + repository, + None, + as_html=False) log.debug(message) unsuccessful_count += 1 else: @@ -166,12 +166,12 @@ class InstalledRepositoryMetadataManager(metadata_generator.MetadataGenerator): guid_to_tool_elem_dict = {} for tool_config_filename, guid, tool in repository_tools_tups: guid_to_tool_elem_dict[guid] = self.tpm.generate_tool_elem(tool_shed, - self.repository.name, - self.repository.changeset_revision, - self.repository.owner or '', - tool_config_filename, - tool, - None) + self.repository.name, + self.repository.changeset_revision, + self.repository.owner or '', + tool_config_filename, + tool, + None) config_elems = [] tree, error_message = xml_util.parse_xml(shed_tool_conf) if tree: diff --git a/lib/tool_shed/galaxy_install/migrate/check.py b/lib/tool_shed/galaxy_install/migrate/check.py index 55db197bd7a..c95a0d5e3f7 100644 --- a/lib/tool_shed/galaxy_install/migrate/check.py +++ b/lib/tool_shed/galaxy_install/migrate/check.py @@ -39,8 +39,8 @@ def verify_tools(app, url, galaxy_config_file=None, engine_options={}): # The missing_tool_configs_dict contents are something like: # {'emboss_antigenic.xml': [('emboss', '5.0.0', 'package', '\nreadme blah blah blah\n')]} tool_shed_accessible, missing_tool_configs_dict = common_util.check_for_missing_tools(app, - tool_panel_configs, - latest_tool_migration_script_number) + tool_panel_configs, + latest_tool_migration_script_number) else: # It doesn't matter if the tool shed is accessible since there are no migrated tools defined in the local Galaxy instance, but # we have to set the value of tool_shed_accessible to True so that the value of migrate_tools.version can be correctly set in @@ -101,8 +101,8 @@ def verify_tools(app, url, galaxy_config_file=None, engine_options={}): msg += "Tool Dependency\n" msg += "------------------------------------\n" msg += "Name: %s, Version: %s, Type: %s\n" % (tool_dependencies_tup[0], - tool_dependencies_tup[1], - tool_dependencies_tup[2]) + tool_dependencies_tup[1], + tool_dependencies_tup[2]) if len(tool_dependencies_tup) >= 4: msg += "Requirements and installation information:\n" msg += "%s\n" % tool_dependencies_tup[3] diff --git a/lib/tool_shed/galaxy_install/migrate/common.py b/lib/tool_shed/galaxy_install/migrate/common.py index e182ab77dbd..aa4b02a6676 100644 --- a/lib/tool_shed/galaxy_install/migrate/common.py +++ b/lib/tool_shed/galaxy_install/migrate/common.py @@ -56,13 +56,13 @@ class MigrateToolsApplication(object, galaxy.config.ConfiguresGalaxyMixin): # installation of all appropriate tool shed repositories. self.tool_migration_manager = \ tool_migration_manager.ToolMigrationManager(app=self, - latest_migration_script_number=latest_migration_script_number, - tool_shed_install_config=os.path.join(self.config.root, - 'scripts', - 'migrate_tools', - tools_migration_config), - migrated_tools_config=self.config.migrated_tools_config, - install_dependencies=install_dependencies) + latest_migration_script_number=latest_migration_script_number, + tool_shed_install_config=os.path.join(self.config.root, + 'scripts', + 'migrate_tools', + tools_migration_config), + migrated_tools_config=self.config.migrated_tools_config, + install_dependencies=install_dependencies) @property def sa_session(self): diff --git a/lib/tool_shed/galaxy_install/repair_repository_manager.py b/lib/tool_shed/galaxy_install/repair_repository_manager.py index c1ec39bb83c..e5364414250 100644 --- a/lib/tool_shed/galaxy_install/repair_repository_manager.py +++ b/lib/tool_shed/galaxy_install/repair_repository_manager.py @@ -32,19 +32,19 @@ class RepairRepositoryManager(): components_list = repository_util.extract_components_from_tuple(repository_components_tuple) tool_shed, name, owner, changeset_revision = components_list[0:4] installed_repository = repository_util.get_installed_repository(self.app, - tool_shed=tool_shed, - name=name, - owner=owner, - changeset_revision=changeset_revision) + tool_shed=tool_shed, + name=name, + owner=owner, + changeset_revision=changeset_revision) if (installed_repository) and (installed_repository not in installed_repositories): installed_repositories.append(installed_repository) for rd_val in rd_vals: tool_shed, name, owner, changeset_revision = rd_val[0:4] installed_repository = repository_util.get_installed_repository(self.app, - tool_shed=tool_shed, - name=name, - owner=owner, - changeset_revision=changeset_revision) + tool_shed=tool_shed, + name=name, + owner=owner, + changeset_revision=changeset_revision) if (installed_repository) and (installed_repository not in installed_repositories): installed_repositories.append(installed_repository) return installed_repositories @@ -67,7 +67,7 @@ class RepairRepositoryManager(): # Get a dictionary of all repositories upon which the contents of the current repository_metadata # record depend. repository_dependencies_dict = rdim.get_repository_dependencies_for_installed_tool_shed_repository(self.app, - repository) + repository) if repository_dependencies_dict: # Generate the list of installed repositories from the information contained in the # repository_dependencies dictionary. @@ -79,20 +79,20 @@ class RepairRepositoryManager(): for installed_repository in installed_repositories: tsr_ids.append(self.app.security.encode_id(installed_repository.id)) repo_info_dict, tool_panel_section_key = self.get_repo_info_dict_for_repair(rdim, - installed_repository) + installed_repository) tool_panel_section_keys.append(tool_panel_section_key) repo_info_dicts.append(repo_info_dict) else: # The received repository has no repository dependencies. tsr_ids.append(self.app.security.encode_id(repository.id)) repo_info_dict, tool_panel_section_key = self.get_repo_info_dict_for_repair(rdim, - repository) + repository) tool_panel_section_keys.append(tool_panel_section_key) repo_info_dicts.append(repo_info_dict) ordered_tsr_ids, ordered_repo_info_dicts, ordered_tool_panel_section_keys = \ irm.order_components_for_installation(tsr_ids, - repo_info_dicts, - tool_panel_section_keys=tool_panel_section_keys) + repo_info_dicts, + tool_panel_section_keys=tool_panel_section_keys) repair_dict['ordered_tsr_ids'] = ordered_tsr_ids repair_dict['ordered_repo_info_dicts'] = ordered_repo_info_dicts repair_dict['ordered_tool_panel_section_keys'] = ordered_tool_panel_section_keys @@ -102,7 +102,7 @@ class RepairRepositoryManager(): tool_panel_section_key = None repository_clone_url = common_util.generate_clone_url_for_installed_repository(self.app, repository) repository_dependencies = rdim.get_repository_dependencies_for_installed_tool_shed_repository(self.app, - repository) + repository) metadata = repository.metadata if metadata: tool_dependencies = metadata.get('tool_dependencies', None) @@ -126,20 +126,20 @@ class RepairRepositoryManager(): tpm = tool_panel_manager.ToolPanelManager(self.app) tool_panel_section_key, _ = \ tpm.get_or_create_tool_section(self.app.toolbox, - tool_panel_section_id=tool_panel_section_id, - new_tool_panel_section_label=tool_panel_section_name) + tool_panel_section_id=tool_panel_section_id, + new_tool_panel_section_label=tool_panel_section_name) else: tool_dependencies = None repo_info_dict = repository_util.create_repo_info_dict(app=self.app, - repository_clone_url=repository_clone_url, - changeset_revision=repository.changeset_revision, - ctx_rev=repository.ctx_rev, - repository_owner=repository.owner, - repository_name=repository.name, - repository=None, - repository_metadata=None, - tool_dependencies=tool_dependencies, - repository_dependencies=repository_dependencies) + repository_clone_url=repository_clone_url, + changeset_revision=repository.changeset_revision, + ctx_rev=repository.ctx_rev, + repository_owner=repository.owner, + repository_name=repository.name, + repository=None, + repository_metadata=None, + tool_dependencies=tool_dependencies, + repository_dependencies=repository_dependencies) return repo_info_dict, tool_panel_section_key def repair_tool_shed_repository(self, repository, repo_info_dict): @@ -172,29 +172,29 @@ class RepairRepositoryManager(): if metadata: _, tool_panel_section_key = \ tpm.handle_tool_panel_selection(self.app.toolbox, - metadata, - no_changes_checked=True, - tool_panel_section_id=None, - new_tool_panel_section_label=None) + metadata, + no_changes_checked=True, + tool_panel_section_id=None, + new_tool_panel_section_label=None) else: # The tools will be loaded outside of any sections in the tool panel. tool_panel_section_key = None repository_util.set_repository_attributes(self.app, - repository, - status=self.app.install_model.ToolShedRepository.installation_status.NEW, - error_message=None, - deleted=False, - uninstalled=False, - remove_from_disk=True) + repository, + status=self.app.install_model.ToolShedRepository.installation_status.NEW, + error_message=None, + deleted=False, + uninstalled=False, + remove_from_disk=True) irm = install_manager.InstallRepositoryManager(self.app, tpm) irm.install_tool_shed_repository(repository, - repo_info_dict, - tool_panel_section_key, - shed_tool_conf, - tool_path, - install_tool_dependencies=True, - install_resolver_dependencies=False, # Assuming repairs are only necessary toolshed packages - reinstalling=True) + repo_info_dict, + tool_panel_section_key, + shed_tool_conf, + tool_path, + install_tool_dependencies=True, + install_resolver_dependencies=False, # Assuming repairs are only necessary toolshed packages + reinstalling=True) if repository.status in [self.app.install_model.ToolShedRepository.installation_status.ERROR]: repair_dict = add_repair_dict_entry(repository.name, repository.error_message) else: @@ -205,25 +205,25 @@ class RepairRepositoryManager(): # Reset missing tool dependencies. for tool_dependency in repository.missing_tool_dependencies: if tool_dependency.status in [self.app.install_model.ToolDependency.installation_status.ERROR, - self.app.install_model.ToolDependency.installation_status.INSTALLING]: + self.app.install_model.ToolDependency.installation_status.INSTALLING]: tool_dependency = \ tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency=tool_dependency, - status=self.app.install_model.ToolDependency.installation_status.UNINSTALLED) + tool_dependency=tool_dependency, + status=self.app.install_model.ToolDependency.installation_status.UNINSTALLED) # Install tool dependencies. irm.update_tool_shed_repository_status(repository, - self.app.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES) + self.app.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES) # Get the tool_dependencies.xml file from the repository. tool_dependencies_config = hg_util.get_config_from_disk('tool_dependencies.xml', repository.repo_path(self.app)) itdm = install_manager.InstallToolDependencyManager(self.app) installed_tool_dependencies = itdm.install_specified_tool_dependencies(tool_shed_repository=repository, - tool_dependencies_config=tool_dependencies_config, - tool_dependencies=repository.tool_dependencies, - from_tool_migration_manager=False) + tool_dependencies_config=tool_dependencies_config, + tool_dependencies=repository.tool_dependencies, + from_tool_migration_manager=False) for installed_tool_dependency in installed_tool_dependencies: if installed_tool_dependency.status in [self.app.install_model.ToolDependency.installation_status.ERROR]: repair_dict = add_repair_dict_entry(repository.name, installed_tool_dependency.error_message) basic_util.remove_dir(work_dir) irm.update_tool_shed_repository_status(repository, - self.app.install_model.ToolShedRepository.installation_status.INSTALLED) + self.app.install_model.ToolShedRepository.installation_status.INSTALLED) return repair_dict 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 d1849df522b..a86e85db326 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 @@ -64,9 +64,9 @@ class RepositoryDependencyInstallManager(object): if d_repository is None: # The dependent repository is not in the received list so look in the database. d_repository = self.get_or_create_tool_shed_repository(d_toolshed, - d_name, - d_owner, - d_changeset_revision) + d_name, + d_owner, + d_changeset_revision) # Process each repository_dependency defined for the current dependent repository. for repository_dependency_components_list in val: required_repository = None @@ -87,9 +87,9 @@ class RepositoryDependencyInstallManager(object): if required_repository is None: # The required repository is not in the received list so look in the database. required_repository = self.get_or_create_tool_shed_repository(rd_toolshed, - rd_name, - rd_owner, - rd_changeset_revision) + rd_name, + rd_owner, + rd_changeset_revision) # Ensure there is a repository_dependency relationship between d_repository and required_repository. rrda = None for rd in d_repository.repository_dependencies: @@ -99,23 +99,23 @@ class RepositoryDependencyInstallManager(object): if not rrda: # Make sure required_repository is in the repository_dependency table. repository_dependency = self.get_repository_dependency_by_repository_id(install_model, - required_repository.id) + required_repository.id) if not repository_dependency: log.debug('Creating new repository_dependency record for installed revision %s of repository: %s owned by %s.' % - (str(required_repository.installed_changeset_revision), - str(required_repository.name), - str(required_repository.owner))) + (str(required_repository.installed_changeset_revision), + str(required_repository.name), + str(required_repository.owner))) repository_dependency = install_model.RepositoryDependency(tool_shed_repository_id=required_repository.id) install_model.context.add(repository_dependency) install_model.context.flush() # Build the relationship between the d_repository and the required_repository. rrda = install_model.RepositoryRepositoryDependencyAssociation(tool_shed_repository_id=d_repository.id, - repository_dependency_id=repository_dependency.id) + repository_dependency_id=repository_dependency.id) install_model.context.add(rrda) install_model.context.flush() def create_repository_dependency_objects(self, tool_path, tool_shed_url, repo_info_dicts, install_repository_dependencies=False, - no_changes_checked=False, tool_panel_section_id=None, new_tool_panel_section_label=None): + no_changes_checked=False, tool_panel_section_id=None, new_tool_panel_section_label=None): """ Discover all repository dependencies and make sure all tool_shed_repository and associated repository_dependency records exist as well as the dependency relationships @@ -171,11 +171,11 @@ class RepositoryDependencyInstallManager(object): repository_util.repository_was_previously_installed(self.app, tool_shed_url, name, repo_info_tuple, from_tip=False) if repository_db_record: if repository_db_record.status in [install_model.ToolShedRepository.installation_status.INSTALLED, - install_model.ToolShedRepository.installation_status.CLONING, - install_model.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS, - install_model.ToolShedRepository.installation_status.INSTALLING_REPOSITORY_DEPENDENCIES, - install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES, - install_model.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES]: + install_model.ToolShedRepository.installation_status.CLONING, + install_model.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS, + install_model.ToolShedRepository.installation_status.INSTALLING_REPOSITORY_DEPENDENCIES, + install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES, + install_model.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES]: debug_msg = "Skipping installation of revision %s of repository '%s' because it was installed " % \ (str(changeset_revision), str(repository_db_record.name)) debug_msg += "with the (possibly updated) revision %s and its current installation status is '%s'." % \ @@ -184,8 +184,8 @@ class RepositoryDependencyInstallManager(object): can_update_db_record = False else: if repository_db_record.status in [install_model.ToolShedRepository.installation_status.ERROR, - install_model.ToolShedRepository.installation_status.NEW, - install_model.ToolShedRepository.installation_status.UNINSTALLED]: + install_model.ToolShedRepository.installation_status.NEW, + install_model.ToolShedRepository.installation_status.UNINSTALLED]: # The current tool shed repository is not currently installed, so we can update its # record in the database. name = repository_db_record.name @@ -215,28 +215,28 @@ class RepositoryDependencyInstallManager(object): if repository_db_record and repository_db_record.metadata: _, tool_panel_section_key = \ tpm.handle_tool_panel_selection(toolbox=self.app.toolbox, - metadata=repository_db_record.metadata, - no_changes_checked=no_changes_checked, - tool_panel_section_id=tool_panel_section_id, - new_tool_panel_section_label=new_tool_panel_section_label) + metadata=repository_db_record.metadata, + no_changes_checked=no_changes_checked, + tool_panel_section_id=tool_panel_section_id, + new_tool_panel_section_label=new_tool_panel_section_label) else: # We're installing a new tool shed repository that does not yet have a database record. tool_panel_section_key, _ = \ tpm.handle_tool_panel_section(self.app.toolbox, - tool_panel_section_id=tool_panel_section_id, - new_tool_panel_section_label=new_tool_panel_section_label) + tool_panel_section_id=tool_panel_section_id, + new_tool_panel_section_label=new_tool_panel_section_label) tool_shed_repository = \ repository_util.create_or_update_tool_shed_repository(app=self.app, - name=name, - description=description, - installed_changeset_revision=installed_changeset_revision, - ctx_rev=ctx_rev, - repository_clone_url=repository_clone_url, - metadata_dict={}, - status=install_model.ToolShedRepository.installation_status.NEW, - current_changeset_revision=changeset_revision, - owner=repository_owner, - dist_to_shed=False) + name=name, + description=description, + installed_changeset_revision=installed_changeset_revision, + ctx_rev=ctx_rev, + repository_clone_url=repository_clone_url, + metadata_dict={}, + status=install_model.ToolShedRepository.installation_status.NEW, + current_changeset_revision=changeset_revision, + owner=repository_owner, + dist_to_shed=False) if tool_shed_repository not in all_created_or_updated_tool_shed_repositories: all_created_or_updated_tool_shed_repositories.append(tool_shed_repository) # Only append the tool shed repository to the list of created_or_updated_tool_shed_repositories if @@ -268,16 +268,16 @@ class RepositoryDependencyInstallManager(object): repository_clone_url = os.path.join(tool_shed_url, 'repos', owner, name) ctx_rev = suc.get_ctx_rev(self.app, tool_shed_url, name, owner, changeset_revision) repository = repository_util.create_or_update_tool_shed_repository(app=self.app, - name=name, - description=None, - installed_changeset_revision=changeset_revision, - ctx_rev=ctx_rev, - repository_clone_url=repository_clone_url, - metadata_dict={}, - status=install_model.ToolShedRepository.installation_status.NEW, - current_changeset_revision=None, - owner=owner, - dist_to_shed=False) + name=name, + description=None, + installed_changeset_revision=changeset_revision, + ctx_rev=ctx_rev, + repository_clone_url=repository_clone_url, + metadata_dict={}, + status=install_model.ToolShedRepository.installation_status.NEW, + current_changeset_revision=None, + owner=owner, + dist_to_shed=False) return repository def get_repository_dependencies_for_installed_tool_shed_repository(self, app, repository): @@ -287,8 +287,8 @@ class RepositoryDependencyInstallManager(object): """ tool_shed_url = common_util.get_tool_shed_url_from_tool_shed_registry(app, str(repository.tool_shed)) params = dict(name=str(repository.name), - owner=str(repository.owner), - changeset_revision=str(repository.changeset_revision)) + owner=str(repository.owner), + changeset_revision=str(repository.changeset_revision)) pathspec = ['repository', 'get_repository_dependencies'] try: raw_text = url_get(tool_shed_url, password_mgr=app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) diff --git a/lib/tool_shed/galaxy_install/tool_dependencies/env_manager.py b/lib/tool_shed/galaxy_install/tool_dependencies/env_manager.py index 4aa91a5638b..d5579866e18 100644 --- a/lib/tool_shed/galaxy_install/tool_dependencies/env_manager.py +++ b/lib/tool_shed/galaxy_install/tool_dependencies/env_manager.py @@ -70,10 +70,10 @@ class EnvManager(object): # The protocol is not stored, but the port is if it exists. toolshed = common_util.remove_protocol_from_tool_shed_url(toolshed) repository = repository_util.get_repository_for_dependency_relationship(self.app, - toolshed, - repository_name, - repository_owner, - changeset_revision) + toolshed, + repository_name, + repository_owner, + changeset_revision) if repository: for sub_elem in elem: tool_dependency_type = sub_elem.tag 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 d7759eafaf3..0b40a1c8661 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 @@ -161,12 +161,12 @@ class InstallEnvironment(object): llog.debug('+ ' + str(command)) # Launch the command as subprocess. A bufsize of 1 means line buffered. process_handle = subprocess.Popen(str(command), - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - bufsize=1, - close_fds=False, - shell=True, - cwd=state.env['lcwd']) + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + bufsize=1, + close_fds=False, + shell=True, + cwd=state.env['lcwd']) pid = process_handle.pid # Launch the asynchronous readers of the process' stdout and stderr. stdout_queue = queue.Queue() @@ -178,10 +178,10 @@ class InstallEnvironment(object): # Place streamed stdout and stderr into a threaded IPC queue target so it can # be printed and stored for later retrieval when generating the INSTALLATION.log. stdio_thread = threading.Thread(target=self.enqueue_output, - args=(process_handle.stdout, - stdout_queue, - process_handle.stderr, - stderr_queue)) + args=(process_handle.stdout, + stdout_queue, + process_handle.stderr, + stderr_queue)) thread_lock = threading.Lock() thread_lock.acquire() stdio_thread.start() diff --git a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/recipe_manager.py b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/recipe_manager.py index ea1b8c65e96..999dcf55ffe 100644 --- a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/recipe_manager.py +++ b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/recipe_manager.py @@ -16,48 +16,48 @@ class StepManager(object): return self.step_handlers_by_type.get(type, None) def execute_step(self, tool_dependency, package_name, actions, action_type, action_dict, filtered_actions, - env_file_builder, install_environment, work_dir, current_dir=None, initial_download=False): + env_file_builder, install_environment, work_dir, current_dir=None, initial_download=False): if actions: step_handler = self.get_step_handler_by_type(action_type) tool_dependency, filtered_actions, dir = step_handler.execute_step(tool_dependency=tool_dependency, - package_name=package_name, - actions=actions, - action_dict=action_dict, - filtered_actions=filtered_actions, - env_file_builder=env_file_builder, - install_environment=install_environment, - work_dir=work_dir, - current_dir=current_dir, - initial_download=initial_download) + package_name=package_name, + actions=actions, + action_dict=action_dict, + filtered_actions=filtered_actions, + env_file_builder=env_file_builder, + install_environment=install_environment, + work_dir=work_dir, + current_dir=current_dir, + initial_download=initial_download) else: dir = None return tool_dependency, filtered_actions, dir def load_step_handlers(self): step_handlers_by_type = dict(assert_directory_executable=step_handler.AssertDirectoryExecutable(self.app), - assert_directory_exists=step_handler.AssertDirectoryExists(self.app), - assert_file_executable=step_handler.AssertFileExecutable(self.app), - assert_file_exists=step_handler.AssertFileExists(self.app), - autoconf=step_handler.Autoconf(self.app), - change_directory=step_handler.ChangeDirectory(self.app), - chmod=step_handler.Chmod(self.app), - download_binary=step_handler.DownloadBinary(self.app), - download_by_url=step_handler.DownloadByUrl(self.app), - download_file=step_handler.DownloadFile(self.app), - make_directory=step_handler.MakeDirectory(self.app), - make_install=step_handler.MakeInstall(self.app), - move_directory_files=step_handler.MoveDirectoryFiles(self.app), - move_file=step_handler.MoveFile(self.app), - regex_replace=step_handler.RegexReplace(self.app), - set_environment=step_handler.SetEnvironment(self.app), - set_environment_for_install=step_handler.SetEnvironmentForInstall(self.app), - setup_perl_environment=step_handler.SetupPerlEnvironment(self.app), - setup_r_environment=step_handler.SetupREnvironment(self.app), - setup_ruby_environment=step_handler.SetupRubyEnvironment(self.app), - setup_python_environment=step_handler.SetupPythonEnvironment(self.app), - setup_virtualenv=step_handler.SetupVirtualEnv(self.app), - shell_command=step_handler.ShellCommand(self.app), - template_command=step_handler.TemplateCommand(self.app)) + assert_directory_exists=step_handler.AssertDirectoryExists(self.app), + assert_file_executable=step_handler.AssertFileExecutable(self.app), + assert_file_exists=step_handler.AssertFileExists(self.app), + autoconf=step_handler.Autoconf(self.app), + change_directory=step_handler.ChangeDirectory(self.app), + chmod=step_handler.Chmod(self.app), + download_binary=step_handler.DownloadBinary(self.app), + download_by_url=step_handler.DownloadByUrl(self.app), + download_file=step_handler.DownloadFile(self.app), + make_directory=step_handler.MakeDirectory(self.app), + make_install=step_handler.MakeInstall(self.app), + move_directory_files=step_handler.MoveDirectoryFiles(self.app), + move_file=step_handler.MoveFile(self.app), + regex_replace=step_handler.RegexReplace(self.app), + set_environment=step_handler.SetEnvironment(self.app), + set_environment_for_install=step_handler.SetEnvironmentForInstall(self.app), + setup_perl_environment=step_handler.SetupPerlEnvironment(self.app), + setup_r_environment=step_handler.SetupREnvironment(self.app), + setup_ruby_environment=step_handler.SetupRubyEnvironment(self.app), + setup_python_environment=step_handler.SetupPythonEnvironment(self.app), + setup_virtualenv=step_handler.SetupVirtualEnv(self.app), + shell_command=step_handler.ShellCommand(self.app), + template_command=step_handler.TemplateCommand(self.app)) return step_handlers_by_type def prepare_step(self, tool_dependency, action_type, action_elem, action_dict, install_environment, is_binary_download): @@ -68,10 +68,10 @@ class StepManager(object): if action_elem is not None: step_handler = self.get_step_handler_by_type(action_type) action_dict = step_handler.prepare_step(tool_dependency=tool_dependency, - action_elem=action_elem, - action_dict=action_dict, - install_environment=install_environment, - is_binary_download=is_binary_download) + action_elem=action_elem, + action_dict=action_dict, + install_environment=install_environment, + is_binary_download=is_binary_download) return action_dict @@ -85,23 +85,23 @@ class TagManager(object): return self.tag_handlers.get(tag, None) def process_tag_set(self, tool_shed_repository, tool_dependency, package_elem, package_name, package_version, - from_tool_migration_manager=False, tool_dependency_db_records=None): + from_tool_migration_manager=False, tool_dependency_db_records=None): tag_handler = self.get_tag_handler_by_tag(package_elem.tag) tool_dependency, proceed_with_install, action_elem_tuples = \ tag_handler.process_tag_set(tool_shed_repository, - tool_dependency, - package_elem, - package_name, - package_version, - from_tool_migration_manager=from_tool_migration_manager, - tool_dependency_db_records=tool_dependency_db_records) + tool_dependency, + package_elem, + package_name, + package_version, + from_tool_migration_manager=from_tool_migration_manager, + tool_dependency_db_records=tool_dependency_db_records) return tool_dependency, proceed_with_install, action_elem_tuples def load_tag_handlers(self): tag_handlers = dict(environment_variable=tag_handler.SetEnvironment(self.app), - install=tag_handler.Install(self.app), - package=tag_handler.Package(self.app), - readme=tag_handler.ReadMe(self.app), - repository=tag_handler.Repository(self.app), - set_environment=tag_handler.SetEnvironment(self.app)) + install=tag_handler.Install(self.app), + package=tag_handler.Package(self.app), + readme=tag_handler.ReadMe(self.app), + repository=tag_handler.Repository(self.app), + set_environment=tag_handler.SetEnvironment(self.app)) return tag_handlers 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 index 91baa575dd2..ff1ce4794f5 100644 --- a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py +++ b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py @@ -214,7 +214,7 @@ class RecipeStep(object): """Abstract class that defines a standard format for handling recipe steps when installing packages.""" def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): raise Exception("Unimplemented Method") def prepare_step(self, tool_dependency, action_elem, action_dict, install_environment, is_binary_download): @@ -244,7 +244,7 @@ class AssertDirectoryExecutable(RecipeStep): return False def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Make sure a symbolic link or directory on disk exists and is executable, but is not a file. Since this class is not used in the initial download stage, no recipe step filtering is @@ -258,9 +258,9 @@ class AssertDirectoryExecutable(RecipeStep): status = self.app.install_model.ToolDependency.installation_status.ERROR error_message = 'The path %s is not a directory or is not executable by the owner.' % str(full_path) tool_dependency = tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency, - status=status, - error_message=error_message) + tool_dependency, + status=status, + error_message=error_message) return tool_dependency, None, None def prepare_step(self, tool_dependency, action_elem, action_dict, install_environment, is_binary_download): @@ -290,7 +290,7 @@ class AssertDirectoryExists(RecipeStep): return False def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Make sure a a symbolic link or directory on disk exists, but is not a file. Since this class is not used in the initial download stage, no recipe step filtering is performed @@ -304,9 +304,9 @@ class AssertDirectoryExists(RecipeStep): status = self.app.install_model.ToolDependency.installation_status.ERROR error_message = 'The path %s is not a directory or does not exist.' % str(full_path) tool_dependency = tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency, - status=status, - error_message=error_message) + tool_dependency, + status=status, + error_message=error_message) return tool_dependency, None, None def prepare_step(self, tool_dependency, action_elem, action_dict, install_environment, is_binary_download): @@ -339,7 +339,7 @@ class AssertFileExecutable(RecipeStep): return False def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Make sure a symbolic link or file on disk exists and is executable, but is not a directory. Since this class is not used in the initial download stage, no recipe step filtering is @@ -353,9 +353,9 @@ class AssertFileExecutable(RecipeStep): status = self.app.install_model.ToolDependency.installation_status.ERROR error_message = 'The path %s is not a file or is not executable by the owner.' % str(full_path) tool_dependency = tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency, - status=status, - error_message=error_message) + tool_dependency, + status=status, + error_message=error_message) return tool_dependency, None, None def prepare_step(self, tool_dependency, action_elem, action_dict, install_environment, is_binary_download): @@ -385,7 +385,7 @@ class AssertFileExists(RecipeStep): return False def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Make sure a symbolic link or file on disk exists, but is not a directory. Since this class is not used in the initial download stage, no recipe step filtering is performed @@ -399,9 +399,9 @@ class AssertFileExists(RecipeStep): status = self.app.install_model.ToolDependency.installation_status.ERROR error_message = 'The path %s is not a file or does not exist.' % str(full_path) tool_dependency = tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency, - status=status, - error_message=error_message) + tool_dependency, + status=status, + error_message=error_message) return tool_dependency, None, None def prepare_step(self, tool_dependency, action_elem, action_dict, install_environment, is_binary_download): @@ -418,7 +418,7 @@ class Autoconf(RecipeStep): self.type = 'autoconf' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Handle configure, make and make install in a shell, allowing for configuration options. Since this class is not used in the initial download stage, no recipe step filtering is performed here, and None @@ -432,9 +432,9 @@ class Autoconf(RecipeStep): pre_cmd = './configure --prefix=$INSTALL_DIR %s && make && make install' % configure_opts cmd = install_environment.build_command(basic_util.evaluate_template(pre_cmd, install_environment)) install_environment.handle_command(tool_dependency=tool_dependency, - cmd=cmd, - return_output=False, - job_name=package_name) + cmd=cmd, + return_output=False, + job_name=package_name) # The caller should check the status of the returned tool_dependency since this function # does nothing with the return_code. return tool_dependency, None, None @@ -454,7 +454,7 @@ class ChangeDirectory(RecipeStep): self.type = 'change_directory' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Change the working directory in a shell. Since this class is not used in the initial download stage, no recipe step filtering is performed here and a None value is return for filtered_actions. However, @@ -497,7 +497,7 @@ class Chmod(RecipeStep): self.type = 'chmod' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Change the mode setting for certain files in the installation environment. Since this class is not used in the initial download stage, no recipe step filtering is performed here, and None values are @@ -560,7 +560,7 @@ class DownloadBinary(Download, RecipeStep): return filtered_actions def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Download a binary file. If the value of initial_download is True, the recipe steps will be filtered and returned and the installation directory (i.e., dir) will be defined and returned. @@ -594,7 +594,7 @@ class DownloadBinary(Download, RecipeStep): if downloaded_filename and os.path.exists(os.path.join(work_dir, downloaded_filename)): if target_directory: target_directory = os.path.realpath(os.path.normpath(os.path.join(install_environment.install_dir, - target_directory))) + target_directory))) # Make sure the target directory is not outside of $INSTALL_DIR. if target_directory.startswith(os.path.realpath(install_environment.install_dir)): full_path_to_dir = os.path.abspath(os.path.join(install_environment.install_dir, target_directory)) @@ -603,8 +603,8 @@ class DownloadBinary(Download, RecipeStep): else: full_path_to_dir = os.path.abspath(install_environment.install_dir) basic_util.move_file(current_dir=work_dir, - source=downloaded_filename, - destination=full_path_to_dir) + source=downloaded_filename, + destination=full_path_to_dir) # Not sure why dir is ignored in this method, need to investigate... dir = None if initial_download: @@ -640,7 +640,7 @@ class DownloadByUrl(Download, RecipeStep): self.type = 'download_by_url' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Download a file via HTTP. If the value of initial_download is True, the recipe steps will be filtered and returned and the installation directory (i.e., dir) will be defined and returned. @@ -702,7 +702,7 @@ class DownloadFile(Download, RecipeStep): self.type = 'download_file' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Download a file. If the value of initial_download is True, the recipe steps will be filtered and returned and the installation directory (i.e., dir) will be defined and returned. @@ -750,7 +750,7 @@ class MakeDirectory(RecipeStep): self.type = 'make_directory' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Make a directory on disk. Since this class is not used in the initial download stage, no recipe step filtering is performed here, and None values are always returned for filtered_actions and dir. @@ -780,7 +780,7 @@ class MakeInstall(RecipeStep): self.type = 'make_install' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Execute a make_install command in a shell. Since this class is not used in the initial download stage, no recipe step filtering is performed here, and None values are always returned for filtered_actions and dir. @@ -790,9 +790,9 @@ class MakeInstall(RecipeStep): make_opts = action_dict.get('make_opts', '') cmd = install_environment.build_command('make %s && make install' % make_opts) install_environment.handle_command(tool_dependency=tool_dependency, - cmd=cmd, - return_output=False, - job_name=package_name) + cmd=cmd, + return_output=False, + job_name=package_name) # The caller should check the status of the returned tool_dependency since this function # does nothing with the return_code. return tool_dependency, None, None @@ -812,14 +812,14 @@ class MoveDirectoryFiles(RecipeStep): self.type = 'move_directory_files' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Move a directory of files. Since this class is not used in the initial download stage, no recipe step filtering is performed here, and None values are always returned for filtered_actions and dir. """ self.move_directory_files(current_dir=current_dir, - source_dir=os.path.join(action_dict['source_directory']), - destination_dir=os.path.join(action_dict['destination_directory'])) + source_dir=os.path.join(action_dict['source_directory']), + destination_dir=os.path.join(action_dict['destination_directory'])) return tool_dependency, None, None def move_directory_files(self, current_dir, source_dir, destination_dir): @@ -855,15 +855,15 @@ class MoveFile(RecipeStep): self.type = 'move_file' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Move a file on disk. Since this class is not used in the initial download stage, no recipe step filtering is performed here, and None values are always returned for filtered_actions and dir. """ basic_util.move_file(current_dir=current_dir, - source=os.path.join(action_dict['source']), - destination=os.path.join(action_dict['destination']), - rename_to=action_dict['rename_to']) + source=os.path.join(action_dict['source']), + destination=os.path.join(action_dict['destination']), + rename_to=action_dict['rename_to']) return tool_dependency, None, None def prepare_step(self, tool_dependency, action_elem, action_dict, install_environment, is_binary_download): @@ -884,7 +884,7 @@ class RegexReplace(RecipeStep): self.type = 'regex_replace' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Search and replace text in a file using regular expressions. Since this class is not used in the initial download stage, no recipe step filtering is performed here, and None values are always returned for @@ -956,7 +956,7 @@ class SetEnvironment(RecipeStep): self.type = 'set_environment' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Configure an install environment. Since this class is not used in the initial download stage, no recipe step filtering is performed here, and None values are always returned for filtered_actions @@ -966,22 +966,22 @@ class SetEnvironment(RecipeStep): cmds = install_environment.environment_commands('set_environment') env_var_dicts = action_dict.get('environment_variable', []) root_dir_dict = dict(action='set_to', - name='%s_ROOT_DIR' % re.sub(r"[^A-Z0-9_]", "_", tool_dependency.name.upper()), - value=install_environment.install_dir) + name='%s_ROOT_DIR' % re.sub(r"[^A-Z0-9_]", "_", tool_dependency.name.upper()), + value=install_environment.install_dir) env_var_dicts.append(root_dir_dict) for env_var_dict in env_var_dicts: # Check for the presence of the $ENV[] key string and populate it if possible. env_var_dict = self.handle_environment_variables(install_environment=install_environment, - tool_dependency=tool_dependency, - env_var_dict=env_var_dict, - set_prior_environment_commands=cmds) + tool_dependency=tool_dependency, + env_var_dict=env_var_dict, + set_prior_environment_commands=cmds) env_file_builder.append_line(**env_var_dict) # The caller should check the status of the returned tool_dependency since return_code is not # returned by this function. return tool_dependency, None, None def handle_environment_variables(self, install_environment, tool_dependency, env_var_dict, - set_prior_environment_commands): + set_prior_environment_commands): """ This method works with a combination of three tool dependency definition tag sets, which are defined in the tool_dependencies.xml file in the order discussed here. The example for this discussion is the @@ -1092,7 +1092,7 @@ class SetEnvironment(RecipeStep): for env_elem in action_elem: if env_elem.tag == 'environment_variable': env_var_dict = env_manager.create_env_var_dict(elem=env_elem, - install_environment=install_environment) + install_environment=install_environment) if env_var_dict: env_var_dicts.append(env_var_dict) if env_var_dicts: @@ -1108,7 +1108,7 @@ class SetEnvironmentForInstall(RecipeStep): self.type = 'set_environment_for_install' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Configure an environment for compiling a package. Since this class is not used in the initial download stage, no recipe step filtering is performed here, and None values are always returned @@ -1152,7 +1152,7 @@ class SetupPerlEnvironment(Download, RecipeStep): self.type = 'setup_perl_environment' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Initialize the environment for installing Perl packages. The class is called during the initial download stage when installing packages, so the value of initial_download will generally be True. @@ -1181,7 +1181,7 @@ class SetupPerlEnvironment(Download, RecipeStep): else: install_environment.add_env_shell_file_paths(env_shell_file_paths) log.debug('Handling setup_perl_environment for tool dependency %s with install_environment.env_shell_file_paths:\n%s' % - (str(tool_dependency.name), str(install_environment.env_shell_file_paths))) + (str(tool_dependency.name), str(install_environment.env_shell_file_paths))) dir = os.path.curdir current_dir = os.path.abspath(os.path.join(work_dir, dir)) with lcd(current_dir): @@ -1216,9 +1216,9 @@ class SetupPerlEnvironment(Download, RecipeStep): with lcd(tmp_work_dir): cmd = install_environment.build_command(basic_util.evaluate_template(cmd, install_environment)) return_code = install_environment.handle_command(tool_dependency=tool_dependency, - cmd=cmd, - return_output=False, - job_name=package_name) + cmd=cmd, + return_output=False, + job_name=package_name) if return_code: if initial_download: return tool_dependency, filtered_actions, dir @@ -1229,9 +1229,9 @@ class SetupPerlEnvironment(Download, RecipeStep): cmd += '''cpanm --local-lib=$INSTALL_DIR %s''' % (perl_package) cmd = install_environment.build_command(basic_util.evaluate_template(cmd, install_environment)) return_code = install_environment.handle_command(tool_dependency=tool_dependency, - cmd=cmd, - return_output=False, - job_name=package_name) + cmd=cmd, + return_output=False, + job_name=package_name) if return_code: if initial_download: return tool_dependency, filtered_actions, dir @@ -1240,11 +1240,11 @@ class SetupPerlEnvironment(Download, RecipeStep): env_file_builder.handle_action_shell_file_paths(action_dict) # Recursively add dependent PERL5LIB and PATH to env.sh & anything else needed. env_file_builder.append_line(name="PERL5LIB", - action="prepend_to", - value=os.path.join(install_environment.install_dir, 'lib', 'perl5')) + action="prepend_to", + value=os.path.join(install_environment.install_dir, 'lib', 'perl5')) env_file_builder.append_line(name="PATH", - action="prepend_to", - value=os.path.join(install_environment.install_dir, 'bin')) + action="prepend_to", + value=os.path.join(install_environment.install_dir, 'bin')) return_code = env_file_builder.return_code if return_code: if initial_download: @@ -1270,8 +1270,8 @@ class SetupPerlEnvironment(Download, RecipeStep): all_env_shell_file_paths = [] env_manager = EnvManager(self.app) action_dict = env_manager.get_env_shell_file_paths_from_setup_environment_elem(all_env_shell_file_paths, - action_elem, - action_dict) + action_elem, + action_dict) perl_packages = [] for env_elem in action_elem: if env_elem.tag == 'package': @@ -1281,7 +1281,7 @@ class SetupPerlEnvironment(Download, RecipeStep): # Unfortunately CPAN does not support versioning, so if you want real reproducibility you need to specify # the tarball path and the right order of different tarballs manually. perl_packages.append(dict(package=env_elem.text.strip(), - checksums=self.get_elem_checksums(env_elem))) + checksums=self.get_elem_checksums(env_elem))) if perl_packages: action_dict['perl_packages'] = perl_packages return action_dict @@ -1294,7 +1294,7 @@ class SetupREnvironment(Download, RecipeStep): self.type = 'setup_r_environment' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Initialize the environment for installing R packages. The class is called during the initial download stage when installing packages, so the value of initial_download will generally be True. @@ -1319,14 +1319,14 @@ class SetupREnvironment(Download, RecipeStep): log.error(error_message) status = self.app.install_model.ToolDependency.installation_status.ERROR tool_dependency = tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency, - status=status, - error_message=error_message) + tool_dependency, + status=status, + error_message=error_message) return tool_dependency, [], None else: install_environment.add_env_shell_file_paths(env_shell_file_paths) log.debug('Handling setup_r_environment for tool dependency %s with install_environment.env_shell_file_paths:\n%s' % - (str(tool_dependency.name), str(install_environment.env_shell_file_paths))) + (str(tool_dependency.name), str(install_environment.env_shell_file_paths))) tarball_names = [] for r_package_dict in action_dict['r_packages']: url = r_package_dict['package'] @@ -1346,9 +1346,9 @@ class SetupREnvironment(Download, RecipeStep): (str(tarball_name)) cmd = install_environment.build_command(basic_util.evaluate_template(cmd, install_environment)) return_code = install_environment.handle_command(tool_dependency=tool_dependency, - cmd=cmd, - return_output=False, - job_name=package_name) + cmd=cmd, + return_output=False, + job_name=package_name) if return_code: if initial_download: return tool_dependency, filtered_actions, dir @@ -1381,13 +1381,13 @@ class SetupREnvironment(Download, RecipeStep): all_env_shell_file_paths = [] env_manager = EnvManager(self.app) action_dict = env_manager.get_env_shell_file_paths_from_setup_environment_elem(all_env_shell_file_paths, - action_elem, - action_dict) + action_elem, + action_dict) r_packages = list() for env_elem in action_elem: if env_elem.tag == 'package': r_packages.append(dict(package=env_elem.text.strip(), - checksums=self.get_elem_checksums(env_elem))) + checksums=self.get_elem_checksums(env_elem))) if r_packages: action_dict['r_packages'] = r_packages return action_dict @@ -1400,7 +1400,7 @@ class SetupRubyEnvironment(Download, RecipeStep): self.type = 'setup_ruby_environment' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Initialize the environment for installing Ruby packages. The class is called during the initial download stage when installing packages, so the value of initial_download will generally be True. @@ -1430,7 +1430,7 @@ class SetupRubyEnvironment(Download, RecipeStep): else: install_environment.add_env_shell_file_paths(env_shell_file_paths) log.debug('Handling setup_ruby_environment for tool dependency %s with install_environment.env_shell_file_paths:\n%s' % - (str(tool_dependency.name), str(install_environment.env_shell_file_paths))) + (str(tool_dependency.name), str(install_environment.env_shell_file_paths))) dir = os.path.curdir current_dir = os.path.abspath(os.path.join(work_dir, dir)) with lcd(current_dir): @@ -1469,9 +1469,9 @@ class SetupRubyEnvironment(Download, RecipeStep): gem install %s %s''' % (gem, gem_parameters) cmd = install_environment.build_command(basic_util.evaluate_template(cmd, install_environment)) return_code = install_environment.handle_command(tool_dependency=tool_dependency, - cmd=cmd, - return_output=False, - job_name=package_name) + cmd=cmd, + return_output=False, + job_name=package_name) if return_code: if initial_download: return tool_dependency, filtered_actions, dir @@ -1479,11 +1479,11 @@ class SetupRubyEnvironment(Download, RecipeStep): # Pull in ruby dependencies (runtime). env_file_builder.handle_action_shell_file_paths(action_dict) env_file_builder.append_line(name="GEM_PATH", - action="prepend_to", - value=install_environment.install_dir) + action="prepend_to", + value=install_environment.install_dir) env_file_builder.append_line(name="PATH", - action="prepend_to", - value=os.path.join(install_environment.install_dir, 'bin')) + action="prepend_to", + value=os.path.join(install_environment.install_dir, 'bin')) return_code = env_file_builder.return_code if return_code: if initial_download: @@ -1510,8 +1510,8 @@ class SetupRubyEnvironment(Download, RecipeStep): all_env_shell_file_paths = [] env_manager = EnvManager(self.app) action_dict = env_manager.get_env_shell_file_paths_from_setup_environment_elem(all_env_shell_file_paths, - action_elem, - action_dict) + action_elem, + action_dict) ruby_package_tups = [] for env_elem in action_elem: if env_elem.tag == 'package': @@ -1531,7 +1531,7 @@ class SetupRubyEnvironment(Download, RecipeStep): gem = env_elem.text.strip() tup = (gem, None, gem_parameters) ruby_package_tups.append(dict(package=tup, - checksums=self.get_elem_checksums(env_elem))) + checksums=self.get_elem_checksums(env_elem))) if ruby_package_tups: action_dict['ruby_package_tups'] = ruby_package_tups return action_dict @@ -1544,7 +1544,7 @@ class SetupPythonEnvironment(Download, RecipeStep): self.type = 'setup_python_environment' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Initialize the environment for installing Python packages. The class is called during the initial download stage when installing packages, so the value of initial_download will generally be True. @@ -1573,7 +1573,7 @@ class SetupPythonEnvironment(Download, RecipeStep): else: install_environment.add_env_shell_file_paths(env_shell_file_paths) log.debug('Handling setup_python_environment for tool dependency %s with install_environment.env_shell_file_paths:\n%s' % - (str(tool_dependency.name), str(install_environment.env_shell_file_paths))) + (str(tool_dependency.name), str(install_environment.env_shell_file_paths))) dir = os.path.curdir current_dir = os.path.abspath(os.path.join(work_dir, dir)) with lcd(current_dir): @@ -1607,9 +1607,9 @@ class SetupPythonEnvironment(Download, RecipeStep): cmd = install_environment.build_command(basic_util.evaluate_template(cmd, install_environment)) return_code = install_environment.handle_command(tool_dependency=tool_dependency, - cmd=cmd, - return_output=False, - job_name=package_name) + cmd=cmd, + return_output=False, + job_name=package_name) if return_code: if initial_download: return tool_dependency, filtered_actions, dir @@ -1617,14 +1617,14 @@ class SetupPythonEnvironment(Download, RecipeStep): # Pull in python dependencies (runtime). env_file_builder.handle_action_shell_file_paths(action_dict) env_file_builder.append_line(name="PYTHONPATH", - action="prepend_to", - value=os.path.join(install_environment.install_dir, 'lib', 'python')) + action="prepend_to", + value=os.path.join(install_environment.install_dir, 'lib', 'python')) env_file_builder.append_line(name="PYTHONPATH", - action="prepend_to", - value=os.path.join(install_environment.install_dir)) + action="prepend_to", + value=os.path.join(install_environment.install_dir)) env_file_builder.append_line(name="PATH", - action="prepend_to", - value=os.path.join(install_environment.install_dir, 'bin')) + action="prepend_to", + value=os.path.join(install_environment.install_dir, 'bin')) return_code = env_file_builder.return_code if return_code: if initial_download: @@ -1650,8 +1650,8 @@ class SetupPythonEnvironment(Download, RecipeStep): all_env_shell_file_paths = [] env_manager = EnvManager(self.app) action_dict = env_manager.get_env_shell_file_paths_from_setup_environment_elem(all_env_shell_file_paths, - action_elem, - action_dict) + action_elem, + action_dict) python_package_tups = [] for env_elem in action_elem: if env_elem.tag == 'package': @@ -1669,7 +1669,7 @@ class SetupPythonEnvironment(Download, RecipeStep): package = env_elem.text.strip() tup = (package, None) python_package_tups.append(dict(package=tup, - checksums=self.get_elem_checksums(env_elem))) + checksums=self.get_elem_checksums(env_elem))) if python_package_tups: action_dict['python_package_tups'] = python_package_tups action_dict.update(self.get_elem_checksums(action_elem)) @@ -1683,7 +1683,7 @@ class SetupVirtualEnv(Download, RecipeStep): self.type = 'setup_virtualenv' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Initialize a virtual environment for installing packages. If initial_download is True, the recipe steps will be filtered and returned and the installation directory (i.e., dir) will be defined and @@ -1716,8 +1716,8 @@ class SetupVirtualEnv(Download, RecipeStep): if action_dict['use_requirements_file']: install_command = "python '%s' install -r '%s' --log '%s'" % \ (os.path.join(venv_directory, "bin", "pip"), - requirements_path, - os.path.join(install_environment.install_dir, 'pip_install.log')) + requirements_path, + os.path.join(install_environment.install_dir, 'pip_install.log')) else: install_command = '' with open(requirements_path, "rb") as f: @@ -1729,27 +1729,27 @@ class SetupVirtualEnv(Download, RecipeStep): if line: line_install_command = "python '%s' install %s --log '%s'" % \ (os.path.join(venv_directory, "bin", "pip"), - line, - os.path.join(install_environment.install_dir, 'pip_install_%s.log' % (line))) + line, + os.path.join(install_environment.install_dir, 'pip_install_%s.log' % (line))) if not install_command: install_command = line_install_command else: install_command = "%s && %s" % (install_command, line_install_command) full_setup_command = "%s; %s; %s" % (setup_command, activate_command, install_command) return_code = install_environment.handle_command(tool_dependency=tool_dependency, - cmd=full_setup_command, - return_output=False, - job_name=package_name) + cmd=full_setup_command, + return_output=False, + job_name=package_name) if return_code: log.error("Failed to do setup_virtualenv install, exit code='%s'", return_code) # would it be better to try to set env variables anway, instead of returning here? return tool_dependency, None, None site_packages_directory, site_packages_directory_list = \ self.__get_site_packages_directory(install_environment, - self.app, - tool_dependency, - python_cmd, - venv_directory) + self.app, + tool_dependency, + python_cmd, + venv_directory) env_file_builder.append_line(name="PATH", action="prepend_to", value=os.path.join(venv_directory, "bin")) if site_packages_directory is None: log.error("virtualenv's site-packages directory '%s' does not exist", site_packages_directory_list) @@ -1768,7 +1768,7 @@ class SetupVirtualEnv(Download, RecipeStep): dir = self.url_download(work_dir, downloaded_filename, VIRTUALENV_URL) except: log.error("Failed to download virtualenv: url_download( '%s', '%s', '%s' ) threw an exception", - work_dir, downloaded_filename, VIRTUALENV_URL) + work_dir, downloaded_filename, VIRTUALENV_URL) return False full_path_to_dir = os.path.abspath(os.path.join(work_dir, dir)) shutil.move(full_path_to_dir, venv_dir) @@ -1806,13 +1806,13 @@ class SetupVirtualEnv(Download, RecipeStep): # Use raw strings so that python won't automatically unescape the quotes before passing the command # to subprocess.Popen. for site_packages_command in [r"""%s -c 'import site; site.getsitepackages()[0]'""" % - os.path.join(venv_directory, "bin", "python"), - r"""%s -c 'import os, sys; print os.path.join( sys.prefix, "lib", "python" + sys.version[:3], "site-packages" )'""" % - os.path.join(venv_directory, "bin", "python")]: + os.path.join(venv_directory, "bin", "python"), + r"""%s -c 'import os, sys; print os.path.join( sys.prefix, "lib", "python" + sys.version[:3], "site-packages" )'""" % + os.path.join(venv_directory, "bin", "python")]: output = install_environment.handle_command(tool_dependency=tool_dependency, - cmd=site_packages_command, - return_output=True, - job_name='_get_site_packages') + cmd=site_packages_command, + return_output=True, + job_name='_get_site_packages') site_packages_directory_list.append(output.stdout) if not output.return_code and os.path.exists(output.stdout): return (output.stdout, site_packages_directory_list) @@ -1826,7 +1826,7 @@ class ShellCommand(RecipeStep): self.type = 'shell_command' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Execute a command in a shell. If the value of initial_download is True, the recipe steps will be filtered and returned and the installation directory (i.e., dir) will be defined and returned. @@ -1847,9 +1847,9 @@ class ShellCommand(RecipeStep): # The caller should check the status of the returned tool_dependency since this function # does nothing with return_code. install_environment.handle_command(tool_dependency=tool_dependency, - cmd=cmd, - return_output=False, - job_name=package_name) + cmd=cmd, + return_output=False, + job_name=package_name) if initial_download: return tool_dependency, filtered_actions, dir return tool_dependency, None, None @@ -1869,7 +1869,7 @@ class TemplateCommand(RecipeStep): self.type = 'template_command' def execute_step(self, tool_dependency, package_name, actions, action_dict, filtered_actions, env_file_builder, - install_environment, work_dir, current_dir=None, initial_download=False): + install_environment, work_dir, current_dir=None, initial_download=False): """ Execute a template command in a shell. If the value of initial_download is True, the recipe steps will be filtered and returned and the installation directory (i.e., dir) will be defined and returned. @@ -1887,9 +1887,9 @@ class TemplateCommand(RecipeStep): # The caller should check the status of the returned tool_dependency since this function # does nothing with return_code. install_environment.handle_command(tool_dependency=tool_dependency, - cmd=cmd, - return_output=False, - job_name=package_name) + cmd=cmd, + return_output=False, + job_name=package_name) return tool_dependency, None, None def prepare_step(self, tool_dependency, action_elem, action_dict, install_environment, is_binary_download): 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 95cd905cb19..069960f87c9 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 @@ -21,14 +21,14 @@ class RecipeTag(object): """Abstract class that defines a standard format for handling recipe tags when installing packages.""" def process_tag_set(self, tool_shed_repository, tool_dependency, package_elem, package_name, package_version, - from_tool_migration_manager=False, tool_dependency_db_records=None): + from_tool_migration_manager=False, tool_dependency_db_records=None): raise Exception("Unimplemented Method") class SyncDatabase(object): def sync_database_with_file_system(self, app, tool_shed_repository, tool_dependency_name, tool_dependency_version, - tool_dependency_install_dir, tool_dependency_type='package'): + tool_dependency_install_dir, tool_dependency_type='package'): """ The installation directory defined by the received tool_dependency_install_dir exists, so check for the presence of INSTALLATION_LOG. If the files exists, we'll assume the tool dependency is installed, @@ -50,10 +50,10 @@ class SyncDatabase(object): can_install_tool_dependency = False tool_dependency = \ tool_dependency_util.get_tool_dependency_by_name_version_type_repository(app, - tool_shed_repository, - tool_dependency_name, - tool_dependency_version, - tool_dependency_type) + tool_shed_repository, + tool_dependency_name, + tool_dependency_version, + tool_dependency_type) if tool_dependency.status == app.install_model.ToolDependency.installation_status.INSTALLING: # The tool dependency is in an Installing state, so we don't want to do anything to it. If the tool # dependency is being installed by someone else, we don't want to interfere with that. This assumes @@ -89,9 +89,9 @@ class SyncDatabase(object): else: error_message = '\nInstallation path %s for tool dependency %s version %s exists, but the expected file %s' % \ (str(tool_dependency_install_dir), - str(tool_dependency_name), - str(tool_dependency_version), - str(basic_util.INSTALLATION_LOG)) + str(tool_dependency_name), + str(tool_dependency_version), + str(basic_util.INSTALLATION_LOG)) error_message += ' is missing. This indicates an installation error so the tool dependency is being' error_message += ' prepared for re-installation.' log.error(error_message) @@ -115,19 +115,19 @@ class Install(RecipeTag, SyncDatabase): self.tag = 'install' def process_tag_set(self, tool_shed_repository, tool_dependency, package_elem, package_name, package_version, - from_tool_migration_manager=False, tool_dependency_db_records=None): + from_tool_migration_manager=False, tool_dependency_db_records=None): # # Get the installation directory for tool dependencies that will be installed for the received tool_shed_repository. actions_elem_tuples = [] proceed_with_install = False install_dir = \ tool_dependency_util.get_tool_dependency_install_dir(app=self.app, - repository_name=tool_shed_repository.name, - repository_owner=tool_shed_repository.owner, - repository_changeset_revision=tool_shed_repository.installed_changeset_revision, - tool_dependency_type='package', - tool_dependency_name=package_name, - tool_dependency_version=package_version) + repository_name=tool_shed_repository.name, + repository_owner=tool_shed_repository.owner, + repository_changeset_revision=tool_shed_repository.installed_changeset_revision, + tool_dependency_type='package', + tool_dependency_name=package_name, + tool_dependency_version=package_version) if os.path.exists(install_dir): # The tool_migration_manager handles tool migration stages and the sync_database_with_file_system() # method handles two scenarios: (1) where a Galaxy file system environment related to installed @@ -141,11 +141,11 @@ class Install(RecipeTag, SyncDatabase): else: # Notice that we'll throw away the following tool_dependency if it can be installed. tool_dependency, proceed_with_install = self.sync_database_with_file_system(self.app, - tool_shed_repository, - package_name, - package_version, - install_dir, - tool_dependency_type='package') + tool_shed_repository, + package_name, + package_version, + install_dir, + tool_dependency_type='package') if not proceed_with_install: log.debug("Tool dependency %s version %s cannot be installed (it was probably previously installed), so returning it." % (str(tool_dependency.name), str(tool_dependency.version))) @@ -157,20 +157,20 @@ class Install(RecipeTag, SyncDatabase): status = self.app.install_model.ToolDependency.installation_status.INSTALLING tool_dependency = \ tool_dependency_util.create_or_update_tool_dependency(app=self.app, - tool_shed_repository=tool_shed_repository, - name=package_name, - version=package_version, - type='package', - status=status, - set_status=True) + tool_shed_repository=tool_shed_repository, + name=package_name, + version=package_version, + type='package', + status=status, + set_status=True) # Get the information about the current platform in case the tool dependency definition includes tag sets # for installing compiled binaries. platform_info_dict = tool_dependency_util.get_platform_info_dict() if package_install_version == '1.0': # Handle tool dependency installation using a fabric method included in the Galaxy framework. actions_elem_tuples = tool_dependency_util.parse_package_elem(package_elem, - platform_info_dict=platform_info_dict, - include_after_install_actions=True) + platform_info_dict=platform_info_dict, + include_after_install_actions=True) if not actions_elem_tuples: proceed_with_install = False error_message = 'Version %s of the %s package cannot be installed because ' % (str(package_version), str(package_name)) @@ -194,7 +194,7 @@ class Package(RecipeTag): self.tag = 'package' def process_tag_set(self, tool_shed_repository, tool_dependency, package_elem, package_name, package_version, - from_tool_migration_manager=False, tool_dependency_db_records=None): + from_tool_migration_manager=False, tool_dependency_db_records=None): action_elem_tuples = [] proceed_with_install = False # Only install the tool_dependency if it is not already installed and it is associated with a database @@ -211,8 +211,8 @@ class Package(RecipeTag): pass tool_dependency = \ tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency=tool_dependency, - status=self.app.install_model.ToolDependency.installation_status.ERROR) + tool_dependency=tool_dependency, + status=self.app.install_model.ToolDependency.installation_status.ERROR) else: proceed_with_install = True return tool_dependency, proceed_with_install, action_elem_tuples @@ -225,7 +225,7 @@ class ReadMe(RecipeTag): self.tag = 'readme' def process_tag_set(self, tool_shed_repository, tool_dependency, package_elem, package_name, package_version, - from_tool_migration_manager=False, tool_dependency_db_records=None): + from_tool_migration_manager=False, tool_dependency_db_records=None): # Nothing to be done. action_elem_tuples = [] proceed_with_install = False @@ -247,8 +247,8 @@ class Repository(RecipeTag, SyncDatabase): (str(tool_shed_url), str(name), str(owner), str(changeset_revision)) raise Exception(message) params = dict(name=name, - owner=owner, - changeset_revision=changeset_revision) + owner=owner, + changeset_revision=changeset_revision) pathspec = ['repository', 'get_tool_dependencies_config_contents'] text = url_get(tool_shed_url, password_mgr=self.app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) if text: @@ -267,8 +267,8 @@ class Repository(RecipeTag, SyncDatabase): return None def create_tool_dependency_with_initialized_env_sh_file(self, dependent_install_dir, tool_shed_repository, - required_repository, package_name, package_version, - tool_dependencies_config): + required_repository, package_name, package_version, + tool_dependencies_config): """ Create or get a tool_dependency record that is defined by the received package_name and package_version. An env.sh file will be created for the tool_dependency in the received dependent_install_dir. @@ -298,27 +298,27 @@ class Repository(RecipeTag, SyncDatabase): # find a record, we need to see if it is in an error state and if so handle it appropriately. required_tool_dependency = \ tool_dependency_util.get_tool_dependency_by_name_version_type_repository(self.app, - required_repository, - required_td_package_name, - required_td_package_version, - 'package') + required_repository, + required_td_package_name, + required_td_package_version, + 'package') if required_td_package_name == package_name and required_td_package_version == package_version: # Get or create a database tool_dependency record with which the installed package on disk will be associated. tool_dependency = \ tool_dependency_util.create_or_update_tool_dependency(app=self.app, - tool_shed_repository=tool_shed_repository, - name=package_name, - version=package_version, - type='package', - status=self.app.install_model.ToolDependency.installation_status.NEVER_INSTALLED, - set_status=True) + tool_shed_repository=tool_shed_repository, + name=package_name, + version=package_version, + type='package', + status=self.app.install_model.ToolDependency.installation_status.NEVER_INSTALLED, + set_status=True) # Create an env.sh file for the tool_dependency whose first line will source the env.sh file located in # the path defined by required_tool_dependency_env_file_path. It doesn't matter if the required env.sh # file currently exists.. required_tool_dependency_env_file_path = \ self.get_required_repository_package_env_sh_path(package_name, - package_version, - required_repository) + package_version, + required_repository) env_file_builder = EnvFileBuilder(tool_dependency.installation_directory(self.app)) env_file_builder.append_line(action="source", value=required_tool_dependency_env_file_path) return_code = env_file_builder.return_code @@ -341,8 +341,8 @@ class Repository(RecipeTag, SyncDatabase): else: tool_dependency = \ tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency=tool_dependency, - status=self.app.install_model.ToolDependency.installation_status.INSTALLED) + tool_dependency=tool_dependency, + status=self.app.install_model.ToolDependency.installation_status.INSTALLED) tool_dependencies.append(tool_dependency) return tool_dependencies @@ -350,17 +350,17 @@ class Repository(RecipeTag, SyncDatabase): """Return path to env.sh file in required repository if the required repository has been installed.""" env_sh_file_dir = \ tool_dependency_util.get_tool_dependency_install_dir(app=self.app, - repository_name=required_repository.name, - repository_owner=required_repository.owner, - repository_changeset_revision=required_repository.installed_changeset_revision, - tool_dependency_type='package', - tool_dependency_name=package_name, - tool_dependency_version=package_version) + repository_name=required_repository.name, + repository_owner=required_repository.owner, + repository_changeset_revision=required_repository.installed_changeset_revision, + tool_dependency_type='package', + tool_dependency_name=package_name, + tool_dependency_version=package_version) env_sh_file_path = os.path.join(env_sh_file_dir, 'env.sh') return env_sh_file_path def handle_complex_repository_dependency_for_package(self, elem, package_name, package_version, tool_shed_repository, - from_tool_migration_manager=False): + from_tool_migration_manager=False): """ Inspect the repository defined by a complex repository dependency definition and take certain steps to enable installation of the received package name and version to proceed. The received elem is the @@ -374,9 +374,9 @@ class Repository(RecipeTag, SyncDatabase): required_repository_owner = elem.attrib['owner'] default_required_repository_changeset_revision = elem.attrib['changeset_revision'] required_repository = repository_util.get_repository_for_dependency_relationship(self.app, tool_shed_url, - required_repository_name, - required_repository_owner, - default_required_repository_changeset_revision) + required_repository_name, + required_repository_owner, + default_required_repository_changeset_revision) tool_shed = common_util.remove_protocol_from_tool_shed_url(tool_shed_url) tmp_filename = None if required_repository: @@ -384,22 +384,22 @@ class Repository(RecipeTag, SyncDatabase): # Define the installation directory for the required tool dependency package in the required repository. required_repository_package_install_dir = \ tool_dependency_util.get_tool_dependency_install_dir(app=self.app, - repository_name=required_repository_name, - repository_owner=required_repository_owner, - repository_changeset_revision=required_repository_changeset_revision, - tool_dependency_type='package', - tool_dependency_name=package_name, - tool_dependency_version=package_version) + repository_name=required_repository_name, + repository_owner=required_repository_owner, + repository_changeset_revision=required_repository_changeset_revision, + tool_dependency_type='package', + tool_dependency_name=package_name, + tool_dependency_version=package_version) # Define this dependent repository's tool dependency installation directory that will contain # the env.sh file with a path to the required repository's installed tool dependency package. dependent_install_dir = \ tool_dependency_util.get_tool_dependency_install_dir(app=self.app, - repository_name=tool_shed_repository.name, - repository_owner=tool_shed_repository.owner, - repository_changeset_revision=tool_shed_repository.installed_changeset_revision, - tool_dependency_type='package', - tool_dependency_name=package_name, - tool_dependency_version=package_version) + repository_name=tool_shed_repository.name, + repository_owner=tool_shed_repository.owner, + repository_changeset_revision=tool_shed_repository.installed_changeset_revision, + tool_dependency_type='package', + tool_dependency_name=package_name, + tool_dependency_version=package_version) if os.path.exists(dependent_install_dir): # The install manager handles tool migration stages and the sync_database_with_file_system() # method handles two scenarios: (1) where a Galaxy file system environment related to installed @@ -413,15 +413,15 @@ class Repository(RecipeTag, SyncDatabase): else: # Notice that we'll throw away the following tool_dependency if it can be installed. tool_dependency, can_install_tool_dependency = self.sync_database_with_file_system(self.app, - tool_shed_repository, - package_name, - package_version, - dependent_install_dir, - tool_dependency_type='package') + tool_shed_repository, + package_name, + package_version, + dependent_install_dir, + tool_dependency_type='package') if not can_install_tool_dependency: log.debug("Tool dependency %s version %s cannot be installed (it was probably previously installed), " - "so appending it to the list of handled tool dependencies.", - str(tool_dependency.name), str(tool_dependency.version)) + "so appending it to the list of handled tool dependencies.", + str(tool_dependency.name), str(tool_dependency.version)) handled_tool_dependencies.append(tool_dependency) else: can_install_tool_dependency = True @@ -448,27 +448,27 @@ class Repository(RecipeTag, SyncDatabase): # Make a call to the tool shed to get the changeset revision to which the current value of required_repository_changeset_revision # should be updated if it's not current. text = metadata_util.get_updated_changeset_revisions_from_tool_shed(app=self.app, - tool_shed_url=tool_shed, - name=required_repository_name, - owner=required_repository_owner, - changeset_revision=required_repository_changeset_revision) + tool_shed_url=tool_shed, + name=required_repository_name, + owner=required_repository_owner, + changeset_revision=required_repository_changeset_revision) if text: updated_changeset_revisions = listify(text) # The list of changeset revisions is in reverse order, so the newest will be first. required_repository_changeset_revision = updated_changeset_revisions[0] # Make a call to the tool shed to get the required repository's tool_dependencies.xml file. tmp_filename = self.create_temporary_tool_dependencies_config(tool_shed, - required_repository_name, - required_repository_owner, - required_repository_changeset_revision) + required_repository_name, + required_repository_owner, + required_repository_changeset_revision) config_to_use = tmp_filename handled_tool_dependencies = \ self.create_tool_dependency_with_initialized_env_sh_file(dependent_install_dir=dependent_install_dir, - tool_shed_repository=tool_shed_repository, - required_repository=required_repository, - package_name=package_name, - package_version=package_version, - tool_dependencies_config=config_to_use) + tool_shed_repository=tool_shed_repository, + required_repository=required_repository, + package_name=package_name, + package_version=package_version, + tool_dependencies_config=config_to_use) self.remove_file(tmp_filename) else: message = "Unable to locate required tool shed repository named %s owned by %s with revision %s." % \ @@ -477,15 +477,15 @@ class Repository(RecipeTag, SyncDatabase): return handled_tool_dependencies def process_tag_set(self, tool_shed_repository, tool_dependency, package_elem, package_name, package_version, - from_tool_migration_manager=False, tool_dependency_db_records=None): + from_tool_migration_manager=False, tool_dependency_db_records=None): # We have a complex repository dependency definition. action_elem_tuples = [] proceed_with_install = False rd_tool_dependencies = self.handle_complex_repository_dependency_for_package(package_elem, - package_name, - package_version, - tool_shed_repository, - from_tool_migration_manager=from_tool_migration_manager) + package_name, + package_version, + tool_shed_repository, + from_tool_migration_manager=from_tool_migration_manager) for rd_tool_dependency in rd_tool_dependencies: if rd_tool_dependency.status == self.app.install_model.ToolDependency.installation_status.ERROR: # We'll log the error here, but continue installing packages since some may not require this dependency. @@ -509,7 +509,7 @@ class SetEnvironment(RecipeTag): self.tag = 'set_environment' def process_tag_set(self, tool_shed_repository, tool_dependency, package_elem, package_name, package_version, - from_tool_migration_manager=False, tool_dependency_db_records=None): + from_tool_migration_manager=False, tool_dependency_db_records=None): # We need to handle two tag sets for package_elem here, this: # # $REPOSITORY_INSTALL_DIR @@ -580,28 +580,28 @@ class SetEnvironment(RecipeTag): if attr_tup in attr_tups_of_dependencies_for_install: install_dir = \ tool_dependency_util.get_tool_dependency_install_dir(app=self.app, - repository_name=tool_shed_repository.name, - repository_owner=tool_shed_repository.owner, - repository_changeset_revision=tool_shed_repository.installed_changeset_revision, - tool_dependency_type='set_environment', - tool_dependency_name=env_var_name, - tool_dependency_version=None) + repository_name=tool_shed_repository.name, + repository_owner=tool_shed_repository.owner, + repository_changeset_revision=tool_shed_repository.installed_changeset_revision, + tool_dependency_type='set_environment', + tool_dependency_name=env_var_name, + tool_dependency_version=None) install_environment = InstallEnvironment(app=self.app, - tool_shed_repository_install_dir=tool_shed_repository_install_dir, - install_dir=install_dir) + tool_shed_repository_install_dir=tool_shed_repository_install_dir, + install_dir=install_dir) env_var_dict = env_manager.create_env_var_dict(elem=env_var_elem, - install_environment=install_environment) + install_environment=install_environment) if not os.path.exists(install_dir): os.makedirs(install_dir) status = self.app.install_model.ToolDependency.installation_status.INSTALLING tool_dependency = \ tool_dependency_util.create_or_update_tool_dependency(app=self.app, - tool_shed_repository=tool_shed_repository, - name=env_var_name, - version=None, - type='set_environment', - status=status, - set_status=True) + tool_shed_repository=tool_shed_repository, + name=env_var_name, + version=None, + type='set_environment', + status=status, + set_status=True) if env_var_version == '1.0': # Create this tool dependency's env.sh file. env_file_builder = EnvFileBuilder(install_dir) @@ -613,17 +613,17 @@ class SetEnvironment(RecipeTag): status = self.app.install_model.ToolDependency.installation_status.ERROR tool_dependency = \ tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency=tool_dependency, - status=status, - error_message=error_message) + tool_dependency=tool_dependency, + status=status, + error_message=error_message) else: if tool_dependency.status not in [self.app.install_model.ToolDependency.installation_status.ERROR, - self.app.install_model.ToolDependency.installation_status.INSTALLED]: + self.app.install_model.ToolDependency.installation_status.INSTALLED]: status = self.app.install_model.ToolDependency.installation_status.INSTALLED tool_dependency = \ tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency=tool_dependency, - status=status) + tool_dependency=tool_dependency, + status=status) log.debug('Environment variable %s set in %s for tool dependency %s.' % (str(env_var_name), str(install_dir), str(tool_dependency.name))) else: @@ -631,8 +631,8 @@ class SetEnvironment(RecipeTag): status = self.app.install_model.ToolDependency.installation_status.ERROR tool_dependency = \ tool_dependency_util.set_tool_dependency_attributes(self.app, - tool_dependency=tool_dependency, - status=status, - error_message=error_message) + tool_dependency=tool_dependency, + status=status, + error_message=error_message) tool_dependencies.append(tool_dependency) return tool_dependencies diff --git a/lib/tool_shed/galaxy_install/tool_migration_manager.py b/lib/tool_shed/galaxy_install/tool_migration_manager.py index 72234ac245e..fa9481b7674 100644 --- a/lib/tool_shed/galaxy_install/tool_migration_manager.py +++ b/lib/tool_shed/galaxy_install/tool_migration_manager.py @@ -37,7 +37,7 @@ log = logging.getLogger(__name__) class ToolMigrationManager(object): def __init__(self, app, latest_migration_script_number, tool_shed_install_config, migrated_tools_config, - install_dependencies): + install_dependencies): """ Check tool settings in tool_shed_install_config and install all repositories that are not already installed. The tool panel configuration file is the received @@ -92,8 +92,8 @@ class ToolMigrationManager(object): # {'emboss_antigenic.xml': [('emboss', '5.0.0', 'package', '\nreadme blah blah blah\n')]} tool_shed_accessible, missing_tool_configs_dict = \ common_util.check_for_missing_tools(app, - tool_panel_configs, - latest_migration_script_number) + tool_panel_configs, + latest_migration_script_number) else: # It doesn't matter if the tool shed is accessible since there are no migrated # tools defined in the local Galaxy instance, but we have to set the value of @@ -112,7 +112,7 @@ class ToolMigrationManager(object): for proprietary_tool_conf in self.proprietary_tool_confs: # Create a backup of the tool configuration in the un-migrated state. shutil.copy(proprietary_tool_conf, '%s-pre-stage-%04d' % (proprietary_tool_conf, - latest_migration_script_number)) + latest_migration_script_number)) for repository_elem in root: # Make sure we have a valid repository tag. if self.__is_valid_repository_tag(repository_elem): @@ -127,16 +127,16 @@ class ToolMigrationManager(object): changeset_revision = repository_elem.get('changeset_revision') tool_shed_accessible, repository_dependencies_dict = \ common_util.get_repository_dependencies(app, - self.tool_shed_url, - name, - self.repository_owner, - changeset_revision) + self.tool_shed_url, + name, + self.repository_owner, + changeset_revision) # Make sure all repository dependency records exist (as tool_shed_repository # table rows) in the Galaxy database. created_tool_shed_repositories = \ self.create_or_update_tool_shed_repository_records(name, - changeset_revision, - repository_dependencies_dict) + changeset_revision, + repository_dependencies_dict) # Order the repositories for proper installation. This process is similar to the # process used when installing tool shed repositories, but does not handle managing # tool panel sections and other components since repository dependency definitions @@ -144,16 +144,16 @@ class ToolMigrationManager(object): # to a repository dependency that contains a tool. ordered_tool_shed_repositories = \ self.order_repositories_for_installation(created_tool_shed_repositories, - repository_dependencies_dict) + repository_dependencies_dict) for tool_shed_repository in ordered_tool_shed_repositories: is_repository_dependency = self.__is_repository_dependency(name, - changeset_revision, - tool_shed_repository) + changeset_revision, + tool_shed_repository) self.install_repository(repository_elem, - tool_shed_repository, - install_dependencies, - is_repository_dependency=is_repository_dependency) + tool_shed_repository, + install_dependencies, + is_repository_dependency=is_repository_dependency) else: message = "\nNo tools associated with migration stage %s are defined in your " % \ str(latest_migration_script_number) @@ -175,16 +175,16 @@ class ToolMigrationManager(object): repository_clone_url = os.path.join(self.tool_shed_url, 'repos', owner, name) ctx_rev = suc.get_ctx_rev(self.app, self.tool_shed_url, name, owner, changeset_revision) tool_shed_repository = repository_util.create_or_update_tool_shed_repository(app=self.app, - name=name, - description=description, - installed_changeset_revision=changeset_revision, - ctx_rev=ctx_rev, - repository_clone_url=repository_clone_url, - metadata_dict={}, - status=self.app.install_model.ToolShedRepository.installation_status.NEW, - current_changeset_revision=None, - owner=self.repository_owner, - dist_to_shed=True) + name=name, + description=description, + installed_changeset_revision=changeset_revision, + ctx_rev=ctx_rev, + repository_clone_url=repository_clone_url, + metadata_dict={}, + status=self.app.install_model.ToolShedRepository.installation_status.NEW, + current_changeset_revision=None, + owner=self.repository_owner, + dist_to_shed=True) return tool_shed_repository return None @@ -196,9 +196,9 @@ class ToolMigrationManager(object): created_tool_shed_repositories = [] description = repository_dependencies_dict.get('description', None) tool_shed_repository = self.create_or_update_tool_shed_repository_record(name, - self.repository_owner, - changeset_revision, - description=description) + self.repository_owner, + changeset_revision, + description=description) if tool_shed_repository: created_tool_shed_repositories.append(tool_shed_repository) for rd_key, rd_tups in repository_dependencies_dict.items(): @@ -209,9 +209,9 @@ class ToolMigrationManager(object): rd_tool_shed, rd_name, rd_owner, rd_changeset_revision = parsed_rd_tup[0:4] # TODO: Make sure the repository description is applied to the new repository record during installation. tool_shed_repository = self.create_or_update_tool_shed_repository_record(rd_name, - rd_owner, - rd_changeset_revision, - description=None) + rd_owner, + rd_changeset_revision, + description=None) if tool_shed_repository: created_tool_shed_repositories.append(tool_shed_repository) return created_tool_shed_repositories @@ -366,7 +366,7 @@ class ToolMigrationManager(object): return tool_panel_elems def handle_repository_contents(self, tool_shed_repository, repository_clone_url, relative_install_dir, repository_elem, - install_dependencies, is_repository_dependency=False): + install_dependencies, is_repository_dependency=False): """ Generate the metadata for the installed tool shed repository, among other things. If the installed tool_shed_repository contains tools that are loaded into the Galaxy tool panel, this method will automatically eliminate all entries for each @@ -390,8 +390,8 @@ class ToolMigrationManager(object): if is_displayed: tool_panel_dict_for_tool_config = \ self.tpm.generate_tool_panel_dict_for_tool_config(guid, - tool_config, - tool_sections=tool_sections) + tool_config, + tool_sections=tool_sections) # The tool-panel_dict has the following structure. # { : [{ tool_config : , # id: , @@ -417,16 +417,16 @@ class ToolMigrationManager(object): finally: lock.release() irmm = InstalledRepositoryMetadataManager(app=self.app, - tpm=self.tpm, - repository=tool_shed_repository, - changeset_revision=tool_shed_repository.changeset_revision, - repository_clone_url=repository_clone_url, - shed_config_dict=self.shed_config_dict, - relative_install_dir=relative_install_dir, - repository_files_dir=None, - resetting_all_metadata_on_repository=False, - updating_installed_repository=False, - persist=True) + tpm=self.tpm, + repository=tool_shed_repository, + changeset_revision=tool_shed_repository.changeset_revision, + repository_clone_url=repository_clone_url, + shed_config_dict=self.shed_config_dict, + relative_install_dir=relative_install_dir, + repository_files_dir=None, + resetting_all_metadata_on_repository=False, + updating_installed_repository=False, + persist=True) irmm.generate_metadata_for_changeset_revision() irmm_metadata_dict = irmm.get_metadata_dict() tool_shed_repository.metadata = irmm_metadata_dict @@ -437,9 +437,9 @@ class ToolMigrationManager(object): # All tool_dependency objects must be created before the tools are processed even if no # tool dependencies will be installed. tool_dependencies = tool_dependency_util.create_tool_dependency_objects(self.app, - tool_shed_repository, - relative_install_dir, - set_status=True) + tool_shed_repository, + relative_install_dir, + set_status=True) else: tool_dependencies = None if 'tools' in irmm_metadata_dict: @@ -454,41 +454,41 @@ class ToolMigrationManager(object): # Handle missing data table entries for tool parameters that are dynamically # generated select lists. repository_tools_tups = tdtm.handle_missing_data_table_entry(relative_install_dir, - self.tool_path, - repository_tools_tups) + self.tool_path, + repository_tools_tups) # Handle missing index files for tool parameters that are dynamically generated select lists. repository_tools_tups, sample_files_copied = tool_util.handle_missing_index_file(self.app, - self.tool_path, - sample_files, - repository_tools_tups, - sample_files_copied) + self.tool_path, + sample_files, + repository_tools_tups, + sample_files_copied) # Copy remaining sample files included in the repository to the ~/tool-data # directory of the local Galaxy instance. tool_util.copy_sample_files(self.app, - sample_files, - tool_path=self.tool_path, - sample_files_copied=sample_files_copied) + sample_files, + tool_path=self.tool_path, + sample_files_copied=sample_files_copied) if not is_repository_dependency: self.tpm.add_to_tool_panel(tool_shed_repository.name, - repository_clone_url, - tool_shed_repository.installed_changeset_revision, - repository_tools_tups, - self.repository_owner, - self.migrated_tools_config, - tool_panel_dict=tool_panel_dict_for_display, - new_install=True) + repository_clone_url, + tool_shed_repository.installed_changeset_revision, + repository_tools_tups, + self.repository_owner, + self.migrated_tools_config, + tool_panel_dict=tool_panel_dict_for_display, + new_install=True) if install_dependencies and tool_dependencies and has_tool_dependencies: # Install tool dependencies. irm = install_manager.InstallRepositoryManager(self.app, self.tpm) itdm = install_manager.InstallToolDependencyManager(self.app) irm.update_tool_shed_repository_status(tool_shed_repository, - self.app.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES) + self.app.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES) # Get the tool_dependencies.xml file from disk. tool_dependencies_config = hg_util.get_config_from_disk('tool_dependencies.xml', repo_install_dir) installed_tool_dependencies = itdm.install_specified_tool_dependencies(tool_shed_repository=tool_shed_repository, - tool_dependencies_config=tool_dependencies_config, - tool_dependencies=tool_dependencies, - from_tool_migration_manager=True) + tool_dependencies_config=tool_dependencies_config, + tool_dependencies=tool_dependencies, + from_tool_migration_manager=True) for installed_tool_dependency in installed_tool_dependencies: if installed_tool_dependency.status == self.app.install_model.ToolDependency.installation_status.ERROR: log.error( @@ -508,22 +508,22 @@ class ToolMigrationManager(object): # completes. converter_path, display_path = \ cdl.alter_config_and_load_prorietary_datatypes(datatypes_config, - repo_install_dir, - override=False) + repo_install_dir, + override=False) if converter_path or display_path: # Create a dictionary of tool shed repository related information. repository_dict = \ cdl.create_repository_dict_for_proprietary_datatypes(tool_shed=self.tool_shed_url, - name=tool_shed_repository.name, - owner=self.repository_owner, - installed_changeset_revision=tool_shed_repository.installed_changeset_revision, - tool_dicts=irmm_metadata_dict.get('tools', []), - converter_path=converter_path, - display_path=display_path) + name=tool_shed_repository.name, + owner=self.repository_owner, + installed_changeset_revision=tool_shed_repository.installed_changeset_revision, + tool_dicts=irmm_metadata_dict.get('tools', []), + converter_path=converter_path, + display_path=display_path) if converter_path: # Load proprietary datatype converters self.app.datatypes_registry.load_datatype_converters(self.toolbox, - installed_repository_dict=repository_dict) + installed_repository_dict=repository_dict) if display_path: # Load proprietary datatype display applications self.app.datatypes_registry.load_display_applications(self.app, installed_repository_dict=repository_dict) @@ -533,18 +533,18 @@ class ToolMigrationManager(object): """Install a single repository, loading contained tools into the tool panel.""" # Install path is of the form: //repos/// relative_clone_dir = os.path.join(tool_shed_repository.tool_shed, - 'repos', - tool_shed_repository.owner, - tool_shed_repository.name, - tool_shed_repository.installed_changeset_revision) + 'repos', + tool_shed_repository.owner, + tool_shed_repository.name, + tool_shed_repository.installed_changeset_revision) clone_dir = os.path.join(self.tool_path, relative_clone_dir) cloned_ok = self.__iscloned(clone_dir) is_installed = False # Any of the following states should count as installed in this context. if tool_shed_repository.status in [self.app.install_model.ToolShedRepository.installation_status.INSTALLED, - self.app.install_model.ToolShedRepository.installation_status.ERROR, - self.app.install_model.ToolShedRepository.installation_status.UNINSTALLED, - self.app.install_model.ToolShedRepository.installation_status.DEACTIVATED]: + self.app.install_model.ToolShedRepository.installation_status.ERROR, + self.app.install_model.ToolShedRepository.installation_status.UNINSTALLED, + self.app.install_model.ToolShedRepository.installation_status.DEACTIVATED]: is_installed = True if cloned_ok and is_installed: log.info("Skipping automatic install of repository '%s' because it has already been installed in location %s", @@ -555,32 +555,32 @@ class ToolMigrationManager(object): relative_install_dir = os.path.join(relative_clone_dir, tool_shed_repository.name) install_dir = os.path.join(clone_dir, tool_shed_repository.name) ctx_rev = suc.get_ctx_rev(self.app, - self.tool_shed_url, - tool_shed_repository.name, - tool_shed_repository.owner, - tool_shed_repository.installed_changeset_revision) + self.tool_shed_url, + tool_shed_repository.name, + tool_shed_repository.owner, + tool_shed_repository.installed_changeset_revision) if not cloned_ok: irm.update_tool_shed_repository_status(tool_shed_repository, - self.app.install_model.ToolShedRepository.installation_status.CLONING) + self.app.install_model.ToolShedRepository.installation_status.CLONING) cloned_ok, error_message = hg_util.clone_repository(repository_clone_url, os.path.abspath(install_dir), ctx_rev) if cloned_ok and not is_installed: self.handle_repository_contents(tool_shed_repository=tool_shed_repository, - repository_clone_url=repository_clone_url, - relative_install_dir=relative_install_dir, - repository_elem=repository_elem, - install_dependencies=install_dependencies, - is_repository_dependency=is_repository_dependency) + repository_clone_url=repository_clone_url, + relative_install_dir=relative_install_dir, + repository_elem=repository_elem, + install_dependencies=install_dependencies, + is_repository_dependency=is_repository_dependency) self.app.install_model.context.refresh(tool_shed_repository) metadata_dict = tool_shed_repository.metadata if 'tools' in metadata_dict: # Initialize the ToolVersionManager. tvm = tool_version_manager.ToolVersionManager(self.app) irm.update_tool_shed_repository_status(tool_shed_repository, - self.app.install_model.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS) + self.app.install_model.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS) # Get the tool_versions from the tool shed for each tool in the installed change set. params = dict(name=tool_shed_repository.name, - owner=self.repository_owner, - changeset_revision=tool_shed_repository.installed_changeset_revision) + owner=self.repository_owner, + changeset_revision=tool_shed_repository.installed_changeset_revision) pathspec = ['repository', 'get_tool_versions'] text = util.url_get(self.tool_shed_url, password_mgr=self.app.tool_shed_registry.url_auth(self.tool_shed_url), pathspec=pathspec, params=params) if text: @@ -598,30 +598,30 @@ class ToolMigrationManager(object): tool_version_using_guid = tvm.get_tool_version(tool_id) if not tool_version_using_old_id: tool_version_using_old_id = self.app.install_model.ToolVersion(tool_id=old_tool_id, - tool_shed_repository=tool_shed_repository) + tool_shed_repository=tool_shed_repository) self.app.install_model.context.add(tool_version_using_old_id) self.app.install_model.context.flush() if not tool_version_using_guid: tool_version_using_guid = self.app.install_model.ToolVersion(tool_id=tool_id, - tool_shed_repository=tool_shed_repository) + tool_shed_repository=tool_shed_repository) self.app.install_model.context.add(tool_version_using_guid) self.app.install_model.context.flush() # Associate the two versions as parent / child. tool_version_association = tvm.get_tool_version_association(tool_version_using_old_id, - tool_version_using_guid) + tool_version_using_guid) if not tool_version_association: tool_version_association = \ self.app.install_model.ToolVersionAssociation(tool_id=tool_version_using_guid.id, - parent_id=tool_version_using_old_id.id) + parent_id=tool_version_using_old_id.id) self.app.install_model.context.add(tool_version_association) self.app.install_model.context.flush() irm.update_tool_shed_repository_status(tool_shed_repository, - self.app.install_model.ToolShedRepository.installation_status.INSTALLED) + self.app.install_model.ToolShedRepository.installation_status.INSTALLED) else: log.error('Error attempting to clone repository %s: %s', str(tool_shed_repository.name), str(error_message)) irm.update_tool_shed_repository_status(tool_shed_repository, - self.app.install_model.ToolShedRepository.installation_status.ERROR, - error_message=error_message) + self.app.install_model.ToolShedRepository.installation_status.ERROR, + error_message=error_message) @property def non_shed_tool_panel_configs(self): diff --git a/lib/tool_shed/galaxy_install/tools/data_manager.py b/lib/tool_shed/galaxy_install/tools/data_manager.py index a0ba1f80b45..fe43dc5a4f5 100644 --- a/lib/tool_shed/galaxy_install/tools/data_manager.py +++ b/lib/tool_shed/galaxy_install/tools/data_manager.py @@ -46,7 +46,7 @@ class DataManagerHandler(object): lock.release() def install_data_managers(self, shed_data_manager_conf_filename, metadata_dict, shed_config_dict, - relative_install_dir, repository, repository_tools_tups): + relative_install_dir, repository, repository_tools_tups): rval = [] if 'data_manager' in metadata_dict: tpm = tool_panel_manager.ToolPanelManager(self.app) @@ -74,7 +74,7 @@ class DataManagerHandler(object): data_manager_id = elem.get('id', None) if data_manager_id is None: log.error("A data manager was defined that does not have an id and will not be installed:\n%s" % - xml_util.xml_to_string(elem)) + xml_util.xml_to_string(elem)) continue data_manager_dict = metadata_dict['data_manager'].get('data_managers', {}).get(data_manager_id, None) if data_manager_dict is None: @@ -92,12 +92,12 @@ class DataManagerHandler(object): tool_dict = repository_tools_by_guid.get(tool_guid, None) if tool_dict is None: log.error("Data manager tool guid '%s' could not be found for '%s'. Perhaps the tool is invalid?" % - (tool_guid, data_manager_id)) + (tool_guid, data_manager_id)) continue tool = tool_dict.get('tool', None) if tool is None: log.error("Data manager tool with guid '%s' could not be found for '%s'. Perhaps the tool is invalid?" % - (tool_guid, data_manager_id)) + (tool_guid, data_manager_id)) continue tool_config_filename = tool_dict.get('tool_config_filename', None) if tool_config_filename is None: @@ -107,16 +107,16 @@ class DataManagerHandler(object): if elem.get('tool_file', None) is not None: del elem.attrib['tool_file'] # remove old tool_file info tool_elem = tpm.generate_tool_elem(repository.tool_shed, - repository.name, - repository.installed_changeset_revision, - repository.owner, - tool_config_filename, - tool, - None) + repository.name, + repository.installed_changeset_revision, + repository.owner, + tool_config_filename, + tool, + None) elem.insert(0, tool_elem) data_manager = \ self.app.data_managers.load_manager_from_elem(elem, - tool_path=shed_config_dict.get('tool_path', '')) + tool_path=shed_config_dict.get('tool_path', '')) if data_manager: rval.append(data_manager) else: 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 c7bfefaffad..dfe48330edc 100644 --- a/lib/tool_shed/galaxy_install/tools/tool_panel_manager.py +++ b/lib/tool_shed/galaxy_install/tools/tool_panel_manager.py @@ -44,18 +44,18 @@ class ToolPanelManager(object): self.app.wait_for_toolbox_reload(old_toolbox) def add_to_tool_panel(self, repository_name, repository_clone_url, changeset_revision, repository_tools_tups, owner, - shed_tool_conf, tool_panel_dict, new_install=True, tool_panel_section_mapping={}): + shed_tool_conf, tool_panel_dict, new_install=True, tool_panel_section_mapping={}): """A tool shed repository is being installed or updated so handle tool panel alterations accordingly.""" # We need to change the in-memory version and the file system version of the shed_tool_conf file. shed_tool_conf_dict = self.get_shed_tool_conf_dict(shed_tool_conf) tool_panel_dict = self.update_tool_panel_dict(tool_panel_dict, tool_panel_section_mapping, repository_tools_tups) # Generate the list of ElementTree Element objects for each section or tool. elem_list = self.generate_tool_panel_elem_list(repository_name, - repository_clone_url, - changeset_revision, - tool_panel_dict, - repository_tools_tups, - owner=owner) + repository_clone_url, + changeset_revision, + tool_panel_dict, + repository_tools_tups, + owner=owner) if new_install: tool_path = shed_tool_conf_dict['tool_path'] # Add the new elements to the shed_tool_conf file on disk. @@ -95,7 +95,7 @@ class ToolPanelManager(object): lock.release() def generate_tool_elem(self, tool_shed, repository_name, changeset_revision, owner, tool_file_path, - tool, tool_section): + tool, tool_section): """Create and return an ElementTree tool Element.""" if tool_section is not None: tool_elem = XmlET.SubElement(tool_section, 'tool') @@ -160,7 +160,7 @@ class ToolPanelManager(object): tool_panel_dict = {} file_name = basic_util.strip_path(tool_config) tool_section_dicts = self. generate_tool_section_dicts(tool_config=file_name, - tool_sections=tool_sections) + tool_sections=tool_sections) tool_panel_dict[guid] = tool_section_dicts return tool_panel_dict @@ -210,9 +210,9 @@ class ToolPanelManager(object): if guid in guids_and_configs: # The tool is displayed in the tool panel inside the current tool section. tool_section_dict = dict(tool_config=guids_and_configs[guid], - id=section_id, - name=section_name, - version=section_version) + id=section_id, + name=section_name, + version=section_version) if guid in tool_panel_dict: tool_panel_dict[guid].append(tool_section_dict) else: @@ -220,7 +220,7 @@ class ToolPanelManager(object): return tool_panel_dict def generate_tool_panel_elem_list(self, repository_name, repository_clone_url, changeset_revision, - tool_panel_dict, repository_tools_tups, owner=''): + tool_panel_dict, repository_tools_tups, owner=''): """Generate a list of ElementTree Element objects for each section or tool.""" elem_list = [] tool_elem = None @@ -251,12 +251,12 @@ class ToolPanelManager(object): if tup_guid == guid: break tool_elem = self.generate_tool_elem(tool_shed, - repository_name, - changeset_revision, - owner, - tool_file_path, - tool, - tool_section if inside_section else None) + repository_name, + changeset_revision, + owner, + tool_file_path, + tool, + tool_section if inside_section else None) if inside_section: if section_in_elem_list: elem_list[index] = tool_section @@ -283,9 +283,9 @@ class ToolPanelManager(object): section_version = '' section_name = '' tool_section_dicts.append(dict(tool_config=tool_config, - id=section_id, - version=section_version, - name=section_name)) + id=section_id, + version=section_version, + name=section_name)) else: tool_section_dicts.append(dict(tool_config=tool_config, id='', version='', name='')) return tool_section_dicts @@ -329,8 +329,8 @@ class ToolPanelManager(object): section_id = str(new_tool_panel_section_label.lower().replace(' ', '_')) tool_panel_section_key, tool_section = \ self.get_or_create_tool_section(toolbox, - tool_panel_section_id=section_id, - new_tool_panel_section_label=new_tool_panel_section_label) + tool_panel_section_id=section_id, + new_tool_panel_section_label=new_tool_panel_section_label) elif tool_panel_section_id: tool_panel_section_key, tool_section = toolbox.get_section(tool_panel_section_id) else: @@ -338,7 +338,7 @@ class ToolPanelManager(object): return tool_panel_section_key, tool_section def handle_tool_panel_selection(self, toolbox, metadata, no_changes_checked, tool_panel_section_id, - new_tool_panel_section_label): + new_tool_panel_section_label): """ Handle the selected tool panel location for loading tools included in tool shed repositories when installing or reinstalling them. @@ -367,14 +367,14 @@ class ToolPanelManager(object): if original_section_id: tool_panel_section_key, tool_section = \ self.get_or_create_tool_section(toolbox, - tool_panel_section_id=original_section_id, - new_tool_panel_section_label=new_tool_panel_section_label) + tool_panel_section_id=original_section_id, + new_tool_panel_section_label=new_tool_panel_section_label) else: # The user elected to change the tool panel section to contain the tools. tool_panel_section_key, tool_section = \ self.handle_tool_panel_section(toolbox, - tool_panel_section_id=tool_panel_section_id, - new_tool_panel_section_label=new_tool_panel_section_label) + tool_panel_section_id=tool_panel_section_id, + new_tool_panel_section_label=new_tool_panel_section_label) return tool_section, tool_panel_section_key def remove_from_shed_tool_config(self, shed_tool_conf_dict, guids_to_remove): diff --git a/lib/tool_shed/galaxy_install/update_repository_manager.py b/lib/tool_shed/galaxy_install/update_repository_manager.py index 6e9039ce426..718582669d1 100644 --- a/lib/tool_shed/galaxy_install/update_repository_manager.py +++ b/lib/tool_shed/galaxy_install/update_repository_manager.py @@ -34,8 +34,8 @@ class UpdateRepositoryManager(object): changeset_revision_dict = {} tool_shed_url = common_util.get_tool_shed_url_from_tool_shed_registry(self.app, str(repository.tool_shed)) params = dict(name=str(repository.name), - owner=str(repository.owner), - changeset_revision=str(repository.installed_changeset_revision)) + owner=str(repository.owner), + changeset_revision=str(repository.installed_changeset_revision)) pathspec = ['repository', 'get_changeset_revision_and_ctx_rev'] try: encoded_update_dict = util.url_get(tool_shed_url, password_mgr=self.app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) diff --git a/lib/tool_shed/galaxy_install/utility_containers/__init__.py b/lib/tool_shed/galaxy_install/utility_containers/__init__.py index dd6784be672..745503ed71c 100644 --- a/lib/tool_shed/galaxy_install/utility_containers/__init__.py +++ b/lib/tool_shed/galaxy_install/utility_containers/__init__.py @@ -12,25 +12,25 @@ class GalaxyUtilityContainerManager(utility_container_manager.UtilityContainerMa self.app = app def build_repository_containers(self, repository, datatypes, invalid_tools, missing_repository_dependencies, - missing_tool_dependencies, readme_files_dict, repository_dependencies, - tool_dependencies, valid_tools, workflows, valid_data_managers, - invalid_data_managers, data_managers_errors, new_install=False, - reinstalling=False): + missing_tool_dependencies, readme_files_dict, repository_dependencies, + tool_dependencies, valid_tools, workflows, valid_data_managers, + invalid_data_managers, data_managers_errors, new_install=False, + reinstalling=False): """ Return a dictionary of containers for the received repository's dependencies and readme files for display during installation to Galaxy. """ containers_dict = dict(datatypes=None, - invalid_tools=None, - missing_tool_dependencies=None, - readme_files=None, - repository_dependencies=None, - missing_repository_dependencies=None, - tool_dependencies=None, - valid_tools=None, - workflows=None, - valid_data_managers=None, - invalid_data_managers=None) + invalid_tools=None, + missing_tool_dependencies=None, + readme_files=None, + repository_dependencies=None, + missing_repository_dependencies=None, + tool_dependencies=None, + valid_tools=None, + workflows=None, + valid_data_managers=None, + invalid_data_managers=None) # Some of the tool dependency folders will include links to display tool dependency information, and # some of these links require the repository id. However we need to be careful because sometimes the # repository object is None. @@ -52,10 +52,10 @@ class GalaxyUtilityContainerManager(utility_container_manager.UtilityContainerMa if invalid_tools: folder_id, invalid_tools_root_folder = \ self.build_invalid_tools_folder(folder_id, - invalid_tools, - changeset_revision, - repository=repository, - label='Invalid tools') + invalid_tools, + changeset_revision, + repository=repository, + label='Invalid tools') containers_dict['invalid_tools'] = invalid_tools_root_folder # Readme files container. if readme_files_dict: @@ -69,17 +69,17 @@ class GalaxyUtilityContainerManager(utility_container_manager.UtilityContainerMa label = 'Installed repository dependencies' folder_id, repository_dependencies_root_folder = \ self.build_repository_dependencies_folder(folder_id=folder_id, - repository_dependencies=repository_dependencies, - label=label, - installed=True) + repository_dependencies=repository_dependencies, + label=label, + installed=True) containers_dict['repository_dependencies'] = repository_dependencies_root_folder # Missing repository dependencies container. if missing_repository_dependencies: folder_id, missing_repository_dependencies_root_folder = \ self.build_repository_dependencies_folder(folder_id=folder_id, - repository_dependencies=missing_repository_dependencies, - label='Missing repository dependencies', - installed=False) + repository_dependencies=missing_repository_dependencies, + label='Missing repository dependencies', + installed=False) containers_dict['missing_repository_dependencies'] = missing_repository_dependencies_root_folder # Installed tool dependencies container. if tool_dependencies: @@ -90,52 +90,52 @@ class GalaxyUtilityContainerManager(utility_container_manager.UtilityContainerMa # We only want to display the Status column if the tool_dependency is missing. folder_id, tool_dependencies_root_folder = \ self.build_tool_dependencies_folder(folder_id, - tool_dependencies, - label=label, - missing=False, - new_install=new_install, - reinstalling=reinstalling) + tool_dependencies, + label=label, + missing=False, + new_install=new_install, + reinstalling=reinstalling) containers_dict['tool_dependencies'] = tool_dependencies_root_folder # Missing tool dependencies container. if missing_tool_dependencies: # We only want to display the Status column if the tool_dependency is missing. folder_id, missing_tool_dependencies_root_folder = \ self.build_tool_dependencies_folder(folder_id, - missing_tool_dependencies, - label='Missing tool dependencies', - missing=True, - new_install=new_install, - reinstalling=reinstalling) + missing_tool_dependencies, + label='Missing tool dependencies', + missing=True, + new_install=new_install, + reinstalling=reinstalling) containers_dict['missing_tool_dependencies'] = missing_tool_dependencies_root_folder # Valid tools container. if valid_tools: folder_id, valid_tools_root_folder = self.build_tools_folder(folder_id, - valid_tools, - repository, - changeset_revision, - label='Valid tools') + valid_tools, + repository, + changeset_revision, + label='Valid tools') containers_dict['valid_tools'] = valid_tools_root_folder # Workflows container. if workflows: folder_id, workflows_root_folder = \ self.build_workflows_folder(folder_id=folder_id, - workflows=workflows, - repository_metadata_id=None, - repository_id=repository_id, - label='Workflows') + workflows=workflows, + repository_metadata_id=None, + repository_id=repository_id, + label='Workflows') containers_dict['workflows'] = workflows_root_folder if valid_data_managers: folder_id, valid_data_managers_root_folder = \ self.build_data_managers_folder(folder_id=folder_id, - data_managers=valid_data_managers, - label='Valid Data Managers') + data_managers=valid_data_managers, + label='Valid Data Managers') containers_dict['valid_data_managers'] = valid_data_managers_root_folder if invalid_data_managers or data_managers_errors: folder_id, invalid_data_managers_root_folder = \ self.build_invalid_data_managers_folder(folder_id=folder_id, - data_managers=invalid_data_managers, - error_messages=data_managers_errors, - label='Invalid Data Managers') + data_managers=invalid_data_managers, + error_messages=data_managers_errors, + label='Invalid Data Managers') containers_dict['invalid_data_managers'] = invalid_data_managers_root_folder except Exception as e: log.debug("Exception in build_repository_containers: %s" % str(e)) diff --git a/lib/tool_shed/grids/admin_grids.py b/lib/tool_shed/grids/admin_grids.py index 3326f371148..5f5310a2c77 100644 --- a/lib/tool_shed/grids/admin_grids.py +++ b/lib/tool_shed/grids/admin_grids.py @@ -68,21 +68,21 @@ class UserGrid(grids.Grid): if column_filter == 'All': return query return query.filter(and_(model.Tool.table.c.user_id == model.User.table.c.id, - model.User.table.c.email == column_filter)) + model.User.table.c.email == column_filter)) title = "Users" model_class = model.User default_sort_key = "email" columns = [ UserLoginColumn("Email", - key="email", - link=(lambda item: dict(operation="information", id=item.id)), - attach_popup=True, - filterable="advanced"), - UserNameColumn("User Name", - key="username", - attach_popup=False, + key="email", + link=(lambda item: dict(operation="information", id=item.id)), + attach_popup=True, filterable="advanced"), + UserNameColumn("User Name", + key="username", + attach_popup=False, + filterable="advanced"), GroupsColumn("Groups", attach_popup=False), RolesColumn("Roles", attach_popup=False), ExternalColumn("External", attach_popup=False), @@ -90,28 +90,28 @@ class UserGrid(grids.Grid): StatusColumn("Status", attach_popup=False), # Columns that are valid for filtering but are not visible. EmailColumn("Email", - key="email", - visible=False) + key="email", + visible=False) ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) global_actions = [ grids.GridAction("Create new user", - dict(controller='admin', action='users', operation='create')) + dict(controller='admin', action='users', operation='create')) ] operations = [ grids.GridOperation("Manage Roles and Groups", - condition=(lambda item: not item.deleted), - allow_multiple=False, - url_args=dict(action="manage_roles_and_groups_for_user")), + condition=(lambda item: not item.deleted), + allow_multiple=False, + url_args=dict(action="manage_roles_and_groups_for_user")), grids.GridOperation("Reset Password", - condition=(lambda item: not item.deleted), - allow_multiple=True, - allow_popup=False, - url_args=dict(action="reset_user_password")) + condition=(lambda item: not item.deleted), + allow_multiple=True, + allow_popup=False, + url_args=dict(action="reset_user_password")) ] standard_filters = [ grids.GridColumnFilter("Active", args=dict(deleted=False)), @@ -177,51 +177,51 @@ class RoleGrid(grids.Grid): default_sort_key = "name" columns = [ NameColumn("Name", - key="name", - link=(lambda item: dict(operation="Manage role associations", id=item.id)), - attach_popup=True, - filterable="advanced"), + key="name", + link=(lambda item: dict(operation="Manage role associations", id=item.id)), + attach_popup=True, + filterable="advanced"), DescriptionColumn("Description", - key='description', - attach_popup=False, - filterable="advanced"), + key='description', + attach_popup=False, + filterable="advanced"), GroupsColumn("Groups", attach_popup=False), RepositoriesColumn("Repositories", attach_popup=False), UsersColumn("Users", attach_popup=False), # Columns that are valid for filtering but are not visible. grids.DeletedColumn("Deleted", - key="deleted", - visible=False, - filterable="advanced") + key="deleted", + visible=False, + filterable="advanced") ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) global_actions = [ grids.GridAction("Add new role", - dict(controller='admin', action='roles', operation='create')) + dict(controller='admin', action='roles', operation='create')) ] # Repository admin roles currently do not have any operations since they are managed automatically based # on other events. For example, if a repository is renamed, its associated admin role is automatically # renamed accordingly and if a repository is deleted its associated admin role is automatically deleted. operations = [grids.GridOperation("Rename", - condition=(lambda item: not item.deleted and not item.is_repository_admin_role), - allow_multiple=False, - url_args=dict(action="rename_role")), - grids.GridOperation("Delete", - condition=(lambda item: not item.deleted and not item.is_repository_admin_role), - allow_multiple=True, - url_args=dict(action="mark_role_deleted")), - grids.GridOperation("Undelete", - condition=(lambda item: item.deleted and not item.is_repository_admin_role), - allow_multiple=True, - url_args=dict(action="undelete_role")), - grids.GridOperation("Purge", - condition=(lambda item: item.deleted and not item.is_repository_admin_role), - allow_multiple=True, - url_args=dict(action="purge_role"))] + condition=(lambda item: not item.deleted and not item.is_repository_admin_role), + allow_multiple=False, + url_args=dict(action="rename_role")), + grids.GridOperation("Delete", + condition=(lambda item: not item.deleted and not item.is_repository_admin_role), + allow_multiple=True, + url_args=dict(action="mark_role_deleted")), + grids.GridOperation("Undelete", + condition=(lambda item: item.deleted and not item.is_repository_admin_role), + allow_multiple=True, + url_args=dict(action="undelete_role")), + grids.GridOperation("Purge", + condition=(lambda item: item.deleted and not item.is_repository_admin_role), + allow_multiple=True, + url_args=dict(action="purge_role"))] standard_filters = [ grids.GridColumnFilter("Active", args=dict(deleted=False)), grids.GridColumnFilter("Deleted", args=dict(deleted=True)), @@ -267,43 +267,43 @@ class GroupGrid(grids.Grid): default_sort_key = "name" columns = [ NameColumn("Name", - key="name", - link=(lambda item: dict(operation="Manage users and roles", id=item.id)), - attach_popup=True), + key="name", + link=(lambda item: dict(operation="Manage users and roles", id=item.id)), + attach_popup=True), UsersColumn("Users", attach_popup=False), RolesColumn("Roles", attach_popup=False), StatusColumn("Status", attach_popup=False), # Columns that are valid for filtering but are not visible. grids.DeletedColumn("Deleted", - key="deleted", - visible=False, - filterable="advanced") + key="deleted", + visible=False, + filterable="advanced") ] columns.append(grids.MulticolFilterColumn("Search", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) global_actions = [ grids.GridAction("Add new group", - dict(controller='admin', action='groups', operation='create')) + dict(controller='admin', action='groups', operation='create')) ] operations = [grids.GridOperation("Rename", - condition=(lambda item: not item.deleted), - allow_multiple=False, - url_args=dict(action="rename_group")), - grids.GridOperation("Delete", - condition=(lambda item: not item.deleted), - allow_multiple=True, - url_args=dict(action="mark_group_deleted")), - grids.GridOperation("Undelete", - condition=(lambda item: item.deleted), - allow_multiple=True, - url_args=dict(action="undelete_group")), - grids.GridOperation("Purge", - condition=(lambda item: item.deleted), - allow_multiple=True, - url_args=dict(action="purge_group"))] + condition=(lambda item: not item.deleted), + allow_multiple=False, + url_args=dict(action="rename_group")), + grids.GridOperation("Delete", + condition=(lambda item: not item.deleted), + allow_multiple=True, + url_args=dict(action="mark_group_deleted")), + grids.GridOperation("Undelete", + condition=(lambda item: item.deleted), + allow_multiple=True, + url_args=dict(action="undelete_group")), + grids.GridOperation("Purge", + condition=(lambda item: item.deleted), + allow_multiple=True, + url_args=dict(action="purge_group"))] standard_filters = [ grids.GridColumnFilter("Active", args=dict(deleted=False)), grids.GridColumnFilter("Deleted", args=dict(deleted=True)), @@ -317,13 +317,13 @@ class ManageCategoryGrid(CategoryGrid): columns = [col for col in CategoryGrid.columns] # Override the NameColumn to include an Edit link columns[0] = CategoryGrid.NameColumn("Name", - key="Category.name", - link=(lambda item: dict(operation="Edit", id=item.id)), - model_class=model.Category, - attach_popup=False) + key="Category.name", + link=(lambda item: dict(operation="Edit", id=item.id)), + model_class=model.Category, + attach_popup=False) global_actions = [ grids.GridAction("Add new category", - dict(controller='admin', action='manage_categories', operation='create')) + dict(controller='admin', action='manage_categories', operation='create')) ] @@ -337,32 +337,32 @@ class AdminRepositoryGrid(RepositoryGrid): return '' columns = [RepositoryGrid.NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=True), - RepositoryGrid.HeadsColumn("Heads"), - RepositoryGrid.UserColumn("Owner", - model_class=model.User, - link=(lambda item: dict(operation="repositories_by_user", id=item.id)), - attach_popup=False, - key="User.username"), - RepositoryGrid.DeprecatedColumn("Deprecated", key="deprecated", attach_popup=False), - # Columns that are valid for filtering but are not visible. - DeletedColumn("Deleted", key="deleted", attach_popup=False)] + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=True), + RepositoryGrid.HeadsColumn("Heads"), + RepositoryGrid.UserColumn("Owner", + model_class=model.User, + link=(lambda item: dict(operation="repositories_by_user", id=item.id)), + attach_popup=False, + key="User.username"), + RepositoryGrid.DeprecatedColumn("Deprecated", key="deprecated", attach_popup=False), + # Columns that are valid for filtering but are not visible. + DeletedColumn("Deleted", key="deleted", attach_popup=False)] columns.append(grids.MulticolFilterColumn("Search repository name", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [operation for operation in RepositoryGrid.operations] operations.append(grids.GridOperation("Delete", - allow_multiple=False, - condition=(lambda item: not item.deleted), - async_compatible=False)) + allow_multiple=False, + condition=(lambda item: not item.deleted), + async_compatible=False)) operations.append(grids.GridOperation("Undelete", - allow_multiple=False, - condition=(lambda item: item.deleted), - async_compatible=False)) + allow_multiple=False, + condition=(lambda item: item.deleted), + async_compatible=False)) standard_filters = [] default_filter = {} @@ -393,10 +393,10 @@ class RepositoryMetadataGrid(grids.Grid): def get_value(self, trans, grid, repository_metadata): repository = repository_metadata.repository return hg_util.get_revision_label(trans.app, - repository, - repository_metadata.changeset_revision, - include_date=True, - include_hash=True) + repository, + repository_metadata.changeset_revision, + include_date=True, + include_hash=True) class ToolsColumn(grids.TextColumn): @@ -473,13 +473,13 @@ class RepositoryMetadataGrid(grids.Grid): use_hide_message = False columns = [ IdColumn("Id", - visible=False, - attach_popup=False), + visible=False, + attach_popup=False), NameColumn("Name", - key="name", - model_class=model.Repository, - link=(lambda item: dict(operation="view_or_manage_repository_revision", id=item.id)), - attach_popup=True), + key="name", + model_class=model.Repository, + link=(lambda item: dict(operation="view_or_manage_repository_revision", id=item.id)), + attach_popup=True), OwnerColumn("Owner", attach_popup=False), RevisionColumn("Revision", attach_popup=False), ToolsColumn("Tools", attach_popup=False), @@ -490,15 +490,15 @@ class RepositoryMetadataGrid(grids.Grid): MaliciousColumn("Malicious", attach_popup=False) ] columns.append(grids.MulticolFilterColumn("Search repository name", - cols_to_filter=[columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [grids.GridOperation("Delete", - allow_multiple=False, - allow_popup=True, - async_compatible=False, - confirm="Repository metadata records cannot be recovered after they are deleted. Click OK to delete the selected items.")] + allow_multiple=False, + allow_popup=True, + async_compatible=False, + confirm="Repository metadata records cannot be recovered after they are deleted. Click OK to delete the selected items.")] standard_filters = [] default_filter = {} use_paging = False diff --git a/lib/tool_shed/grids/repository_grid_filter_manager.py b/lib/tool_shed/grids/repository_grid_filter_manager.py index 8ad06feb4ec..83bb0a4061c 100644 --- a/lib/tool_shed/grids/repository_grid_filter_manager.py +++ b/lib/tool_shed/grids/repository_grid_filter_manager.py @@ -9,10 +9,10 @@ class RepositoryGridFilterManager(object): """Provides filtered views of the many Tool SHed repository grids.""" filters = Bunch(CERTIFIED_LEVEL_ONE='certified_level_one', - CERTIFIED_LEVEL_TWO='certified_level_two', - CERTIFIED_LEVEL_ONE_SUITES='certified_level_one_suites', - CERTIFIED_LEVEL_TWO_SUITES='certified_level_two_suites', - SUITES='suites') + CERTIFIED_LEVEL_TWO='certified_level_two', + CERTIFIED_LEVEL_ONE_SUITES='certified_level_one_suites', + CERTIFIED_LEVEL_TWO_SUITES='certified_level_two_suites', + SUITES='suites') def get_grid_title(self, trans, trailing_string='', default=''): filter = self.get_filter(trans) diff --git a/lib/tool_shed/grids/repository_grids.py b/lib/tool_shed/grids/repository_grids.py index c79e42080a2..d62f9cbde37 100644 --- a/lib/tool_shed/grids/repository_grids.py +++ b/lib/tool_shed/grids/repository_grids.py @@ -46,15 +46,15 @@ class CategoryGrid(grids.Grid): default_sort_key = "name" columns = [ NameColumn("Name", - key="Category.name", - link=(lambda item: dict(operation="repositories_by_category", id=item.id)), - attach_popup=False), + key="Category.name", + link=(lambda item: dict(operation="repositories_by_category", id=item.id)), + attach_popup=False), DescriptionColumn("Description", - key="Category.description", - attach_popup=False), + key="Category.description", + attach_popup=False), RepositoriesColumn("Repositories", - model_class=model.Repository, - attach_popup=False) + model_class=model.Repository, + attach_popup=False) ] # Override these default_filter = {} @@ -179,7 +179,7 @@ class RepositoryGrid(grids.Grid): if column_filter == 'All': return query return query.filter(and_(model.Repository.table.c.user_id == model.User.table.c.id, - model.User.table.c.email == column_filter)) + model.User.table.c.email == column_filter)) class EmailAlertsColumn(grids.TextColumn): @@ -201,34 +201,34 @@ class RepositoryGrid(grids.Grid): use_hide_message = False columns = [ NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False), DescriptionColumn("Synopsis", - key="description", - attach_popup=False), + key="description", + attach_popup=False), TypeColumn("Type"), MetadataRevisionColumn("Metadata
    Revisions"), UserColumn("Owner", - model_class=model.User, - link=(lambda item: dict(operation="repositories_by_user", id=item.id)), - attach_popup=False, - key="User.username"), + model_class=model.User, + link=(lambda item: dict(operation="repositories_by_user", id=item.id)), + attach_popup=False, + key="User.username"), # Columns that are valid for filtering but are not visible. EmailColumn("Email", - model_class=model.User, - key="email", - visible=False), + model_class=model.User, + key="email", + visible=False), RepositoryCategoryColumn("Category", - model_class=model.Category, - key="Category.name", - visible=False) + model_class=model.Category, + key="Category.name", + visible=False) ] columns.append(grids.MulticolFilterColumn("Search repository name, description", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [] standard_filters = [] default_filter = dict(deleted="False") @@ -257,7 +257,7 @@ class RepositoryGrid(grids.Grid): # The filter is None. return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deprecated == false())) \ .join(model.User.table) \ .outerjoin(model.RepositoryCategoryAssociation.table) \ .outerjoin(model.Category.table) @@ -266,17 +266,17 @@ class RepositoryGrid(grids.Grid): class DockerImageGrid(RepositoryGrid): columns = [ RepositoryGrid.NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False), RepositoryGrid.DescriptionColumn("Synopsis", - key="description", - attach_popup=False), + key="description", + attach_popup=False), RepositoryGrid.UserColumn("Owner", - model_class=model.User, - link=(lambda item: dict(operation="repositories_by_user", id=item.id)), - attach_popup=False, - key="User.username"), + model_class=model.User, + link=(lambda item: dict(operation="repositories_by_user", id=item.id)), + attach_popup=False, + key="User.username"), RepositoryGrid.EmailAlertsColumn("Alert", attach_popup=False), ] operations = [grids.GridOperation("Include in Docker image", allow_multiple=True)] @@ -286,23 +286,23 @@ class DockerImageGrid(RepositoryGrid): class EmailAlertsRepositoryGrid(RepositoryGrid): columns = [ RepositoryGrid.NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False), RepositoryGrid.DescriptionColumn("Synopsis", - key="description", - attach_popup=False), + key="description", + attach_popup=False), RepositoryGrid.UserColumn("Owner", - model_class=model.User, - link=(lambda item: dict(operation="repositories_by_user", id=item.id)), - attach_popup=False, - key="User.username"), + model_class=model.User, + link=(lambda item: dict(operation="repositories_by_user", id=item.id)), + attach_popup=False, + key="User.username"), RepositoryGrid.EmailAlertsColumn("Alert", attach_popup=False), # Columns that are valid for filtering but are not visible. grids.DeletedColumn("Deleted", - key="deleted", - visible=False, - filterable="advanced") + key="deleted", + visible=False, + filterable="advanced") ] operations = [grids.GridOperation("Receive email alerts", allow_multiple=True)] global_actions = [ @@ -342,14 +342,14 @@ class MatchedRepositoryGrid(grids.Grid): use_hide_message = False columns = [ NameColumn("Repository name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=True), + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=True), DescriptionColumn("Synopsis", - attach_popup=False), + attach_popup=False), RevisionColumn("Revision"), UserColumn("Owner", - model_class=model.User, - attach_popup=False) + model_class=model.User, + attach_popup=False) ] operations = [grids.GridOperation("Install to Galaxy", allow_multiple=True)] standard_filters = [] @@ -365,13 +365,13 @@ class MatchedRepositoryGrid(grids.Grid): for match_tuple in match_tuples: repository_id, changeset_revision = match_tuple clause_list.append("%s=%d and %s='%s'" % (model.RepositoryMetadata.table.c.repository_id, - int(repository_id), - model.RepositoryMetadata.table.c.changeset_revision, - changeset_revision)) + int(repository_id), + model.RepositoryMetadata.table.c.changeset_revision, + changeset_revision)) return trans.sa_session.query(model.RepositoryMetadata) \ .join(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deprecated == false())) \ .join(model.User.table) \ .filter(or_(*clause_list)) \ .order_by(model.Repository.name) @@ -384,8 +384,8 @@ class InstallMatchedRepositoryGrid(MatchedRepositoryGrid): columns = [col for col in MatchedRepositoryGrid.columns] # Override the NameColumn columns[0] = MatchedRepositoryGrid.NameColumn("Name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False) + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False) class MyWritableRepositoriesGrid(RepositoryGrid): @@ -393,22 +393,22 @@ class MyWritableRepositoriesGrid(RepositoryGrid): title = 'Repositories I can change' columns = [ RepositoryGrid.NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False), RepositoryGrid.TypeColumn("Type"), RepositoryGrid.MetadataRevisionColumn("Metadata
    Revisions"), RepositoryGrid.UserColumn("Owner", - model_class=model.User, - link=(lambda item: dict(operation="repositories_by_user", id=item.id)), - attach_popup=False, - key="User.username") + model_class=model.User, + link=(lambda item: dict(operation="repositories_by_user", id=item.id)), + attach_popup=False, + key="User.username") ] columns.append(grids.MulticolFilterColumn("Search repository name", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [] use_paging = False @@ -418,7 +418,7 @@ class MyWritableRepositoriesGrid(RepositoryGrid): clause_list = [] for repository in trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deprecated == false(), - model.Repository.table.c.deleted == false())): + model.Repository.table.c.deleted == false())): allow_push = repository.allow_push(trans.app) if allow_push: allow_push_usernames = allow_push.split(',') @@ -437,18 +437,18 @@ class RepositoriesByUserGrid(RepositoryGrid): title = "Repositories by user" columns = [ RepositoryGrid.NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False), RepositoryGrid.DescriptionColumn("Synopsis", - key="description", - attach_popup=False), + key="description", + attach_popup=False), RepositoryGrid.TypeColumn("Type"), RepositoryGrid.MetadataRevisionColumn("Metadata
    Revisions"), RepositoryGrid.CategoryColumn("Category", - model_class=model.Category, - key="Category.name", - attach_popup=False) + model_class=model.Category, + key="Category.name", + attach_popup=False) ] operations = [] standard_filters = [] @@ -471,7 +471,7 @@ class RepositoriesByUserGrid(RepositoryGrid): if filter == trans.app.repository_grid_filter_manager.filters.CERTIFIED_LEVEL_ONE_SUITES: return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.type == rt_util.REPOSITORY_SUITE_DEFINITION, - model.Repository.table.c.user_id == decoded_user_id)) \ + model.Repository.table.c.user_id == decoded_user_id)) \ .join(model.RepositoryMetadata.table) \ .filter(or_(*trans.app.repository_registry.certified_level_one_clause_list)) \ .join(model.User.table) \ @@ -481,8 +481,8 @@ class RepositoriesByUserGrid(RepositoryGrid): # The value of filter is None. return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false(), - model.Repository.table.c.user_id == decoded_user_id)) \ + model.Repository.table.c.deprecated == false(), + model.Repository.table.c.user_id == decoded_user_id)) \ .join(model.User.table) \ .outerjoin(model.RepositoryCategoryAssociation.table) \ .outerjoin(model.Category.table) @@ -493,30 +493,30 @@ class RepositoriesInCategoryGrid(RepositoryGrid): columns = [ RepositoryGrid.NameColumn("Name", - key="name", - link=(lambda item: dict(controller="repository", operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="name", + link=(lambda item: dict(controller="repository", operation="view_or_manage_repository", id=item.id)), + attach_popup=False), RepositoryGrid.DescriptionColumn("Synopsis", - key="description", - attach_popup=False), + key="description", + attach_popup=False), RepositoryGrid.TypeColumn("Type"), RepositoryGrid.MetadataRevisionColumn("Metadata
    Revisions"), RepositoryGrid.UserColumn("Owner", - model_class=model.User, - link=(lambda item: dict(controller="repository", operation="repositories_by_user", id=item.id)), - attach_popup=False, - key="User.username"), + model_class=model.User, + link=(lambda item: dict(controller="repository", operation="repositories_by_user", id=item.id)), + attach_popup=False, + key="User.username"), # Columns that are valid for filtering but are not visible. RepositoryGrid.EmailColumn("Email", - model_class=model.User, - key="email", - visible=False) + model_class=model.User, + key="email", + visible=False) ] columns.append(grids.MulticolFilterColumn("Search repository name, description", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [] use_paging = False @@ -566,14 +566,14 @@ class RepositoriesInCategoryGrid(RepositoryGrid): if category: return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deprecated == false())) \ .join(model.User.table) \ .outerjoin(model.RepositoryCategoryAssociation.table) \ .outerjoin(model.Category.table) \ .filter(model.Category.table.c.name == category.name) return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deprecated == false())) \ .join(model.User.table) \ .outerjoin(model.RepositoryCategoryAssociation.table) \ .outerjoin(model.Category.table) @@ -583,25 +583,25 @@ class RepositoriesIOwnGrid(RepositoryGrid): title = "Repositories I own" columns = [ RepositoryGrid.NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False), RepositoryGrid.TypeColumn("Type"), RepositoryGrid.MetadataRevisionColumn("Metadata
    Revisions"), RepositoryGrid.DeprecatedColumn("Deprecated") ] columns.append(grids.MulticolFilterColumn("Search repository name", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [] use_paging = False def build_initial_query(self, trans, **kwd): return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.user_id == trans.user.id)) \ + model.Repository.table.c.user_id == trans.user.id)) \ .join(model.User.table) \ .outerjoin(model.RepositoryCategoryAssociation.table) \ .outerjoin(model.Category.table) @@ -611,18 +611,18 @@ class RepositoriesICanAdministerGrid(RepositoryGrid): title = "Repositories I can administer" columns = [ RepositoryGrid.NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False), RepositoryGrid.UserColumn("Owner"), RepositoryGrid.MetadataRevisionColumn("Metadata
    Revisions"), RepositoryGrid.DeprecatedColumn("Deprecated") ] columns.append(grids.MulticolFilterColumn("Search repository name", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [] use_paging = False @@ -658,21 +658,21 @@ class RepositoriesMissingToolTestComponentsGrid(RepositoryGrid): title = "Repositories with missing tool test components" columns = [ RepositoryGrid.NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False), RepositoryGrid.LatestInstallableRevisionColumn("Latest Installable Revision"), RepositoryGrid.UserColumn("Owner", - key="User.username", - model_class=model.User, - link=(lambda item: dict(operation="repositories_by_user", id=item.id)), - attach_popup=False) + key="User.username", + model_class=model.User, + link=(lambda item: dict(operation="repositories_by_user", id=item.id)), + attach_popup=False) ] columns.append(grids.MulticolFilterColumn("Search repository name", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [] use_paging = False @@ -681,7 +681,7 @@ class RepositoriesMissingToolTestComponentsGrid(RepositoryGrid): revision_clause_list = [] for repository in trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deprecated == false(), - model.Repository.table.c.deleted == false())): + model.Repository.table.c.deleted == false())): changeset_revision = \ grids_util.filter_by_latest_downloadable_changeset_revision_that_has_missing_tool_test_components(trans, repository) if changeset_revision: @@ -689,7 +689,7 @@ class RepositoriesMissingToolTestComponentsGrid(RepositoryGrid): if revision_clause_list: return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deprecated == false(), - model.Repository.table.c.deleted == false())) \ + model.Repository.table.c.deleted == false())) \ .join(model.RepositoryMetadata) \ .filter(or_(*revision_clause_list)) \ .join(model.User.table) @@ -711,7 +711,7 @@ class MyWritableRepositoriesMissingToolTestComponentsGrid(RepositoriesMissingToo user_clause_list = [] for repository in trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deprecated == false(), - model.Repository.table.c.deleted == false())): + model.Repository.table.c.deleted == false())): allow_push = repository.allow_push(trans.app) if allow_push: allow_push_usernames = allow_push.split(',') @@ -723,7 +723,7 @@ class MyWritableRepositoriesMissingToolTestComponentsGrid(RepositoriesMissingToo revision_clause_list = [] for repository in trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deprecated == false(), - model.Repository.table.c.deleted == false())) \ + model.Repository.table.c.deleted == false())) \ .filter(or_(*user_clause_list)): changeset_revision = \ grids_util.filter_by_latest_downloadable_changeset_revision_that_has_missing_tool_test_components(trans, repository) @@ -732,7 +732,7 @@ class MyWritableRepositoriesMissingToolTestComponentsGrid(RepositoriesMissingToo if revision_clause_list: return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deprecated == false(), - model.Repository.table.c.deleted == false())) \ + model.Repository.table.c.deleted == false())) \ .join(model.User.table) \ .filter(or_(*user_clause_list)) \ .join(model.RepositoryMetadata) \ @@ -746,28 +746,28 @@ class DeprecatedRepositoriesIOwnGrid(RepositoriesIOwnGrid): title = "Deprecated repositories I own" columns = [ RepositoriesIOwnGrid.NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False), RepositoryGrid.TypeColumn("Type"), RepositoriesIOwnGrid.MetadataRevisionColumn("Metadata
    Revisions"), RepositoriesIOwnGrid.CategoryColumn("Category", - model_class=model.Category, - key="Category.name", - attach_popup=False), + model_class=model.Category, + key="Category.name", + attach_popup=False), ] columns.append(grids.MulticolFilterColumn("Search repository name", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) use_paging = False def build_initial_query(self, trans, **kwd): return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.user_id == trans.user.id, - model.Repository.table.c.deprecated == true())) \ + model.Repository.table.c.user_id == trans.user.id, + model.Repository.table.c.deprecated == true())) \ .join(model.User.table) \ .outerjoin(model.RepositoryCategoryAssociation.table) \ .outerjoin(model.Category.table) @@ -802,15 +802,15 @@ class RepositoriesWithInvalidToolsGrid(RepositoryGrid): columns = [ InvalidToolConfigColumn("Tool config"), RepositoryGrid.NameColumn("Name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False), RepositoryGrid.LatestInstallableRevisionColumn("Latest Metadata Revision"), RepositoryGrid.UserColumn("Owner", - key="User.username", - model_class=model.User, - link=(lambda item: dict(operation="repositories_by_user", id=item.id)), - attach_popup=False) + key="User.username", + model_class=model.User, + link=(lambda item: dict(operation="repositories_by_user", id=item.id)), + attach_popup=False) ] operations = [] use_paging = False @@ -820,7 +820,7 @@ class RepositoriesWithInvalidToolsGrid(RepositoryGrid): revision_clause_list = [] for repository in trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deprecated == false(), - model.Repository.table.c.deleted == false())): + model.Repository.table.c.deleted == false())): changeset_revision = \ grids_util.filter_by_latest_metadata_changeset_revision_that_has_invalid_tools(trans, repository) if changeset_revision: @@ -828,7 +828,7 @@ class RepositoriesWithInvalidToolsGrid(RepositoryGrid): if revision_clause_list: return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deprecated == false(), - model.Repository.table.c.deleted == false())) \ + model.Repository.table.c.deleted == false())) \ .join(model.RepositoryMetadata) \ .filter(or_(*revision_clause_list)) \ .join(model.User.table) @@ -850,7 +850,7 @@ class MyWritableRepositoriesWithInvalidToolsGrid(RepositoriesWithInvalidToolsGri user_clause_list = [] for repository in trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deprecated == false(), - model.Repository.table.c.deleted == false())): + model.Repository.table.c.deleted == false())): allow_push = repository.allow_push(trans.app) if allow_push: allow_push_usernames = allow_push.split(',') @@ -862,7 +862,7 @@ class MyWritableRepositoriesWithInvalidToolsGrid(RepositoriesWithInvalidToolsGri revision_clause_list = [] for repository in trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deprecated == false(), - model.Repository.table.c.deleted == false())) \ + model.Repository.table.c.deleted == false())) \ .filter(or_(*user_clause_list)): changeset_revision = \ grids_util.filter_by_latest_metadata_changeset_revision_that_has_invalid_tools(trans, repository) @@ -871,7 +871,7 @@ class MyWritableRepositoriesWithInvalidToolsGrid(RepositoriesWithInvalidToolsGri if revision_clause_list: return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deprecated == false(), - model.Repository.table.c.deleted == false())) \ + model.Repository.table.c.deleted == false())) \ .join(model.User.table) \ .filter(or_(*user_clause_list)) \ .join(model.RepositoryMetadata) \ @@ -957,20 +957,20 @@ class RepositoryMetadataGrid(grids.Grid): default_sort_key = "Repository.name" columns = [ RepositoryNameColumn("Repository name", - key="Repository.name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False), + key="Repository.name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False), RepositoryNameColumn("Type"), RepositoryOwnerColumn("Owner", - model_class=model.User, - attach_popup=False, - key="User.username") + model_class=model.User, + attach_popup=False, + key="User.username") ] columns.append(grids.MulticolFilterColumn("Search repository name, description", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [] standard_filters = [] default_filter = dict(malicious="False") @@ -982,7 +982,7 @@ class RepositoryMetadataGrid(grids.Grid): return trans.sa_session.query(model.RepositoryMetadata) \ .join(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deprecated == false())) \ .join(model.User.table) @@ -1009,21 +1009,21 @@ class RepositoryDependenciesGrid(RepositoryMetadataGrid): required_repository_id = trans.security.encode_id(required_repository.id) required_repository_metadata = \ metadata_util.get_repository_metadata_by_repository_id_changeset_revision(trans.app, - required_repository_id, + required_repository_id, changeset_revision) if not required_repository_metadata: repo = hg_util.get_repo_for_repository(trans.app, - repository=required_repository, - repo_path=None, - create=False) + repository=required_repository, + repo_path=None, + create=False) updated_changeset_revision = \ metadata_util.get_next_downloadable_changeset_revision(required_repository, - repo, - changeset_revision) + repo, + changeset_revision) required_repository_metadata = \ metadata_util.get_repository_metadata_by_repository_id_changeset_revision(trans.app, - required_repository_id, - updated_changeset_revision) + required_repository_id, + updated_changeset_revision) required_repository_metadata_id = trans.security.encode_id(required_repository_metadata.id) rd_line += '' % (required_repository_metadata_id) rd_line += 'Repository %s revision %s owned by %s' % (escape_html(name), escape_html(owner), escape_html(changeset_revision)) @@ -1036,31 +1036,31 @@ class RepositoryDependenciesGrid(RepositoryMetadataGrid): default_sort_key = "Repository.name" columns = [ RequiredRepositoryColumn("Repository dependency", - attach_popup=False), + attach_popup=False), RepositoryMetadataGrid.RepositoryNameColumn("Repository name", - model_class=model.Repository, - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False, - key="Repository.name"), + model_class=model.Repository, + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False, + key="Repository.name"), RepositoryMetadataGrid.RepositoryOwnerColumn("Owner", - model_class=model.User, - attach_popup=False, - key="User.username"), + model_class=model.User, + attach_popup=False, + key="User.username"), RepositoryMetadataGrid.ChangesetRevisionColumn("Revision", - attach_popup=False) + attach_popup=False) ] columns.append(grids.MulticolFilterColumn("Search repository name, owner", - cols_to_filter=[columns[1], columns[2]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[1], columns[2]], + key="free-text-search", + visible=False, + filterable="standard")) def build_initial_query(self, trans, **kwd): return trans.sa_session.query(model.RepositoryMetadata) \ .join(model.Repository) \ .filter(and_(model.RepositoryMetadata.table.c.has_repository_dependencies == true(), - model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deleted == false(), + model.Repository.table.c.deprecated == false())) \ .join(model.User.table) @@ -1097,31 +1097,31 @@ class DatatypesGrid(RepositoryMetadataGrid): default_sort_key = "Repository.name" columns = [ DatatypesColumn("Datatype extension and class", - attach_popup=False), + attach_popup=False), RepositoryMetadataGrid.RepositoryNameColumn("Repository name", - model_class=model.Repository, - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False, - key="Repository.name"), + model_class=model.Repository, + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False, + key="Repository.name"), RepositoryMetadataGrid.RepositoryOwnerColumn("Owner", - model_class=model.User, - attach_popup=False, - key="User.username"), + model_class=model.User, + attach_popup=False, + key="User.username"), RepositoryMetadataGrid.ChangesetRevisionColumn("Revision", - attach_popup=False) + attach_popup=False) ] columns.append(grids.MulticolFilterColumn("Search repository name, owner", - cols_to_filter=[columns[1], columns[2]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[1], columns[2]], + key="free-text-search", + visible=False, + filterable="standard")) def build_initial_query(self, trans, **kwd): return trans.sa_session.query(model.RepositoryMetadata) \ .join(model.Repository) \ .filter(and_(model.RepositoryMetadata.table.c.includes_datatypes == true(), - model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deleted == false(), + model.Repository.table.c.deprecated == false())) \ .join(model.User.table) @@ -1167,31 +1167,31 @@ class ToolDependenciesGrid(RepositoryMetadataGrid): default_sort_key = "Repository.name" columns = [ ToolDependencyColumn("Tool dependency", - attach_popup=False), + attach_popup=False), RepositoryMetadataGrid.RepositoryNameColumn("Repository name", - model_class=model.Repository, - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False, - key="Repository.name"), + model_class=model.Repository, + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False, + key="Repository.name"), RepositoryMetadataGrid.RepositoryOwnerColumn("Owner", - model_class=model.User, - attach_popup=False, - key="User.username"), + model_class=model.User, + attach_popup=False, + key="User.username"), RepositoryMetadataGrid.ChangesetRevisionColumn("Revision", - attach_popup=False) + attach_popup=False) ] columns.append(grids.MulticolFilterColumn("Search repository name, owner", - cols_to_filter=[columns[1], columns[2]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[1], columns[2]], + key="free-text-search", + visible=False, + filterable="standard")) def build_initial_query(self, trans, **kwd): return trans.sa_session.query(model.RepositoryMetadata) \ .join(model.Repository) \ .filter(and_(model.RepositoryMetadata.table.c.includes_tool_dependencies == true(), - model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deleted == false(), + model.Repository.table.c.deprecated == false())) \ .join(model.User.table) @@ -1227,31 +1227,31 @@ class ToolsGrid(RepositoryMetadataGrid): default_sort_key = "Repository.name" columns = [ ToolsColumn("Tool id and version", - attach_popup=False), + attach_popup=False), RepositoryMetadataGrid.RepositoryNameColumn("Repository name", - model_class=model.Repository, - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=False, - key="Repository.name"), + model_class=model.Repository, + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=False, + key="Repository.name"), RepositoryMetadataGrid.RepositoryOwnerColumn("Owner", - model_class=model.User, - attach_popup=False, - key="User.username"), + model_class=model.User, + attach_popup=False, + key="User.username"), RepositoryMetadataGrid.ChangesetRevisionColumn("Revision", - attach_popup=False) + attach_popup=False) ] columns.append(grids.MulticolFilterColumn("Search repository name, owner", - cols_to_filter=[columns[1], columns[2]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[1], columns[2]], + key="free-text-search", + visible=False, + filterable="standard")) def build_initial_query(self, trans, **kwd): return trans.sa_session.query(model.RepositoryMetadata) \ .join(model.Repository) \ .filter(and_(model.RepositoryMetadata.table.c.includes_tools == true(), - model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deleted == false(), + model.Repository.table.c.deprecated == false())) \ .join(model.User.table) @@ -1278,16 +1278,16 @@ class ValidCategoryGrid(CategoryGrid): default_sort_key = "name" columns = [ CategoryGrid.NameColumn("Name", - key="Category.name", - link=(lambda item: dict(operation="valid_repositories_by_category", id=item.id)), - attach_popup=False), + key="Category.name", + link=(lambda item: dict(operation="valid_repositories_by_category", id=item.id)), + attach_popup=False), CategoryGrid.DescriptionColumn("Description", - key="Category.description", - attach_popup=False), + key="Category.description", + attach_popup=False), # Columns that are valid for filtering but are not visible. RepositoriesColumn("Valid repositories", - model_class=model.Repository, - attach_popup=False) + model_class=model.Repository, + attach_popup=False) ] # Override these default_filter = {} @@ -1340,27 +1340,27 @@ class ValidRepositoryGrid(RepositoryGrid): title = "Valid Repositories" columns = [ RepositoryGrid.NameColumn("Name", - key="name", - attach_popup=True), + key="name", + attach_popup=True), RepositoryGrid.DescriptionColumn("Synopsis", - key="description", - attach_popup=False), + key="description", + attach_popup=False), RepositoryGrid.TypeColumn("Type"), InstallableRevisionColumn("Installable Revisions"), RepositoryGrid.UserColumn("Owner", - model_class=model.User, - attach_popup=False), + model_class=model.User, + attach_popup=False), # Columns that are valid for filtering but are not visible. RepositoryCategoryColumn("Category", - model_class=model.Category, - key="Category.name", - visible=False) + model_class=model.Category, + key="Category.name", + visible=False) ] columns.append(grids.MulticolFilterColumn("Search repository name, description", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [] use_paging = False @@ -1377,7 +1377,7 @@ class ValidRepositoryGrid(RepositoryGrid): .join(model.RepositoryCategoryAssociation.table) \ .join(model.Category.table) \ .filter(and_(model.Category.table.c.id == trans.security.decode_id(kwd['id']), - model.RepositoryMetadata.table.c.downloadable == true())) + model.RepositoryMetadata.table.c.downloadable == true())) if filter == trans.app.repository_grid_filter_manager.filters.CERTIFIED_LEVEL_ONE_SUITES: return trans.sa_session.query(model.Repository) \ .filter(model.Repository.type == rt_util.REPOSITORY_SUITE_DEFINITION) \ @@ -1387,18 +1387,18 @@ class ValidRepositoryGrid(RepositoryGrid): .join(model.RepositoryCategoryAssociation.table) \ .join(model.Category.table) \ .filter(and_(model.Category.table.c.id == trans.security.decode_id(kwd['id']), - model.RepositoryMetadata.table.c.downloadable == true())) + model.RepositoryMetadata.table.c.downloadable == true())) else: # The value of filter is None. return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deprecated == false())) \ .join(model.RepositoryMetadata.table) \ .join(model.User.table) \ .join(model.RepositoryCategoryAssociation.table) \ .join(model.Category.table) \ .filter(and_(model.Category.table.c.id == trans.security.decode_id(kwd['id']), - model.RepositoryMetadata.table.c.downloadable == true())) + model.RepositoryMetadata.table.c.downloadable == true())) # The user performed a free text search on the ValidCategoryGrid. if filter == trans.app.repository_grid_filter_manager.filters.CERTIFIED_LEVEL_ONE: return trans.sa_session.query(model.Repository) \ @@ -1421,7 +1421,7 @@ class ValidRepositoryGrid(RepositoryGrid): # The value of filter is None. return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deprecated == false())) \ .join(model.RepositoryMetadata.table) \ .join(model.User.table) \ .outerjoin(model.RepositoryCategoryAssociation.table) \ diff --git a/lib/tool_shed/grids/repository_review_grids.py b/lib/tool_shed/grids/repository_review_grids.py index 39724db34bb..95b6881d557 100644 --- a/lib/tool_shed/grids/repository_review_grids.py +++ b/lib/tool_shed/grids/repository_review_grids.py @@ -30,17 +30,17 @@ class ComponentGrid(grids.Grid): use_hide_message = False columns = [ NameColumn("Name", - key="Component.name", - link=(lambda item: dict(operation="edit", id=item.id)), - attach_popup=False), + key="Component.name", + link=(lambda item: dict(operation="edit", id=item.id)), + attach_popup=False), DescriptionColumn("Description", - key="Component.description", - attach_popup=False) + key="Component.description", + attach_popup=False) ] default_filter = {} global_actions = [ grids.GridAction("Add new component", - dict(controller='repository_review', action='manage_components', operation='create')) + dict(controller='repository_review', action='manage_components', operation='create')) ] operations = [] standard_filters = [] @@ -76,10 +76,10 @@ class RepositoriesWithReviewsGrid(RepositoryGrid): for repository_metadata in repository_metadata_revisions: rev, label, changeset_revision = \ hg_util.get_rev_label_changeset_revision_from_repository_metadata(trans.app, - repository_metadata, - repository=repository, - include_date=True, - include_hash=False) + repository_metadata, + repository=repository, + include_date=True, + include_hash=False) rval += '%s
    ' % \ (trans.security.encode_id(repository.id), changeset_revision, label) return rval @@ -130,34 +130,34 @@ class RepositoriesWithReviewsGrid(RepositoryGrid): default_sort_key = "Repository.name" columns = [ RepositoryGrid.NameColumn("Repository name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=True), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=True), RepositoryGrid.UserColumn("Owner", - model_class=model.User, - attach_popup=False, - key="User.username"), + model_class=model.User, + attach_popup=False, + key="User.username"), WithReviewsRevisionColumn("Reviewed revisions"), ReviewersColumn("Reviewers", attach_popup=False), RatingColumn("Rating", attach_popup=False), ApprovedColumn("Approved", attach_popup=False) ] columns.append(grids.MulticolFilterColumn("Search repository name", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [ grids.GridOperation("Inspect repository revisions", - allow_multiple=False, - condition=(lambda item: not item.deleted), - async_compatible=False) + allow_multiple=False, + condition=(lambda item: not item.deleted), + async_compatible=False) ] def build_initial_query(self, trans, **kwd): return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deprecated == false())) \ .join((model.RepositoryReview.table, model.RepositoryReview.table.c.repository_id == model.Repository.table.c.id)) \ .join((model.User.table, model.User.table.c.id == model.Repository.table.c.user_id)) \ .outerjoin((model.ComponentReview.table, model.ComponentReview.table.c.repository_review_id == model.RepositoryReview.table.c.id)) \ @@ -169,33 +169,33 @@ class RepositoriesWithoutReviewsGrid(RepositoriesWithReviewsGrid): title = "Repositories with no reviews" columns = [ RepositoriesWithReviewsGrid.NameColumn("Repository name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=True), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=True), RepositoriesWithReviewsGrid.DescriptionColumn("Synopsis", - key="description", - attach_popup=False), + key="description", + attach_popup=False), RepositoriesWithReviewsGrid.WithoutReviewsRevisionColumn("Revisions for review"), RepositoriesWithReviewsGrid.UserColumn("Owner", - model_class=model.User, - attach_popup=False, - key="User.username") + model_class=model.User, + attach_popup=False, + key="User.username") ] columns.append(grids.MulticolFilterColumn("Search repository name, description", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [grids.GridOperation("Inspect repository revisions", - allow_multiple=False, - condition=(lambda item: not item.deleted), - async_compatible=False)] + allow_multiple=False, + condition=(lambda item: not item.deleted), + async_compatible=False)] def build_initial_query(self, trans, **kwd): return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false(), - model.Repository.reviews == null())) \ + model.Repository.table.c.deprecated == false(), + model.Repository.reviews == null())) \ .join(model.User.table) @@ -207,38 +207,38 @@ class RepositoriesReadyForReviewGrid(RepositoriesWithoutReviewsGrid): title = "Repositories ready for review" columns = [ RepositoriesWithoutReviewsGrid.NameColumn("Repository name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=True), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=True), RepositoriesWithoutReviewsGrid.DescriptionColumn("Synopsis", - key="description", - attach_popup=False), + key="description", + attach_popup=False), RepositoriesWithoutReviewsGrid.WithoutReviewsRevisionColumn("Revisions for review"), RepositoriesWithoutReviewsGrid.UserColumn("Owner", - model_class=model.User, - attach_popup=False, - key="User.username") + model_class=model.User, + attach_popup=False, + key="User.username") ] columns.append(grids.MulticolFilterColumn("Search repository name, description", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [grids.GridOperation("Inspect repository revisions", - allow_multiple=False, - condition=(lambda item: not item.deleted), - async_compatible=False)] + allow_multiple=False, + condition=(lambda item: not item.deleted), + async_compatible=False)] def build_initial_query(self, trans, **kwd): return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false(), - model.Repository.reviews == null())) \ + model.Repository.table.c.deprecated == false(), + model.Repository.reviews == null())) \ .join(model.RepositoryMetadata.table) \ .filter(and_(model.RepositoryMetadata.table.c.downloadable == true(), - or_(model.RepositoryMetadata.table.c.includes_tools == false(), - and_(model.RepositoryMetadata.table.c.includes_tools == true(), - model.RepositoryMetadata.table.c.tools_functionally_correct == true())))) \ + or_(model.RepositoryMetadata.table.c.includes_tools == false(), + and_(model.RepositoryMetadata.table.c.includes_tools == true(), + model.RepositoryMetadata.table.c.tools_functionally_correct == true())))) \ .join(model.User.table) @@ -247,9 +247,9 @@ class RepositoriesReviewedByMeGrid(RepositoriesWithReviewsGrid): columns = [ RepositoriesWithReviewsGrid.NameColumn("Repository name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=True), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=True), RepositoriesWithReviewsGrid.UserColumn("Owner", attach_popup=False), RepositoriesWithReviewsGrid.WithReviewsRevisionColumn("Reviewed revisions"), RepositoriesWithReviewsGrid.ReviewersColumn("Reviewers", attach_popup=False), @@ -257,15 +257,15 @@ class RepositoriesReviewedByMeGrid(RepositoriesWithReviewsGrid): RepositoriesWithReviewsGrid.ApprovedColumn("Approved", attach_popup=False) ] columns.append(grids.MulticolFilterColumn("Search repository name", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) def build_initial_query(self, trans, **kwd): return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deprecated == false())) \ .join((model.RepositoryReview.table, model.RepositoryReview.table.c.repository_id == model.Repository.table.c.id)) \ .filter(model.RepositoryReview.table.c.user_id == trans.user.id) \ .join((model.User.table, model.User.table.c.id == model.RepositoryReview.table.c.user_id)) \ @@ -296,10 +296,10 @@ class RepositoryReviewsByUserGrid(grids.Grid): else: rval += 'browse_review' revision_label = hg_util.get_revision_label(trans.app, - review.repository, - review.changeset_revision, - include_date=True, - include_hash=False) + review.repository, + review.changeset_revision, + include_date=True, + include_hash=False) rval += '?id=%s">%s' % (encoded_review_id, revision_label) return rval @@ -327,14 +327,14 @@ class RepositoryReviewsByUserGrid(grids.Grid): use_hide_message = False columns = [ RepositoryNameColumn("Repository Name", - model_class=model.Repository, - key="Repository.name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=True), + model_class=model.Repository, + key="Repository.name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=True), RepositoryDescriptionColumn("Description", - model_class=model.Repository, - key="Repository.description", - attach_popup=False), + model_class=model.Repository, + key="Repository.description", + attach_popup=False), RevisionColumn("Revision", attach_popup=False), RatingColumn("Rating", attach_popup=False), ] @@ -343,9 +343,9 @@ class RepositoryReviewsByUserGrid(grids.Grid): global_actions = [] operations = [ grids.GridOperation("Inspect repository revisions", - allow_multiple=False, - condition=(lambda item: not item.deleted), - async_compatible=False) + allow_multiple=False, + condition=(lambda item: not item.deleted), + async_compatible=False) ] standard_filters = [] num_rows_per_page = 50 @@ -356,7 +356,7 @@ class RepositoryReviewsByUserGrid(grids.Grid): user_id = trans.security.decode_id(kwd['id']) return trans.sa_session.query(model.RepositoryReview) \ .filter(and_(model.RepositoryReview.table.c.deleted == false(), - model.RepositoryReview.table.c.user_id == user_id)) \ + model.RepositoryReview.table.c.user_id == user_id)) \ .join((model.Repository.table, model.RepositoryReview.table.c.repository_id == model.Repository.table.c.id)) \ .filter(model.Repository.table.c.deprecated == false()) @@ -365,24 +365,24 @@ class ReviewedRepositoriesIOwnGrid(RepositoriesWithReviewsGrid): title = "Reviewed repositories I own" columns = [ RepositoriesWithReviewsGrid.NameColumn("Repository name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=True), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=True), RepositoriesWithReviewsGrid.WithReviewsRevisionColumn("Reviewed revisions"), RepositoriesWithReviewsGrid.WithoutReviewsRevisionColumn("Revisions for review"), RepositoriesWithReviewsGrid.ReviewersColumn("Reviewers", attach_popup=False), RepositoryGrid.DeprecatedColumn("Deprecated") ] columns.append(grids.MulticolFilterColumn("Search repository name", - cols_to_filter=[columns[0]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [ grids.GridOperation("Inspect repository revisions", - allow_multiple=False, - condition=(lambda item: not item.deleted), - async_compatible=False) + allow_multiple=False, + condition=(lambda item: not item.deleted), + async_compatible=False) ] def build_initial_query(self, trans, **kwd): @@ -402,34 +402,34 @@ class RepositoriesWithNoToolTestsGrid(RepositoriesWithoutReviewsGrid): title = "Repositories that contain tools with no tests or test data" columns = [ RepositoriesWithoutReviewsGrid.NameColumn("Repository name", - key="name", - link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), - attach_popup=True), + key="name", + link=(lambda item: dict(operation="view_or_manage_repository", id=item.id)), + attach_popup=True), RepositoriesWithoutReviewsGrid.DescriptionColumn("Synopsis", - key="description", - attach_popup=False), + key="description", + attach_popup=False), RepositoriesWithoutReviewsGrid.WithoutReviewsRevisionColumn("Revisions for review"), RepositoriesWithoutReviewsGrid.UserColumn("Owner", - model_class=model.User, - attach_popup=False, - key="User.username") + model_class=model.User, + attach_popup=False, + key="User.username") ] columns.append(grids.MulticolFilterColumn("Search repository name, description", - cols_to_filter=[columns[0], columns[1]], - key="free-text-search", - visible=False, - filterable="standard")) + cols_to_filter=[columns[0], columns[1]], + key="free-text-search", + visible=False, + filterable="standard")) operations = [grids.GridOperation("Inspect repository revisions", - allow_multiple=False, - condition=(lambda item: not item.deleted), - async_compatible=False)] + allow_multiple=False, + condition=(lambda item: not item.deleted), + async_compatible=False)] def build_initial_query(self, trans, **kwd): return trans.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deprecated == false())) \ .join(model.RepositoryMetadata.table) \ .filter(and_(model.RepositoryMetadata.table.c.downloadable == true(), - model.RepositoryMetadata.table.c.includes_tools == true(), - model.RepositoryMetadata.table.c.tools_functionally_correct == false())) \ + model.RepositoryMetadata.table.c.includes_tools == true(), + model.RepositoryMetadata.table.c.tools_functionally_correct == false())) \ .join(model.User.table) diff --git a/lib/tool_shed/grids/util.py b/lib/tool_shed/grids/util.py index 1f37e0feb2d..d4e97fe2e73 100644 --- a/lib/tool_shed/grids/util.py +++ b/lib/tool_shed/grids/util.py @@ -8,7 +8,7 @@ log = logging.getLogger(__name__) def build_approved_select_field(trans, name, selected_value=None, for_component=True): options = [('No', trans.model.ComponentReview.approved_states.NO), - ('Yes', trans.model.ComponentReview.approved_states.YES)] + ('Yes', trans.model.ComponentReview.approved_states.YES)] if for_component: options.append(('Not applicable', trans.model.ComponentReview.approved_states.NA)) if selected_value is None: @@ -21,7 +21,7 @@ def build_approved_select_field(trans, name, selected_value=None, for_component= def build_changeset_revision_select_field(trans, repository, selected_value=None, add_id_to_name=True, - downloadable=False, reviewed=False, not_reviewed=False): + downloadable=False, reviewed=False, not_reviewed=False): """ Build a SelectField whose options are the changeset_rev strings of certain revisions of the received repository. @@ -56,10 +56,10 @@ def build_changeset_revision_select_field(trans, repository, selected_value=None for repository_metadata in repository_metadata_revisions: rev, label, changeset_revision = \ hg_util.get_rev_label_changeset_revision_from_repository_metadata(trans.app, - repository_metadata, - repository=repository, - include_date=True, - include_hash=False) + repository_metadata, + repository=repository, + include_date=True, + include_hash=False) changeset_tups.append((rev, label, changeset_revision)) refresh_on_change_values.append(changeset_revision) # Sort options by the revision label. Even though the downloadable_revisions query sorts by update_time, @@ -72,8 +72,8 @@ def build_changeset_revision_select_field(trans, repository, selected_value=None else: name = 'changeset_revision' select_field = SelectField(name=name, - refresh_on_change=True, - refresh_on_change_values=refresh_on_change_values) + refresh_on_change=True, + refresh_on_change_values=refresh_on_change_values) for option_tup in options: selected = selected_value and option_tup[1] == selected_value select_field.add_option(option_tup[0], option_tup[1], selected=selected) @@ -124,14 +124,14 @@ def get_latest_downloadable_repository_metadata(trans, repository): return None except: latest_downloadable_revision = metadata_util.get_previous_metadata_changeset_revision(repository, - repo, - tip_ctx, - downloadable=True) + repo, + tip_ctx, + downloadable=True) if latest_downloadable_revision == hg_util.INITIAL_CHANGELOG_HASH: return None repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, - encoded_repository_id, - latest_downloadable_revision) + encoded_repository_id, + latest_downloadable_revision) if repository_metadata is not None and repository_metadata.downloadable: return repository_metadata return None @@ -163,14 +163,14 @@ def get_latest_repository_metadata(trans, repository): return repository_metadata except: latest_downloadable_revision = metadata_util.get_previous_metadata_changeset_revision(repository, - repo, - tip_ctx, - downloadable=False) + repo, + tip_ctx, + downloadable=False) if latest_downloadable_revision == hg_util.INITIAL_CHANGELOG_HASH: return None repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(trans.app, - encoded_repository_id, - latest_downloadable_revision) + encoded_repository_id, + latest_downloadable_revision) return repository_metadata diff --git a/lib/tool_shed/metadata/metadata_generator.py b/lib/tool_shed/metadata/metadata_generator.py index 9609c5f781f..42954a4ea36 100644 --- a/lib/tool_shed/metadata/metadata_generator.py +++ b/lib/tool_shed/metadata/metadata_generator.py @@ -31,9 +31,9 @@ log = logging.getLogger(__name__) class MetadataGenerator(object): def __init__(self, app, repository=None, changeset_revision=None, repository_clone_url=None, - shed_config_dict=None, relative_install_dir=None, repository_files_dir=None, - resetting_all_metadata_on_repository=False, updating_installed_repository=False, - persist=False, metadata_dict=None, user=None): + shed_config_dict=None, relative_install_dir=None, repository_files_dir=None, + resetting_all_metadata_on_repository=False, updating_installed_repository=False, + persist=False, metadata_dict=None, user=None): self.app = app self.user = user self.repository = repository @@ -94,12 +94,12 @@ class MetadataGenerator(object): self.invalid_file_tups = [] self.sa_session = app.model.context.current self.NOT_TOOL_CONFIGS = [suc.DATATYPES_CONFIG_FILENAME, - rt_util.REPOSITORY_DEPENDENCY_DEFINITION_FILENAME, - rt_util.TOOL_DEPENDENCY_DEFINITION_FILENAME, - suc.REPOSITORY_DATA_MANAGER_CONFIG_FILENAME] + rt_util.REPOSITORY_DEPENDENCY_DEFINITION_FILENAME, + rt_util.TOOL_DEPENDENCY_DEFINITION_FILENAME, + suc.REPOSITORY_DATA_MANAGER_CONFIG_FILENAME] def generate_data_manager_metadata(self, repo_dir, data_manager_config_filename, metadata_dict, - shed_config_dict=None): + shed_config_dict=None): """ Update the received metadata_dict with information from the parsed data_manager_config_filename. """ @@ -115,13 +115,13 @@ class MetadataGenerator(object): repo_files_directory = repo_path relative_data_manager_dir = util.relpath(os.path.split(data_manager_config_filename)[0], repo_dir) rel_data_manager_config_filename = os.path.join(relative_data_manager_dir, - os.path.split(data_manager_config_filename)[1]) + os.path.split(data_manager_config_filename)[1]) data_managers = {} invalid_data_managers = [] data_manager_metadata = {'config_filename': rel_data_manager_config_filename, - 'data_managers': data_managers, - 'invalid_data_managers': invalid_data_managers, - 'error_messages': []} + 'data_managers': data_managers, + 'invalid_data_managers': invalid_data_managers, + 'error_messages': []} metadata_dict['data_manager'] = data_manager_metadata tree, error_message = xml_util.parse_xml(data_manager_config_filename) if tree is None: @@ -147,7 +147,7 @@ class MetadataGenerator(object): if data_manager_id is None: log.error('Data Manager entry is missing id attribute in "%s".' % (data_manager_config_filename)) invalid_data_managers.append({'index': i, - 'error_message': 'Data Manager entry is missing id attribute'}) + 'error_message': 'Data Manager entry is missing id attribute'}) continue # FIXME: default behavior is to fall back to tool.name. data_manager_name = data_manager_elem.get('name', data_manager_id) @@ -157,7 +157,7 @@ class MetadataGenerator(object): if tool_file is None: log.error('Data Manager entry is missing tool_file attribute in "%s".' % (data_manager_config_filename)) invalid_data_managers.append({'index': i, - 'error_message': 'Data Manager entry is missing tool_file attribute'}) + 'error_message': 'Data Manager entry is missing tool_file attribute'}) continue else: bad_data_table = False @@ -166,7 +166,7 @@ class MetadataGenerator(object): if data_table_name is None: log.error('Data Manager data_table entry is missing name attribute in "%s".' % (data_manager_config_filename)) invalid_data_managers.append({'index': i, - 'error_message': 'Data Manager entry is missing name attribute'}) + 'error_message': 'Data Manager entry is missing name attribute'}) bad_data_table = True break else: @@ -179,15 +179,15 @@ class MetadataGenerator(object): if tool is None: log.error("Unable to determine tools metadata for '%s'." % (data_manager_metadata_tool_file)) invalid_data_managers.append({'index': i, - 'error_message': 'Unable to determine tools metadata'}) + 'error_message': 'Unable to determine tools metadata'}) continue data_managers[data_manager_id] = {'id': data_manager_id, - 'name': data_manager_name, - 'guid': guid, - 'version': version, - 'tool_config_file': data_manager_metadata_tool_file, - 'data_tables': data_tables, - 'tool_guid': tool['guid']} + 'name': data_manager_name, + 'guid': guid, + 'version': version, + 'tool_config_file': data_manager_metadata_tool_file, + 'data_tables': data_tables, + 'tool_guid': tool['guid']} log.debug('Loaded Data Manager tool_files: %s' % (tool_file)) return metadata_dict @@ -246,8 +246,8 @@ class MetadataGenerator(object): else: guid = suc.generate_tool_guid(self.repository_clone_url, tool) converter_dict = dict(tool_config=tool_config, - guid=guid, - target_datatype=target_datatype) + guid=guid, + target_datatype=target_datatype) converters.append(converter_dict) elif sub_elem.tag == 'display': # @@ -343,15 +343,15 @@ class MetadataGenerator(object): datatypes_config = hg_util.get_config_from_disk(suc.DATATYPES_CONFIG_FILENAME, files_dir) if datatypes_config: metadata_dict = self.generate_datatypes_metadata(tv, - files_dir, - datatypes_config, - metadata_dict) + files_dir, + datatypes_config, + metadata_dict) # Get the relative path to all sample files included in the repository for storage in # the repository's metadata. sample_file_metadata_paths, sample_file_copy_paths = \ self.get_sample_files_from_disk(repository_files_dir=files_dir, - tool_path=self.shed_config_dict.get('tool_path'), - relative_install_dir=self.relative_install_dir) + tool_path=self.shed_config_dict.get('tool_path'), + relative_install_dir=self.relative_install_dir) if sample_file_metadata_paths: metadata_dict['sample_files'] = sample_file_metadata_paths # Copy all sample files included in the repository to a single directory location so we @@ -364,9 +364,9 @@ class MetadataGenerator(object): if filename == 'tool_data_table_conf.xml.sample': new_table_elems, error_message = \ self.app.tool_data_tables.add_new_entries_from_config_file(config_filename=sample_file, - tool_data_path=work_dir, - shed_tool_data_table_config=work_dir, - persist=False) + tool_data_path=work_dir, + shed_tool_data_table_config=work_dir, + persist=False) if error_message: self.invalid_file_tups.append((filename, error_message)) for root, dirs, files in os.walk(files_dir): @@ -379,16 +379,16 @@ class MetadataGenerator(object): path_to_repository_dependencies_config = os.path.join(root, name) metadata_dict, error_message = \ self.generate_repository_dependency_metadata(path_to_repository_dependencies_config, - metadata_dict) + metadata_dict) if error_message: self.invalid_file_tups.append((name, error_message)) # See if we have one or more READ_ME files. elif name.lower() in readme_file_names: relative_path_to_readme = self.get_relative_path_to_repository_file(root, - name, - self.relative_install_dir, - work_dir, - self.shed_config_dict) + name, + self.relative_install_dir, + work_dir, + self.shed_config_dict) readme_files.append(relative_path_to_readme) # See if we have a tool config. elif looks_like_a_tool(os.path.join(root, name), invalid_names=self.NOT_TOOL_CONFIGS): @@ -402,7 +402,7 @@ class MetadataGenerator(object): if is_tool: tool, valid, error_message = \ tv.load_tool_from_config(self.app.security.encode_id(self.repository.id), - full_path) + full_path) if tool is None: if not valid: invalid_tool_configs.append(name) @@ -410,9 +410,9 @@ class MetadataGenerator(object): else: invalid_files_and_errors_tups = \ tv.check_tool_input_params(files_dir, - name, - tool, - sample_file_copy_paths) + name, + tool, + sample_file_copy_paths) can_set_metadata = True for tup in invalid_files_and_errors_tups: if name in tup: @@ -422,13 +422,13 @@ class MetadataGenerator(object): if can_set_metadata: relative_path_to_tool_config = \ self.get_relative_path_to_repository_file(root, - name, - self.relative_install_dir, - work_dir, - self.shed_config_dict) + name, + self.relative_install_dir, + work_dir, + self.shed_config_dict) metadata_dict = self.generate_tool_metadata(relative_path_to_tool_config, - tool, - metadata_dict) + tool, + metadata_dict) else: for tup in invalid_files_and_errors_tups: self.invalid_file_tups.append(tup) @@ -445,20 +445,20 @@ class MetadataGenerator(object): exported_workflow_dict = json.loads(workflow_text) except Exception: log.exception("Skipping file %s since it does not seem to be a valid exported Galaxy workflow", - str(relative_path)) + str(relative_path)) valid_exported_galaxy_workflow = False if valid_exported_galaxy_workflow and \ 'a_galaxy_workflow' in exported_workflow_dict and \ exported_workflow_dict['a_galaxy_workflow'] == 'true': metadata_dict = self.generate_workflow_metadata(relative_path, - exported_workflow_dict, - metadata_dict) + exported_workflow_dict, + metadata_dict) # Handle any data manager entries data_manager_config = hg_util.get_config_from_disk(suc.REPOSITORY_DATA_MANAGER_CONFIG_FILENAME, files_dir) metadata_dict = self.generate_data_manager_metadata(files_dir, - data_manager_config, - metadata_dict, - shed_config_dict=self.shed_config_dict) + data_manager_config, + metadata_dict, + shed_config_dict=self.shed_config_dict) if readme_files: metadata_dict['readme_files'] = readme_files @@ -467,8 +467,8 @@ class MetadataGenerator(object): if tool_dependencies_config: metadata_dict, error_message = \ self.generate_tool_dependency_metadata(tool_dependencies_config, - metadata_dict, - original_repository_metadata=original_repository_metadata) + metadata_dict, + original_repository_metadata=original_repository_metadata) if error_message: self.invalid_file_tups.append((rt_util.TOOL_DEPENDENCY_DEFINITION_FILENAME, error_message)) if invalid_tool_configs: @@ -502,7 +502,7 @@ class MetadataGenerator(object): # where a tool dependency definition is considered invalid. repository_dependency_tup, repository_dependency_is_valid, error_message = \ self.handle_repository_elem(repository_elem=sub_elem, - only_if_compiling_contained_td=False) + only_if_compiling_contained_td=False) elif sub_elem.tag == 'install': package_install_version = sub_elem.get('version', '1.0') if package_install_version == '1.0': @@ -510,8 +510,8 @@ class MetadataGenerator(object): # tag set. Comments, tag sets and tag sets will be skipped # in tool_dependency_util.parse_package_elem(). actions_elem_tuples = tool_dependency_util.parse_package_elem(sub_elem, - platform_info_dict=None, - include_after_install_actions=False) + platform_info_dict=None, + include_after_install_actions=False) if actions_elem_tuples: # We now have a list of a single tuple that looks something like: # [(True, )] @@ -535,7 +535,7 @@ class MetadataGenerator(object): # We have a complex repository dependency. repository_dependency_tup, repository_dependency_is_valid, error_message = \ self.handle_repository_elem(repository_elem=sub_action_elem, - only_if_compiling_contained_td=True) + only_if_compiling_contained_td=True) elif action_elem.tag == 'action': # # @@ -547,7 +547,7 @@ class MetadataGenerator(object): # We have a complex repository dependency. repository_dependency_tup, repository_dependency_is_valid, error_message = \ self.handle_repository_elem(repository_elem=sub_action_elem, - only_if_compiling_contained_td=True) + only_if_compiling_contained_td=True) if requirements_dict: dependency_key = '%s/%s' % (package_name, package_version) if repository_dependency_is_valid: @@ -583,7 +583,7 @@ class MetadataGenerator(object): for repository_elem in root.findall('repository'): repository_dependency_tup, repository_dependency_is_valid, err_msg = \ self.handle_repository_elem(repository_elem, - only_if_compiling_contained_td=False) + only_if_compiling_contained_td=False) if repository_dependency_is_valid: valid_repository_dependency_tups.append(repository_dependency_tup) else: @@ -591,12 +591,12 @@ class MetadataGenerator(object): toolshed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = \ repository_dependency_tup repository_dependency_tup = (toolshed, - name, - owner, - changeset_revision, - prior_installation_required, - only_if_compiling_contained_td, - err_msg) + name, + owner, + changeset_revision, + prior_installation_required, + only_if_compiling_contained_td, + err_msg) invalid_repository_dependency_tups.append(repository_dependency_tup) error_message += err_msg if invalid_repository_dependency_tups: @@ -618,8 +618,8 @@ class MetadataGenerator(object): tool_type = str(tool_requirement.type) version = str(tool_requirement.version) if tool_requirement.version else None requirement_dict = dict(name=name, - type=tool_type, - version=version) + type=tool_type, + version=version) tool_requirements.append(requirement_dict) # Handle tool.tests. tool_tests = [] @@ -665,29 +665,29 @@ class MetadataGenerator(object): if file_name not in required_files and file_name is not None: required_files.append(file_name) test_dict = dict(name=str(ttb.name), - required_files=required_files, - inputs=inputs, - outputs=outputs) + required_files=required_files, + inputs=inputs, + outputs=outputs) tool_tests.append(test_dict) # Determine if the tool should be loaded into the tool panel. Examples of valid tools that # should not be displayed in the tool panel are datatypes converters and DataManager tools # (which are of type 'manage_data'). datatypes = metadata_dict.get('datatypes', None) add_to_tool_panel_attribute = self.set_add_to_tool_panel_attribute_for_tool(tool=tool, - guid=guid, - datatypes=datatypes) + guid=guid, + datatypes=datatypes) tool_dict = dict(id=tool.id, - guid=guid, - name=tool.name, - version=tool.version, - profile=tool.profile, - description=tool.description, - version_string_cmd=tool.version_string_cmd, - tool_config=tool_config, - tool_type=tool.tool_type, - requirements=tool_requirements, - tests=tool_tests, - add_to_tool_panel=add_to_tool_panel_attribute) + guid=guid, + name=tool.name, + version=tool.version, + profile=tool.profile, + description=tool.description, + version_string_cmd=tool.version_string_cmd, + tool_config=tool_config, + tool_type=tool.tool_type, + requirements=tool_requirements, + tests=tool_tests, + add_to_tool_panel=add_to_tool_panel_attribute) if 'tools' in metadata_dict: metadata_dict['tools'].append(tool_dict) else: @@ -728,8 +728,8 @@ class MetadataGenerator(object): rvs.valid_tool_dependencies_dict, rvs.invalid_tool_dependencies_dict, \ repository_dependency_tup, repository_dependency_is_valid, \ message = self.generate_package_dependency_metadata(elem, - rvs.valid_tool_dependencies_dict, - rvs.invalid_tool_dependencies_dict) + rvs.valid_tool_dependencies_dict, + rvs.invalid_tool_dependencies_dict) if repository_dependency_is_valid: if repository_dependency_tup and repository_dependency_tup not in valid_repository_dependency_tups: # We have a valid complex repository dependency. @@ -744,12 +744,12 @@ class MetadataGenerator(object): repository_dependency_tup repository_dependency_tup = \ (toolshed, - name, - owner, - changeset_revision, - prior_installation_required, - only_if_compiling_contained_td, - message) + name, + owner, + changeset_revision, + prior_installation_required, + only_if_compiling_contained_td, + message) invalid_repository_dependency_tups.append(repository_dependency_tup) error_messages.append('%s %s' % (error_message, message)) elif elem.tag == 'set_environment': @@ -765,23 +765,23 @@ class MetadataGenerator(object): irm = self.app.installed_repository_manager updated_tool_dependency_names, deleted_tool_dependency_names = \ irm.handle_existing_tool_dependencies_that_changed_in_update(self.repository, - original_valid_tool_dependencies_dict, - rvs.valid_tool_dependencies_dict) + original_valid_tool_dependencies_dict, + rvs.valid_tool_dependencies_dict) metadata_dict['tool_dependencies'] = rvs.valid_tool_dependencies_dict if rvs.invalid_tool_dependencies_dict: metadata_dict['invalid_tool_dependencies'] = rvs.invalid_tool_dependencies_dict if valid_repository_dependency_tups: metadata_dict = \ self.update_repository_dependencies_metadata(metadata=metadata_dict, - repository_dependency_tups=valid_repository_dependency_tups, - is_valid=True, - description=description) + repository_dependency_tups=valid_repository_dependency_tups, + is_valid=True, + description=description) if invalid_repository_dependency_tups: metadata_dict = \ self.update_repository_dependencies_metadata(metadata=metadata_dict, - repository_dependency_tups=invalid_repository_dependency_tups, - is_valid=False, - description=description) + repository_dependency_tups=invalid_repository_dependency_tups, + is_valid=False, + description=description) return metadata_dict, error_message def generate_workflow_metadata(self, relative_path, exported_workflow_dict, metadata_dict): @@ -862,11 +862,11 @@ class MetadataGenerator(object): changeset_revision = repository_elem.get('changeset_revision', None) prior_installation_required = str(repository_elem.get('prior_installation_required', False)) repository_dependency_tup = [toolshed, - name, - owner, - changeset_revision, - prior_installation_required, - str(only_if_compiling_contained_td)] + name, + owner, + changeset_revision, + prior_installation_required, + str(only_if_compiling_contained_td)] if self.app.name == 'galaxy': if self.updating_installed_repository: pass @@ -899,10 +899,10 @@ class MetadataGenerator(object): # we're successful in locating an installed repository with the attributes defined # in the repository_elem, we know it is valid. repository = repository_util.get_repository_for_dependency_relationship(self.app, - toolshed, - name, - owner, - changeset_revision) + toolshed, + name, + owner, + changeset_revision) if repository: return repository_dependency_tup, is_valid, error_message else: @@ -910,18 +910,18 @@ class MetadataGenerator(object): # revisions with which the repository # may have been installed. text = metadata_util.get_updated_changeset_revisions_from_tool_shed(self.app, - toolshed, - name, - owner, - changeset_revision) + toolshed, + name, + owner, + changeset_revision) if text: updated_changeset_revisions = util.listify(text) for updated_changeset_revision in updated_changeset_revisions: repository = repository_util.get_repository_for_dependency_relationship(self.app, - toolshed, - name, - owner, - updated_changeset_revision) + toolshed, + name, + owner, + updated_changeset_revision) if repository: return repository_dependency_tup, is_valid, error_message if self.updating_installed_repository: @@ -963,7 +963,7 @@ class MetadataGenerator(object): try: repository = self.sa_session.query(self.app.model.Repository) \ .filter(and_(self.app.model.Repository.table.c.name == name, - self.app.model.Repository.table.c.user_id == user.id)) \ + self.app.model.Repository.table.c.user_id == user.id)) \ .one() except: error_message = "Ignoring repository dependency definition for tool shed %s, name %s, owner %s, " % \ @@ -1104,7 +1104,7 @@ class MetadataGenerator(object): repository_dependencies_dict['repository_dependencies'] = repository_dependencies else: repository_dependencies_dict = dict(description=description, - repository_dependencies=repository_dependency_tups) + repository_dependencies=repository_dependency_tups) if repository_dependencies_dict: if is_valid: metadata['repository_dependencies'] = repository_dependencies_dict diff --git a/lib/tool_shed/metadata/repository_metadata_manager.py b/lib/tool_shed/metadata/repository_metadata_manager.py index 4805faafc50..e35729c98bf 100644 --- a/lib/tool_shed/metadata/repository_metadata_manager.py +++ b/lib/tool_shed/metadata/repository_metadata_manager.py @@ -18,15 +18,15 @@ log = logging.getLogger(__name__) class RepositoryMetadataManager(metadata_generator.MetadataGenerator): def __init__(self, app, user, repository=None, changeset_revision=None, repository_clone_url=None, - shed_config_dict=None, relative_install_dir=None, repository_files_dir=None, - resetting_all_metadata_on_repository=False, updating_installed_repository=False, - persist=False, metadata_dict=None): + shed_config_dict=None, relative_install_dir=None, repository_files_dir=None, + resetting_all_metadata_on_repository=False, updating_installed_repository=False, + persist=False, metadata_dict=None): super(RepositoryMetadataManager, self).__init__(app, repository, changeset_revision, - repository_clone_url, shed_config_dict, - relative_install_dir, repository_files_dir, - resetting_all_metadata_on_repository, - updating_installed_repository, persist, - metadata_dict=metadata_dict, user=user) + repository_clone_url, shed_config_dict, + relative_install_dir, repository_files_dir, + resetting_all_metadata_on_repository, + updating_installed_repository, persist, + metadata_dict=metadata_dict, user=user) self.app = app self.user = user # Repository metadata comparisons for changeset revisions. @@ -43,10 +43,10 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): for tool_dict in metadata.get('tools', []): # We have at least 2 changeset revisions to compare tool guids and tool ids. parent_id = self.get_parent_id(id, - tool_dict['id'], - tool_dict['version'], - tool_dict['guid'], - changeset_revisions) + tool_dict['id'], + tool_dict['version'], + tool_dict['guid'], + changeset_revisions) tool_versions_dict[tool_dict['guid']] = parent_id if tool_versions_dict: repository_metadata.tool_versions = tool_versions_dict @@ -54,7 +54,7 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): self.sa_session.flush() def build_repository_ids_select_field(self, name='repository_ids', multiple=True, display='checkboxes', - my_writable=False): + my_writable=False): """Generate the current list of repositories for resetting metadata.""" repositories_select_field = SelectField(name=name, multiple=multiple, display=display) query = self.get_query_for_setting_metadata_on_repositories(my_writable=my_writable, order=True) @@ -76,7 +76,7 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): self.sa_session.query(self.app.model.RepositoryMetadata) \ .filter(self.app.model.RepositoryMetadata.table.c.repository_id == self.repository.id) \ .order_by(self.app.model.RepositoryMetadata.table.c.changeset_revision, - self.app.model.RepositoryMetadata.table.c.update_time.desc()): + self.app.model.RepositoryMetadata.table.c.update_time.desc()): changeset_revision = repository_metadata.changeset_revision if changeset_revision in changeset_revisions_checked or changeset_revision not in changeset_revisions: self.sa_session.delete(repository_metadata) @@ -127,9 +127,9 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): # repository revisions are defined. See the NOTE in self.compare_readme_files(). # readme_file_comparision = self.compare_readme_files( ancestor_readme_files, current_readme_files ) repository_dependency_comparison = self.compare_repository_dependencies(ancestor_repository_dependencies, - current_repository_dependencies) + current_repository_dependencies) tool_dependency_comparison = self.compare_tool_dependencies(ancestor_tool_dependencies, - current_tool_dependencies) + current_tool_dependencies) workflow_comparison = self.compare_workflows(ancestor_workflows, current_workflows) datatype_comparison = self.compare_datatypes(ancestor_datatypes, current_datatypes) data_manager_comparison = self.compare_data_manager(ancestor_data_manager, current_data_manager) @@ -165,11 +165,11 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): def __data_manager_dict_to_tuple_list(metadata_dict): # we do not check tool_guid or tool conf file name return set(sorted([(name, - tuple(sorted(value.get('data_tables', []))), - value.get('guid'), - value.get('version'), - value.get('name'), - value.get('id')) for name, value in metadata_dict.items()])) + tuple(sorted(value.get('data_tables', []))), + value.get('guid'), + value.get('version'), + value.get('name'), + 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', {})) @@ -261,7 +261,7 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): # is the changeset_revision value. We'll check to see if this is the case, and if # the defined dependency is a repository that has metadata set only on its tip. if not self.different_revision_defines_tip_only_repository_dependency(ancestor_tup, - current_repository_dependencies): + current_repository_dependencies): return self.NOT_EQUAL_AND_NOT_SUBSET return self.SUBSET if len(ancestor_repository_dependencies) == len(current_repository_dependencies): @@ -352,8 +352,8 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): else: downloadable = False repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, - self.app.security.encode_id(self.repository.id), - changeset_revision) + self.app.security.encode_id(self.repository.id), + changeset_revision) if repository_metadata: repository_metadata.metadata = metadata_dict repository_metadata.downloadable = downloadable @@ -365,14 +365,14 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): else: repository_metadata = \ self.app.model.RepositoryMetadata(repository_id=self.repository.id, - changeset_revision=changeset_revision, - metadata=metadata_dict, - downloadable=downloadable, - has_repository_dependencies=has_repository_dependencies, - includes_datatypes=includes_datatypes, - includes_tools=includes_tools, - includes_tool_dependencies=includes_tool_dependencies, - includes_workflows=includes_workflows) + changeset_revision=changeset_revision, + metadata=metadata_dict, + downloadable=downloadable, + has_repository_dependencies=has_repository_dependencies, + includes_datatypes=includes_datatypes, + includes_tools=includes_tools, + includes_tool_dependencies=includes_tool_dependencies, + includes_workflows=includes_workflows) # Always set the default values for the following columns. When resetting all metadata # on a repository this will reset the values. repository_metadata.missing_test_components = False @@ -449,7 +449,7 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): return self.sa_session.query(self.app.model.Repository) \ .filter(or_(*clause_list)) \ .order_by(self.app.model.Repository.table.c.name, - self.app.model.Repository.table.c.user_id) + self.app.model.Repository.table.c.user_id) else: return self.sa_session.query(self.app.model.Repository) \ .filter(or_(*clause_list)) @@ -462,7 +462,7 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): return self.sa_session.query(self.app.model.Repository) \ .filter(self.app.model.Repository.table.c.deleted == false()) \ .order_by(self.app.model.Repository.table.c.name, - self.app.model.Repository.table.c.user_id) + self.app.model.Repository.table.c.user_id) else: return self.sa_session.query(self.app.model.Repository) \ .filter(self.app.model.Repository.table.c.deleted == false()) @@ -514,8 +514,8 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): the new tip. """ repository_metadata = metadata_util.get_latest_repository_metadata(self.app, - self.repository.id, - downloadable=False) + self.repository.id, + downloadable=False) datatypes_required = self.new_datatypes_metadata_required(repository_metadata) # Uncomment the following if we decide that README files should affect how installable # repository revisions are defined. See the NOTE in the compare_readme_files() method. @@ -548,7 +548,7 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): ancestor_readme_files = metadata['readme_files'] # The saved metadata must be a subset of the new metadata. readme_file_comparison = self.compare_readme_files(ancestor_readme_files, - current_readme_files) + current_readme_files) if readme_file_comparison == self.NOT_EQUAL_AND_NOT_SUBSET: return True else: @@ -599,7 +599,7 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): # is the changeset_revision value. We'll check to see if this is the case, and if # the defined dependency is a repository that has metadata set only on its tip. if not self.different_revision_defines_tip_only_repository_dependency(saved_repository_dependency, - new_repository_dependencies): + new_repository_dependencies): return True return False else: @@ -736,9 +736,9 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): """Reset all metadata on a single repository in a tool shed.""" log.debug("Resetting all metadata on repository: %s" % self.repository.name) repo = hg_util.get_repo_for_repository(self.app, - repository=None, - repo_path=self.repository.repo_path(self.app), - create=False) + repository=None, + repo_path=self.repository.repo_path(self.app), + create=False) # The list of changeset_revisions refers to repository_metadata records that have been created # or updated. When the following loop completes, we'll delete all repository_metadata records # for this repository that do not have a changeset_revision value in this list. @@ -819,8 +819,8 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): for changeset in repo.changelog: changeset_revision = str(repo.changectx(changeset)) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, - encoded_repository_id, - changeset_revision) + encoded_repository_id, + changeset_revision) if repository_metadata: metadata = repository_metadata.metadata if metadata: @@ -832,8 +832,8 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): for index, changeset_revision in enumerate(changeset_revisions_that_contain_tools): tool_versions_dict = {} repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, - encoded_repository_id, - changeset_revision) + encoded_repository_id, + changeset_revision) metadata = repository_metadata.metadata tool_dicts = metadata['tools'] if index == 0: @@ -845,10 +845,10 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): else: for tool_dict in tool_dicts: parent_id = self.get_parent_id(encoded_repository_id, - tool_dict['id'], - tool_dict['version'], - tool_dict['guid'], - changeset_revisions_that_contain_tools[0:index]) + tool_dict['id'], + tool_dict['version'], + tool_dict['guid'], + changeset_revisions_that_contain_tools[0:index]) tool_versions_dict[tool_dict['guid']] = parent_id if tool_versions_dict: repository_metadata.tool_versions = tool_versions_dict @@ -874,10 +874,10 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): self.reset_all_metadata_on_repository_in_tool_shed() if self.invalid_file_tups: message = tool_util.generate_message_for_invalid_tools(self.app, - self.invalid_file_tups, - repository, - None, - as_html=False) + self.invalid_file_tups, + repository, + None, + as_html=False) log.debug(message) unsuccessful_count += 1 else: @@ -919,20 +919,20 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): if not tip_only and self.new_metadata_required_for_utilities(): # Create a new repository_metadata table row. repository_metadata = self.create_or_update_repository_metadata(self.repository.tip(self.app), - self.metadata_dict) + self.metadata_dict) # If this is the first record stored for this repository, see if we need to send any email alerts. if len(self.repository.downloadable_revisions) == 1: suc.handle_email_alerts(self.app, - host, - self.repository, - content_alert_str='', - new_repo_alert=True, - admin_only=False) + host, + self.repository, + content_alert_str='', + new_repo_alert=True, + admin_only=False) else: # Update the latest stored repository metadata with the contents and attributes of self.metadata_dict. repository_metadata = metadata_util.get_latest_repository_metadata(self.app, - self.repository.id, - downloadable=False) + self.repository.id, + downloadable=False) if repository_metadata: downloadable = metadata_util.is_downloadable(self.metadata_dict) # Update the last saved repository_metadata table row. @@ -968,7 +968,7 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): else: # There are no metadata records associated with the repository. repository_metadata = self.create_or_update_repository_metadata(self.repository.tip(self.app), - self.metadata_dict) + self.metadata_dict) if 'tools' in self.metadata_dict and repository_metadata and status != 'error': # Set tool versions on the new downloadable change set. The order of the list of changesets is # critical, so we use the repo's changelog. @@ -985,9 +985,9 @@ class RepositoryMetadataManager(metadata_generator.MetadataGenerator): status = "error" if self.invalid_file_tups: message = tool_util.generate_message_for_invalid_tools(self.app, - self.invalid_file_tups, - self.repository, - self.metadata_dict) + self.invalid_file_tups, + self.repository, + self.metadata_dict) status = 'error' # Reset the tool_data_tables by loading the empty tool_data_table_conf.xml file. self.app.tool_data_tables.data_tables = {} diff --git a/lib/tool_shed/repository_registry.py b/lib/tool_shed/repository_registry.py index f4452f55d4e..f3e8de43703 100644 --- a/lib/tool_shed/repository_registry.py +++ b/lib/tool_shed/repository_registry.py @@ -142,15 +142,15 @@ class Registry(object): clause_list = [] for repository in self.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())): + model.Repository.table.c.deprecated == false())): certified_level_one_tuple = self.get_certified_level_one_tuple(repository) latest_installable_changeset_revision, is_level_one_certified = certified_level_one_tuple if is_level_one_certified: certified_level_one_tuples.append(certified_level_one_tuple) clause_list.append("%s=%d and %s='%s'" % (model.RepositoryMetadata.table.c.repository_id, - repository.id, - model.RepositoryMetadata.table.c.changeset_revision, - latest_installable_changeset_revision)) + repository.id, + model.RepositoryMetadata.table.c.changeset_revision, + latest_installable_changeset_revision)) return clause_list def get_certified_level_one_tuple(self, repository): @@ -167,8 +167,8 @@ class Registry(object): if latest_installable_changeset_revision not in [None, hg_util.INITIAL_CHANGELOG_HASH]: encoded_repository_id = self.app.security.encode_id(repository.id) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, - encoded_repository_id, - latest_installable_changeset_revision) + encoded_repository_id, + latest_installable_changeset_revision) if repository_metadata: # No repository_metadata. return (latest_installable_changeset_revision, True) @@ -230,7 +230,7 @@ class Registry(object): # Load self.repository_and_suite_tuples and self.suite_tuples for repository in self.sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.deleted == false(), - model.Repository.table.c.deprecated == false())) \ + model.Repository.table.c.deprecated == false())) \ .join(model.User.table): self.load_repository_and_suite_tuple(repository) @@ -265,8 +265,8 @@ class Registry(object): encoded_repository_id = self.app.security.encode_id(repository.id) tip_changeset_hash = repository.tip(self.app) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(self.app, - encoded_repository_id, - tip_changeset_hash) + encoded_repository_id, + tip_changeset_hash) self.viewable_repositories_and_suites_by_category[category_name] += 1 if is_valid: self.viewable_valid_repositories_and_suites_by_category[category_name] += 1 diff --git a/lib/tool_shed/tools/data_table_manager.py b/lib/tool_shed/tools/data_table_manager.py index 111aac144b8..be8590c4fde 100644 --- a/lib/tool_shed/tools/data_table_manager.py +++ b/lib/tool_shed/tools/data_table_manager.py @@ -15,7 +15,7 @@ class ToolDataTableManager(object): self.app = app def generate_repository_info_elem(self, tool_shed, repository_name, changeset_revision, owner, - parent_elem=None, **kwd): + parent_elem=None, **kwd): """Create and return an ElementTree repository info Element.""" if parent_elem is None: elem = XmlET.Element('tool_shed_repository') @@ -38,11 +38,11 @@ class ToolDataTableManager(object): def generate_repository_info_elem_from_repository(self, tool_shed_repository, parent_elem=None, **kwd): return self.generate_repository_info_elem(tool_shed_repository.tool_shed, - tool_shed_repository.name, - tool_shed_repository.installed_changeset_revision, - tool_shed_repository.owner, - parent_elem=parent_elem, - **kwd) + tool_shed_repository.name, + tool_shed_repository.installed_changeset_revision, + tool_shed_repository.owner, + parent_elem=parent_elem, + **kwd) def get_tool_index_sample_files(self, sample_files): """ @@ -74,11 +74,11 @@ class ToolDataTableManager(object): # The repository must contain a tool_data_table_conf.xml.sample file that includes # all required entries for all tools in the repository. sample_tool_data_table_conf = hg_util.get_config_from_disk('tool_data_table_conf.xml.sample', - relative_install_dir) + relative_install_dir) if sample_tool_data_table_conf: # Add entries to the ToolDataTableManager's in-memory data_tables dictionary. error, message = self.handle_sample_tool_data_table_conf_file(sample_tool_data_table_conf, - persist=True) + persist=True) if error: # TODO: Do more here than logging an exception. log.debug(message) @@ -102,9 +102,9 @@ class ToolDataTableManager(object): try: new_table_elems, message = self.app.tool_data_tables \ .add_new_entries_from_config_file(config_filename=filename, - tool_data_path=self.app.config.shed_tool_data_path, - shed_tool_data_table_config=self.app.config.shed_tool_data_table_config, - persist=persist) + tool_data_path=self.app.config.shed_tool_data_path, + shed_tool_data_table_config=self.app.config.shed_tool_data_table_config, + persist=persist) if message: error = True except Exception as e: @@ -155,7 +155,7 @@ class ToolDataTableManager(object): elems.append(elem) else: log.debug("The '%s' data table file was not found, but was expected to be copied from '%s' during repository installation.", - tool_data_table_conf_filename, TOOL_DATA_TABLE_FILE_SAMPLE_NAME) + tool_data_table_conf_filename, TOOL_DATA_TABLE_FILE_SAMPLE_NAME) for elem in elems: if elem.tag == 'table': for file_elem in elem.findall('file'): diff --git a/lib/tool_shed/tools/tool_validator.py b/lib/tool_shed/tools/tool_validator.py index fc50d4e5738..c55870b40e8 100644 --- a/lib/tool_shed/tools/tool_validator.py +++ b/lib/tool_shed/tools/tool_validator.py @@ -68,7 +68,7 @@ class ToolValidator(object): if sample_tool_data_table_conf: error, correction_msg = \ self.tdtm.handle_sample_tool_data_table_conf_file(sample_tool_data_table_conf, - persist=False) + persist=False) if error: invalid_files_and_errors_tups.append(('tool_data_table_conf.xml.sample', correction_msg)) else: @@ -208,13 +208,13 @@ class ToolValidator(object): # Load entries into the tool_data_tables if the tool requires them. tool_data_table_config = os.path.join(work_dir, 'tool_data_table_conf.xml') error, message = self.tdtm.handle_sample_tool_data_table_conf_file(tool_data_table_config, - persist=False) + persist=False) tool, valid, message2 = self.load_tool_from_config(repository_id, tool_config_filepath) message = self.concat_messages(message, message2) return tool, valid, message, sample_files def handle_sample_files_and_load_tool_from_tmp_config(self, repo, repository_id, changeset_revision, - tool_config_filename, work_dir): + tool_config_filename, work_dir): tool = None message = '' ctx = hg_util.get_changectx_for_changeset(repo, changeset_revision) @@ -228,7 +228,7 @@ class ToolValidator(object): tool_data_table_config = os.path.join(work_dir, 'tool_data_table_conf.xml') if tool_data_table_config: error, message = self.tdtm.handle_sample_tool_data_table_conf_file(tool_data_table_config, - persist=False) + persist=False) if error: log.debug(message) manifest_ctx, ctx_file = hg_util.get_ctx_file_path_from_manifest(tool_config_filename, repo, changeset_revision) @@ -255,37 +255,37 @@ class ToolValidator(object): tool_config_filepath = repository_util.get_absolute_path_to_file_in_repository(repo_files_dir, tool_config_filename) work_dir = tempfile.mkdtemp(prefix="tmp-toolshed-ltfcr") can_use_disk_file = self.can_use_tool_config_disk_file(repository, - repo, - tool_config_filepath, - changeset_revision) + repo, + tool_config_filepath, + changeset_revision) if can_use_disk_file: self.app.config.tool_data_path = work_dir tool, valid, message, sample_files = \ self.handle_sample_files_and_load_tool_from_disk(repo_files_dir, - repository_id, - tool_config_filepath, - work_dir) + repository_id, + tool_config_filepath, + work_dir) if tool is not None: invalid_files_and_errors_tups = \ self.check_tool_input_params(repo_files_dir, - tool_config_filename, - tool, - sample_files) + tool_config_filename, + tool, + sample_files) if invalid_files_and_errors_tups: message2 = tool_util.generate_message_for_invalid_tools(self.app, - invalid_files_and_errors_tups, - repository, - metadata_dict=None, - as_html=True, - displaying_invalid_tool=True) + invalid_files_and_errors_tups, + repository, + metadata_dict=None, + as_html=True, + displaying_invalid_tool=True) message = self.concat_messages(message, message2) else: tool, message, sample_files = \ self.handle_sample_files_and_load_tool_from_tmp_config(repo, - repository_id, - changeset_revision, - tool_config_filename, - work_dir) + repository_id, + changeset_revision, + tool_config_filename, + work_dir) basic_util.remove_dir(work_dir) self.app.config.tool_data_path = original_tool_data_path # Reset the tool_data_tables by loading the empty tool_data_table_conf.xml file. diff --git a/lib/tool_shed/tools/tool_version_manager.py b/lib/tool_shed/tools/tool_version_manager.py index 133e2a97921..0d6bb161956 100644 --- a/lib/tool_shed/tools/tool_version_manager.py +++ b/lib/tool_shed/tools/tool_version_manager.py @@ -28,7 +28,7 @@ class ToolVersionManager(object): context = self.app.install_model.context return context.query(self.app.install_model.ToolVersionAssociation) \ .filter(and_(self.app.install_model.ToolVersionAssociation.table.c.parent_id == parent_tool_version.id, - self.app.install_model.ToolVersionAssociation.table.c.tool_id == tool_version.id)) \ + self.app.install_model.ToolVersionAssociation.table.c.tool_id == tool_version.id)) \ .first() def get_version_lineage_for_tool(self, repository_id, repository_metadata, guid): @@ -54,8 +54,8 @@ class ToolVersionManager(object): # Get all descendant guids of the received guid. current_parent_guid = guid for changeset in hg_util.reversed_lower_upper_bounded_changelog(repo, - repository_metadata.changeset_revision, - repository.tip(self.app)): + repository_metadata.changeset_revision, + repository.tip(self.app)): ctx = repo.changectx(changeset) rm = metadata_util.get_repository_metadata_by_changeset_revision(self.app, repository_id, str(ctx)) if rm: @@ -82,13 +82,13 @@ class ToolVersionManager(object): if not tool_version_using_tool_guid: tool_version_using_tool_guid = \ self.app.install_model.ToolVersion(tool_id=tool_guid, - tool_shed_repository=tool_shed_repository) + tool_shed_repository=tool_shed_repository) context.add(tool_version_using_tool_guid) context.flush() if not tool_version_using_parent_id: tool_version_using_parent_id = \ self.app.install_model.ToolVersion(tool_id=parent_id, - tool_shed_repository=tool_shed_repository) + tool_shed_repository=tool_shed_repository) context.add(tool_version_using_parent_id) context.flush() # Remove existing wrong tool version associations having @@ -96,18 +96,18 @@ class ToolVersionManager(object): # tool_version_using_tool_guid as child. context.query(self.app.install_model.ToolVersionAssociation) \ .filter(or_(and_(self.app.install_model.ToolVersionAssociation.table.c.parent_id == tool_version_using_parent_id.id, - self.app.install_model.ToolVersionAssociation.table.c.tool_id != tool_version_using_tool_guid.id), - and_(self.app.install_model.ToolVersionAssociation.table.c.parent_id != tool_version_using_parent_id.id, - self.app.install_model.ToolVersionAssociation.table.c.tool_id == tool_version_using_tool_guid.id))) \ + self.app.install_model.ToolVersionAssociation.table.c.tool_id != tool_version_using_tool_guid.id), + and_(self.app.install_model.ToolVersionAssociation.table.c.parent_id != tool_version_using_parent_id.id, + self.app.install_model.ToolVersionAssociation.table.c.tool_id == tool_version_using_tool_guid.id))) \ .delete() context.flush() tool_version_association = \ self.get_tool_version_association(tool_version_using_parent_id, - tool_version_using_tool_guid) + tool_version_using_tool_guid) if not tool_version_association: # Associate the two versions as parent / child. tool_version_association = \ self.app.install_model.ToolVersionAssociation(tool_id=tool_version_using_tool_guid.id, - parent_id=tool_version_using_parent_id.id) + parent_id=tool_version_using_parent_id.id) context.add(tool_version_association) context.flush() diff --git a/lib/tool_shed/util/admin_util.py b/lib/tool_shed/util/admin_util.py index ebf1952f53a..bbc0d8780e1 100644 --- a/lib/tool_shed/util/admin_util.py +++ b/lib/tool_shed/util/admin_util.py @@ -26,8 +26,8 @@ class Admin(object): message = escape(kwd.get('message', '')) status = kwd.get('status', 'done') return trans.fill_template('/webapps/tool_shed/admin/index.mako', - message=message, - status=status) + message=message, + status=status) @web.expose @web.require_admin @@ -35,8 +35,8 @@ class Admin(object): message = escape(kwd.get('message', '')) status = kwd.get('status', 'done') return trans.fill_template('/webapps/tool_shed/admin/center.mako', - message=message, - status=status) + message=message, + status=status) @web.expose @web.require_admin @@ -115,9 +115,9 @@ class Admin(object): if create_group_for_role_checked: message += 'One of the groups associated with this role is the newly created group with the same name.' trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=util.sanitize_text(message), - status='done')) + action='roles', + message=util.sanitize_text(message), + status='done')) if ok: for user in trans.sa_session.query(trans.app.model.User) \ .filter(trans.app.model.User.table.c.deleted == false()) \ @@ -128,15 +128,15 @@ class Admin(object): .order_by(trans.app.model.Group.table.c.name): out_groups.append((group.id, group.name)) return trans.fill_template('/webapps/tool_shed/admin/dataset_security/role/role_create.mako', - name=name, - description=description, - in_users=in_users, - out_users=out_users, - in_groups=in_groups, - out_groups=out_groups, - create_group_for_role_checked=create_group_for_role_checked, - message=message, - status=status) + name=name, + description=description, + in_users=in_users, + out_users=out_users, + in_groups=in_groups, + out_groups=out_groups, + create_group_for_role_checked=create_group_for_role_checked, + message=message, + status=status) @web.expose @web.require_admin @@ -148,9 +148,9 @@ class Admin(object): if not id: message = "No role ids received for renaming" trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=message, - status='error')) + action='roles', + message=message, + status='error')) role = get_role(trans, id) if params.get('rename_role_button', False): old_name = role.name @@ -172,13 +172,13 @@ class Admin(object): trans.sa_session.flush() message = "Role '%s' has been renamed to '%s'" % (old_name, new_name) return trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=util.sanitize_text(message), - status='done')) + action='roles', + message=util.sanitize_text(message), + status='done')) return trans.fill_template('/webapps/tool_shed/admin/dataset_security/role/role_rename.mako', - role=role, - message=message, - status=status) + role=role, + message=message, + status=status) @web.expose @web.require_admin @@ -190,9 +190,9 @@ class Admin(object): if not id: message = "No role ids received for managing users and groups" trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=message, - status='error')) + action='roles', + message=message, + status='error')) role = get_role(trans, id) if params.get('role_members_edit_button', False): in_users = [trans.sa_session.query(trans.app.model.User).get(x) for x in util.listify(params.in_users)] @@ -215,9 +215,9 @@ class Admin(object): trans.sa_session.refresh(role) message = "Role '%s' has been updated with %d associated users and %d associated groups" % (role.name, len(in_users), len(in_groups)) trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=util.sanitize_text(message), - status=status)) + action='roles', + message=util.sanitize_text(message), + status=status)) in_users = [] out_users = [] in_groups = [] @@ -267,14 +267,14 @@ class Admin(object): message = "Not showing associated datasets, there are too many." status = 'info' return trans.fill_template('/webapps/tool_shed/admin/dataset_security/role/role.mako', - role=role, - in_users=in_users, - out_users=out_users, - in_groups=in_groups, - out_groups=out_groups, - library_dataset_actions=library_dataset_actions, - message=message, - status=status) + role=role, + in_users=in_users, + out_users=out_users, + in_groups=in_groups, + out_groups=out_groups, + library_dataset_actions=library_dataset_actions, + message=message, + status=status) @web.expose @web.require_admin @@ -283,9 +283,9 @@ class Admin(object): if not id: message = "No role ids received for deleting" trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=message, - status='error')) + action='roles', + message=message, + status='error')) ids = util.listify(id) message = "Deleted %d roles: " % len(ids) for role_id in ids: @@ -295,9 +295,9 @@ class Admin(object): trans.sa_session.flush() message += " %s " % role.name trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=util.sanitize_text(message), - status='done')) + action='roles', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin @@ -306,9 +306,9 @@ class Admin(object): if not id: message = "No role ids received for undeleting" trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=message, - status='error')) + action='roles', + message=message, + status='error')) ids = util.listify(id) count = 0 undeleted_roles = "" @@ -317,9 +317,9 @@ class Admin(object): if not role.deleted: message = "Role '%s' has not been deleted, so it cannot be undeleted." % role.name trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=util.sanitize_text(message), - status='error')) + action='roles', + message=util.sanitize_text(message), + status='error')) role.deleted = False trans.sa_session.add(role) trans.sa_session.flush() @@ -327,9 +327,9 @@ class Admin(object): undeleted_roles += " %s" % role.name message = "Undeleted %d roles: %s" % (count, undeleted_roles) trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=util.sanitize_text(message), - status='done')) + action='roles', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin @@ -345,9 +345,9 @@ class Admin(object): if not id: message = "No role ids received for purging" trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=util.sanitize_text(message), - status='error')) + action='roles', + message=util.sanitize_text(message), + status='error')) ids = util.listify(id) message = "Purged %d roles: " % len(ids) for role_id in ids: @@ -355,9 +355,9 @@ class Admin(object): if not role.deleted: message = "Role '%s' has not been deleted, so it cannot be purged." % role.name trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=util.sanitize_text(message), - status='error')) + action='roles', + message=util.sanitize_text(message), + status='error')) # Delete UserRoleAssociations for ura in role.users: user = trans.sa_session.query(trans.app.model.User).get(ura.user_id) @@ -380,9 +380,9 @@ class Admin(object): trans.sa_session.flush() message += " %s " % role.name trans.response.send_redirect(web.url_for(controller='admin', - action='roles', - message=util.sanitize_text(message), - status='done')) + action='roles', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin @@ -416,9 +416,9 @@ class Admin(object): if not id: message = "No group ids received for renaming" trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=message, - status='error')) + action='groups', + message=message, + status='error')) group = get_group(trans, id) if params.get('rename_group_button', False): old_name = group.name @@ -438,13 +438,13 @@ class Admin(object): trans.sa_session.flush() message = "Group '%s' has been renamed to '%s'" % (old_name, new_name) return trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=util.sanitize_text(message), - status='done')) + action='groups', + message=util.sanitize_text(message), + status='done')) return trans.fill_template('/webapps/tool_shed/admin/dataset_security/group/group_rename.mako', - group=group, - message=message, - status=status) + group=group, + message=message, + status=status) @web.expose @web.require_admin @@ -460,9 +460,9 @@ class Admin(object): trans.sa_session.refresh(group) message += "Group '%s' has been updated with %d associated roles and %d associated users" % (group.name, len(in_roles), len(in_users)) trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=util.sanitize_text(message), - status=status)) + action='groups', + message=util.sanitize_text(message), + status=status)) in_roles = [] out_roles = [] in_users = [] @@ -483,13 +483,13 @@ class Admin(object): out_users.append((user.id, user.email)) message += 'Group %s is currently associated with %d roles and %d users' % (group.name, len(in_roles), len(in_users)) return trans.fill_template('/webapps/tool_shed/admin/dataset_security/group/group.mako', - group=group, - in_roles=in_roles, - out_roles=out_roles, - in_users=in_users, - out_users=out_users, - message=message, - status=status) + group=group, + in_roles=in_roles, + out_roles=out_roles, + in_users=in_users, + out_users=out_users, + message=message, + status=status) @web.expose @web.require_admin @@ -543,9 +543,9 @@ class Admin(object): if create_role_for_group_checked: message += 'One of the roles associated with this group is the newly created role with the same name.' trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=util.sanitize_text(message), - status='done')) + action='groups', + message=util.sanitize_text(message), + status='done')) if ok: for user in trans.sa_session.query(trans.app.model.User) \ .filter(trans.app.model.User.table.c.deleted == false()) \ @@ -556,14 +556,14 @@ class Admin(object): .order_by(trans.app.model.Role.table.c.name): out_roles.append((role.id, role.name)) return trans.fill_template('/webapps/tool_shed/admin/dataset_security/group/group_create.mako', - name=name, - in_users=in_users, - out_users=out_users, - in_roles=in_roles, - out_roles=out_roles, - create_role_for_group_checked=create_role_for_group_checked, - message=message, - status=status) + name=name, + in_users=in_users, + out_users=out_users, + in_roles=in_roles, + out_roles=out_roles, + create_role_for_group_checked=create_role_for_group_checked, + message=message, + status=status) @web.expose @web.require_admin @@ -573,9 +573,9 @@ class Admin(object): if not id: message = "No group ids received for marking deleted" trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=message, - status='error')) + action='groups', + message=message, + status='error')) ids = util.listify(id) message = "Deleted %d groups: " % len(ids) for group_id in ids: @@ -585,9 +585,9 @@ class Admin(object): trans.sa_session.flush() message += " %s " % group.name trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=util.sanitize_text(message), - status='done')) + action='groups', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin @@ -596,9 +596,9 @@ class Admin(object): if not id: message = "No group ids received for undeleting" trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=message, - status='error')) + action='groups', + message=message, + status='error')) ids = util.listify(id) count = 0 undeleted_groups = "" @@ -607,9 +607,9 @@ class Admin(object): if not group.deleted: message = "Group '%s' has not been deleted, so it cannot be undeleted." % group.name trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=util.sanitize_text(message), - status='error')) + action='groups', + message=util.sanitize_text(message), + status='error')) group.deleted = False trans.sa_session.add(group) trans.sa_session.flush() @@ -617,9 +617,9 @@ class Admin(object): undeleted_groups += " %s" % group.name message = "Undeleted %d groups: %s" % (count, undeleted_groups) trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=util.sanitize_text(message), - status='done')) + action='groups', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin @@ -630,9 +630,9 @@ class Admin(object): if not id: message = "No group ids received for purging" trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=util.sanitize_text(message), - status='error')) + action='groups', + message=util.sanitize_text(message), + status='error')) ids = util.listify(id) message = "Purged %d groups: " % len(ids) for group_id in ids: @@ -641,9 +641,9 @@ class Admin(object): # We should never reach here, but just in case there is a bug somewhere... message = "Group '%s' has not been deleted, so it cannot be purged." % group.name trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=util.sanitize_text(message), - status='error')) + action='groups', + message=util.sanitize_text(message), + status='error')) # Delete UserGroupAssociations for uga in group.users: trans.sa_session.delete(uga) @@ -653,16 +653,16 @@ class Admin(object): trans.sa_session.flush() message += " %s " % group.name trans.response.send_redirect(web.url_for(controller='admin', - action='groups', - message=util.sanitize_text(message), - status='done')) + action='groups', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin def create_new_user(self, trans, **kwd): return trans.response.send_redirect(web.url_for(controller='user', - action='create', - cntrller='admin')) + action='create', + cntrller='admin')) @web.expose @web.require_admin @@ -671,9 +671,9 @@ class Admin(object): if not user_id: message = "No users received for resetting passwords." trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=message, - status='error')) + action='users', + message=message, + status='error')) user_ids = util.listify(user_id) if 'reset_user_password_button' in kwd: message = '' @@ -698,17 +698,17 @@ class Admin(object): message = "Passwords reset for %d %s." % (len(user_ids), inflector.cond_plural(len(user_ids), 'user')) status = 'done' trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=util.sanitize_text(message), - status=status)) + action='users', + message=util.sanitize_text(message), + status=status)) users = [get_user(trans, user_id) for user_id in user_ids] if len(user_ids) > 1: user_id = ','.join(user_ids) return trans.fill_template('/webapps/tool_shed/admin/user/reset_password.mako', - id=user_id, - users=users, - password='', - confirm='') + id=user_id, + users=users, + password='', + confirm='') @web.expose @web.require_admin @@ -717,9 +717,9 @@ class Admin(object): if not id: message = "No user ids received for deleting" trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=message, - status='error')) + action='users', + message=message, + status='error')) ids = util.listify(id) message = "Deleted %d users: " % len(ids) for user_id in ids: @@ -729,9 +729,9 @@ class Admin(object): trans.sa_session.flush() message += " %s " % user.email trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=util.sanitize_text(message), - status='done')) + action='users', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin @@ -740,9 +740,9 @@ class Admin(object): if not id: message = "No user ids received for undeleting" trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=message, - status='error')) + action='users', + message=message, + status='error')) ids = util.listify(id) count = 0 undeleted_users = "" @@ -751,9 +751,9 @@ class Admin(object): if not user.deleted: message = "User '%s' has not been deleted, so it cannot be undeleted." % user.email trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=util.sanitize_text(message), - status='error')) + action='users', + message=util.sanitize_text(message), + status='error')) user.deleted = False trans.sa_session.add(user) trans.sa_session.flush() @@ -761,9 +761,9 @@ class Admin(object): undeleted_users += " %s" % user.email message = "Undeleted %d users: %s" % (count, undeleted_users) trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=util.sanitize_text(message), - status='done')) + action='users', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin @@ -784,9 +784,9 @@ class Admin(object): if not id: message = "No user ids received for purging" trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=util.sanitize_text(message), - status='error')) + action='users', + message=util.sanitize_text(message), + status='error')) ids = util.listify(id) message = "Purged %d users: " % len(ids) for user_id in ids: @@ -795,9 +795,9 @@ class Admin(object): # We should never reach here, but just in case there is a bug somewhere... message = "User '%s' has not been deleted, so it cannot be purged." % user.email trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=util.sanitize_text(message), - status='error')) + action='users', + message=util.sanitize_text(message), + status='error')) private_role = trans.app.security_agent.get_private_user_role(user) # Delete History for h in user.active_histories: @@ -829,9 +829,9 @@ class Admin(object): trans.sa_session.flush() message += "%s " % user.email trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=util.sanitize_text(message), - status='done')) + action='users', + message=util.sanitize_text(message), + status='done')) @web.expose @web.require_admin @@ -880,9 +880,9 @@ class Admin(object): if not user_id: message += "Invalid user id (%s) received" % str(user_id) trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=util.sanitize_text(message), - status='error')) + action='users', + message=util.sanitize_text(message), + status='error')) user = get_user(trans, user_id) private_role = trans.app.security_agent.get_private_user_role(user) if kwd.get('user_roles_groups_edit_button', False): @@ -908,15 +908,15 @@ class Admin(object): message += "User '%s' has been updated with %d associated roles and %d associated groups (private roles are not displayed)" % \ (user.email, len(in_roles), len(in_groups)) trans.response.send_redirect(web.url_for(controller='admin', - action='users', - message=util.sanitize_text(message), - status='done')) + action='users', + message=util.sanitize_text(message), + status='done')) in_roles = [] out_roles = [] in_groups = [] out_groups = [] for role in trans.sa_session.query(trans.app.model.Role).filter(trans.app.model.Role.table.c.deleted == false()) \ - .order_by(trans.app.model.Role.table.c.name): + .order_by(trans.app.model.Role.table.c.name): if role in [x.role for x in user.roles]: in_roles.append((role.id, role.name)) elif role.type != trans.app.model.Role.types.PRIVATE: @@ -926,7 +926,7 @@ class Admin(object): # precaution, since for a period of time we were including private roles in the form fields. out_roles.append((role.id, role.name)) for group in trans.sa_session.query(trans.app.model.Group).filter(trans.app.model.Group.table.c.deleted == false()) \ - .order_by(trans.app.model.Group.table.c.name): + .order_by(trans.app.model.Group.table.c.name): if group in [x.group for x in user.groups]: in_groups.append((group.id, group.name)) else: @@ -936,13 +936,13 @@ class Admin(object): if not status: status = 'done' return trans.fill_template('/webapps/tool_shed/admin/user/user.mako', - user=user, - in_roles=in_roles, - out_roles=out_roles, - in_groups=in_groups, - out_groups=out_groups, - message=message, - status=status) + user=user, + in_roles=in_roles, + out_roles=out_roles, + in_groups=in_groups, + out_groups=out_groups, + message=message, + status=status) # ---- Utility methods ------------------------------------------------------- diff --git a/lib/tool_shed/util/commit_util.py b/lib/tool_shed/util/commit_util.py index 8303318ba5b..5be6825d679 100644 --- a/lib/tool_shed/util/commit_util.py +++ b/lib/tool_shed/util/commit_util.py @@ -129,8 +129,8 @@ def get_upload_point(repository, **kwd): def handle_bz2(repository, uploaded_file_name): fd, uncompressed = tempfile.mkstemp(prefix='repo_%d_upload_bunzip2_' % repository.id, - dir=os.path.dirname(uploaded_file_name), - text=False) + dir=os.path.dirname(uploaded_file_name), + text=False) bzipped_file = bz2.BZ2File(uploaded_file_name, 'rb') while 1: try: @@ -149,7 +149,7 @@ def handle_bz2(repository, uploaded_file_name): def handle_directory_changes(app, host, username, repository, full_path, filenames_in_archive, remove_repo_files_not_in_tar, - new_repo_alert, commit_message, undesirable_dirs_removed, undesirable_files_removed): + new_repo_alert, commit_message, undesirable_dirs_removed, undesirable_files_removed): repo = hg_util.get_repo_for_repository(app, repository=repository, repo_path=None, create=False) content_alert_str = '' files_to_remove = [] @@ -213,24 +213,24 @@ def handle_directory_changes(app, host, username, repository, full_path, filenam if error: return False, message, files_to_remove, content_alert_str, undesirable_dirs_removed, undesirable_files_removed hg_util.commit_changeset(repo.ui, - repo, - full_path_to_changeset=full_path, - username=username, - message=commit_message) + repo, + full_path_to_changeset=full_path, + username=username, + message=commit_message) admin_only = len(repository.downloadable_revisions) != 1 suc.handle_email_alerts(app, - host, - repository, - content_alert_str=content_alert_str, - new_repo_alert=new_repo_alert, - admin_only=admin_only) + host, + repository, + content_alert_str=content_alert_str, + new_repo_alert=new_repo_alert, + admin_only=admin_only) return True, '', files_to_remove, content_alert_str, undesirable_dirs_removed, undesirable_files_removed def handle_gzip(repository, uploaded_file_name): fd, uncompressed = tempfile.mkstemp(prefix='repo_%d_upload_gunzip_' % repository.id, - dir=os.path.dirname(uploaded_file_name), - text=False) + dir=os.path.dirname(uploaded_file_name), + text=False) gzipped_file = gzip.GzipFile(uploaded_file_name, 'rb') while 1: try: diff --git a/lib/tool_shed/util/common_util.py b/lib/tool_shed/util/common_util.py index a53fc29676c..9063dd0247c 100644 --- a/lib/tool_shed/util/common_util.py +++ b/lib/tool_shed/util/common_util.py @@ -43,10 +43,10 @@ def check_for_missing_tools(app, tool_panel_configs, latest_tool_migration_scrip repository_name = elem.get('name') changeset_revision = elem.get('changeset_revision') tool_shed_accessible, repository_dependencies_dict = get_repository_dependencies(app, - tool_shed_url, - repository_name, - REPOSITORY_OWNER, - changeset_revision) + tool_shed_url, + repository_name, + REPOSITORY_OWNER, + changeset_revision) if tool_shed_accessible: # Accumulate all tool dependencies defined for repository dependencies for display to the user. for rd_key, rd_tups in repository_dependencies_dict.items(): @@ -56,16 +56,16 @@ def check_for_missing_tools(app, tool_panel_configs, latest_tool_migration_scrip tool_shed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = \ parse_repository_dependency_tuple(rd_tup) tool_shed_accessible, tool_dependencies = get_tool_dependencies(app, - tool_shed_url, - name, - owner, - changeset_revision) + tool_shed_url, + name, + owner, + changeset_revision) all_tool_dependencies = accumulate_tool_dependencies(tool_shed_accessible, tool_dependencies, all_tool_dependencies) tool_shed_accessible, tool_dependencies = get_tool_dependencies(app, - tool_shed_url, - repository_name, - REPOSITORY_OWNER, - changeset_revision) + tool_shed_url, + repository_name, + REPOSITORY_OWNER, + changeset_revision) all_tool_dependencies = accumulate_tool_dependencies(tool_shed_accessible, tool_dependencies, all_tool_dependencies) for tool_elem in elem.findall('tool'): tool_config_file_name = tool_elem.get('file') @@ -74,7 +74,7 @@ def check_for_missing_tools(app, tool_panel_configs, latest_tool_migration_scrip # installed to the user). However, we'll store them in the following dictionary in case we choose to display them in the # future. dependencies_dict = dict(tool_dependencies=all_tool_dependencies, - repository_dependencies=repository_dependencies) + repository_dependencies=repository_dependencies) migrated_tool_configs_dict[tool_config_file_name] = dependencies_dict else: break diff --git a/lib/tool_shed/util/container_util.py b/lib/tool_shed/util/container_util.py index ef282dbeaef..ce84adbe46b 100644 --- a/lib/tool_shed/util/container_util.py +++ b/lib/tool_shed/util/container_util.py @@ -11,8 +11,8 @@ STRSEP = '__ESEP__' def generate_repository_dependencies_key_for_repository(toolshed_base_url, repository_name, repository_owner, - changeset_revision, prior_installation_required, - only_if_compiling_contained_td): + changeset_revision, prior_installation_required, + only_if_compiling_contained_td): """ Assumes tool shed is current tool shed since repository dependencies across tool sheds is not yet supported. @@ -22,16 +22,16 @@ def generate_repository_dependencies_key_for_repository(toolshed_base_url, repos # the port if there is one. tool_shed = common_util.remove_protocol_from_tool_shed_url(toolshed_base_url) return '%s%s%s%s%s%s%s%s%s%s%s' % (tool_shed, - STRSEP, - str(repository_name), - STRSEP, - str(repository_owner), - STRSEP, - str(changeset_revision), - STRSEP, - str(prior_installation_required), - STRSEP, - str(only_if_compiling_contained_td)) + STRSEP, + str(repository_name), + STRSEP, + str(repository_owner), + STRSEP, + str(changeset_revision), + STRSEP, + str(prior_installation_required), + STRSEP, + str(only_if_compiling_contained_td)) def get_components_from_key(key): diff --git a/lib/tool_shed/util/hg_util.py b/lib/tool_shed/util/hg_util.py index b8e94e982e6..a50e96ac132 100644 --- a/lib/tool_shed/util/hg_util.py +++ b/lib/tool_shed/util/hg_util.py @@ -56,11 +56,11 @@ def clone_repository(repository_clone_url, repository_file_dir, ctx_rev): """ try: commands.clone(get_configured_ui(), - str(repository_clone_url), - dest=str(repository_file_dir), - pull=True, - noupdate=False, - rev=listify(str(ctx_rev))) + str(repository_clone_url), + dest=str(repository_file_dir), + pull=True, + noupdate=False, + rev=listify(str(ctx_rev))) return True, None except Exception as e: error_message = 'Error cloning repository: %s' % str(e) @@ -280,7 +280,7 @@ def get_revision_label(app, repository, changeset_revision, include_date=True, i def get_rev_label_changeset_revision_from_repository_metadata(app, repository_metadata, repository=None, - include_date=True, include_hash=True): + include_date=True, include_hash=True): if repository is None: repository = repository_metadata.repository repo = hg.repository(get_configured_ui(), repository.repo_path(app)) @@ -396,10 +396,10 @@ def unpack_chunks(hg_unbundle10_obj): raise Exception("negative data length") node, p1, p2, cs = struct.unpack('20s20s20s20s', readexactly(hg_unbundle10_obj, 80)) yield {'node': node.encode('hex'), - 'p1': p1.encode('hex'), - 'p2': p2.encode('hex'), - 'cs': cs.encode('hex'), - 'data': [patch for patch in unpack_patches(hg_unbundle10_obj, length - 84)]} + 'p1': p1.encode('hex'), + 'p2': p2.encode('hex'), + 'cs': cs.encode('hex'), + 'data': [patch for patch in unpack_patches(hg_unbundle10_obj, length - 84)]} def unpack_groups(hg_unbundle10_obj): @@ -435,9 +435,9 @@ def unpack_patches(hg_unbundle10_obj, remaining): block = readexactly(hg_unbundle10_obj, blocklen) remaining -= blocklen yield {'start': start, - 'end': end, - 'blocklen': blocklen, - 'block': block.encode('string_escape')} + 'end': end, + 'blocklen': blocklen, + 'block': block.encode('string_escape')} if remaining > 0: log.error("Unexpected end of patch stream, %s remaining", remaining) raise Exception("unexpected end of patch stream") diff --git a/lib/tool_shed/util/metadata_util.py b/lib/tool_shed/util/metadata_util.py index 090c467c358..d0fe30bdbe0 100644 --- a/lib/tool_shed/util/metadata_util.py +++ b/lib/tool_shed/util/metadata_util.py @@ -44,20 +44,20 @@ def get_all_dependencies(app, metadata_entry, processed_dependency_links=[]): def get_current_repository_metadata_for_changeset_revision(app, repository, changeset_revision): encoded_repository_id = app.security.encode_id(repository.id) repository_metadata = get_repository_metadata_by_changeset_revision(app, - encoded_repository_id, - changeset_revision) + encoded_repository_id, + changeset_revision) if repository_metadata: return repository_metadata # The installable changeset_revision may have been changed because it was "moved ahead" # in the repository changelog. repo = hg_util.get_repo_for_repository(app, repository=repository, repo_path=None, create=False) updated_changeset_revision = get_next_downloadable_changeset_revision(repository, - repo, - after_changeset_revision=changeset_revision) + repo, + after_changeset_revision=changeset_revision) if updated_changeset_revision and updated_changeset_revision != changeset_revision: repository_metadata = get_repository_metadata_by_changeset_revision(app, - encoded_repository_id, - updated_changeset_revision) + encoded_repository_id, + updated_changeset_revision) if repository_metadata: return repository_metadata return None @@ -79,8 +79,8 @@ def get_dependencies_for_metadata_revision(app, metadata): def get_latest_changeset_revision(app, repository, repo): repository_tip = repository.tip(app) repository_metadata = get_repository_metadata_by_changeset_revision(app, - app.security.encode_id(repository.id), - repository_tip) + app.security.encode_id(repository.id), + repository_tip) if repository_metadata and repository_metadata.downloadable: return repository_tip changeset_revisions = [revision[1] for revision in get_metadata_revisions(repository, repo)] @@ -112,8 +112,8 @@ def get_latest_repository_metadata(app, decoded_repository_id, downloadable=Fals else: changeset_revision = get_latest_changeset_revision(app, repository, repo) return get_repository_metadata_by_changeset_revision(app, - app.security.encode_id(repository.id), - changeset_revision) + app.security.encode_id(repository.id), + changeset_revision) def get_metadata_by_id(app, metadata_id): @@ -249,7 +249,7 @@ def get_repository_metadata_by_changeset_revision(app, id, changeset_revision): sa_session = app.model.context.current all_metadata_records = sa_session.query(app.model.RepositoryMetadata) \ .filter(and_(app.model.RepositoryMetadata.table.c.repository_id == app.security.decode_id(id), - app.model.RepositoryMetadata.table.c.changeset_revision == changeset_revision)) \ + app.model.RepositoryMetadata.table.c.changeset_revision == changeset_revision)) \ .order_by(app.model.RepositoryMetadata.table.c.update_time.desc()) \ .all() if len(all_metadata_records) > 1: diff --git a/lib/tool_shed/util/readme_util.py b/lib/tool_shed/util/readme_util.py index 5f24f5c763f..d989b373c1a 100644 --- a/lib/tool_shed/util/readme_util.py +++ b/lib/tool_shed/util/readme_util.py @@ -55,20 +55,20 @@ def build_readme_files_dict(app, repository, changeset_revision, metadata, tool_ lock.acquire(True) try: text_of_reasonable_length = suc.set_image_paths(app, - app.security.encode_id(repository.id), - text_of_reasonable_length) + app.security.encode_id(repository.id), + text_of_reasonable_length) except Exception as e: log.exception("Exception in build_readme_files_dict, so images may not be properly displayed") finally: lock.release() if readme_file_name.endswith('.rst'): text_of_reasonable_length = Template(rst_to_html(text_of_reasonable_length), - input_encoding='utf-8', - output_encoding='utf-8', - default_filters=['decode.utf8'], - encoding_errors='replace') + input_encoding='utf-8', + output_encoding='utf-8', + default_filters=['decode.utf8'], + encoding_errors='replace') text_of_reasonable_length = text_of_reasonable_length.render(static_path=web.url_for('/static'), - host_url=web.url_for('/', qualified=True)) + host_url=web.url_for('/', qualified=True)) text_of_reasonable_length = unicodify(text_of_reasonable_length) else: text_of_reasonable_length = basic_util.to_html_string(text_of_reasonable_length) @@ -84,7 +84,7 @@ def build_readme_files_dict(app, repository, changeset_revision, metadata, tool_ readme_files_dict[readme_file_name] = basic_util.size_string(text) except Exception as e: log.exception("Error reading README file '%s' from repository manifest: %s" % - (str(relative_path_to_readme_file), str(e))) + (str(relative_path_to_readme_file), str(e))) return readme_files_dict diff --git a/lib/tool_shed/util/repository_content_util.py b/lib/tool_shed/util/repository_content_util.py index 6eb2829b8d3..d0ff84e5704 100644 --- a/lib/tool_shed/util/repository_content_util.py +++ b/lib/tool_shed/util/repository_content_util.py @@ -6,7 +6,7 @@ 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, - commit_message, new_repo_alert): + commit_message, new_repo_alert): # Upload a tar archive of files. repo_dir = repository.repo_path(trans.app) hg_util.get_repo_for_repository(trans.app, repository=None, repo_path=repo_dir, create=False) @@ -52,13 +52,13 @@ def upload_tar(trans, rdah, tdah, repository, tar, uploaded_file, upload_point, tmp_filename = xml_util.create_and_write_tmp_file(root_elem) shutil.move(tmp_filename, uploaded_file_name) return commit_util.handle_directory_changes(trans.app, - trans.request.host, - trans.user.username, - repository, - full_path, - filenames_in_archive, - remove_repo_files_not_in_tar, - new_repo_alert, - commit_message, - undesirable_dirs_removed, - undesirable_files_removed) + trans.request.host, + trans.user.username, + repository, + full_path, + filenames_in_archive, + remove_repo_files_not_in_tar, + new_repo_alert, + commit_message, + undesirable_dirs_removed, + undesirable_files_removed) diff --git a/lib/tool_shed/util/repository_util.py b/lib/tool_shed/util/repository_util.py index 098749e83f9..9e3c870d3fc 100644 --- a/lib/tool_shed/util/repository_util.py +++ b/lib/tool_shed/util/repository_util.py @@ -26,12 +26,12 @@ def build_allow_push_select_field(trans, current_push_list, selected_value='none if user.username not in current_push_list: options.append(user) return build_select_field(trans, - objs=options, - label_attr='username', - select_field_name='allow_push', - selected_value=selected_value, - refresh_on_change=False, - multiple=True) + objs=options, + label_attr='username', + select_field_name='allow_push', + selected_value=selected_value, + refresh_on_change=False, + multiple=True) def change_repository_name_in_hgrc_file(hgrc_file, new_name): @@ -97,7 +97,7 @@ def check_or_update_tool_shed_status_for_installed_repository(app, repository): def create_or_update_tool_shed_repository(app, name, description, installed_changeset_revision, ctx_rev, repository_clone_url, - metadata_dict, status, current_changeset_revision=None, owner='', dist_to_shed=False): + metadata_dict, status, current_changeset_revision=None, owner='', dist_to_shed=False): """ Update a tool shed repository record in the Galaxy database with the new information received. If a record defined by the received tool shed, repository name and owner does not exist, create @@ -130,7 +130,7 @@ def create_or_update_tool_shed_repository(app, name, description, installed_chan get_installed_repository(app, tool_shed=tool_shed, name=name, owner=owner, installed_changeset_revision=installed_changeset_revision, refresh=True) if tool_shed_repository: log.debug("Updating an existing row for repository '%s' in the tool_shed_repository table, status set to '%s'." % - (str(name), str(status))) + (str(name), str(status))) tool_shed_repository.description = description tool_shed_repository.changeset_revision = current_changeset_revision tool_shed_repository.ctx_rev = ctx_rev @@ -141,28 +141,28 @@ def create_or_update_tool_shed_repository(app, name, description, installed_chan tool_shed_repository.status = status else: log.debug("Adding new row for repository '%s' in the tool_shed_repository table, status set to '%s'." % - (str(name), str(status))) + (str(name), str(status))) tool_shed_repository = \ app.install_model.ToolShedRepository(tool_shed=tool_shed, - name=name, - description=description, - owner=owner, - installed_changeset_revision=installed_changeset_revision, - changeset_revision=current_changeset_revision, - ctx_rev=ctx_rev, - metadata=metadata_dict, - includes_datatypes=includes_datatypes, - dist_to_shed=dist_to_shed, - deleted=deleted, - uninstalled=uninstalled, - status=status) + name=name, + description=description, + owner=owner, + installed_changeset_revision=installed_changeset_revision, + changeset_revision=current_changeset_revision, + ctx_rev=ctx_rev, + metadata=metadata_dict, + includes_datatypes=includes_datatypes, + dist_to_shed=dist_to_shed, + deleted=deleted, + uninstalled=uninstalled, + status=status) context.add(tool_shed_repository) context.flush() return tool_shed_repository def create_repo_info_dict(app, repository_clone_url, changeset_revision, ctx_rev, repository_owner, repository_name=None, - repository=None, repository_metadata=None, tool_dependencies=None, repository_dependencies=None): + repository=None, repository_metadata=None, tool_dependencies=None, repository_dependencies=None): """ Return a dictionary that includes all of the information needed to install a repository into a local Galaxy instance. The dictionary will also contain the recursive list of repository dependencies defined @@ -219,12 +219,12 @@ def create_repo_info_dict(app, repository_clone_url, changeset_revision, ctx_rev tool_dependencies = new_tool_dependencies # Cast unicode to string, with the exception of description, since it is free text and can contain special characters. repo_info_dict[str(repository.name)] = (repository.description, - str(repository_clone_url), - str(changeset_revision), - str(ctx_rev), - str(repository_owner), - repository_dependencies, - tool_dependencies) + str(repository_clone_url), + str(changeset_revision), + str(ctx_rev), + str(repository_owner), + repository_dependencies, + tool_dependencies) return repo_info_dict @@ -253,12 +253,12 @@ def create_repository(app, name, type, description, long_description, user_id, c sa_session = app.model.context.current # Add the repository record to the database. repository = app.model.Repository(name=name, - type=type, - remote_repository_url=remote_repository_url, - homepage_url=homepage_url, - description=description, - long_description=long_description, - user_id=user_id) + type=type, + remote_repository_url=remote_repository_url, + homepage_url=homepage_url, + description=description, + long_description=long_description, + user_id=user_id) # Flush to get the id. sa_session.add(repository) sa_session.flush() @@ -361,10 +361,10 @@ def get_ids_of_tool_shed_repositories_being_installed(app, as_string=False): for tool_shed_repository in \ app.install_model.context.query(app.install_model.ToolShedRepository) \ .filter(or_(app.install_model.ToolShedRepository.status == new_status, - app.install_model.ToolShedRepository.status == cloning_status, - app.install_model.ToolShedRepository.status == setting_tool_versions_status, - app.install_model.ToolShedRepository.status == installing_dependencies_status, - app.install_model.ToolShedRepository.status == loading_datatypes_status)): + app.install_model.ToolShedRepository.status == cloning_status, + app.install_model.ToolShedRepository.status == setting_tool_versions_status, + app.install_model.ToolShedRepository.status == installing_dependencies_status, + app.install_model.ToolShedRepository.status == loading_datatypes_status)): installing_repository_ids.append(app.security.encode_id(tool_shed_repository.id)) if as_string: return ','.join(installing_repository_ids) @@ -448,8 +448,8 @@ def get_repo_info_dict(app, user, repository_id, changeset_revision): repo = hg_util.get_repo_for_repository(app, repository=repository, repo_path=None, create=False) repository_clone_url = common_util.generate_clone_url_for_repository_in_tool_shed(user, repository) repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(app, - repository_id, - changeset_revision) + repository_id, + changeset_revision) if not repository_metadata: # The received changeset_revision is no longer installable, so get the next changeset_revision # in the repository's changelog. This generally occurs only with repositories of type @@ -458,8 +458,8 @@ def get_repo_info_dict(app, user, repository_id, changeset_revision): metadata_util.get_next_downloadable_changeset_revision(repository, repo, changeset_revision) if next_downloadable_changeset_revision and next_downloadable_changeset_revision != changeset_revision: repository_metadata = metadata_util.get_repository_metadata_by_changeset_revision(app, - repository_id, - next_downloadable_changeset_revision) + repository_id, + next_downloadable_changeset_revision) if repository_metadata: # For now, we'll always assume that we'll get repository_metadata, but if we discover our assumption # is not valid we'll have to enhance the callers to handle repository_metadata values of None in the @@ -487,15 +487,15 @@ def get_repo_info_dict(app, user, repository_id, changeset_revision): includes_tools_for_display_in_tool_panel = False ctx = hg_util.get_changectx_for_changeset(repo, changeset_revision) repo_info_dict = create_repo_info_dict(app=app, - repository_clone_url=repository_clone_url, - changeset_revision=changeset_revision, - ctx_rev=str(ctx.rev()), - repository_owner=repository.user.username, - repository_name=repository.name, - repository=repository, - repository_metadata=repository_metadata, - tool_dependencies=None, - repository_dependencies=None) + repository_clone_url=repository_clone_url, + changeset_revision=changeset_revision, + ctx_rev=str(ctx.rev()), + repository_owner=repository.user.username, + repository_name=repository.name, + repository=repository, + repository_metadata=repository_metadata, + tool_dependencies=None, + repository_dependencies=None) return repo_info_dict, includes_tools, includes_tool_dependencies, includes_tools_for_display_in_tool_panel, \ has_repository_dependencies, has_repository_dependencies_only_if_compiling_contained_td @@ -565,14 +565,14 @@ def get_repository_by_name_and_owner(app, name, owner): if is_tool_shed_client(app): return repository_query \ .filter(and_(app.install_model.ToolShedRepository.table.c.name == name, - app.install_model.ToolShedRepository.table.c.owner == owner)) \ + app.install_model.ToolShedRepository.table.c.owner == owner)) \ .first() # We're in the tool shed. user = common_util.get_user_by_username(app, owner) if user: return repository_query \ .filter(and_(app.model.Repository.table.c.name == name, - app.model.Repository.table.c.user_id == user.id)) \ + app.model.Repository.table.c.user_id == user.id)) \ .first() return None @@ -623,16 +623,16 @@ def get_repository_for_dependency_relationship(app, tool_shed, name, owner, chan raise Exception(message) app.tool_shed_repository_cache.rebuild() repository = get_installed_repository(app=app, - tool_shed=tool_shed, - name=name, - owner=owner, - installed_changeset_revision=changeset_revision) + tool_shed=tool_shed, + name=name, + owner=owner, + installed_changeset_revision=changeset_revision) if not repository: repository = get_installed_repository(app=app, - tool_shed=tool_shed, - name=name, - owner=owner, - changeset_revision=changeset_revision) + tool_shed=tool_shed, + name=name, + owner=owner, + changeset_revision=changeset_revision) if not repository: tool_shed_url = common_util.get_tool_shed_url_from_tool_shed_registry(app, tool_shed) repository_clone_url = os.path.join(tool_shed_url, 'repos', owner, name) @@ -647,10 +647,10 @@ def get_repository_for_dependency_relationship(app, tool_shed, name, owner, chan text = util.url_get(tool_shed_url, password_mgr=app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) if text: repository = get_installed_repository(app=app, - tool_shed=tool_shed, - name=name, - owner=owner, - changeset_revision=text) + tool_shed=tool_shed, + name=name, + owner=owner, + changeset_revision=text) return repository @@ -693,10 +693,10 @@ def get_repository_ids_requiring_prior_import_or_install(app, tsr_ids, repositor # We store the port, if one exists, in the database. tool_shed = common_util.remove_protocol_from_tool_shed_url(tool_shed) repository = get_repository_for_dependency_relationship(app, - tool_shed, - name, - owner, - changeset_revision) + tool_shed, + name, + owner, + changeset_revision) else: repository = get_repository_by_name_and_owner(app, name, owner) if repository: @@ -759,20 +759,20 @@ def get_tool_shed_repository_status_label(app, tool_shed_repository=None, name=N if name is not None and owner is not None and repository_clone_url is not None: tool_shed = get_tool_shed_from_clone_url(repository_clone_url) tool_shed_repository = get_installed_repository(app, - tool_shed=tool_shed, - name=name, - owner=owner, - installed_changeset_revision=changeset_revision) + tool_shed=tool_shed, + name=name, + owner=owner, + installed_changeset_revision=changeset_revision) if tool_shed_repository: status_label = tool_shed_repository.status if tool_shed_repository.status in [app.install_model.ToolShedRepository.installation_status.CLONING, - app.install_model.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS, - app.install_model.ToolShedRepository.installation_status.INSTALLING_REPOSITORY_DEPENDENCIES, - app.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES, - app.install_model.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES]: + app.install_model.ToolShedRepository.installation_status.SETTING_TOOL_VERSIONS, + app.install_model.ToolShedRepository.installation_status.INSTALLING_REPOSITORY_DEPENDENCIES, + app.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES, + app.install_model.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES]: bgcolor = app.install_model.ToolShedRepository.states.INSTALLING elif tool_shed_repository.status in [app.install_model.ToolShedRepository.installation_status.NEW, - app.install_model.ToolShedRepository.installation_status.UNINSTALLED]: + app.install_model.ToolShedRepository.installation_status.UNINSTALLED]: bgcolor = app.install_model.ToolShedRepository.states.UNINSTALLED elif tool_shed_repository.status in [app.install_model.ToolShedRepository.installation_status.ERROR]: bgcolor = app.install_model.ToolShedRepository.states.ERROR @@ -782,14 +782,14 @@ def get_tool_shed_repository_status_label(app, tool_shed_repository=None, name=N if tool_shed_repository.repository_dependencies_being_installed: bgcolor = app.install_model.ToolShedRepository.states.WARNING status_label = '%s, %s' % (status_label, - app.install_model.ToolShedRepository.installation_status.INSTALLING_REPOSITORY_DEPENDENCIES) + app.install_model.ToolShedRepository.installation_status.INSTALLING_REPOSITORY_DEPENDENCIES) elif tool_shed_repository.missing_repository_dependencies: bgcolor = app.install_model.ToolShedRepository.states.WARNING status_label = '%s, missing repository dependencies' % status_label elif tool_shed_repository.tool_dependencies_being_installed: bgcolor = app.install_model.ToolShedRepository.states.WARNING status_label = '%s, %s' % (status_label, - app.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES) + app.install_model.ToolShedRepository.installation_status.INSTALLING_TOOL_DEPENDENCIES) elif tool_shed_repository.missing_tool_dependencies: bgcolor = app.install_model.ToolShedRepository.states.WARNING status_label = '%s, missing tool dependencies' % status_label @@ -821,7 +821,7 @@ def get_tool_shed_status_for_installed_repository(app, repository): # This should handle backward compatility to the Galaxy 12/20/12 release. We used to only handle updates for an installed revision # using a boolean value. log.debug("Error attempting to get tool shed status for installed repository %s: %s\nAttempting older 'check_for_updates' method.\n" % - (str(repository.name), str(e))) + (str(repository.name), str(e))) pathspec = ['repository', 'check_for_updates'] params['from_update_manager'] = True try: @@ -858,9 +858,9 @@ def handle_role_associations(app, role, repository, **kwd): in_groups = [sa_session.query(app.model.Group).get(x) for x in in_groups_list] in_repositories = [repository] app.security_agent.set_entity_role_associations(roles=[role], - users=in_users, - groups=in_groups, - repositories=in_repositories) + users=in_users, + groups=in_groups, + repositories=in_repositories) sa_session.refresh(role) message += "Role %s has been associated with %d users, %d groups and %d repositories. " % \ (escape(str(role.name)), len(in_users), len(in_groups), len(in_repositories)) @@ -883,11 +883,11 @@ def handle_role_associations(app, role, repository, **kwd): else: out_groups.append((group.id, group.name)) associations_dict = dict(in_users=in_users, - out_users=out_users, - in_groups=in_groups, - out_groups=out_groups, - message=message, - status=status) + out_users=out_users, + in_groups=in_groups, + out_groups=out_groups, + message=message, + status=status) return associations_dict @@ -916,29 +916,29 @@ def repository_was_previously_installed(app, tool_shed_url, repository_name, rep tool_shed = get_tool_shed_from_clone_url(repository_clone_url) # See if we can locate the repository using the value of changeset_revision. tool_shed_repository = get_installed_repository(app, - tool_shed=tool_shed, - name=repository_name, - owner=repository_owner, - installed_changeset_revision=changeset_revision) + tool_shed=tool_shed, + name=repository_name, + owner=repository_owner, + installed_changeset_revision=changeset_revision) if tool_shed_repository: return tool_shed_repository, changeset_revision # Get all previous changeset revisions from the tool shed for the repository back to, but excluding, # the previous valid changeset revision to see if it was previously installed using one of them. params = dict(galaxy_url=web.url_for('/', qualified=True), - name=repository_name, - owner=repository_owner, - changeset_revision=changeset_revision, - from_tip=str(from_tip)) + name=repository_name, + owner=repository_owner, + changeset_revision=changeset_revision, + from_tip=str(from_tip)) pathspec = ['repository', 'previous_changeset_revisions'] text = util.url_get(tool_shed_url, password_mgr=app.tool_shed_registry.url_auth(tool_shed_url), pathspec=pathspec, params=params) if text: changeset_revisions = util.listify(text) for previous_changeset_revision in changeset_revisions: tool_shed_repository = get_installed_repository(app, - tool_shed=tool_shed, - name=repository_name, - owner=repository_owner, - installed_changeset_revision=previous_changeset_revision) + tool_shed=tool_shed, + name=repository_name, + owner=repository_owner, + installed_changeset_revision=previous_changeset_revision) if tool_shed_repository: return tool_shed_repository, previous_changeset_revision return None, None diff --git a/lib/tool_shed/util/review_util.py b/lib/tool_shed/util/review_util.py index 78526cb90ac..e132d6b828c 100644 --- a/lib/tool_shed/util/review_util.py +++ b/lib/tool_shed/util/review_util.py @@ -17,8 +17,8 @@ def can_browse_repository_reviews(app, user, repository): for review in repository.reviews: for component_review in review.component_reviews: if app.security_agent.user_can_browse_component_review(app, - repository, - component_review, user): + repository, + component_review, user): return True return False @@ -56,7 +56,7 @@ def get_component_review_by_repository_review_id_component_id(app, repository_re sa_session = app.model.context.current return sa_session.query(app.model.ComponentReview) \ .filter(and_(app.model.ComponentReview.table.c.repository_review_id == app.security.decode_id(repository_review_id), - app.model.ComponentReview.table.c.component_id == app.security.decode_id(component_id))) \ + app.model.ComponentReview.table.c.component_id == app.security.decode_id(component_id))) \ .first() @@ -81,11 +81,11 @@ def get_previous_repository_reviews(app, repository, changeset_revision): previous_rev, previous_changeset_revision_label = \ hg_util.get_rev_label_from_changeset_revision(repo, previous_changeset_revision) revision_reviews = get_reviews_by_repository_id_changeset_revision(app, - app.security.encode_id(repository.id), - previous_changeset_revision) + app.security.encode_id(repository.id), + previous_changeset_revision) previous_reviews_dict[previous_changeset_revision] = \ dict(changeset_revision_label=previous_changeset_revision_label, - reviews=revision_reviews) + reviews=revision_reviews) return previous_reviews_dict @@ -103,8 +103,8 @@ def get_review_by_repository_id_changeset_revision_user_id(app, repository_id, c sa_session = app.model.context.current return sa_session.query(app.model.RepositoryReview) \ .filter(and_(app.model.RepositoryReview.repository_id == app.security.decode_id(repository_id), - app.model.RepositoryReview.changeset_revision == changeset_revision, - app.model.RepositoryReview.user_id == app.security.decode_id(user_id))) \ + app.model.RepositoryReview.changeset_revision == changeset_revision, + app.model.RepositoryReview.user_id == app.security.decode_id(user_id))) \ .first() @@ -113,7 +113,7 @@ def get_reviews_by_repository_id_changeset_revision(app, repository_id, changese sa_session = app.model.context.current return sa_session.query(app.model.RepositoryReview) \ .filter(and_(app.model.RepositoryReview.repository_id == app.security.decode_id(repository_id), - app.model.RepositoryReview.changeset_revision == changeset_revision)) \ + app.model.RepositoryReview.changeset_revision == changeset_revision)) \ .all() diff --git a/lib/tool_shed/util/search_util.py b/lib/tool_shed/util/search_util.py index f64840ecbc0..94566e8a91d 100644 --- a/lib/tool_shed/util/search_util.py +++ b/lib/tool_shed/util/search_util.py @@ -39,12 +39,12 @@ def in_tool_dict(tool_dict, exact_matches_checked, tool_id=None, tool_name=None, tool_dict_tool_name = tool_dict['name'].lower() tool_dict_tool_id = tool_dict['id'].lower() found = (tool_version == tool_dict_tool_version and - tool_name == tool_dict_tool_name and - tool_id == tool_dict_tool_id) or \ + tool_name == tool_dict_tool_name and + tool_id == tool_dict_tool_id) or \ (not exact_matches_checked and - tool_dict_tool_version.find(tool_version) >= 0 and - tool_dict_tool_name.find(tool_name) >= 0 and - tool_dict_tool_id.find(tool_id) >= 0) + tool_dict_tool_version.find(tool_version) >= 0 and + tool_dict_tool_name.find(tool_name) >= 0 and + tool_dict_tool_id.find(tool_id) >= 0) return found @@ -90,7 +90,7 @@ def search_names_versions(tool_dict, exact_matches_checked, match_tuples, reposi def search_repository_metadata(app, exact_matches_checked, tool_ids='', tool_names='', tool_versions='', - workflow_names='', all_workflows=False): + workflow_names='', all_workflows=False): sa_session = app.model.context.current match_tuples = [] ok = True @@ -99,7 +99,7 @@ def search_repository_metadata(app, exact_matches_checked, tool_ids='', tool_nam .filter(app.model.RepositoryMetadata.table.c.includes_tools == true()) \ .join(app.model.Repository) \ .filter(and_(app.model.Repository.table.c.deleted == false(), - app.model.Repository.table.c.deprecated == false())): + app.model.Repository.table.c.deprecated == false())): metadata = repository_metadata.metadata if metadata: tools = metadata.get('tools', []) @@ -154,7 +154,7 @@ def search_repository_metadata(app, exact_matches_checked, tool_ids='', tool_nam .filter(app.model.RepositoryMetadata.table.c.includes_workflows == true()) \ .join(app.model.Repository) \ .filter(and_(app.model.Repository.table.c.deleted == false(), - app.model.Repository.table.c.deprecated == false())): + app.model.Repository.table.c.deprecated == false())): metadata = repository_metadata.metadata if metadata: # metadata[ 'workflows' ] is a list of tuples where each contained tuple is diff --git a/lib/tool_shed/util/shed_util_common.py b/lib/tool_shed/util/shed_util_common.py index 93589b2d26a..92658ba7963 100644 --- a/lib/tool_shed/util/shed_util_common.py +++ b/lib/tool_shed/util/shed_util_common.py @@ -324,10 +324,10 @@ def get_repository_file_contents(app, file_path, repository_id, is_admin=False): "

    ...some text eliminated here because file size is larger than maximum viewing size of %s...

    " % \ util.nice_size(basic_util.MAX_DISPLAY_SIZE) safe_str = util.shrink_string_by_size(safe_str, - basic_util.MAX_DISPLAY_SIZE, - join_by=join_by_str, - left_larger=True, - beginning_on_size_error=True) + basic_util.MAX_DISPLAY_SIZE, + join_by=join_by_str, + left_larger=True, + beginning_on_size_error=True) return safe_str @@ -395,9 +395,9 @@ def get_tool_panel_config_tool_path_install_dir(app, repository): """ tool_shed = common_util.remove_port_from_tool_shed_url(str(repository.tool_shed)) relative_install_dir = '%s/repos/%s/%s/%s' % (tool_shed, - str(repository.owner), - str(repository.name), - str(repository.installed_changeset_revision)) + str(repository.owner), + str(repository.name), + str(repository.installed_changeset_revision)) # Get the relative tool installation paths from each of the shed tool configs. shed_config_dict = repository.get_shed_config_dict(app) if not shed_config_dict: @@ -482,21 +482,21 @@ def handle_email_alerts(app, host, repository, content_alert_str='', new_repo_al template = email_alert_template display_date = hg_util.get_readable_ctx_date(ctx) admin_body = string.Template(template).safe_substitute(host=host, - sharable_link=sharable_link, - repository_name=repository.name, - revision='%s:%s' % (str(ctx.rev()), ctx), - display_date=display_date, - description=ctx.description(), - username=username, - content_alert_str=content_alert_str) + sharable_link=sharable_link, + repository_name=repository.name, + revision='%s:%s' % (str(ctx.rev()), ctx), + display_date=display_date, + description=ctx.description(), + username=username, + content_alert_str=content_alert_str) body = string.Template(template).safe_substitute(host=host, - sharable_link=sharable_link, - repository_name=repository.name, - revision='%s:%s' % (str(ctx.rev()), ctx), - display_date=display_date, - description=ctx.description(), - username=username, - content_alert_str='') + sharable_link=sharable_link, + repository_name=repository.name, + revision='%s:%s' % (str(ctx.rev()), ctx), + display_date=display_date, + description=ctx.description(), + username=username, + content_alert_str='') admin_users = app.config.get("admin_users", "").split(",") frm = email_from if new_repo_alert: @@ -505,7 +505,7 @@ def handle_email_alerts(app, host, repository, content_alert_str='', new_repo_al email_alerts = [] for user in sa_session.query(app.model.User) \ .filter(and_(app.model.User.table.c.deleted == false(), - app.model.User.table.c.new_repo_alert == true())): + app.model.User.table.c.new_repo_alert == true())): if admin_only: if user.email in admin_users: email_alerts.append(user.email) @@ -594,10 +594,10 @@ def open_repository_files_folder(app, folder_path, repository_id, is_admin=False full_path = '%s/' % full_path is_folder = True node = {"title": filename, - "isFolder": is_folder, - "isLazy": is_folder, - "tooltip": full_path, - "key": full_path} + "isFolder": is_folder, + "isLazy": is_folder, + "tooltip": full_path, + "key": full_path} folder_contents.append(node) return folder_contents diff --git a/lib/tool_shed/util/tool_dependency_util.py b/lib/tool_shed/util/tool_dependency_util.py index 35d5ea16209..e470f9fffd8 100644 --- a/lib/tool_shed/util/tool_dependency_util.py +++ b/lib/tool_shed/util/tool_dependency_util.py @@ -13,7 +13,7 @@ log = logging.getLogger(__name__) def build_tool_dependencies_select_field(app, tool_shed_repository, name, multiple=True, display='checkboxes', - uninstalled_only=False): + uninstalled_only=False): """ Generate a SelectField consisting of the current list of tool dependency ids for an installed tool shed repository. @@ -22,11 +22,11 @@ def build_tool_dependencies_select_field(app, tool_shed_repository, name, multip for tool_dependency in tool_shed_repository.tool_dependencies: if uninstalled_only: if tool_dependency.status not in [app.install_model.ToolDependency.installation_status.NEVER_INSTALLED, - app.install_model.ToolDependency.installation_status.UNINSTALLED]: + app.install_model.ToolDependency.installation_status.UNINSTALLED]: continue else: if tool_dependency.status in [app.install_model.ToolDependency.installation_status.NEVER_INSTALLED, - app.install_model.ToolDependency.installation_status.UNINSTALLED]: + app.install_model.ToolDependency.installation_status.UNINSTALLED]: continue option_label = '%s version %s' % (str(tool_dependency.name), str(tool_dependency.version)) option_value = app.security.encode_id(tool_dependency.id) @@ -84,12 +84,12 @@ def create_tool_dependency_objects(app, tool_shed_repository, relative_install_d if name and version: status = app.install_model.ToolDependency.installation_status.NEVER_INSTALLED tool_dependency = create_or_update_tool_dependency(app, - tool_shed_repository, - name=name, - version=version, - type=tool_dependency_type, - status=status, - set_status=set_status) + tool_shed_repository, + name=name, + version=version, + type=tool_dependency_type, + status=status, + set_status=set_status) tool_dependency_objects.append(tool_dependency) elif tool_dependency_type == 'set_environment': for env_elem in elem: @@ -99,12 +99,12 @@ def create_tool_dependency_objects(app, tool_shed_repository, relative_install_d if name and action: status = app.install_model.ToolDependency.installation_status.NEVER_INSTALLED tool_dependency = create_or_update_tool_dependency(app, - tool_shed_repository, - name=name, - version=None, - type=tool_dependency_type, - status=status, - set_status=set_status) + tool_shed_repository, + name=name, + version=None, + type=tool_dependency_type, + status=status, + set_status=set_status) tool_dependency_objects.append(tool_dependency) return tool_dependency_objects @@ -159,8 +159,8 @@ def get_tool_dependency_by_name_type_repository(app, repository, name, type): context = app.install_model.context return context.query(app.install_model.ToolDependency) \ .filter(and_(app.install_model.ToolDependency.table.c.tool_shed_repository_id == repository.id, - app.install_model.ToolDependency.table.c.name == name, - app.install_model.ToolDependency.table.c.type == type)) \ + app.install_model.ToolDependency.table.c.name == name, + app.install_model.ToolDependency.table.c.type == type)) \ .first() @@ -168,8 +168,8 @@ def get_tool_dependency_by_name_version_type(app, name, version, type): context = app.install_model.context return context.query(app.install_model.ToolDependency) \ .filter(and_(app.install_model.ToolDependency.table.c.name == name, - app.install_model.ToolDependency.table.c.version == version, - app.install_model.ToolDependency.table.c.type == type)) \ + app.install_model.ToolDependency.table.c.version == version, + app.install_model.ToolDependency.table.c.type == type)) \ .first() @@ -177,9 +177,9 @@ def get_tool_dependency_by_name_version_type_repository(app, repository, name, v context = app.install_model.context return context.query(app.install_model.ToolDependency) \ .filter(and_(app.install_model.ToolDependency.table.c.tool_shed_repository_id == repository.id, - app.install_model.ToolDependency.table.c.name == name, - app.install_model.ToolDependency.table.c.version == version, - app.install_model.ToolDependency.table.c.type == type)) \ + app.install_model.ToolDependency.table.c.name == name, + app.install_model.ToolDependency.table.c.version == version, + app.install_model.ToolDependency.table.c.type == type)) \ .first() @@ -203,21 +203,21 @@ def get_tool_dependency_ids(as_string=False, **kwd): def get_tool_dependency_install_dir(app, repository_name, repository_owner, repository_changeset_revision, tool_dependency_type, - tool_dependency_name, tool_dependency_version): + tool_dependency_name, tool_dependency_version): if tool_dependency_type == 'package': return os.path.abspath(os.path.join(app.config.tool_dependency_dir, - tool_dependency_name, - tool_dependency_version, - repository_owner, - repository_name, - repository_changeset_revision)) + tool_dependency_name, + tool_dependency_version, + repository_owner, + repository_name, + repository_changeset_revision)) if tool_dependency_type == 'set_environment': return os.path.abspath(os.path.join(app.config.tool_dependency_dir, - 'environment_settings', - tool_dependency_name, - repository_owner, - repository_name, - repository_changeset_revision)) + 'environment_settings', + tool_dependency_name, + repository_owner, + repository_name, + repository_changeset_revision)) def parse_package_elem(package_elem, platform_info_dict=None, include_after_install_actions=True): diff --git a/lib/tool_shed/util/tool_util.py b/lib/tool_shed/util/tool_util.py index 894f5fdaee5..8cd46f055d4 100644 --- a/lib/tool_shed/util/tool_util.py +++ b/lib/tool_shed/util/tool_util.py @@ -82,7 +82,7 @@ def copy_sample_files(app, sample_files, tool_path=None, sample_files_copied=Non def generate_message_for_invalid_tools(app, invalid_file_tups, repository, metadata_dict, as_html=True, - displaying_invalid_tool=False): + displaying_invalid_tool=False): if as_html: new_line = '
    ' bold_start = '' diff --git a/lib/tool_shed/util/workflow_util.py b/lib/tool_shed/util/workflow_util.py index 04b3eb739c4..17aa5de3eee 100644 --- a/lib/tool_shed/util/workflow_util.py +++ b/lib/tool_shed/util/workflow_util.py @@ -42,8 +42,8 @@ class RepoToolModule(ToolModule): for tool_dict in tools_metadata: if self.tool_id in [tool_dict['id'], tool_dict['guid']]: repository, self.tool, message = self.tv.load_tool_from_changeset_revision(repository_id, - changeset_revision, - tool_dict['tool_config']) + changeset_revision, + tool_dict['tool_config']) if message and self.tool is None: self.errors = 'unavailable' break @@ -80,8 +80,8 @@ class RepoToolModule(ToolModule): def callback(input, prefixed_name, prefixed_label, **kwargs): if isinstance(input, galaxy.tools.parameters.basic.DataToolParameter): data_inputs.append(dict(name=prefixed_name, - label=prefixed_label, - extensions=input.extensions)) + label=prefixed_label, + extensions=input.extensions)) if self.tool: try: galaxy.tools.parameters.visit_input_values(self.tool.inputs, self.state.inputs, callback) @@ -179,10 +179,10 @@ def generate_workflow_image(trans, workflow_name, repository_metadata_id=None, r else: tools_metadata = [] workflow, missing_tool_tups = get_workflow_from_dict(trans=trans, - workflow_dict=workflow_dict, - tools_metadata=tools_metadata, - repository_id=repository_id, - changeset_revision=changeset_revision) + workflow_dict=workflow_dict, + tools_metadata=tools_metadata, + repository_id=repository_id, + changeset_revision=changeset_revision) workflow_canvas = WorkflowCanvas() canvas = workflow_canvas.canvas # Store px width for boxes of each step. @@ -294,9 +294,9 @@ def get_workflow_from_dict(trans, workflow_dict, tools_metadata, repository_id, post_job_actions = step_dict.get('post_job_actions', {}) for pja_dict in post_job_actions.values(): trans.model.PostJobAction(pja_dict['action_type'], - step, - pja_dict['output_name'], - pja_dict['action_arguments']) + step, + pja_dict['output_name'], + pja_dict['action_arguments']) steps.append(step) steps_by_external_id[step_dict['id']] = step # Second pass to deal with connections between steps. @@ -355,10 +355,10 @@ def import_workflow(trans, repository, workflow_name): if workflow_dict: # Create workflow if possible. workflow, missing_tool_tups = get_workflow_from_dict(trans=trans, - workflow_dict=workflow_dict, - tools_metadata=tools_metadata, - repository_id=repository.id, - changeset_revision=changeset_revision) + workflow_dict=workflow_dict, + tools_metadata=tools_metadata, + repository_id=repository.id, + changeset_revision=changeset_revision) # Save the workflow in the Galaxy database. Pass workflow_dict along to create annotation at this point. stored_workflow = save_workflow(trans, workflow, workflow_dict) # Use the latest version of the saved workflow. diff --git a/lib/tool_shed/utility_containers/__init__.py b/lib/tool_shed/utility_containers/__init__.py index 9144fe3c6c3..4d4c12bd8b7 100644 --- a/lib/tool_shed/utility_containers/__init__.py +++ b/lib/tool_shed/utility_containers/__init__.py @@ -27,7 +27,7 @@ class InvalidRepositoryDependency(object): """Invalid repository dependency definition object""" def __init__(self, id=None, toolshed=None, repository_name=None, repository_owner=None, changeset_revision=None, - prior_installation_required=False, only_if_compiling_contained_td=False, error=None): + prior_installation_required=False, only_if_compiling_contained_td=False, error=None): self.id = id self.toolshed = toolshed self.repository_name = repository_name @@ -136,15 +136,15 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer folder_id += 1 invalid_repository_dependencies_root_folder = \ utility_container_manager.Folder(id=folder_id, - key='root', - label='root', - parent=None) + key='root', + label='root', + parent=None) folder_id += 1 invalid_repository_dependencies_folder = \ utility_container_manager.Folder(id=folder_id, - key='invalid_repository_dependencies', - label=label, - parent=invalid_repository_dependencies_root_folder) + key='invalid_repository_dependencies', + label=label, + parent=invalid_repository_dependencies_root_folder) invalid_repository_dependencies_root_folder.folders.append(invalid_repository_dependencies_folder) invalid_repository_dependencies = invalid_repository_dependencies_dict['repository_dependencies'] for invalid_repository_dependency in invalid_repository_dependencies: @@ -153,24 +153,24 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer toolshed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td, error = \ common_util.parse_repository_dependency_tuple(invalid_repository_dependency, contains_error=True) key = container_util.generate_repository_dependencies_key_for_repository(toolshed, - name, - owner, - changeset_revision, - prior_installation_required, - only_if_compiling_contained_td) + name, + owner, + changeset_revision, + prior_installation_required, + only_if_compiling_contained_td) label = "Repository %s revision %s owned by %s" % (name, changeset_revision, owner) folder = utility_container_manager.Folder(id=folder_id, - key=key, - label=label, - parent=invalid_repository_dependencies_folder) + key=key, + label=label, + parent=invalid_repository_dependencies_folder) ird = InvalidRepositoryDependency(id=invalid_repository_dependency_id, - toolshed=toolshed, - repository_name=name, - repository_owner=owner, - changeset_revision=changeset_revision, - prior_installation_required=util.asbool(prior_installation_required), - only_if_compiling_contained_td=util.asbool(only_if_compiling_contained_td), - error=error) + toolshed=toolshed, + repository_name=name, + repository_owner=owner, + changeset_revision=changeset_revision, + prior_installation_required=util.asbool(prior_installation_required), + only_if_compiling_contained_td=util.asbool(only_if_compiling_contained_td), + error=error) folder.invalid_repository_dependencies.append(ird) invalid_repository_dependencies_folder.folders.append(folder) else: @@ -190,9 +190,9 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer folder_id += 1 invalid_tool_dependencies_folder = \ utility_container_manager.Folder(id=folder_id, - key='invalid_tool_dependencies', - label=label, - parent=invalid_tool_dependencies_root_folder) + key='invalid_tool_dependencies', + label=label, + parent=invalid_tool_dependencies_root_folder) invalid_tool_dependencies_root_folder.folders.append(invalid_tool_dependencies_folder) for td_key, requirements_dict in invalid_tool_dependencies_dict.items(): folder_id += 1 @@ -210,14 +210,14 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer key = self.generate_tool_dependencies_key(name, version, type) label = "Version %s of the %s %s" % (version, name, type) folder = utility_container_manager.Folder(id=folder_id, - key=key, - label=label, - parent=invalid_tool_dependencies_folder) + key=key, + label=label, + parent=invalid_tool_dependencies_folder) itd = InvalidToolDependency(id=invalid_tool_dependency_id, - name=name, - version=version, - type=type, - error=error) + name=name, + version=version, + type=type, + error=error) folder.invalid_tool_dependencies.append(itd) invalid_tool_dependencies_folder.folders.append(folder) else: @@ -225,7 +225,7 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer return folder_id, invalid_tool_dependencies_root_folder def build_repository_containers(self, repository, changeset_revision, repository_dependencies, repository_metadata, - exclude=None): + exclude=None): """ Return a dictionary of containers for the received repository's dependencies and contents for display in the Tool Shed. @@ -233,13 +233,13 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer if exclude is None: exclude = [] containers_dict = dict(datatypes=None, - invalid_tools=None, - readme_files=None, - repository_dependencies=None, - tool_dependencies=None, - valid_tools=None, - workflows=None, - valid_data_managers=None + invalid_tools=None, + readme_files=None, + repository_dependencies=None, + tool_dependencies=None, + valid_tools=None, + workflows=None, + valid_data_managers=None ) if repository_metadata: metadata = repository_metadata.metadata @@ -259,7 +259,7 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer invalid_repository_dependencies = metadata['invalid_repository_dependencies'] folder_id, invalid_repository_dependencies_root_folder = \ self.build_invalid_repository_dependencies_root_folder(folder_id, - invalid_repository_dependencies) + invalid_repository_dependencies) containers_dict['invalid_repository_dependencies'] = invalid_repository_dependencies_root_folder # Invalid tool dependencies container. if metadata: @@ -267,7 +267,7 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer invalid_tool_dependencies = metadata['invalid_tool_dependencies'] folder_id, invalid_tool_dependencies_root_folder = \ self.build_invalid_tool_dependencies_root_folder(folder_id, - invalid_tool_dependencies) + invalid_tool_dependencies) containers_dict['invalid_tool_dependencies'] = invalid_tool_dependencies_root_folder # Invalid tools container. if metadata: @@ -275,10 +275,10 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer invalid_tool_configs = metadata['invalid_tools'] folder_id, invalid_tools_root_folder = \ self.build_invalid_tools_folder(folder_id, - invalid_tool_configs, - changeset_revision, - repository=repository, - label='Invalid tools') + invalid_tool_configs, + changeset_revision, + repository=repository, + label='Invalid tools') containers_dict['invalid_tools'] = invalid_tools_root_folder # Readme files container. if metadata: @@ -290,9 +290,9 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer # Repository dependencies container. folder_id, repository_dependencies_root_folder = \ self.build_repository_dependencies_folder(folder_id=folder_id, - repository_dependencies=repository_dependencies, - label='Repository dependencies', - installed=False) + repository_dependencies=repository_dependencies, + label='Repository dependencies', + installed=False) if repository_dependencies_root_folder: containers_dict['repository_dependencies'] = repository_dependencies_root_folder # Tool dependencies container. @@ -310,19 +310,19 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer tools.extend(metadata.get('invalid_tools', [])) folder_id, tool_dependencies_root_folder = \ self.build_tool_dependencies_folder(folder_id, - tool_dependencies, - missing=False, - new_install=False) + tool_dependencies, + missing=False, + new_install=False) containers_dict['tool_dependencies'] = tool_dependencies_root_folder # Valid tools container. if metadata: if 'tools' not in exclude and 'tools' in metadata: valid_tools = metadata['tools'] folder_id, valid_tools_root_folder = self.build_tools_folder(folder_id, - valid_tools, - repository, - changeset_revision, - label='Valid tools') + valid_tools, + repository, + changeset_revision, + label='Valid tools') containers_dict['valid_tools'] = valid_tools_root_folder # Workflows container. if metadata: @@ -330,10 +330,10 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer workflows = metadata['workflows'] folder_id, workflows_root_folder = \ self.build_workflows_folder(folder_id=folder_id, - workflows=workflows, - repository_metadata_id=repository_metadata.id, - repository_id=None, - label='Workflows') + workflows=workflows, + repository_metadata_id=repository_metadata.id, + repository_id=None, + label='Workflows') containers_dict['workflows'] = workflows_root_folder # Valid Data Managers container if metadata: @@ -346,9 +346,9 @@ class ToolShedUtilityContainerManager(utility_container_manager.UtilityContainer data_managers = metadata['data_manager'].get('invalid_data_managers', None) folder_id, data_managers_root_folder = \ self.build_invalid_data_managers_folder(folder_id, - data_managers, - error_messages, - label="Invalid Data Managers") + data_managers, + error_messages, + label="Invalid Data Managers") containers_dict['invalid_data_managers'] = data_managers_root_folder except Exception: log.exception("Exception in build_repository_containers") diff --git a/lib/tool_shed/utility_containers/utility_container_manager.py b/lib/tool_shed/utility_containers/utility_container_manager.py index 8f42a46ee7d..7a26f9f0eed 100644 --- a/lib/tool_shed/utility_containers/utility_container_manager.py +++ b/lib/tool_shed/utility_containers/utility_container_manager.py @@ -112,7 +112,7 @@ class RepositoryDependency(object): """Repository dependency object""" def __init__(self, id=None, toolshed=None, repository_name=None, repository_owner=None, changeset_revision=None, prior_installation_required=False, - only_if_compiling_contained_td=False, installation_status=None, tool_shed_repository_id=None): + only_if_compiling_contained_td=False, installation_status=None, tool_shed_repository_id=None): self.id = id self.toolshed = toolshed self.repository_name = repository_name @@ -137,7 +137,7 @@ class Tool(object): """Tool object""" def __init__(self, id=None, tool_config=None, tool_id=None, name=None, description=None, version=None, profile=None, requirements=None, - repository_id=None, changeset_revision=None, repository_installation_status=None): + repository_id=None, changeset_revision=None, repository_installation_status=None): self.id = id self.tool_config = tool_config self.tool_id = tool_id @@ -155,7 +155,7 @@ class ToolDependency(object): """Tool dependency object""" def __init__(self, id=None, name=None, version=None, type=None, readme=None, installation_status=None, repository_id=None, - tool_dependency_id=None): + tool_dependency_id=None): self.id = id self.name = name self.version = version @@ -174,7 +174,7 @@ class Workflow(object): """Workflow object.""" def __init__(self, id=None, workflow_name=None, steps=None, format_version=None, annotation=None, - repository_metadata_id=None, repository_id=None): + repository_metadata_id=None, repository_id=None): """ When rendered in the tool shed, repository_metadata_id will have a value and repository_id will be None. When rendered in Galaxy, repository_id will have a value and repository_metadata_id will @@ -209,9 +209,9 @@ class UtilityContainerManager(object): # Insert a header row. data_manager_id += 1 data_manager = DataManager(id=data_manager_id, - name='Name', - version='Version', - data_tables='Data Tables') + name='Name', + version='Version', + data_tables='Data Tables') folder.valid_data_managers.append(data_manager) for data_manager_dict in data_managers.values(): data_manager_id += 1 @@ -224,9 +224,9 @@ class UtilityContainerManager(object): version = 'unknown' data_tables = 'unknown' data_manager = DataManager(id=data_manager_id, - name=name, - version=version, - data_tables=data_tables) + name=name, + version=version, + data_tables=data_tables) folder.valid_data_managers.append(data_manager) else: data_managers_root_folder = None @@ -244,10 +244,10 @@ class UtilityContainerManager(object): # Insert a header row. datatype_id += 1 datatype = Datatype(id=datatype_id, - extension='extension', - type='type', - mimetype='mimetype', - subclass='subclass') + extension='extension', + type='type', + mimetype='mimetype', + subclass='subclass') folder.datatypes.append(datatype) for datatypes_dict in datatypes: # {"converters": @@ -286,12 +286,12 @@ class UtilityContainerManager(object): converters = 'unknown' display_app_containers = 'unknown' datatype = Datatype(id=datatype_id, - extension=extension, - type=type, - mimetype=mimetype, - subclass=subclass, - converters=converters, - display_app_containers=display_app_containers) + extension=extension, + type=type, + mimetype=mimetype, + subclass=subclass, + converters=converters, + display_app_containers=display_app_containers) folder.datatypes.append(datatype) else: datatypes_root_folder = None @@ -312,28 +312,28 @@ class UtilityContainerManager(object): # Insert a header row. data_manager_id += 1 data_manager = InvalidDataManager(id=data_manager_id, - index='Element Index', - error='Error') + index='Element Index', + error='Error') folder.invalid_data_managers.append(data_manager) if error_messages: for error_message in error_messages: data_manager_id += 1 data_manager = InvalidDataManager(id=data_manager_id, - index=0, - error=error_message) + index=0, + error=error_message) folder.invalid_data_managers.append(data_manager) for data_manager_dict in data_managers: data_manager_id += 1 data_manager = InvalidDataManager(id=data_manager_id, - index=data_manager_dict.get('index', 0) + 1, - error=data_manager_dict.get('error_message', '')) + index=data_manager_dict.get('index', 0) + 1, + error=data_manager_dict.get('error_message', '')) folder.invalid_data_managers.append(data_manager) else: data_managers_root_folder = None return folder_id, data_managers_root_folder def build_invalid_tools_folder(self, folder_id, invalid_tool_configs, changeset_revision, repository=None, - label='Invalid tools'): + label='Invalid tools'): """Return a folder hierarchy containing invalid tools.""" # TODO: Should we display invalid tools on the tool panel selection page when installing the # repository into Galaxy? @@ -356,10 +356,10 @@ class UtilityContainerManager(object): repository_id = None repository_installation_status = None invalid_tool = InvalidTool(id=invalid_tool_id, - tool_config=invalid_tool_config, - repository_id=repository_id, - changeset_revision=changeset_revision, - repository_installation_status=repository_installation_status) + tool_config=invalid_tool_config, + repository_id=repository_id, + changeset_revision=changeset_revision, + repository_installation_status=repository_installation_status) folder.invalid_tools.append(invalid_tool) else: invalid_tools_root_folder = None @@ -390,7 +390,7 @@ class UtilityContainerManager(object): return folder_id, readme_files_root_folder def build_repository_dependencies_folder(self, folder_id, repository_dependencies, label='Repository dependencies', - installed=False): + installed=False): """Return a folder hierarchy containing repository dependencies.""" if repository_dependencies: repository_dependency_id = 0 @@ -401,9 +401,9 @@ class UtilityContainerManager(object): # Create the Repository dependencies folder and add it to the root folder. repository_dependencies_folder_key = repository_dependencies['root_key'] repository_dependencies_folder = Folder(id=folder_id, - key=repository_dependencies_folder_key, - label=label, - parent=repository_dependencies_root_folder) + key=repository_dependencies_folder_key, + label=label, + parent=repository_dependencies_root_folder) del repository_dependencies['root_key'] # The received repository_dependencies is a dictionary with keys: 'root_key', 'description', and one or more # repository_dependency keys. We want the description value associated with the repository_dependencies_folder. @@ -412,9 +412,9 @@ class UtilityContainerManager(object): del repository_dependencies['description'] repository_dependencies_folder, folder_id, repository_dependency_id = \ self.populate_repository_dependencies_container(repository_dependencies_folder, - repository_dependencies, - folder_id, - repository_dependency_id) + repository_dependencies, + folder_id, + repository_dependency_id) repository_dependencies_folder = self.prune_repository_dependencies(repository_dependencies_folder) else: repository_dependencies_root_folder = None @@ -434,15 +434,15 @@ class UtilityContainerManager(object): # Insert a header row. container_object_tool_id += 1 tool = Tool(id=container_object_tool_id, - tool_config='', - tool_id='', - name='Name', - description='Description', - version='Version', - profile='Minimum Galaxy Version', - requirements='', - repository_id='', - changeset_revision='') + tool_config='', + tool_id='', + name='Name', + description='Description', + version='Version', + profile='Minimum Galaxy Version', + requirements='', + repository_id='', + changeset_revision='') folder.valid_tools.append(tool) if repository: repository_id = repository.id @@ -489,23 +489,23 @@ class UtilityContainerManager(object): description = '' version = 'unknown' tool = Tool(id=container_object_tool_id, - tool_config=tool_config, - tool_id=tool_id, - name=name, - description=description, - version=version, - profile=profile, - requirements=requirements_str, - repository_id=repository_id, - changeset_revision=changeset_revision, - repository_installation_status=repository_installation_status) + tool_config=tool_config, + tool_id=tool_id, + name=name, + description=description, + version=version, + profile=profile, + requirements=requirements_str, + repository_id=repository_id, + changeset_revision=changeset_revision, + repository_installation_status=repository_installation_status) folder.valid_tools.append(tool) else: tools_root_folder = None return folder_id, tools_root_folder def build_tool_dependencies_folder(self, folder_id, tool_dependencies, label='Tool dependencies', missing=False, - new_install=False, reinstalling=False): + new_install=False, reinstalling=False): """Return a folder hierarchy containing tool dependencies.""" # When we're in Galaxy (not the tool shed) and the tool dependencies are not installed or are in an error state, # they are considered missing. The tool dependency status will be displayed only if a record exists for the tool @@ -530,22 +530,22 @@ class UtilityContainerManager(object): tool_dependency_id += 1 if self.app.name == 'galaxy': tool_dependency = ToolDependency(id=tool_dependency_id, - name='Name', - version='Version', - type='Type', - readme=None, - installation_status='Installation status', - repository_id=None, - tool_dependency_id=None) + name='Name', + version='Version', + type='Type', + readme=None, + installation_status='Installation status', + repository_id=None, + tool_dependency_id=None) else: tool_dependency = ToolDependency(id=tool_dependency_id, - name='Name', - version='Version', - type='Type', - readme=None, - installation_status=None, - repository_id=None, - tool_dependency_id=None) + name='Name', + version='Version', + type='Type', + readme=None, + installation_status=None, + repository_id=None, + tool_dependency_id=None) folder.tool_dependencies.append(tool_dependency) for dependency_key, requirements_dict in tool_dependencies.items(): tool_dependency_id += 1 @@ -569,13 +569,13 @@ class UtilityContainerManager(object): else: installation_status = None tool_dependency = ToolDependency(id=tool_dependency_id, - name=name, - version=None, - type=type, - readme=None, - installation_status=installation_status, - repository_id=repository_id, - tool_dependency_id=td_id) + name=name, + version=None, + type=type, + readme=None, + installation_status=installation_status, + repository_id=repository_id, + tool_dependency_id=td_id) folder.tool_dependencies.append(tool_dependency) else: try: @@ -598,20 +598,20 @@ class UtilityContainerManager(object): else: installation_status = None tool_dependency = ToolDependency(id=tool_dependency_id, - name=name, - version=version, - type=type, - readme=None, - installation_status=installation_status, - repository_id=repository_id, - tool_dependency_id=td_id) + name=name, + version=version, + type=type, + readme=None, + installation_status=installation_status, + repository_id=repository_id, + tool_dependency_id=td_id) folder.tool_dependencies.append(tool_dependency) else: tool_dependencies_root_folder = None return folder_id, tool_dependencies_root_folder def build_workflows_folder(self, folder_id, workflows, repository_metadata_id=None, repository_id=None, - label='Workflows'): + label='Workflows'): """ Return a folder hierarchy containing workflow objects for each workflow dictionary in the received workflows list. When this method is called from the tool shed, repository_metadata_id @@ -629,12 +629,12 @@ class UtilityContainerManager(object): # Insert a header row. workflow_id += 1 workflow = Workflow(id=workflow_id, - workflow_name='Name', - steps='steps', - format_version='format-version', - annotation='annotation', - repository_metadata_id=repository_metadata_id, - repository_id=repository_id) + workflow_name='Name', + steps='steps', + format_version='format-version', + annotation='annotation', + repository_metadata_id=repository_metadata_id, + repository_id=repository_id) folder.workflows.append(workflow) for workflow_tup in workflows: workflow_dict = workflow_tup[1] @@ -645,25 +645,25 @@ class UtilityContainerManager(object): steps = 'unknown' workflow_id += 1 workflow = Workflow(id=workflow_id, - workflow_name=workflow_dict.get('name', ''), - steps=steps, - format_version=workflow_dict.get('format-version', ''), - annotation=workflow_dict.get('annotation', ''), - repository_metadata_id=repository_metadata_id, - repository_id=repository_id) + workflow_name=workflow_dict.get('name', ''), + steps=steps, + format_version=workflow_dict.get('format-version', ''), + annotation=workflow_dict.get('annotation', ''), + repository_metadata_id=repository_metadata_id, + repository_id=repository_id) folder.workflows.append(workflow) else: workflows_root_folder = None return folder_id, workflows_root_folder def generate_repository_dependencies_folder_label_from_key(self, repository_name, repository_owner, changeset_revision, - prior_installation_required, only_if_compiling_contained_td, key): + prior_installation_required, only_if_compiling_contained_td, key): """Return a repository dependency label based on the repository dependency key.""" if self.key_is_current_repositorys_key(repository_name, - repository_owner, - changeset_revision, - prior_installation_required, - only_if_compiling_contained_td, key): + repository_owner, + changeset_revision, + prior_installation_required, + only_if_compiling_contained_td, key): label = 'Repository dependencies' else: if util.asbool(prior_installation_required): @@ -706,7 +706,7 @@ class UtilityContainerManager(object): installation_status = 'unknown' if tool_shed_repository_id: tool_shed_repository = repository_util.get_tool_shed_repository_by_id(self.app, - self.app.security.encode_id(tool_shed_repository_id)) + self.app.security.encode_id(tool_shed_repository_id)) if tool_shed_repository: if tool_shed_repository.missing_repository_dependencies: installation_status = '%s, missing repository dependencies' % installation_status @@ -722,7 +722,7 @@ class UtilityContainerManager(object): return None def handle_repository_dependencies_container_entry(self, repository_dependencies_folder, rd_key, rd_value, folder_id, - repository_dependency_id, folder_keys): + repository_dependency_id, folder_keys): repository_components_tuple = container_util.get_components_from_key(rd_key) components_list = repository_util.extract_components_from_tuple(repository_components_tuple) toolshed, repository_name, repository_owner, changeset_revision = components_list[0:4] @@ -738,11 +738,11 @@ class UtilityContainerManager(object): only_if_compiling_contained_td = components_list[5] folder = self.get_folder(repository_dependencies_folder, rd_key) label = self.generate_repository_dependencies_folder_label_from_key(repository_name, - repository_owner, - changeset_revision, - prior_installation_required, - only_if_compiling_contained_td, - repository_dependencies_folder.key) + repository_owner, + changeset_revision, + prior_installation_required, + only_if_compiling_contained_td, + repository_dependencies_folder.key) if folder: if rd_key not in folder_keys: folder_id += 1 @@ -758,10 +758,10 @@ class UtilityContainerManager(object): # Insert a header row. repository_dependency_id += 1 repository_dependency = RepositoryDependency(id=repository_dependency_id, - repository_name='Name', - changeset_revision='Revision', - repository_owner='Owner', - installation_status='Installation status') + repository_name='Name', + changeset_revision='Revision', + repository_owner='Owner', + installation_status='Installation status') # Insert the header row into the folder. sub_folder.repository_dependencies.append(repository_dependency) for repository_dependency in rd_value: @@ -777,14 +777,14 @@ class UtilityContainerManager(object): common_util.parse_repository_dependency_tuple(repository_dependency) repository_dependency_id += 1 repository_dependency = RepositoryDependency(id=repository_dependency_id, - toolshed=toolshed, - repository_name=repository_name, - repository_owner=repository_owner, - changeset_revision=changeset_revision, - prior_installation_required=util.asbool(prior_installation_required), - only_if_compiling_contained_td=util.asbool(only_if_compiling_contained_td), - installation_status=installation_status, - tool_shed_repository_id=tool_shed_repository_id) + toolshed=toolshed, + repository_name=repository_name, + repository_owner=repository_owner, + changeset_revision=changeset_revision, + prior_installation_required=util.asbool(prior_installation_required), + only_if_compiling_contained_td=util.asbool(only_if_compiling_contained_td), + installation_status=installation_status, + tool_shed_repository_id=tool_shed_repository_id) # Insert the repository_dependency into the folder. sub_folder.repository_dependencies.append(repository_dependency) return repository_dependencies_folder, folder_id, repository_dependency_id @@ -793,18 +793,18 @@ class UtilityContainerManager(object): toolshed, repository_name, repository_owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = \ common_util.parse_repository_dependency_tuple(repository_dependency) key = container_util.generate_repository_dependencies_key_for_repository(toolshed, - repository_name, - repository_owner, - changeset_revision, - prior_installation_required, - only_if_compiling_contained_td) + repository_name, + repository_owner, + changeset_revision, + prior_installation_required, + only_if_compiling_contained_td) for sub_folder in folder.folders: if key == sub_folder.key: return True return False def key_is_current_repositorys_key(self, repository_name, repository_owner, changeset_revision, - prior_installation_required, only_if_compiling_contained_td, key): + prior_installation_required, only_if_compiling_contained_td, key): repository_components_tuple = container_util.get_components_from_key(key) components_list = repository_util.extract_components_from_tuple(repository_components_tuple) toolshed, key_name, key_owner, key_changeset_revision = components_list[0:4] @@ -819,15 +819,15 @@ class UtilityContainerManager(object): key_prior_installation_required = components_list[4] key_only_if_compiling_contained_td = components_list[5] if (repository_name == key_name and - repository_owner == key_owner and - changeset_revision == key_changeset_revision and - prior_installation_required == key_prior_installation_required and - only_if_compiling_contained_td == key_only_if_compiling_contained_td): + repository_owner == key_owner and + changeset_revision == key_changeset_revision and + prior_installation_required == key_prior_installation_required and + only_if_compiling_contained_td == key_only_if_compiling_contained_td): return True return False def populate_repository_dependencies_container(self, repository_dependencies_folder, repository_dependencies, folder_id, - repository_dependency_id): + repository_dependency_id): folder_keys = [] for key in repository_dependencies.keys(): if key not in folder_keys: @@ -835,11 +835,11 @@ class UtilityContainerManager(object): for key, value in repository_dependencies.items(): repository_dependencies_folder, folder_id, repository_dependency_id = \ self.handle_repository_dependencies_container_entry(repository_dependencies_folder, - key, - value, - folder_id, - repository_dependency_id, - folder_keys) + key, + value, + folder_id, + repository_dependency_id, + folder_keys) return repository_dependencies_folder, folder_id, repository_dependency_id def prune_folder(self, folder, repository_dependency): diff --git a/scripts/api/install_tool_shed_repositories.py b/scripts/api/install_tool_shed_repositories.py index 5759e7da739..1a9b9e908c1 100644 --- a/scripts/api/install_tool_shed_repositories.py +++ b/scripts/api/install_tool_shed_repositories.py @@ -37,9 +37,9 @@ def main(options): revision_data['owner'] = options.owner revision_url = '%s%s' % (options.local_url.rstrip('/'), '/api/tool_shed_repositories/get_latest_installable_revision') latest_installable_revision = submit(options.api, - revision_url, - revision_data, - return_formatted=False) + revision_url, + revision_data, + return_formatted=False) data['changeset_revision'] = latest_installable_revision if options.tool_panel_section_id: data['tool_panel_section_id'] = options.tool_panel_section_id diff --git a/scripts/cleanup_datasets/cleanup_datasets.py b/scripts/cleanup_datasets/cleanup_datasets.py index 27ea7cbfe6d..46195d5f2a5 100755 --- a/scripts/cleanup_datasets/cleanup_datasets.py +++ b/scripts/cleanup_datasets/cleanup_datasets.py @@ -88,8 +88,8 @@ def main(): ini_file = args[0] if not (options.purge_folders ^ options.delete_userless_histories ^ - options.purge_libraries ^ options.purge_histories ^ - options.purge_datasets ^ options.delete_datasets): + options.purge_libraries ^ options.purge_histories ^ + options.purge_datasets ^ options.delete_datasets): parser.print_help() sys.exit(0) @@ -144,12 +144,12 @@ def delete_userless_histories(app, cutoff_time, info_only=False, force_retry=Fal if force_retry: histories = app.sa_session.query(app.model.History) \ .filter(and_(app.model.History.table.c.user_id == null(), - app.model.History.table.c.update_time < cutoff_time)) + app.model.History.table.c.update_time < cutoff_time)) else: histories = app.sa_session.query(app.model.History) \ .filter(and_(app.model.History.table.c.user_id == null(), - app.model.History.table.c.deleted == false(), - app.model.History.table.c.update_time < cutoff_time)) + app.model.History.table.c.deleted == false(), + app.model.History.table.c.update_time < cutoff_time)) for history in histories: if not info_only: print("Deleting history id ", history.id) @@ -174,13 +174,13 @@ def purge_histories(app, cutoff_time, remove_from_disk, info_only=False, force_r if force_retry: histories = app.sa_session.query(app.model.History) \ .filter(and_(app.model.History.table.c.deleted == true(), - app.model.History.table.c.update_time < cutoff_time)) \ + app.model.History.table.c.update_time < cutoff_time)) \ .options(eagerload('datasets')) else: histories = app.sa_session.query(app.model.History) \ .filter(and_(app.model.History.table.c.deleted == true(), - app.model.History.table.c.purged == false(), - app.model.History.table.c.update_time < cutoff_time)) \ + app.model.History.table.c.purged == false(), + app.model.History.table.c.update_time < cutoff_time)) \ .options(eagerload('datasets')) for history in histories: print("### Processing history id %d (%s)" % (history.id, unicodify(history.name))) @@ -216,12 +216,12 @@ def purge_libraries(app, cutoff_time, remove_from_disk, info_only=False, force_r if force_retry: libraries = app.sa_session.query(app.model.Library) \ .filter(and_(app.model.Library.table.c.deleted == true(), - app.model.Library.table.c.update_time < cutoff_time)) + app.model.Library.table.c.update_time < cutoff_time)) else: libraries = app.sa_session.query(app.model.Library) \ .filter(and_(app.model.Library.table.c.deleted == true(), - app.model.Library.table.c.purged == false(), - app.model.Library.table.c.update_time < cutoff_time)) + app.model.Library.table.c.purged == false(), + app.model.Library.table.c.update_time < cutoff_time)) for library in libraries: _purge_folder(library.root_folder, app, remove_from_disk, info_only=info_only) if not info_only: @@ -247,12 +247,12 @@ def purge_folders(app, cutoff_time, remove_from_disk, info_only=False, force_ret if force_retry: folders = app.sa_session.query(app.model.LibraryFolder) \ .filter(and_(app.model.LibraryFolder.table.c.deleted == true(), - app.model.LibraryFolder.table.c.update_time < cutoff_time)) + app.model.LibraryFolder.table.c.update_time < cutoff_time)) else: folders = app.sa_session.query(app.model.LibraryFolder) \ .filter(and_(app.model.LibraryFolder.table.c.deleted == true(), - app.model.LibraryFolder.table.c.purged == false(), - app.model.LibraryFolder.table.c.update_time < cutoff_time)) + app.model.LibraryFolder.table.c.purged == false(), + app.model.LibraryFolder.table.c.update_time < cutoff_time)) for folder in folders: _purge_folder(folder, app, remove_from_disk, info_only=info_only) folder_count += 1 @@ -267,29 +267,29 @@ def delete_datasets(app, cutoff_time, remove_from_disk, info_only=False, force_r start = time.time() if force_retry: history_dataset_ids_query = sa.select((app.model.Dataset.table.c.id, - app.model.Dataset.table.c.state), - whereclause=app.model.HistoryDatasetAssociation.table.c.update_time < cutoff_time, - from_obj=[sa.outerjoin(app.model.Dataset.table, - app.model.HistoryDatasetAssociation.table)]) + app.model.Dataset.table.c.state), + whereclause=app.model.HistoryDatasetAssociation.table.c.update_time < cutoff_time, + from_obj=[sa.outerjoin(app.model.Dataset.table, + app.model.HistoryDatasetAssociation.table)]) library_dataset_ids_query = sa.select((app.model.LibraryDataset.table.c.id, - app.model.LibraryDataset.table.c.deleted), - whereclause=app.model.LibraryDataset.table.c.update_time < cutoff_time, - from_obj=[app.model.LibraryDataset.table]) + app.model.LibraryDataset.table.c.deleted), + whereclause=app.model.LibraryDataset.table.c.update_time < cutoff_time, + from_obj=[app.model.LibraryDataset.table]) else: # We really only need the id column here, but sqlalchemy barfs when trying to select only 1 column history_dataset_ids_query = sa.select((app.model.Dataset.table.c.id, - app.model.Dataset.table.c.state), - whereclause=and_(app.model.Dataset.table.c.deleted == false(), - app.model.HistoryDatasetAssociation.table.c.update_time < cutoff_time, - app.model.HistoryDatasetAssociation.table.c.deleted == true()), - from_obj=[sa.outerjoin(app.model.Dataset.table, - app.model.HistoryDatasetAssociation.table)]) + app.model.Dataset.table.c.state), + whereclause=and_(app.model.Dataset.table.c.deleted == false(), + app.model.HistoryDatasetAssociation.table.c.update_time < cutoff_time, + app.model.HistoryDatasetAssociation.table.c.deleted == true()), + from_obj=[sa.outerjoin(app.model.Dataset.table, + app.model.HistoryDatasetAssociation.table)]) library_dataset_ids_query = sa.select((app.model.LibraryDataset.table.c.id, - app.model.LibraryDataset.table.c.deleted), - whereclause=and_(app.model.LibraryDataset.table.c.deleted == true(), - app.model.LibraryDataset.table.c.purged == false(), - app.model.LibraryDataset.table.c.update_time < cutoff_time), - from_obj=[app.model.LibraryDataset.table]) + app.model.LibraryDataset.table.c.deleted), + whereclause=and_(app.model.LibraryDataset.table.c.deleted == true(), + app.model.LibraryDataset.table.c.purged == false(), + app.model.LibraryDataset.table.c.update_time < cutoff_time), + from_obj=[app.model.LibraryDataset.table]) deleted_dataset_count = 0 deleted_instance_count = 0 skip = [] @@ -357,14 +357,14 @@ def purge_datasets(app, cutoff_time, remove_from_disk, info_only=False, force_re if force_retry: datasets = app.sa_session.query(app.model.Dataset) \ .filter(and_(app.model.Dataset.table.c.deleted == true(), - app.model.Dataset.table.c.purgable == true(), - app.model.Dataset.table.c.update_time < cutoff_time)) + app.model.Dataset.table.c.purgable == true(), + app.model.Dataset.table.c.update_time < cutoff_time)) else: datasets = app.sa_session.query(app.model.Dataset) \ .filter(and_(app.model.Dataset.table.c.deleted == true(), - app.model.Dataset.table.c.purgable == true(), - app.model.Dataset.table.c.purged == false(), - app.model.Dataset.table.c.update_time < cutoff_time)) + app.model.Dataset.table.c.purgable == true(), + app.model.Dataset.table.c.purged == false(), + app.model.Dataset.table.c.update_time < cutoff_time)) for dataset in datasets: file_size = dataset.file_size _purge_dataset(app, dataset, remove_from_disk, info_only=info_only) diff --git a/scripts/data_libraries/build_lucene_index.py b/scripts/data_libraries/build_lucene_index.py index e92d74e3ffb..a53ec522163 100644 --- a/scripts/data_libraries/build_lucene_index.py +++ b/scripts/data_libraries/build_lucene_index.py @@ -100,9 +100,9 @@ def get_sa_session(ini_file): if not db_con: db_con = "sqlite:///%s?isolation_level=IMMEDIATE" % ini_config.database model = galaxy.model.mapping.init(ini_config.file_path, - db_con, - engine_options={}, - create_tables=False) + db_con, + engine_options={}, + create_tables=False) return model.context.current, ini_config diff --git a/scripts/data_libraries/build_whoosh_index.py b/scripts/data_libraries/build_whoosh_index.py index fe6ffcd86ff..9ee274afcd5 100644 --- a/scripts/data_libraries/build_whoosh_index.py +++ b/scripts/data_libraries/build_whoosh_index.py @@ -44,10 +44,10 @@ def build_index(sa_session, whoosh_index_dir): lddas_indexed = 0 for id, name, info, dbkey, message in get_lddas(sa_session): writer.add_document(id=id, - name=to_unicode(name), - info=to_unicode(info), - dbkey=to_unicode(dbkey), - message=to_unicode(message)) + name=to_unicode(name), + info=to_unicode(info), + dbkey=to_unicode(dbkey), + message=to_unicode(message)) lddas_indexed += 1 writer.commit() print("Number of active library datasets indexed: ", lddas_indexed) diff --git a/scripts/drmaa_external_runner.py b/scripts/drmaa_external_runner.py index a50235649f5..7254c5edf81 100755 --- a/scripts/drmaa_external_runner.py +++ b/scripts/drmaa_external_runner.py @@ -16,7 +16,7 @@ import sys import drmaa DRMAA_jobTemplate_attributes = ['args', 'remoteCommand', 'outputPath', 'errorPath', 'nativeSpecification', - 'workingDirectory', 'jobName', 'email', 'project'] + 'workingDirectory', 'jobName', 'email', 'project'] def load_job_template_from_file(jt, filename): diff --git a/scripts/extract_toolbox_sections.py b/scripts/extract_toolbox_sections.py index 65594c31a42..57048b8d07e 100644 --- a/scripts/extract_toolbox_sections.py +++ b/scripts/extract_toolbox_sections.py @@ -89,7 +89,7 @@ def main(): newelements.append("\n ") contents = (contents[0:addelementsatposition] + newelements + - contents[addelementsatposition:]) + contents[addelementsatposition:]) # add .new for testing/safety purposes :P newtoolconffile = open(toolconffile, 'w') diff --git a/scripts/helper.py b/scripts/helper.py index ba7f26257c8..0257950dce0 100644 --- a/scripts/helper.py +++ b/scripts/helper.py @@ -33,8 +33,8 @@ except: options.config = os.path.abspath(options.config) config = ConfigParser(dict(file_path='database/files', - id_secret='USING THE DEFAULT IS NOT SECURE!', - database_connection='sqlite:///database/universe.sqlite?isolation_level=IMMEDIATE')) + id_secret='USING THE DEFAULT IS NOT SECURE!', + database_connection='sqlite:///database/universe.sqlite?isolation_level=IMMEDIATE')) config.read(options.config) helper = security.SecurityHelper(id_secret=config.get('app:main', 'id_secret')) diff --git a/scripts/loc_files/create_all_fasta_loc.py b/scripts/loc_files/create_all_fasta_loc.py index f94f8d49592..6f2e7173565 100644 --- a/scripts/loc_files/create_all_fasta_loc.py +++ b/scripts/loc_files/create_all_fasta_loc.py @@ -39,107 +39,107 @@ VARIANTS = 'chrM,chr21,full,canon,female,male,haps,nohaps' VARIANT_EXCLUSIONS = ':full' DBKEY_DESCRIPTION_MAP = {'AaegL1': 'Mosquito (Aedes aegypti): AaegL1', - 'AgamP3': 'Mosquito (Anopheles gambiae): AgamP3', - 'anoCar1': 'Lizard (Anolis carolinensis): anoCar1', - 'anoGam1': 'Mosquito (Anopheles gambiae): anoGam1', - 'apiMel1': 'Honeybee (Apis mellifera): apiMel1', - 'apiMel2': 'Honeybee (Apis mellifera): apiMel2', - 'apiMel3': 'Honeybee (Apis mellifera): apiMel3', - 'Arabidopsis_thaliana_TAIR9': '', - 'borEut13': 'Boreoeutherian: borEut13', - 'bosTau2': 'Cow (Bos taurus): bosTau2', - 'bosTau3': 'Cow (Bos taurus): bosTau3', - 'bosTau4': 'Cow (Bos taurus): bosTau4', - 'bosTauMd3': 'Cow (Bos taurus): bosTauMd3', - 'calJac1': 'Marmoset (Callithrix jacchus): calJac1', - 'canFam1': 'Dog (Canis lupus familiaris): canFam1', - 'canFam2': 'Dog (Canis lupus familiaris): canFam2', - 'cavPor3': 'Guinea Pig (Cavia porcellus): cavPor3', - 'ce2': 'Caenorhabditis elegans: ce2', - 'ce4': 'Caenorhabditis elegans: ce4', - 'ce5': 'Caenorhabditis elegans: ce5', - 'ce6': 'Caenorhabditis elegans: ce6', - 'CpipJ1': 'Mosquito (Culex quinquefasciatus): CpipJ1', - 'danRer2': 'Zebrafish (Danio rerio): danRer2', - 'danRer3': 'Zebrafish (Danio rerio): danRer3', - 'danRer4': 'Zebrafish (Danio rerio): danRer4', - 'danRer5': 'Zebrafish (Danio rerio): danRer5', - 'danRer6': 'Zebrafish (Danio rerio): danRer6', - 'dm1': 'Fruit Fly (Drosophila melanogaster): dm1', - 'dm2': 'Fruit Fly (Drosophila melanogaster): dm2', - 'dm3': 'Fruit Fly (Drosophila melanogaster): dm3', - 'dm4': 'Fruit Fly (Drosophila melanogaster): dm', - 'dp3': 'Fruit Fly (Drosophila pseudoobscura): dp3', - 'dp4': 'Fruit Fly (Drosophila pseudoobscura): dp4', - 'droAna1': 'Fruit Fly (Drosophila ananassae): droAna1', - 'droAna2': 'Fruit Fly (Drosophila ananassae): droAna2', - 'droAna3': 'Fruit Fly (Drosophila ananassae): droAna3', - 'droEre1': 'Fruit Fly (Drosophila erecta): droEre1', - 'droEre2': 'Fruit Fly (Drosophila erecta): droEre2', - 'droGri1': 'Fruit Fly (Drosophila grimshawi): droGri1', - 'droGri2': 'Fruit Fly (Drosophila grimshawi): droGri2', - 'droMoj1': 'Fruit Fly (Drosophila mojavensis): droMoj1', - 'droMoj2': 'Fruit Fly (Drosophila mojavensis): droMoj2', - 'droMoj3': 'Fruit Fly (Drosophila mojavensis): droMoj3', - 'droPer1': 'Fruit Fly (Drosophila persimilis): droPer1', - 'droSec1': 'Fruit Fly (Drosophila sechellia): droSec1', - 'droSim1': 'Fruit Fly (Drosophila simulans): droSim1', - 'droVir1': 'Fruit Fly (Drosophila virilis): droVir1', - 'droVir2': 'Fruit Fly (Drosophila virilis): droVir2', - 'droVir3': 'Fruit Fly (Drosophila virilis): droVir3', - 'droYak1': 'Fruit Fly (Drosophila yakuba): droYak1', - 'droYak2': 'Fruit Fly (Drosophila yakuba): droYak2', - 'echTel1': 'Tenrec (Echinops telfairi): echTel1', - 'equCab1': 'Horse (Equus caballus): equCab1', - 'equCab2': 'Horse (Equus caballus): equCab2', - 'eriEur1': 'Hedgehog (Erinaceus europaeus): eriEur1', - 'felCat3': 'Cat (Felis catus): felCat3', - 'fr1': 'Fugu (Takifugu rubripes): fr1', - 'fr2': 'Fugu (Takifugu rubripes): fr2', - 'galGal2': 'Chicken (Gallus gallus): galGal2', - 'galGal3': 'Chicken (Gallus gallus): galGal3', - 'gasAcu1': 'Stickleback (Gasterosteus aculeatus): gasAcu1', - 'hg16': 'Human (Homo sapiens): hg16', - 'hg17': 'Human (Homo sapiens): hg17', - 'hg18': 'Human (Homo sapiens): hg18', - 'hg19': 'Human (Homo sapiens): hg19', - 'IscaW1': 'Deer Tick (Ixodes scapularis): IscaW1', - 'lMaj5': 'Leishmania major: lMaj5', - 'mm5': 'Mouse (Mus musculus): mm5', - 'mm6': 'Mouse (Mus musculus): mm6', - 'mm7': 'Mouse (Mus musculus): mm7', - 'mm8': 'Mouse (Mus musculus): mm8', - 'mm9': 'Mouse (Mus musculus): mm9', - 'monDom4': 'Opossum (Monodelphis domestica): monDom4', - 'monDom5': 'Opossum (Monodelphis domestica): monDom5', - 'ornAna1': 'Platypus (Ornithorhynchus anatinus): ornAna1', - 'oryCun1': 'Rabbit (Oryctolagus cuniculus): oryCun1', - 'oryLat1': 'Medaka (Oryzias latipes): oryLat1', - 'oryLat2': 'Medaka (Oryzias latipes): oryLat2', - 'oryza_sativa_japonica_nipponbare_IRGSP4.0': 'Rice (Oryza sativa L. ssp. japonica var. Nipponbare): IRGSP4.0', - 'otoGar1': 'Bushbaby (Otolemur garnetti): otoGar1', - 'panTro1': 'Chimpanzee (Pan troglodytes): panTro1', - 'panTro2': 'Chimpanzee (Pan troglodytes): panTro2', - 'petMar1': 'Lamprey (Petromyzon marinus): petMar1', - 'phiX': 'phiX174 (AF176034)', - 'PhumU1': 'Head Louse (Pediculus humanus): PhumU1', - 'ponAbe2': 'Orangutan (Pongo pygmaeus abelii): ponAbe2', - 'pUC18': 'pUC18 (L09136)', - 'rheMac2': 'Rhesus Macaque (Macaca mulatta): rheMac2', - 'rn3': 'Rat (Rattus norvegicus): rn3', - 'rn4': 'Rat (Rattus norvegicus): rn4', - 'sacCer1': 'Yeast (Saccharomyces cerevisiae): sacCer1', - 'sacCer2': 'Yeast (Saccharomyces cerevisiae): sacCer2', - 'sorAra1': 'Common Shrew (Sorex araneus): sorAra1', - 'Sscrofa9.58': 'Pig (Sus scrofa): Sscrofa9.58', - 'strPur2': 'Purple Sea Urchin (Strongylocentrotus purpuratus): strPur2', - 'susScr2': 'Pig (Sus scrofa): susScr2', - 'taeGut1': 'Zebra Finch (Taeniopygia guttata): taeGut1', - 'tetNig1': 'Tetraodon (Tetraodon nigroviridis): tetNig1', - 'tetNig2': 'Tetraodon (Tetraodon nigroviridis): tetNig2', - 'tupBel1': 'Tree Shrew (Tupaia belangeri): tupBel1', - 'venter1': 'Human (J. Craig Venter): venter1', - 'xenTro2': 'Frog (Xenopus tropicalis): xenTro2'} + 'AgamP3': 'Mosquito (Anopheles gambiae): AgamP3', + 'anoCar1': 'Lizard (Anolis carolinensis): anoCar1', + 'anoGam1': 'Mosquito (Anopheles gambiae): anoGam1', + 'apiMel1': 'Honeybee (Apis mellifera): apiMel1', + 'apiMel2': 'Honeybee (Apis mellifera): apiMel2', + 'apiMel3': 'Honeybee (Apis mellifera): apiMel3', + 'Arabidopsis_thaliana_TAIR9': '', + 'borEut13': 'Boreoeutherian: borEut13', + 'bosTau2': 'Cow (Bos taurus): bosTau2', + 'bosTau3': 'Cow (Bos taurus): bosTau3', + 'bosTau4': 'Cow (Bos taurus): bosTau4', + 'bosTauMd3': 'Cow (Bos taurus): bosTauMd3', + 'calJac1': 'Marmoset (Callithrix jacchus): calJac1', + 'canFam1': 'Dog (Canis lupus familiaris): canFam1', + 'canFam2': 'Dog (Canis lupus familiaris): canFam2', + 'cavPor3': 'Guinea Pig (Cavia porcellus): cavPor3', + 'ce2': 'Caenorhabditis elegans: ce2', + 'ce4': 'Caenorhabditis elegans: ce4', + 'ce5': 'Caenorhabditis elegans: ce5', + 'ce6': 'Caenorhabditis elegans: ce6', + 'CpipJ1': 'Mosquito (Culex quinquefasciatus): CpipJ1', + 'danRer2': 'Zebrafish (Danio rerio): danRer2', + 'danRer3': 'Zebrafish (Danio rerio): danRer3', + 'danRer4': 'Zebrafish (Danio rerio): danRer4', + 'danRer5': 'Zebrafish (Danio rerio): danRer5', + 'danRer6': 'Zebrafish (Danio rerio): danRer6', + 'dm1': 'Fruit Fly (Drosophila melanogaster): dm1', + 'dm2': 'Fruit Fly (Drosophila melanogaster): dm2', + 'dm3': 'Fruit Fly (Drosophila melanogaster): dm3', + 'dm4': 'Fruit Fly (Drosophila melanogaster): dm', + 'dp3': 'Fruit Fly (Drosophila pseudoobscura): dp3', + 'dp4': 'Fruit Fly (Drosophila pseudoobscura): dp4', + 'droAna1': 'Fruit Fly (Drosophila ananassae): droAna1', + 'droAna2': 'Fruit Fly (Drosophila ananassae): droAna2', + 'droAna3': 'Fruit Fly (Drosophila ananassae): droAna3', + 'droEre1': 'Fruit Fly (Drosophila erecta): droEre1', + 'droEre2': 'Fruit Fly (Drosophila erecta): droEre2', + 'droGri1': 'Fruit Fly (Drosophila grimshawi): droGri1', + 'droGri2': 'Fruit Fly (Drosophila grimshawi): droGri2', + 'droMoj1': 'Fruit Fly (Drosophila mojavensis): droMoj1', + 'droMoj2': 'Fruit Fly (Drosophila mojavensis): droMoj2', + 'droMoj3': 'Fruit Fly (Drosophila mojavensis): droMoj3', + 'droPer1': 'Fruit Fly (Drosophila persimilis): droPer1', + 'droSec1': 'Fruit Fly (Drosophila sechellia): droSec1', + 'droSim1': 'Fruit Fly (Drosophila simulans): droSim1', + 'droVir1': 'Fruit Fly (Drosophila virilis): droVir1', + 'droVir2': 'Fruit Fly (Drosophila virilis): droVir2', + 'droVir3': 'Fruit Fly (Drosophila virilis): droVir3', + 'droYak1': 'Fruit Fly (Drosophila yakuba): droYak1', + 'droYak2': 'Fruit Fly (Drosophila yakuba): droYak2', + 'echTel1': 'Tenrec (Echinops telfairi): echTel1', + 'equCab1': 'Horse (Equus caballus): equCab1', + 'equCab2': 'Horse (Equus caballus): equCab2', + 'eriEur1': 'Hedgehog (Erinaceus europaeus): eriEur1', + 'felCat3': 'Cat (Felis catus): felCat3', + 'fr1': 'Fugu (Takifugu rubripes): fr1', + 'fr2': 'Fugu (Takifugu rubripes): fr2', + 'galGal2': 'Chicken (Gallus gallus): galGal2', + 'galGal3': 'Chicken (Gallus gallus): galGal3', + 'gasAcu1': 'Stickleback (Gasterosteus aculeatus): gasAcu1', + 'hg16': 'Human (Homo sapiens): hg16', + 'hg17': 'Human (Homo sapiens): hg17', + 'hg18': 'Human (Homo sapiens): hg18', + 'hg19': 'Human (Homo sapiens): hg19', + 'IscaW1': 'Deer Tick (Ixodes scapularis): IscaW1', + 'lMaj5': 'Leishmania major: lMaj5', + 'mm5': 'Mouse (Mus musculus): mm5', + 'mm6': 'Mouse (Mus musculus): mm6', + 'mm7': 'Mouse (Mus musculus): mm7', + 'mm8': 'Mouse (Mus musculus): mm8', + 'mm9': 'Mouse (Mus musculus): mm9', + 'monDom4': 'Opossum (Monodelphis domestica): monDom4', + 'monDom5': 'Opossum (Monodelphis domestica): monDom5', + 'ornAna1': 'Platypus (Ornithorhynchus anatinus): ornAna1', + 'oryCun1': 'Rabbit (Oryctolagus cuniculus): oryCun1', + 'oryLat1': 'Medaka (Oryzias latipes): oryLat1', + 'oryLat2': 'Medaka (Oryzias latipes): oryLat2', + 'oryza_sativa_japonica_nipponbare_IRGSP4.0': 'Rice (Oryza sativa L. ssp. japonica var. Nipponbare): IRGSP4.0', + 'otoGar1': 'Bushbaby (Otolemur garnetti): otoGar1', + 'panTro1': 'Chimpanzee (Pan troglodytes): panTro1', + 'panTro2': 'Chimpanzee (Pan troglodytes): panTro2', + 'petMar1': 'Lamprey (Petromyzon marinus): petMar1', + 'phiX': 'phiX174 (AF176034)', + 'PhumU1': 'Head Louse (Pediculus humanus): PhumU1', + 'ponAbe2': 'Orangutan (Pongo pygmaeus abelii): ponAbe2', + 'pUC18': 'pUC18 (L09136)', + 'rheMac2': 'Rhesus Macaque (Macaca mulatta): rheMac2', + 'rn3': 'Rat (Rattus norvegicus): rn3', + 'rn4': 'Rat (Rattus norvegicus): rn4', + 'sacCer1': 'Yeast (Saccharomyces cerevisiae): sacCer1', + 'sacCer2': 'Yeast (Saccharomyces cerevisiae): sacCer2', + 'sorAra1': 'Common Shrew (Sorex araneus): sorAra1', + 'Sscrofa9.58': 'Pig (Sus scrofa): Sscrofa9.58', + 'strPur2': 'Purple Sea Urchin (Strongylocentrotus purpuratus): strPur2', + 'susScr2': 'Pig (Sus scrofa): susScr2', + 'taeGut1': 'Zebra Finch (Taeniopygia guttata): taeGut1', + 'tetNig1': 'Tetraodon (Tetraodon nigroviridis): tetNig1', + 'tetNig2': 'Tetraodon (Tetraodon nigroviridis): tetNig2', + 'tupBel1': 'Tree Shrew (Tupaia belangeri): tupBel1', + 'venter1': 'Human (J. Craig Venter): venter1', + 'xenTro2': 'Frog (Xenopus tropicalis): xenTro2'} VARIANT_MAP = {'canon': 'Canonical', 'full': 'Full', diff --git a/scripts/microbes/BeautifulSoup.py b/scripts/microbes/BeautifulSoup.py index 8cafb7c17dc..6e8a8efd22c 100644 --- a/scripts/microbes/BeautifulSoup.py +++ b/scripts/microbes/BeautifulSoup.py @@ -404,10 +404,10 @@ class Tag(PageElement): """Represents a found HTML tag with its attributes and contents.""" XML_ENTITIES_TO_CHARS = {'apos': "'", - "quot": '"', - "amp": "&", - "lt": "<", - "gt": ">" + "quot": '"', + "amp": "&", + "lt": "<", + "gt": ">" } # An RE for finding ampersands that aren't the start of of a # numeric entity. @@ -1341,11 +1341,11 @@ class BeautifulSoup(BeautifulStoneSoup): # Lists can contain other lists, but there are restrictions. NESTABLE_LIST_TAGS = {'ol': [], - 'ul': [], - 'li': ['ul', 'ol'], - 'dl': [], - 'dd': ['dl'], - 'dt': ['dl']} + 'ul': [], + 'li': ['ul', 'ol'], + 'dl': [], + 'dd': ['dl'], + 'dt': ['dl']} # Tables can contain other tables, but there are restrictions. NESTABLE_TABLE_TAGS = {'table': [], @@ -1564,7 +1564,7 @@ class UnicodeDammit: # values that aren't in Python's aliases and can't be determined # by the heuristics in find_codec. CHARSET_ALIASES = {"macintosh": "mac-roman", - "x-sjis": "shift-jis"} + "x-sjis": "shift-jis"} def __init__(self, markup, overrideEncodings=[], smartQuotesTo='xml'): @@ -1767,37 +1767,37 @@ class UnicodeDammit: return s.translate(c.EBCDIC_TO_ASCII_MAP) MS_CHARS = {'\x80': ('euro', '20AC'), - '\x81': ' ', - '\x82': ('sbquo', '201A'), - '\x83': ('fnof', '192'), - '\x84': ('bdquo', '201E'), - '\x85': ('hellip', '2026'), - '\x86': ('dagger', '2020'), - '\x87': ('Dagger', '2021'), - '\x88': ('circ', '2C6'), - '\x89': ('permil', '2030'), - '\x8A': ('Scaron', '160'), - '\x8B': ('lsaquo', '2039'), - '\x8C': ('OElig', '152'), - '\x8D': '?', - '\x8E': ('#x17D', '17D'), - '\x8F': '?', - '\x90': '?', - '\x91': ('lsquo', '2018'), - '\x92': ('rsquo', '2019'), - '\x93': ('ldquo', '201C'), - '\x94': ('rdquo', '201D'), - '\x95': ('bull', '2022'), - '\x96': ('ndash', '2013'), - '\x97': ('mdash', '2014'), - '\x98': ('tilde', '2DC'), - '\x99': ('trade', '2122'), - '\x9a': ('scaron', '161'), - '\x9b': ('rsaquo', '203A'), - '\x9c': ('oelig', '153'), - '\x9d': '?', - '\x9e': ('#x17E', '17E'), - '\x9f': ('Yuml', '178')} + '\x81': ' ', + '\x82': ('sbquo', '201A'), + '\x83': ('fnof', '192'), + '\x84': ('bdquo', '201E'), + '\x85': ('hellip', '2026'), + '\x86': ('dagger', '2020'), + '\x87': ('Dagger', '2021'), + '\x88': ('circ', '2C6'), + '\x89': ('permil', '2030'), + '\x8A': ('Scaron', '160'), + '\x8B': ('lsaquo', '2039'), + '\x8C': ('OElig', '152'), + '\x8D': '?', + '\x8E': ('#x17D', '17D'), + '\x8F': '?', + '\x90': '?', + '\x91': ('lsquo', '2018'), + '\x92': ('rsquo', '2019'), + '\x93': ('ldquo', '201C'), + '\x94': ('rdquo', '201D'), + '\x95': ('bull', '2022'), + '\x96': ('ndash', '2013'), + '\x97': ('mdash', '2014'), + '\x98': ('tilde', '2DC'), + '\x99': ('trade', '2122'), + '\x9a': ('scaron', '161'), + '\x9b': ('rsaquo', '203A'), + '\x9c': ('oelig', '153'), + '\x9d': '?', + '\x9e': ('#x17E', '17E'), + '\x9f': ('Yuml', '178')} ####################################################################### diff --git a/scripts/others/incorrect_gops_jobs.py b/scripts/others/incorrect_gops_jobs.py index 757b716c602..30b081a2deb 100755 --- a/scripts/others/incorrect_gops_jobs.py +++ b/scripts/others/incorrect_gops_jobs.py @@ -43,14 +43,14 @@ def main(): jobs = {} try: for job in app.model.Job.filter(sa.and_(app.model.Job.table.c.create_time.between('2008-05-23', '2008-11-29'), - app.model.Job.table.c.state == 'ok', - sa.or_(sa.and_(sa.or_(app.model.Job.table.c.tool_id == 'gops_intersect_1', - app.model.Job.table.c.tool_id == 'gops_subtract_1', - app.model.Job.table.c.tool_id == 'gops_coverage_1'), - sa.not_(app.model.Job.table.c.command_line.like('%-2 1,2,3%'))), - sa.and_(sa.or_(app.model.Job.table.c.tool_id == 'gops_complement_1', - app.model.Job.table.c.tool_id == 'gops_merge_1'), - sa.not_(app.model.Job.table.c.command_line.like('%-1 1,2,3%')))))).all(): + app.model.Job.table.c.state == 'ok', + sa.or_(sa.and_(sa.or_(app.model.Job.table.c.tool_id == 'gops_intersect_1', + app.model.Job.table.c.tool_id == 'gops_subtract_1', + app.model.Job.table.c.tool_id == 'gops_coverage_1'), + sa.not_(app.model.Job.table.c.command_line.like('%-2 1,2,3%'))), + sa.and_(sa.or_(app.model.Job.table.c.tool_id == 'gops_complement_1', + app.model.Job.table.c.tool_id == 'gops_merge_1'), + sa.not_(app.model.Job.table.c.command_line.like('%-1 1,2,3%')))))).all(): print "# processing job id %s" % str(job.id) for jtoda in job.output_datasets: print "# --> processing JobToOutputDatasetAssociation id %s" % str(jtoda.id) diff --git a/scripts/others/incorrect_gops_join_jobs.py b/scripts/others/incorrect_gops_join_jobs.py index c5c145dafee..328db003ccb 100644 --- a/scripts/others/incorrect_gops_join_jobs.py +++ b/scripts/others/incorrect_gops_join_jobs.py @@ -42,9 +42,9 @@ def main(): jobs = {} try: for job in app.model.Job.filter(sa.and_(app.model.Job.table.c.create_time < '2008-12-16', - app.model.Job.table.c.state == 'ok', - app.model.Job.table.c.tool_id == 'gops_join_1', - sa.not_(app.model.Job.table.c.command_line.like('%-m 1 %')))).all(): + app.model.Job.table.c.state == 'ok', + app.model.Job.table.c.tool_id == 'gops_join_1', + sa.not_(app.model.Job.table.c.command_line.like('%-m 1 %')))).all(): print "# processing job id %s" % str(job.id) for jtoda in job.output_datasets: print "# --> processing JobToOutputDatasetAssociation id %s" % str(jtoda.id) diff --git a/scripts/set_dataset_sizes.py b/scripts/set_dataset_sizes.py index 07af285ef95..1bd446c04c1 100644 --- a/scripts/set_dataset_sizes.py +++ b/scripts/set_dataset_sizes.py @@ -21,7 +21,7 @@ def init(): options.config = os.path.abspath(options.config) config_parser = ConfigParser(dict(here=os.getcwd(), - database_connection='sqlite:///database/universe.sqlite?isolation_level=IMMEDIATE')) + database_connection='sqlite:///database/universe.sqlite?isolation_level=IMMEDIATE')) config_parser.read(options.config) config_dict = {} diff --git a/scripts/set_user_disk_usage.py b/scripts/set_user_disk_usage.py index 75e2e264ffa..40ef34d6838 100755 --- a/scripts/set_user_disk_usage.py +++ b/scripts/set_user_disk_usage.py @@ -30,7 +30,7 @@ def init(): options.email = None config_parser = ConfigParser(dict(here=os.getcwd(), - database_connection='sqlite:///database/universe.sqlite?isolation_level=IMMEDIATE')) + database_connection='sqlite:///database/universe.sqlite?isolation_level=IMMEDIATE')) config_parser.read(options.config) config_dict = {} diff --git a/scripts/tool_shed/api/common.py b/scripts/tool_shed/api/common.py index 58cac120155..97462c7d3cc 100644 --- a/scripts/tool_shed/api/common.py +++ b/scripts/tool_shed/api/common.py @@ -26,10 +26,10 @@ class HTTPRedirectWithDataHandler(urllib2.HTTPRedirectHandler): if str(code) in self.redirect_codes and request_method in self.valid_methods: new_url = new_url.replace(' ', '%20') request = urllib2.Request(new_url, - data=request.data, - headers=request.headers, - origin_req_host=request.get_origin_req_host(), - unverifiable=True) + data=request.data, + headers=request.headers, + origin_req_host=request.get_origin_req_host(), + unverifiable=True) if self.method in self.valid_methods: if request.get_method() != self.method: request.get_method = lambda: self.method diff --git a/scripts/tool_shed/api/create_categories.py b/scripts/tool_shed/api/create_categories.py index 2aa1b659a32..b26be8c068b 100644 --- a/scripts/tool_shed/api/create_categories.py +++ b/scripts/tool_shed/api/create_categories.py @@ -36,7 +36,7 @@ def main(options): description = category_dict.get('description', None) if name is not None and description is not None: data = dict(name=name, - description=description) + description=description) url = '%s/api/categories' % to_tool_shed try: response = submit(url, data, api_key) diff --git a/scripts/tool_shed/api/create_users.py b/scripts/tool_shed/api/create_users.py index 47f5f6c8137..83dc19c1ab4 100644 --- a/scripts/tool_shed/api/create_users.py +++ b/scripts/tool_shed/api/create_users.py @@ -38,8 +38,8 @@ def main(options): email = '%s@test.org' % username password = 'testuser' data = dict(email=email, - password=password, - username=username) + password=password, + username=username) url = '%s/api/users' % to_tool_shed try: response = submit(url, data, api_key) diff --git a/scripts/tool_shed/api/export.py b/scripts/tool_shed/api/export.py index db169d29bbc..a198fffd966 100644 --- a/scripts/tool_shed/api/export.py +++ b/scripts/tool_shed/api/export.py @@ -24,21 +24,21 @@ CHUNK_SIZE = 2 ** 20 # 1Mb def generate_repository_archive_filename(tool_shed_url, name, owner, changeset_revision, file_type, - export_repository_dependencies, use_tmp_archive_dir=False): + export_repository_dependencies, use_tmp_archive_dir=False): tool_shed = remove_protocol_from_tool_shed_url(tool_shed_url) file_type_str = basic_util.get_file_type_str(changeset_revision, file_type) if export_repository_dependencies: repositories_archive_filename = '%s_%s_%s_%s_%s' % (CAPSULE_WITH_DEPENDENCIES_FILENAME, - tool_shed, - name, - owner, - file_type_str) + tool_shed, + name, + owner, + file_type_str) else: repositories_archive_filename = '%s_%s_%s_%s_%s' % (CAPSULE_FILENAME, - tool_shed, - name, - owner, - file_type_str) + tool_shed, + name, + owner, + file_type_str) if use_tmp_archive_dir: tmp_archive_dir = tempfile.mkdtemp(prefix="tmp-toolshed-arcdir") repositories_archive_filename = os.path.join(tmp_archive_dir, repositories_archive_filename) @@ -89,12 +89,12 @@ def main(options): export_repository_dependencies = string_as_bool(options.export_repository_dependencies) repositories_archive_filename = \ generate_repository_archive_filename(base_tool_shed_url, - options.name, - options.owner, - options.changeset_revision, - file_type, - export_repository_dependencies=export_repository_dependencies, - use_tmp_archive_dir=False) + options.name, + options.owner, + options.changeset_revision, + file_type, + export_repository_dependencies=export_repository_dependencies, + use_tmp_archive_dir=False) download_url = export_dict['download_url'] download_dir = os.path.abspath(options.download_dir) file_path = os.path.join(download_dir, repositories_archive_filename) diff --git a/scripts/tool_shed/api/get_filtered_repository_revisions.py b/scripts/tool_shed/api/get_filtered_repository_revisions.py index 3651a650049..a59911fc40c 100644 --- a/scripts/tool_shed/api/get_filtered_repository_revisions.py +++ b/scripts/tool_shed/api/get_filtered_repository_revisions.py @@ -44,13 +44,13 @@ def main(options): tools_functionally_correct = str(options.tools_functionally_correct) parts = ['repository_revisions'] params = dict(do_not_test=do_not_test, - downloadable=downloadable, - includes_tools=includes_tools, - malicious=malicious, - missing_test_components=missing_test_components, - skip_tool_test=skip_tool_test, - test_install_error=test_install_error, - tools_functionally_correct=tools_functionally_correct) + downloadable=downloadable, + includes_tools=includes_tools, + malicious=malicious, + missing_test_components=missing_test_components, + skip_tool_test=skip_tool_test, + test_install_error=test_install_error, + tools_functionally_correct=tools_functionally_correct) api_url = get_api_url(base=base_tool_shed_url, parts=parts, params=params) baseline_repository_dicts, error_message = json_from_url(api_url) if baseline_repository_dicts is None or error_message: @@ -84,7 +84,7 @@ if __name__ == '__main__': parser = argparse.ArgumentParser(description='Get a filtered list of repository dictionaries.') parser.add_argument("-u", "--url", dest="tool_shed_url", required=True, help="Tool Shed URL") parser.add_argument("-l", "--latest_revision_only", dest="latest_revision_only", default=True, - help="Restrict results to latest downloadable revision only") + help="Restrict results to latest downloadable revision only") parser.add_argument("-n", "--do_not_test", help="do_not_test", default=False) parser.add_argument("-d", "--downloadable", help="downloadable", default=True) parser.add_argument("-i", "--includes_tools", help="includes_tools", default=True) diff --git a/scripts/tool_shed/api/reset_metadata_on_repositories.py b/scripts/tool_shed/api/reset_metadata_on_repositories.py index 3f42922374b..6c14253af42 100644 --- a/scripts/tool_shed/api/reset_metadata_on_repositories.py +++ b/scripts/tool_shed/api/reset_metadata_on_repositories.py @@ -70,7 +70,7 @@ def main(options): sys.exit(1) else: data = dict(encoded_ids_to_skip=encoded_ids_to_skip, - my_writable=my_writable) + my_writable=my_writable) url = '%s/api/repositories/reset_metadata_on_repositories' % base_tool_shed_url try: submit(url, data, options.api) diff --git a/scripts/tool_shed/bootstrap_tool_shed/create_user_with_api_key.py b/scripts/tool_shed/bootstrap_tool_shed/create_user_with_api_key.py index f7bd90f80ea..4d1d20658ad 100644 --- a/scripts/tool_shed/bootstrap_tool_shed/create_user_with_api_key.py +++ b/scripts/tool_shed/bootstrap_tool_shed/create_user_with_api_key.py @@ -35,9 +35,9 @@ class BootstrapApplication(object): print 'Using database connection: ', self.config.database_connection # Setup the database engine and ORM self.model = mapping.init(self.config.file_path, - self.config.database_connection, - engine_options={}, - create_tables=False) + self.config.database_connection, + engine_options={}, + create_tables=False) self.security = security.SecurityHelper(id_secret=self.config.id_secret) self.hgweb_config_manager = self.model.hgweb_config_manager self.hgweb_config_manager.hgweb_config_dir = self.config.hgweb_config_dir diff --git a/scripts/tool_shed/build_ts_whoosh_index.py b/scripts/tool_shed/build_ts_whoosh_index.py index 86ffc3b1dca..ce15e0fbd62 100644 --- a/scripts/tool_shed/build_ts_whoosh_index.py +++ b/scripts/tool_shed/build_ts_whoosh_index.py @@ -97,13 +97,13 @@ def build_index(sa_session, whoosh_index_dir, path_to_repositories): for tool in repo.get('tools_list'): # print tool tool_index_writer.add_document(id=to_unicode(tool.get('id')), - name=to_unicode(tool.get('name')), - version=to_unicode(tool.get('version')), - description=to_unicode(tool.get('description')), - help=to_unicode(tool.get('help')), - repo_owner_username=to_unicode(repo.get('repo_owner_username')), - repo_name=to_unicode(repo.get('name')), - repo_id=repo.get('id')) + name=to_unicode(tool.get('name')), + version=to_unicode(tool.get('version')), + description=to_unicode(tool.get('description')), + help=to_unicode(tool.get('help')), + repo_owner_username=to_unicode(repo.get('repo_owner_username')), + repo_name=to_unicode(repo.get('name')), + repo_id=repo.get('id')) tools_indexed += 1 print tools_indexed, 'tools (', tool.get('id'), ')' @@ -164,17 +164,17 @@ def get_repos(sa_session, path_to_repositories): tools_list.extend(tools_in_dir) results.append(dict(id=repo_id, - name=name, - description=description, - long_description=long_description, - homepage_url=homepage_url, - remote_repository_url=remote_repository_url, - repo_owner_username=repo_owner_username, - times_downloaded=times_downloaded, - approved=approved, - last_updated=last_updated, - full_last_updated=full_last_updated, - tools_list=tools_list)) + name=name, + description=description, + long_description=long_description, + homepage_url=homepage_url, + remote_repository_url=remote_repository_url, + repo_owner_username=repo_owner_username, + times_downloaded=times_downloaded, + approved=approved, + last_updated=last_updated, + full_last_updated=full_last_updated, + tools_list=tools_list)) return results @@ -191,8 +191,8 @@ def load_one_dir(path): if root.find('description') is not None: tool.update(dict(description=root.find('description').text)) tool.update(dict(id=root.attrib.get('id'), - name=root.attrib.get('name'), - version=root.attrib.get('version'))) + name=root.attrib.get('name'), + version=root.attrib.get('version'))) tools_in_dir.append(tool) return tools_in_dir diff --git a/scripts/tool_shed/check_filesystem_for_empty_tool_dependency_installation_paths.py b/scripts/tool_shed/check_filesystem_for_empty_tool_dependency_installation_paths.py index 75b7508e8c1..49271dc0b63 100644 --- a/scripts/tool_shed/check_filesystem_for_empty_tool_dependency_installation_paths.py +++ b/scripts/tool_shed/check_filesystem_for_empty_tool_dependency_installation_paths.py @@ -55,16 +55,16 @@ if __name__ == '__main__': description += 'the --delete command line argument is provided.' parser = argparse.ArgumentParser(description=description) parser.add_argument('--delete', - dest='delete', - required=False, - action='store_true', - default=False, - help='Whether to delete empty folders or list them on exit.') + dest='delete', + required=False, + action='store_true', + default=False, + help='Whether to delete empty folders or list them on exit.') parser.add_argument('--basepath', - dest='basepath', - required=True, - action='store', - metavar='name', - help='The base path where tool dependencies are installed.') + dest='basepath', + required=True, + action='store', + metavar='name', + help='The base path where tool dependencies are installed.') args = parser.parse_args() sys.exit(main(args)) diff --git a/scripts/tool_shed/check_s3_for_empty_tool_dependency_installation_paths.py b/scripts/tool_shed/check_s3_for_empty_tool_dependency_installation_paths.py index fcaeff64d28..3366c2cea55 100644 --- a/scripts/tool_shed/check_s3_for_empty_tool_dependency_installation_paths.py +++ b/scripts/tool_shed/check_s3_for_empty_tool_dependency_installation_paths.py @@ -116,38 +116,38 @@ if __name__ == '__main__': description += 'the --delete command line argument is provided with a true value.' parser = argparse.ArgumentParser(description=description) parser.add_argument('--delete', - dest='delete', - required=True, - action='store', - default=False, - type=asbool, - help='Whether to delete empty folders or list them on exit.') + dest='delete', + required=True, + action='store', + default=False, + type=asbool, + help='Whether to delete empty folders or list them on exit.') parser.add_argument('--bucket', - dest='bucket', - required=True, - action='store', - metavar='name', - help='The S3 bucket where tool dependencies are installed.') + dest='bucket', + required=True, + action='store', + metavar='name', + help='The S3 bucket where tool dependencies are installed.') parser.add_argument('--id', - dest='id', - required=False, - action='store', - default=None, - metavar='ACCESS_KEY', - help='The identifier for an amazon account that has read access to the bucket.') + dest='id', + required=False, + action='store', + default=None, + metavar='ACCESS_KEY', + help='The identifier for an amazon account that has read access to the bucket.') parser.add_argument('--secret', - dest='secret', - required=False, - action='store', - default=None, - metavar='SECRET_KEY', - help='The secret key for an amazon account that has upload/delete access to the bucket.') + dest='secret', + required=False, + action='store', + default=None, + metavar='SECRET_KEY', + help='The secret key for an amazon account that has upload/delete access to the bucket.') parser.add_argument('--s3passwd', - dest='s3passwd', - required=False, - action='store', - default=None, - metavar='path/file', - help='The path to a file containing Amazon access credentials, in the format KEY:SECRET.') + dest='s3passwd', + required=False, + action='store', + default=None, + metavar='path/file', + help='The path to a file containing Amazon access credentials, in the format KEY:SECRET.') args = parser.parse_args() sys.exit(main(args)) diff --git a/scripts/tool_shed/clean_up_tool_dependency_directory.py b/scripts/tool_shed/clean_up_tool_dependency_directory.py index e1cc940740d..3c5d7fccfa8 100644 --- a/scripts/tool_shed/clean_up_tool_dependency_directory.py +++ b/scripts/tool_shed/clean_up_tool_dependency_directory.py @@ -23,10 +23,10 @@ if __name__ == '__main__': description = 'Clean out the configured tool dependency path, creating it if it does not exist.' parser = argparse.ArgumentParser(description=description) parser.add_argument('--tool_dependency_dir', - dest='tool_dependency_dir', - required=True, - action='store', - metavar='name', - help='The base path where tool dependencies will be installed.') + dest='tool_dependency_dir', + required=True, + action='store', + metavar='name', + help='The base path where tool dependencies will be installed.') args = parser.parse_args() sys.exit(main(args)) diff --git a/scripts/tool_shed/deprecate_repositories_without_metadata.py b/scripts/tool_shed/deprecate_repositories_without_metadata.py index e97db323a44..f9f800e465b 100644 --- a/scripts/tool_shed/deprecate_repositories_without_metadata.py +++ b/scripts/tool_shed/deprecate_repositories_without_metadata.py @@ -105,18 +105,18 @@ def deprecate_repositories(app, cutoff_time, days=14, info_only=False, verbose=F # Get a unique list of repository ids from the repository_metadata table. Any repository ID found in this table is not # empty, and will not be checked. metadata_records = sa.select([distinct(app.model.RepositoryMetadata.table.c.repository_id)], - from_obj=app.model.RepositoryMetadata.table) \ - .execute() + from_obj=app.model.RepositoryMetadata.table) \ + .execute() for metadata_record in metadata_records: repository_ids_to_not_check.append(metadata_record.repository_id) # Get the repositories that are A) not present in the above list, and b) older than the specified time. # This will yield a list of repositories that have been created more than n days ago, but never populated. repository_query = sa.select([app.model.Repository.table.c.id], - whereclause=and_(app.model.Repository.table.c.create_time < cutoff_time, - app.model.Repository.table.c.deprecated == false(), - app.model.Repository.table.c.deleted == false(), - not_(app.model.Repository.table.c.id.in_(repository_ids_to_not_check))), - from_obj=[app.model.Repository.table]) + whereclause=and_(app.model.Repository.table.c.create_time < cutoff_time, + app.model.Repository.table.c.deprecated == false(), + app.model.Repository.table.c.deleted == false(), + not_(app.model.Repository.table.c.id.in_(repository_ids_to_not_check))), + from_obj=[app.model.Repository.table]) query_result = repository_query.execute() repositories = [] repositories_by_owner = {} diff --git a/scripts/tool_shed/migrate_tools_to_repositories.py b/scripts/tool_shed/migrate_tools_to_repositories.py index 25b560d9fed..c90a5299129 100644 --- a/scripts/tool_shed/migrate_tools_to_repositories.py +++ b/scripts/tool_shed/migrate_tools_to_repositories.py @@ -52,9 +52,9 @@ def directory_hash_id(id): def get_versions(app, item): """Get all versions of item whose state is a valid state""" valid_states = [app.model.Tool.states.NEW, - app.model.Tool.states.WAITING, - app.model.Tool.states.APPROVED, - app.model.Tool.states.ARCHIVED] + app.model.Tool.states.WAITING, + app.model.Tool.states.APPROVED, + app.model.Tool.states.ARCHIVED] versions = [item] this_item = item while item.newer_version: @@ -85,8 +85,8 @@ def create_repository_from_tool(app, sa_session, tool): repo_name = tool.tool_id.lower().replace(' ', '_') print "Creating repository '%s' in database" % (repo_name) repository = app.model.Repository(name=repo_name, - description=tool.description, - user_id=tool.user_id) + description=tool.description, + user_id=tool.user_id) # Flush to get the id sa_session.add(repository) sa_session.flush() @@ -116,8 +116,8 @@ def create_repository_from_tool(app, sa_session, tool): print "Associating ratings for tool '%s' with repository '%s'" % (tool.name, repository.name) for tra in tool.ratings: rra = app.model.RepositoryRatingAssociation(user=tra.user, - rating=tra.rating, - comment=tra.comment) + rating=tra.rating, + comment=tra.comment) rra.repository = repository sa_session.add(rra) sa_session.flush() diff --git a/scripts/tool_shed/show_tool_dependency_installation_dir_contents.py b/scripts/tool_shed/show_tool_dependency_installation_dir_contents.py index f467fd7a586..7978c4b205e 100644 --- a/scripts/tool_shed/show_tool_dependency_installation_dir_contents.py +++ b/scripts/tool_shed/show_tool_dependency_installation_dir_contents.py @@ -54,17 +54,17 @@ if __name__ == '__main__': description += '--delete command line argument is provided.' parser = argparse.ArgumentParser(description=description) parser.add_argument('--basepath', - dest='basepath', - required=True, - action='store', - metavar='name', - help='The base path where tool dependencies are installed.') + dest='basepath', + required=True, + action='store', + metavar='name', + help='The base path where tool dependencies are installed.') parser.add_argument('--dburi', - dest='dburi', - required=True, - action='store', - metavar='dburi', - help='The database URI to connect to.') + dest='dburi', + required=True, + action='store', + metavar='dburi', + help='The database URI to connect to.') args = parser.parse_args() database_connection = args.dburi config_dict = dict(database_connection=database_connection, tool_dependency_dir=args.basepath) diff --git a/scripts/transfer.py b/scripts/transfer.py index 1c7463f75c0..8bcb23f432e 100644 --- a/scripts/transfer.py +++ b/scripts/transfer.py @@ -52,7 +52,7 @@ class ArgHandler(object): def __init__(self): self.parser = optparse.OptionParser() self.parser.add_option('-c', '--config', dest='config', help='Path to Galaxy config file (config/galaxy.ini)', - default=os.path.abspath(os.path.join(galaxy_root, 'config/galaxy.ini'))) + default=os.path.abspath(os.path.join(galaxy_root, 'config/galaxy.ini'))) self.parser.add_option('-d', '--debug', action='store_true', dest='debug', help="Debug (don't detach)") self.parser.add_option('-s', '--slow', action='store_true', dest='slow', help="Transfer slowly (for debugging)") self.opts = None @@ -83,9 +83,9 @@ class GalaxyApp(object): """ def __init__(self, config_file): self.config = ConfigParser.ConfigParser(dict(database_file='database/universe.sqlite', - file_path='database/files', - transfer_worker_port_range='12275-12675', - transfer_worker_log=None)) + file_path='database/files', + transfer_worker_port_range='12275-12675', + transfer_worker_log=None)) self.config.read(config_file) self.model = bunch.Bunch() self.connect_database() @@ -275,12 +275,12 @@ def scp_transfer(transfer_job): try: # TODO: add the ability to determine progress of the copy here like we do in the http_transfer above. cmd = "scp %s@%s:'%s' '%s'" % (user_name, - host, - file_path.replace(' ', '\ '), - fn) + host, + file_path.replace(' ', '\ '), + fn) pexpect.run(cmd, events={'.ssword:*': password + '\r\n', - pexpect.TIMEOUT: print_ticks}, - timeout=10) + pexpect.TIMEOUT: print_ticks}, + timeout=10) return dict(state=transfer_job.states.DONE, path=fn) except Exception as e: return dict(state=transfer_job.states.ERROR, info='Error during file transfer: %s' % str(e)) diff --git a/test/api/test_api_batch.py b/test/api/test_api_batch.py index a90dfe5c5ec..fef24d0a87d 100644 --- a/test/api/test_api_batch.py +++ b/test/api/test_api_batch.py @@ -23,7 +23,7 @@ class ApiBatchTestCase(api.ApiTestCase): batch = [ dict(url=self._with_key('/api/histories')), dict(url=self._with_key('/api/histories'), - method='POST', body=json.dumps(dict(name='Wat'))), + method='POST', body=json.dumps(dict(name='Wat'))), dict(url=self._with_key('/api/histories')), ] response = self._post_batch(batch) diff --git a/test/api/test_workflows.py b/test/api/test_workflows.py index 0ffc05662ac..b4d07d8ff12 100644 --- a/test/api/test_workflows.py +++ b/test/api/test_workflows.py @@ -1670,9 +1670,9 @@ test_data: hda4 = self.dataset_populator.new_dataset(history_id, content="10 11 12") parameters = { "0": {"input": {"batch": True, "values": [{"id" : hda1.get("id"), "hid": hda1.get("hid"), "src": "hda"}, - {"id" : hda2.get("id"), "hid": hda2.get("hid"), "src": "hda"}, - {"id" : hda3.get("id"), "hid": hda2.get("hid"), "src": "hda"}, - {"id" : hda4.get("id"), "hid": hda2.get("hid"), "src": "hda"}]}}, + {"id" : hda2.get("id"), "hid": hda2.get("hid"), "src": "hda"}, + {"id" : hda3.get("id"), "hid": hda2.get("hid"), "src": "hda"}, + {"id" : hda4.get("id"), "hid": hda2.get("hid"), "src": "hda"}]}}, "1": {"input": {"batch": False, "values": [{"id" : hda1.get("id"), "hid": hda1.get("hid"), "src": "hda"}]}, "exp": "2"}} workflow_request = { "history_id" : history_id, @@ -1776,7 +1776,7 @@ steps: seed="moo", ) params = dumps({str(steps[0]["id"]): dict(num_lines=1, seed_source=seed_source), - str(steps[1]["id"]): dict(num_lines=1, seed_source=seed_source)}) + str(steps[1]["id"]): dict(num_lines=1, seed_source=seed_source)}) workflow_request["parameters"] = params run_workflow_response = self._post("workflows", data=workflow_request) self._assert_status_code_is(run_workflow_response, 200) diff --git a/test/base/test_db_util.py b/test/base/test_db_util.py index 5ba863691bc..3c0af06053c 100644 --- a/test/base/test_db_util.py +++ b/test/base/test_db_util.py @@ -39,7 +39,7 @@ def flush(obj): def get_all_histories_for_user(user): return gx_context().query(galaxy.model.History) \ .filter(and_(galaxy.model.History.table.c.user_id == user.id, - galaxy.model.History.table.c.deleted == false())) \ + galaxy.model.History.table.c.deleted == false())) \ .all() @@ -94,8 +94,8 @@ def get_form(name): def get_folder(parent_id, name, description): return gx_context().query(galaxy.model.LibraryFolder) \ .filter(and_(galaxy.model.LibraryFolder.table.c.parent_id == parent_id, - galaxy.model.LibraryFolder.table.c.name == name, - galaxy.model.LibraryFolder.table.c.description == description)) \ + galaxy.model.LibraryFolder.table.c.name == name, + galaxy.model.LibraryFolder.table.c.description == description)) \ .first() @@ -130,7 +130,7 @@ def get_latest_hda(): def get_latest_history_for_user(user): return gx_context().query(galaxy.model.History) \ .filter(and_(galaxy.model.History.table.c.deleted == false(), - galaxy.model.History.table.c.user_id == user.id)) \ + galaxy.model.History.table.c.user_id == user.id)) \ .order_by(desc(galaxy.model.History.table.c.create_time)) \ .first() @@ -138,7 +138,7 @@ def get_latest_history_for_user(user): def get_latest_ldda_by_name(name): return gx_context().query(galaxy.model.LibraryDatasetDatasetAssociation) \ .filter(and_(galaxy.model.LibraryDatasetDatasetAssociation.table.c.name == name, - galaxy.model.LibraryDatasetDatasetAssociation.table.c.deleted == false())) \ + galaxy.model.LibraryDatasetDatasetAssociation.table.c.deleted == false())) \ .order_by(desc(galaxy.model.LibraryDatasetDatasetAssociation.table.c.create_time)) \ .first() @@ -152,9 +152,9 @@ def get_latest_lddas(limit): def get_library(name, description, synopsis): return gx_context().query(galaxy.model.Library) \ .filter(and_(galaxy.model.Library.table.c.name == name, - galaxy.model.Library.table.c.description == description, - galaxy.model.Library.table.c.synopsis == synopsis, - galaxy.model.Library.table.c.deleted == false())) \ + galaxy.model.Library.table.c.description == description, + galaxy.model.Library.table.c.synopsis == synopsis, + galaxy.model.Library.table.c.deleted == false())) \ .first() @@ -168,7 +168,7 @@ def get_private_role(user): def get_request_by_name(name): return gx_context().query(galaxy.model.Request) \ .filter(and_(galaxy.model.Request.table.c.name == name, - galaxy.model.Request.table.c.deleted == false())) \ + galaxy.model.Request.table.c.deleted == false())) \ .first() @@ -192,8 +192,8 @@ def get_user(email): def get_user_address(user, short_desc): return gx_context().query(galaxy.model.UserAddress) \ .filter(and_(galaxy.model.UserAddress.table.c.user_id == user.id, - galaxy.model.UserAddress.table.c.desc == short_desc, - galaxy.model.UserAddress.table.c.deleted == false())) \ + galaxy.model.UserAddress.table.c.desc == short_desc, + galaxy.model.UserAddress.table.c.deleted == false())) \ .order_by(desc(galaxy.model.UserAddress.table.c.create_time)) \ .first() diff --git a/test/base/tool_shed_util.py b/test/base/tool_shed_util.py index 7ca016c9272..5782003b21f 100644 --- a/test/base/tool_shed_util.py +++ b/test/base/tool_shed_util.py @@ -55,10 +55,10 @@ def parse_tool_panel_config(config, shed_tools_dict): galaxy_test_file_dir, \ last_tested_repository_name, \ last_tested_changeset_revision = get_installed_repository_info(elem, - last_galaxy_test_file_dir, - last_tested_repository_name, - last_tested_changeset_revision, - tool_path) + last_galaxy_test_file_dir, + last_tested_repository_name, + last_tested_changeset_revision, + tool_path) if galaxy_test_file_dir: if not has_test_data: has_test_data = True @@ -74,10 +74,10 @@ def parse_tool_panel_config(config, shed_tools_dict): galaxy_test_file_dir, \ last_tested_repository_name, \ last_tested_changeset_revision = get_installed_repository_info(section_elem, - last_galaxy_test_file_dir, - last_tested_repository_name, - last_tested_changeset_revision, - tool_path) + last_galaxy_test_file_dir, + last_tested_repository_name, + last_tested_changeset_revision, + tool_path) if galaxy_test_file_dir: if not has_test_data: has_test_data = True diff --git a/test/casperjs/casperjs_runner.py b/test/casperjs/casperjs_runner.py index eb96c26234f..abd0b0f8aae 100644 --- a/test/casperjs/casperjs_runner.py +++ b/test/casperjs/casperjs_runner.py @@ -113,9 +113,9 @@ class CasperJSTestCase(unittest.TestCase): log.debug('process_command_list: %s', str(process_command_list)) try: process = subprocess.Popen(process_command_list, - shell=False, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) + shell=False, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) # output from the browser (stderr only) immediately while process.poll() is None: @@ -148,8 +148,8 @@ class CasperJSTestCase(unittest.TestCase): except OSError as os_err: if os_err.errno == errno.ENOENT: log.error('No path to headless browser executable: %s\n' + - 'These tests were designed to use the following headless browser:\n%s', - self.exec_path, self.casper_info) + 'These tests were designed to use the following headless browser:\n%s', + self.exec_path, self.casper_info) raise return self.handle_js_results(stdout_output) diff --git a/test/casperjs/server_env.py b/test/casperjs/server_env.py index 947acd1b95c..7240a312446 100644 --- a/test/casperjs/server_env.py +++ b/test/casperjs/server_env.py @@ -78,7 +78,7 @@ class TestEnvironment(object): if not attributes: # TODO:?? raise to class scope? attributes = ['protocol', 'host', 'port', 'history_id', 'file_dir', - 'tool_shed_test_file', 'shed_tools_dict', 'saved_output_dir', 'debug_these_tests'] + 'tool_shed_test_file', 'shed_tools_dict', 'saved_output_dir', 'debug_these_tests'] this_dict = {} for attr_name in attributes: attr_val = getattr(self, attr_name) diff --git a/test/functional/test_library_templates.py b/test/functional/test_library_templates.py index 9f99aa8bb3f..72c20ce179d 100644 --- a/test/functional/test_library_templates.py +++ b/test/functional/test_library_templates.py @@ -48,7 +48,7 @@ class TestLibraryFeatures(TwillTestCase): self.check_page_for_string(check_str) def add_template(self, cntrller, item_type, form_type, form_id, form_name, - library_id=None, folder_id=None, ldda_id=None, request_type_id=None, sample_id=None): + library_id=None, folder_id=None, ldda_id=None, request_type_id=None, sample_id=None): """ Add a new template to an item - for library items, the template will ALWAYS BE SET TO INHERITABLE here. If you want to dis-inherit your template, call the manage_library_template_inheritance() below immediately after you call this @@ -92,8 +92,8 @@ class TestLibraryFeatures(TwillTestCase): self.check_page_for_string(check_str) def create_form(self, name, description, form_type, field_type='TextField', form_layout_name='', - num_fields=1, num_options=0, field_name='1_field_name', strings_displayed=[], - strings_displayed_after_submit=[]): + num_fields=1, num_options=0, field_name='1_field_name', strings_displayed=[], + strings_displayed_after_submit=[]): """Create a new form definition.""" self.visit_url("%s/forms/create_form_definition" % self.url) for check_str in strings_displayed: @@ -153,7 +153,7 @@ class TestLibraryFeatures(TwillTestCase): self.check_for_strings(strings_displayed=[item_desc, check_str]) def edit_template(self, cntrller, item_type, form_type, library_id, field_type, field_label_1, field_helptext_1, field_default_1, - folder_id='', ldda_id='', action='add_field'): + folder_id='', ldda_id='', action='add_field'): """Edit the form fields defining a library template""" params = dict(cntrller=cntrller, item_type=item_type, form_type=form_type, library_id=library_id) self.visit_url("/library_common/edit_template", params=params) @@ -172,11 +172,11 @@ class TestLibraryFeatures(TwillTestCase): self.check_page_for_string("The template for this data library has been updated with your changes.") def folder_info(self, cntrller, folder_id, library_id, name='', new_name='', description='', template_refresh_field_name='1_field_name', - template_refresh_field_contents='', template_fields=[], strings_displayed=[], strings_not_displayed=[], - strings_displayed_after_submit=[], strings_not_displayed_after_submit=[]): + template_refresh_field_contents='', template_fields=[], strings_displayed=[], strings_not_displayed=[], + strings_displayed_after_submit=[], strings_not_displayed_after_submit=[]): """Add information to a library using an existing template with 2 elements""" self.visit_url("%s/library_common/folder_info?cntrller=%s&id=%s&library_id=%s" % - (self.url, cntrller, folder_id, library_id)) + (self.url, cntrller, folder_id, library_id)) if name and new_name and description: tc.fv('1', "name", new_name) tc.fv('1', "description", description) @@ -210,10 +210,10 @@ class TestLibraryFeatures(TwillTestCase): pass def ldda_edit_info(self, cntrller, library_id, folder_id, ldda_id, ldda_name, new_ldda_name='', template_refresh_field_name='1_field_name', - template_refresh_field_contents='', template_fields=[], strings_displayed=[], strings_not_displayed=[]): + template_refresh_field_contents='', template_fields=[], strings_displayed=[], strings_not_displayed=[]): """Edit library_dataset_dataset_association information, optionally template element information""" self.visit_url("%s/library_common/ldda_edit_info?cntrller=%s&library_id=%s&folder_id=%s&id=%s" % - (self.url, cntrller, library_id, folder_id, ldda_id)) + (self.url, cntrller, library_id, folder_id, ldda_id)) check_str = 'Edit attributes of %s' % ldda_name self.check_page_for_string(check_str) if new_ldda_name: @@ -242,7 +242,7 @@ class TestLibraryFeatures(TwillTestCase): pass def library_info(self, cntrller, library_id, library_name='', new_name='', new_description='', new_synopsis='', - template_fields=[], strings_displayed=[]): + template_fields=[], strings_displayed=[]): """Edit information about a library, optionally using an existing template with up to 2 elements""" self.visit_url("%s/library_common/library_info?cntrller=%s&id=%s" % (self.url, cntrller, library_id)) for check_str in strings_displayed: @@ -307,10 +307,10 @@ class TestLibraryFeatures(TwillTestCase): self.check_page_for_string(check_str) def upload_library_dataset(self, cntrller, library_id, folder_id, filename='', server_dir='', replace_id='', - upload_option='upload_file', file_type='auto', dbkey='hg18', space_to_tab='', - link_data_only='copy_files', preserve_dirs='Yes', filesystem_paths='', roles=[], - ldda_message='', hda_ids='', template_refresh_field_name='1_field_name', - template_refresh_field_contents='', template_fields=[], show_deleted='False', strings_displayed=[]): + upload_option='upload_file', file_type='auto', dbkey='hg18', space_to_tab='', + link_data_only='copy_files', preserve_dirs='Yes', filesystem_paths='', roles=[], + ldda_message='', hda_ids='', template_refresh_field_name='1_field_name', + template_refresh_field_contents='', template_fields=[], show_deleted='False', strings_displayed=[]): """Add datasets to library using any upload_option""" # NOTE: due to the library_wait() method call at the end of this method, no tests should be done # for strings_displayed_after_submit. @@ -465,12 +465,12 @@ class TestLibraryFeatures(TwillTestCase): # Create form for library template strings_displayed_after_submit = ["The form '%s' has been updated with the changes." % type] self.create_form(name=type, - description=form_desc, - form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, - field_type=type, - num_options=num_options, - field_name=field_name, - strings_displayed_after_submit=strings_displayed_after_submit) + description=form_desc, + form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, + field_type=type, + num_options=num_options, + field_name=field_name, + strings_displayed_after_submit=strings_displayed_after_submit) # Get all of the new form definitions for later use global AddressField_form AddressField_form = get_form('AddressField') @@ -537,11 +537,11 @@ class TestLibraryFeatures(TwillTestCase): # Logged in as admin_user # Add a template containing an AddressField to library1 self.add_template(cntrller='library_admin', - item_type='library', - form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, - form_id=self.security.encode_id(AddressField_form.id), - form_name=AddressField_form.name, - library_id=self.security.encode_id(library1.id)) + item_type='library', + form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, + form_id=self.security.encode_id(AddressField_form.id), + form_name=AddressField_form.name, + library_id=self.security.encode_id(library1.id)) def test_020_add_folder_to_library1(self): """Testing adding a folder to library1""" @@ -551,10 +551,10 @@ class TestLibraryFeatures(TwillTestCase): name = "folder" description = "folder description" self.add_folder('library_admin', - self.security.encode_id(library1.id), - self.security.encode_id(folder.id), - name=name, - description=description) + self.security.encode_id(library1.id), + self.security.encode_id(folder.id), + name=name, + description=description) global folder1 folder1 = get_folder(folder.id, name, description) @@ -562,15 +562,15 @@ class TestLibraryFeatures(TwillTestCase): """Checking library1 and its root folder""" # Logged in as admin_user self.browse_library(cntrller='library_admin', - library_id=self.security.encode_id(library1.id), - strings_displayed=[folder1.name, folder1.description]) + library_id=self.security.encode_id(library1.id), + strings_displayed=[folder1.name, folder1.description]) # Make sure the template and contents were inherited to folder1 self.folder_info(cntrller='library_admin', - folder_id=self.security.encode_id(folder1.id), - library_id=self.security.encode_id(library1.id), - template_refresh_field_name=address_field_name, - strings_displayed=[AddressField_form.name, - 'This is an inherited template and is not required to be used with this folder']) + folder_id=self.security.encode_id(folder1.id), + library_id=self.security.encode_id(library1.id), + template_refresh_field_name=address_field_name, + strings_displayed=[AddressField_form.name, + 'This is an inherited template and is not required to be used with this folder']) def test_030_add_dataset_to_folder1(self): """Testing adding a ldda1 to folder1, and adding a new UserAddress on the upload form.""" @@ -582,23 +582,23 @@ class TestLibraryFeatures(TwillTestCase): ldda_message = '1.bed message' short_desc = 'Office' self.upload_library_dataset(cntrller='library_admin', - library_id=self.security.encode_id(library1.id), - folder_id=self.security.encode_id(folder1.id), - filename=filename, - file_type='bed', - dbkey='hg18', - template_refresh_field_name=address_field_name, - ldda_message=ldda_message, - template_refresh_field_contents='new', - template_fields=[('%s_short_desc' % address_field_name, short_desc), - ('%s_name' % address_field_name, 'Dick'), - ('%s_institution' % address_field_name, 'PSU'), - ('%s_address' % address_field_name, '32 O Street'), - ('%s_city' % address_field_name, 'Anywhere'), - ('%s_state' % address_field_name, 'AK'), - ('%s_postal_code' % address_field_name, '0000000'), - ('%s_country' % address_field_name, 'USA')], - strings_displayed=['Upload files']) + library_id=self.security.encode_id(library1.id), + folder_id=self.security.encode_id(folder1.id), + filename=filename, + file_type='bed', + dbkey='hg18', + template_refresh_field_name=address_field_name, + ldda_message=ldda_message, + template_refresh_field_contents='new', + template_fields=[('%s_short_desc' % address_field_name, short_desc), + ('%s_name' % address_field_name, 'Dick'), + ('%s_institution' % address_field_name, 'PSU'), + ('%s_address' % address_field_name, '32 O Street'), + ('%s_city' % address_field_name, 'Anywhere'), + ('%s_state' % address_field_name, 'AK'), + ('%s_postal_code' % address_field_name, '0000000'), + ('%s_country' % address_field_name, 'USA')], + strings_displayed=['Upload files']) global user_address1 user_address1 = get_user_address(admin_user, short_desc) assert user_address1 is not None, 'Problem retrieving user_address1 from the database' @@ -606,36 +606,36 @@ class TestLibraryFeatures(TwillTestCase): ldda1 = get_latest_ldda_by_name(filename) assert ldda1 is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda1 from the database' self.browse_library(cntrller='library_admin', - library_id=self.security.encode_id(library1.id), - strings_displayed=[ldda1.name, ldda1.message, 'bed']) + library_id=self.security.encode_id(library1.id), + strings_displayed=[ldda1.name, ldda1.message, 'bed']) # Make sure the library template contents were correctly saved self.ldda_edit_info('library_admin', - self.security.encode_id(library1.id), - self.security.encode_id(folder1.id), - self.security.encode_id(ldda1.id), - ldda1.name, - strings_displayed=['Dick']) + self.security.encode_id(library1.id), + self.security.encode_id(folder1.id), + self.security.encode_id(ldda1.id), + ldda1.name, + strings_displayed=['Dick']) def test_035_edit_contents_of_ldda1_tempplate(self): """Testing editing the contents of ldda1 AddressField template by adding a new user_address""" short_desc = 'Home' # Now add a new user_address to ldda1 self.ldda_edit_info('library_admin', - self.security.encode_id(library1.id), - self.security.encode_id(folder1.id), - self.security.encode_id(ldda1.id), - ldda1.name, - template_refresh_field_name=address_field_name, - template_refresh_field_contents='new', - template_fields=[('%s_short_desc' % address_field_name, short_desc), - ('%s_name' % address_field_name, 'Richard'), - ('%s_institution' % address_field_name, 'PSU'), - ('%s_address' % address_field_name, '32 O Street'), - ('%s_city' % address_field_name, 'Anywhere'), - ('%s_state' % address_field_name, 'AK'), - ('%s_postal_code' % address_field_name, '0000000'), - ('%s_country' % address_field_name, 'USA')], - strings_displayed=[short_desc]) + self.security.encode_id(library1.id), + self.security.encode_id(folder1.id), + self.security.encode_id(ldda1.id), + ldda1.name, + template_refresh_field_name=address_field_name, + template_refresh_field_contents='new', + template_fields=[('%s_short_desc' % address_field_name, short_desc), + ('%s_name' % address_field_name, 'Richard'), + ('%s_institution' % address_field_name, 'PSU'), + ('%s_address' % address_field_name, '32 O Street'), + ('%s_city' % address_field_name, 'Anywhere'), + ('%s_state' % address_field_name, 'AK'), + ('%s_postal_code' % address_field_name, '0000000'), + ('%s_country' % address_field_name, 'USA')], + strings_displayed=[short_desc]) global user_address2 user_address2 = get_user_address(admin_user, short_desc) assert user_address2 is not None, 'Problem retrieving user_address2 from the database' @@ -644,13 +644,13 @@ class TestLibraryFeatures(TwillTestCase): """Testing editing the contents of folder1 AddressField template""" # Make sure the template and contents were inherited to folder1 self.folder_info(cntrller='library_admin', - folder_id=self.security.encode_id(folder1.id), - library_id=self.security.encode_id(library1.id), - template_refresh_field_name=address_field_name, - template_refresh_field_contents=str(user_address2.id), - strings_displayed=[AddressField_form.name, - 'This is an inherited template and is not required to be used with this folder'], - strings_displayed_after_submit=['Richard']) + folder_id=self.security.encode_id(folder1.id), + library_id=self.security.encode_id(library1.id), + template_refresh_field_name=address_field_name, + template_refresh_field_contents=str(user_address2.id), + strings_displayed=[AddressField_form.name, + 'This is an inherited template and is not required to be used with this folder'], + strings_displayed_after_submit=['Richard']) def test_045_add_dataset_to_folder1(self): """Testing adding another ldda to folder1""" @@ -658,36 +658,36 @@ class TestLibraryFeatures(TwillTestCase): filename = '2.bed' ldda_message = '2.bed message' self.upload_library_dataset(cntrller='library_admin', - library_id=self.security.encode_id(library1.id), - folder_id=self.security.encode_id(folder1.id), - filename=filename, - file_type='bed', - dbkey='hg18', - template_refresh_field_name=address_field_name, - ldda_message=ldda_message, - strings_displayed=['Upload files']) + library_id=self.security.encode_id(library1.id), + folder_id=self.security.encode_id(folder1.id), + filename=filename, + file_type='bed', + dbkey='hg18', + template_refresh_field_name=address_field_name, + ldda_message=ldda_message, + strings_displayed=['Upload files']) # Make sure user_address2 is associated with ldda. self.ldda_edit_info(cntrller='library_admin', - library_id=self.security.encode_id(library1.id), - folder_id=self.security.encode_id(folder1.id), - ldda_id=self.security.encode_id(ldda1.id), - ldda_name=ldda1.name, - template_refresh_field_name=address_field_name, - strings_displayed=[user_address2.desc]) + library_id=self.security.encode_id(library1.id), + folder_id=self.security.encode_id(folder1.id), + ldda_id=self.security.encode_id(ldda1.id), + ldda_name=ldda1.name, + template_refresh_field_name=address_field_name, + strings_displayed=[user_address2.desc]) def test_050_add_template_to_library2(self): """ Testing add an inheritable template containing an CheckboxField to library2""" # Add a template containing an CheckboxField to library1 self.add_template(cntrller='library_admin', - item_type='library', - form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, - form_id=self.security.encode_id(CheckboxField_form.id), - form_name=CheckboxField_form.name, - library_id=self.security.encode_id(library2.id)) + item_type='library', + form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, + form_id=self.security.encode_id(CheckboxField_form.id), + form_name=CheckboxField_form.name, + library_id=self.security.encode_id(library2.id)) # Check the CheckboxField to make sure the template contents are inherited self.library_info('library_admin', - self.security.encode_id(library2.id), - template_fields=[(checkbox_field_name, '1')]) + self.security.encode_id(library2.id), + template_fields=[(checkbox_field_name, '1')]) def test_055_add_folder2_to_library2(self): """Testing adding a folder to library2""" @@ -697,10 +697,10 @@ class TestLibraryFeatures(TwillTestCase): name = "folder" description = "folder description" self.add_folder('library_admin', - self.security.encode_id(library2.id), - self.security.encode_id(folder.id), - name=name, - description=description) + self.security.encode_id(library2.id), + self.security.encode_id(folder.id), + name=name, + description=description) global folder2 folder2 = get_folder(folder.id, name, description) @@ -708,19 +708,19 @@ class TestLibraryFeatures(TwillTestCase): """Checking library2 and its root folder""" # Logged in as admin_user self.browse_library(cntrller='library_admin', - library_id=self.security.encode_id(library2.id), - strings_displayed=[folder2.name, folder2.description]) + library_id=self.security.encode_id(library2.id), + strings_displayed=[folder2.name, folder2.description]) def test_065_save_folder2_inherited_template(self): """Saving the inherited template for folder2""" # Logged in as admin_user # Save the inherited template self.folder_info(cntrller='library_admin', - folder_id=self.security.encode_id(folder2.id), - library_id=self.security.encode_id(library2.id), - template_fields=[(checkbox_field_name, '1')], - strings_displayed=[CheckboxField_form.name, - 'This is an inherited template and is not required to be used with this folder']) + folder_id=self.security.encode_id(folder2.id), + library_id=self.security.encode_id(library2.id), + template_fields=[(checkbox_field_name, '1')], + strings_displayed=[CheckboxField_form.name, + 'This is an inherited template and is not required to be used with this folder']) def test_070_add_ldda_to_folder2(self): """ @@ -731,40 +731,40 @@ class TestLibraryFeatures(TwillTestCase): filename = '1.bed' ldda_message = '1.bed message' self.upload_library_dataset(cntrller='library_admin', - library_id=self.security.encode_id(library2.id), - folder_id=self.security.encode_id(folder2.id), - filename=filename, - file_type='bed', - dbkey='hg18', - ldda_message=ldda_message, - strings_displayed=['CheckboxField', 'checked']) + library_id=self.security.encode_id(library2.id), + folder_id=self.security.encode_id(folder2.id), + filename=filename, + file_type='bed', + dbkey='hg18', + ldda_message=ldda_message, + strings_displayed=['CheckboxField', 'checked']) ldda = get_latest_ldda_by_name(filename) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library(cntrller='library_admin', - library_id=self.security.encode_id(library2.id), - strings_displayed=[ldda.name, ldda.message, 'bed']) + library_id=self.security.encode_id(library2.id), + strings_displayed=[ldda.name, ldda.message, 'bed']) # Make sure the library template contents were correctly saved self.ldda_edit_info('library_admin', - self.security.encode_id(library2.id), - self.security.encode_id(folder2.id), - self.security.encode_id(ldda.id), - ldda.name, - strings_displayed=['CheckboxField', 'checked']) + self.security.encode_id(library2.id), + self.security.encode_id(folder2.id), + self.security.encode_id(ldda.id), + ldda.name, + strings_displayed=['CheckboxField', 'checked']) def test_080_add_template_to_library3(self): """ Testing add an inheritable template containing an SelectField to library3""" # Logged in as admin_user self.add_template(cntrller='library_admin', - item_type='library', - form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, - form_id=self.security.encode_id(SelectField_form.id), - form_name=SelectField_form.name, - library_id=self.security.encode_id(library3.id)) + item_type='library', + form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, + form_id=self.security.encode_id(SelectField_form.id), + form_name=SelectField_form.name, + library_id=self.security.encode_id(library3.id)) # Select the 2nd option in the SelectField to make sure the template contents are inherited # SelectField option names are zero-based self.library_info('library_admin', - self.security.encode_id(library3.id), - template_fields=[(select_field_name, 'Option1')]) + self.security.encode_id(library3.id), + template_fields=[(select_field_name, 'Option1')]) def test_085_add_folder3_to_library3(self): """Testing adding a folder to library3""" @@ -774,10 +774,10 @@ class TestLibraryFeatures(TwillTestCase): name = "folder" description = "folder description" self.add_folder('library_admin', - self.security.encode_id(library3.id), - self.security.encode_id(folder.id), - name=name, - description=description) + self.security.encode_id(library3.id), + self.security.encode_id(folder.id), + name=name, + description=description) global folder3 folder3 = get_folder(folder.id, name, description) @@ -785,20 +785,20 @@ class TestLibraryFeatures(TwillTestCase): """Checking library3 and its root folder""" # Logged in as admin_user self.browse_library(cntrller='library_admin', - library_id=self.security.encode_id(library3.id), - strings_displayed=[folder3.name, folder3.description]) + library_id=self.security.encode_id(library3.id), + strings_displayed=[folder3.name, folder3.description]) def test_095_save_folder3_inherited_template(self): """Saving the inherited template for folder3""" # Logged in as admin_user # Save the inherited template self.folder_info(cntrller='library_admin', - folder_id=self.security.encode_id(folder3.id), - library_id=self.security.encode_id(library3.id), - template_fields=[(select_field_name, 'Option1')], - strings_displayed=[SelectField_form.name, - 'This is an inherited template and is not required to be used with this folder', - 'Option1']) + folder_id=self.security.encode_id(folder3.id), + library_id=self.security.encode_id(library3.id), + template_fields=[(select_field_name, 'Option1')], + strings_displayed=[SelectField_form.name, + 'This is an inherited template and is not required to be used with this folder', + 'Option1']) def test_100_add_ldda_to_folder3(self): """ @@ -808,63 +808,63 @@ class TestLibraryFeatures(TwillTestCase): ldda_message = '3.bed message' # Logged in as admin_user self.upload_library_dataset(cntrller='library_admin', - library_id=self.security.encode_id(library3.id), - folder_id=self.security.encode_id(folder3.id), - filename=filename, - file_type='bed', - dbkey='hg18', - ldda_message=ldda_message, - strings_displayed=['SelectField', 'selected>Option1']) + library_id=self.security.encode_id(library3.id), + folder_id=self.security.encode_id(folder3.id), + filename=filename, + file_type='bed', + dbkey='hg18', + ldda_message=ldda_message, + strings_displayed=['SelectField', 'selected>Option1']) ldda = get_latest_ldda_by_name(filename) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library(cntrller='library_admin', - library_id=self.security.encode_id(library3.id), - strings_displayed=[ldda.name, ldda.message, 'bed']) + library_id=self.security.encode_id(library3.id), + strings_displayed=[ldda.name, ldda.message, 'bed']) # Make sure the library template contents were correctly saved self.ldda_edit_info('library_admin', - self.security.encode_id(library3.id), - self.security.encode_id(folder3.id), - self.security.encode_id(ldda.id), - ldda.name, - strings_displayed=['SelectField', 'Option1']) + self.security.encode_id(library3.id), + self.security.encode_id(folder3.id), + self.security.encode_id(ldda.id), + ldda.name, + strings_displayed=['SelectField', 'Option1']) # Import a dataset from the current history filename = '8.bed' self.new_history(name='import+with+SelectField') self.upload_file(filename) hda = get_latest_hda() self.upload_library_dataset(cntrller='library_admin', - library_id=self.security.encode_id(library3.id), - folder_id=self.security.encode_id(folder3.id), - upload_option='import_from_history', - hda_ids=self.security.encode_id(hda.id), - strings_displayed=['' % select_field_name]) ldda = get_latest_ldda_by_name(filename) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library(cntrller='library_admin', - library_id=self.security.encode_id(library3.id), - strings_displayed=[ldda.name, 'bed']) + library_id=self.security.encode_id(library3.id), + strings_displayed=[ldda.name, 'bed']) # Make sure the library template contents were correctly saved self.ldda_edit_info('library_admin', - self.security.encode_id(library3.id), - self.security.encode_id(folder3.id), - self.security.encode_id(ldda.id), - ldda.name, - strings_displayed=['SelectField', 'Option1']) + self.security.encode_id(library3.id), + self.security.encode_id(folder3.id), + self.security.encode_id(ldda.id), + ldda.name, + strings_displayed=['SelectField', 'Option1']) def test_105_add_template_to_library4(self): """ Testing add an inheritable template containing an TextArea to library4""" # Logged in as admin_user # Add an inheritable template to library4 self.add_template(cntrller='library_admin', - item_type='library', - form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, - form_id=self.security.encode_id(TextArea_form.id), - form_name=TextArea_form.name, - library_id=self.security.encode_id(library4.id)) + item_type='library', + form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, + form_id=self.security.encode_id(TextArea_form.id), + form_name=TextArea_form.name, + library_id=self.security.encode_id(library4.id)) # Select the 2nd option in the SelectField to make sure the template contents are inherited self.library_info('library_admin', - self.security.encode_id(library4.id), - template_fields=[(textarea_name, 'This text should be inherited')]) + self.security.encode_id(library4.id), + template_fields=[(textarea_name, 'This text should be inherited')]) def test_110_add_folder4_to_library4(self): """Testing adding a folder to library4""" @@ -874,10 +874,10 @@ class TestLibraryFeatures(TwillTestCase): name = "folder" description = "folder description" self.add_folder('library_admin', - self.security.encode_id(library4.id), - self.security.encode_id(folder.id), - name=name, - description=description) + self.security.encode_id(library4.id), + self.security.encode_id(folder.id), + name=name, + description=description) global folder4 folder4 = get_folder(folder.id, name, description) @@ -886,12 +886,12 @@ class TestLibraryFeatures(TwillTestCase): # Logged in as admin_user # Save the inherited template self.folder_info(cntrller='library_admin', - folder_id=self.security.encode_id(folder4.id), - library_id=self.security.encode_id(library4.id), - template_fields=[(textarea_name, 'This text should be inherited')], - strings_displayed=[TextArea_form.name, - 'This is an inherited template and is not required to be used with this folder', - 'This text should be inherited']) + folder_id=self.security.encode_id(folder4.id), + library_id=self.security.encode_id(library4.id), + template_fields=[(textarea_name, 'This text should be inherited')], + strings_displayed=[TextArea_form.name, + 'This is an inherited template and is not required to be used with this folder', + 'This text should be inherited']) def test_120_add_ldda_to_folder4(self): """ @@ -901,39 +901,39 @@ class TestLibraryFeatures(TwillTestCase): ldda_message = '4.bed message' # Logged in as admin_user self.upload_library_dataset(cntrller='library_admin', - library_id=self.security.encode_id(library4.id), - folder_id=self.security.encode_id(folder4.id), - filename=filename, - file_type='bed', - dbkey='hg18', - ldda_message=ldda_message, - strings_displayed=['TextArea', 'This text should be inherited']) + library_id=self.security.encode_id(library4.id), + folder_id=self.security.encode_id(folder4.id), + filename=filename, + file_type='bed', + dbkey='hg18', + ldda_message=ldda_message, + strings_displayed=['TextArea', 'This text should be inherited']) ldda = get_latest_ldda_by_name(filename) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library(cntrller='library_admin', - library_id=self.security.encode_id(library4.id), - strings_displayed=[ldda.name, ldda.message, 'bed']) + library_id=self.security.encode_id(library4.id), + strings_displayed=[ldda.name, ldda.message, 'bed']) # Make sure the library template contents were correctly saved self.ldda_edit_info('library_admin', - self.security.encode_id(library4.id), - self.security.encode_id(folder4.id), - self.security.encode_id(ldda.id), - ldda.name, - strings_displayed=['TextArea', 'This text should be inherited']) + self.security.encode_id(library4.id), + self.security.encode_id(folder4.id), + self.security.encode_id(ldda.id), + ldda.name, + strings_displayed=['TextArea', 'This text should be inherited']) def test_125_add_template_to_library5(self): """ Testing add an inheritable template containing an TextField to library5""" # Add an inheritable template to library5 self.add_template(cntrller='library_admin', - item_type='library', - form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, - form_id=self.security.encode_id(TextField_form.id), - form_name=TextField_form.name, - library_id=self.security.encode_id(library5.id)) + item_type='library', + form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, + form_id=self.security.encode_id(TextField_form.id), + form_name=TextField_form.name, + library_id=self.security.encode_id(library5.id)) # Select the 2nd option in the SelectField to make sure the template contents are inherited self.library_info('library_admin', - self.security.encode_id(library5.id), - template_fields=[(textfield_name, 'This text should be inherited')]) + self.security.encode_id(library5.id), + template_fields=[(textfield_name, 'This text should be inherited')]) def test_130_add_folder5_to_library5(self): """Testing adding a folder to library5""" @@ -943,10 +943,10 @@ class TestLibraryFeatures(TwillTestCase): name = "folder" description = "folder description" self.add_folder('library_admin', - self.security.encode_id(library5.id), - self.security.encode_id(folder.id), - name=name, - description=description) + self.security.encode_id(library5.id), + self.security.encode_id(folder.id), + name=name, + description=description) global folder5 folder5 = get_folder(folder.id, name, description) @@ -955,12 +955,12 @@ class TestLibraryFeatures(TwillTestCase): # Logged in as admin_user # Save the inherited template self.folder_info(cntrller='library_admin', - folder_id=self.security.encode_id(folder5.id), - library_id=self.security.encode_id(library5.id), - template_fields=[(textfield_name, 'This text should be inherited')], - strings_displayed=[TextField_form.name, - 'This is an inherited template and is not required to be used with this folder', - 'This text should be inherited']) + folder_id=self.security.encode_id(folder5.id), + library_id=self.security.encode_id(library5.id), + template_fields=[(textfield_name, 'This text should be inherited')], + strings_displayed=[TextField_form.name, + 'This is an inherited template and is not required to be used with this folder', + 'This text should be inherited']) def test_140_add_ldda_to_folder5(self): """ @@ -970,37 +970,37 @@ class TestLibraryFeatures(TwillTestCase): filename = '5.bed' ldda_message = '5.bed message' self.upload_library_dataset(cntrller='library_admin', - library_id=self.security.encode_id(library5.id), - folder_id=self.security.encode_id(folder5.id), - filename=filename, - file_type='bed', - dbkey='hg18', - ldda_message=ldda_message, - strings_displayed=['TextField', 'This text should be inherited']) + library_id=self.security.encode_id(library5.id), + folder_id=self.security.encode_id(folder5.id), + filename=filename, + file_type='bed', + dbkey='hg18', + ldda_message=ldda_message, + strings_displayed=['TextField', 'This text should be inherited']) ldda = get_latest_ldda_by_name(filename) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library(cntrller='library_admin', - library_id=self.security.encode_id(library5.id), - strings_displayed=[ldda.name, ldda.message, 'bed']) + library_id=self.security.encode_id(library5.id), + strings_displayed=[ldda.name, ldda.message, 'bed']) # Make sure the library template contents were correctly saved self.ldda_edit_info('library_admin', - self.security.encode_id(library5.id), - self.security.encode_id(folder5.id), - self.security.encode_id(ldda.id), - ldda.name, - strings_displayed=['TextField', 'This text should be inherited']) + self.security.encode_id(library5.id), + self.security.encode_id(folder5.id), + self.security.encode_id(ldda.id), + ldda.name, + strings_displayed=['TextField', 'This text should be inherited']) def test_145_edit_library5_template_layout(self): """Test editing the layout of library5's template""" # Currently there is only a TextField, and we'll add a TextArea. self.edit_template(cntrller='library_admin', - item_type='library', - form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, - library_id=self.security.encode_id(library5.id), - field_type='TextArea', - field_label_1=TextArea_form.name, - field_helptext_1='%s help' % TextArea_form.name, - field_default_1='%s default' % TextArea_form.name) + item_type='library', + form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, + library_id=self.security.encode_id(library5.id), + field_type='TextArea', + field_label_1=TextArea_form.name, + field_helptext_1='%s help' % TextArea_form.name, + field_default_1='%s default' % TextArea_form.name) def test_150_add_ldda_to_library5(self): """ @@ -1010,40 +1010,40 @@ class TestLibraryFeatures(TwillTestCase): ldda_message = '6.bed message' # Logged in as admin_user self.upload_library_dataset(cntrller='library_admin', - library_id=self.security.encode_id(library5.id), - folder_id=self.security.encode_id(library5.root_folder.id), - filename=filename, - file_type='bed', - dbkey='hg18', - ldda_message=ldda_message, - strings_displayed=['TextField', - 'This text should be inherited', - 'TextArea']) + library_id=self.security.encode_id(library5.id), + folder_id=self.security.encode_id(library5.root_folder.id), + filename=filename, + file_type='bed', + dbkey='hg18', + ldda_message=ldda_message, + strings_displayed=['TextField', + 'This text should be inherited', + 'TextArea']) ldda = get_latest_ldda_by_name(filename) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library(cntrller='library_admin', - library_id=self.security.encode_id(library5.id), - strings_displayed=[ldda.name, ldda.message, 'bed']) + library_id=self.security.encode_id(library5.id), + strings_displayed=[ldda.name, ldda.message, 'bed']) # Make sure the library template contents were correctly saved self.ldda_edit_info('library_admin', - self.security.encode_id(library5.id), - self.security.encode_id(library5.root_folder.id), - self.security.encode_id(ldda.id), - ldda.name, - strings_displayed=['TextField', - 'This text should be inherited', - 'TextArea']) + self.security.encode_id(library5.id), + self.security.encode_id(library5.root_folder.id), + self.security.encode_id(ldda.id), + ldda.name, + strings_displayed=['TextField', + 'This text should be inherited', + 'TextArea']) def test_155_add_template_to_library6(self): """ Testing add an inheritable template containing an WorkflowField to library6""" # Add an inheritable template to library6 # We won't select an option since we have no workflow to select self.add_template(cntrller='library_admin', - item_type='library', - form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, - form_id=self.security.encode_id(WorkflowField_form.id), - form_name=WorkflowField_form.name, - library_id=self.security.encode_id(library6.id)) + item_type='library', + form_type=galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE, + form_id=self.security.encode_id(WorkflowField_form.id), + form_name=WorkflowField_form.name, + library_id=self.security.encode_id(library6.id)) def test_160_add_folder6_to_library6(self): """Testing adding a folder to library6""" @@ -1053,10 +1053,10 @@ class TestLibraryFeatures(TwillTestCase): name = "folder" description = "folder description" self.add_folder('library_admin', - self.security.encode_id(library6.id), - self.security.encode_id(folder.id), - name=name, - description=description) + self.security.encode_id(library6.id), + self.security.encode_id(folder.id), + name=name, + description=description) global folder6 folder6 = get_folder(folder.id, name, description) @@ -1065,12 +1065,12 @@ class TestLibraryFeatures(TwillTestCase): # Logged in as admin_user # Save the inherited template - we won't select an option since we have no workflow to select self.folder_info(cntrller='library_admin', - folder_id=self.security.encode_id(folder6.id), - library_id=self.security.encode_id(library6.id), - template_fields=[(workflow_field_name, 'none')], - strings_displayed=[WorkflowField_form.name, - 'This is an inherited template and is not required to be used with this folder', - 'none']) + folder_id=self.security.encode_id(folder6.id), + library_id=self.security.encode_id(library6.id), + template_fields=[(workflow_field_name, 'none')], + strings_displayed=[WorkflowField_form.name, + 'This is an inherited template and is not required to be used with this folder', + 'none']) def test_170_add_ldda_to_folder6(self): """ @@ -1080,25 +1080,25 @@ class TestLibraryFeatures(TwillTestCase): filename = '7.bed' ldda_message = '7.bed message' self.upload_library_dataset(cntrller='library_admin', - library_id=self.security.encode_id(library6.id), - folder_id=self.security.encode_id(folder6.id), - filename=filename, - file_type='bed', - dbkey='hg18', - ldda_message=ldda_message, - strings_displayed=['WorkflowField', 'none']) + library_id=self.security.encode_id(library6.id), + folder_id=self.security.encode_id(folder6.id), + filename=filename, + file_type='bed', + dbkey='hg18', + ldda_message=ldda_message, + strings_displayed=['WorkflowField', 'none']) ldda = get_latest_ldda_by_name(filename) assert ldda is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda from the database' self.browse_library(cntrller='library_admin', - library_id=self.security.encode_id(library6.id), - strings_displayed=[ldda.name, ldda.message, 'bed']) + library_id=self.security.encode_id(library6.id), + strings_displayed=[ldda.name, ldda.message, 'bed']) # Make sure the library template contents were correctly saved self.ldda_edit_info('library_admin', - self.security.encode_id(library6.id), - self.security.encode_id(folder6.id), - self.security.encode_id(ldda.id), - ldda.name, - strings_displayed=['WorkflowField', 'none']) + self.security.encode_id(library6.id), + self.security.encode_id(folder6.id), + self.security.encode_id(ldda.id), + ldda.name, + strings_displayed=['WorkflowField', 'none']) def test_999_reset_data_for_later_test_runs(self): """Reseting data to enable later test runs to pass""" @@ -1118,10 +1118,10 @@ class TestLibraryFeatures(TwillTestCase): ################## for library in [library1, library2, library3, library4, library5, library6]: self.delete_library_item('library_admin', - self.security.encode_id(library.id), - self.security.encode_id(library.id), - library.name, - item_type='library') + self.security.encode_id(library.id), + self.security.encode_id(library.id), + library.name, + item_type='library') self.purge_library(self.security.encode_id(library.id), library.name) ################## # Make sure all users are associated only with their private roles diff --git a/test/shed_functional/base/test_db_util.py b/test/shed_functional/base/test_db_util.py index 67e58825312..d8a5f2d9a04 100644 --- a/test/shed_functional/base/test_db_util.py +++ b/test/shed_functional/base/test_db_util.py @@ -36,8 +36,8 @@ def get_all_installed_repositories(actually_installed=False): if actually_installed: return install_session.query(galaxy.model.tool_shed_install.ToolShedRepository) \ .filter(and_(galaxy.model.tool_shed_install.ToolShedRepository.table.c.deleted == false(), - galaxy.model.tool_shed_install.ToolShedRepository.table.c.uninstalled == false(), - galaxy.model.tool_shed_install.ToolShedRepository.table.c.status == galaxy.model.tool_shed_install.ToolShedRepository.installation_status.INSTALLED)) \ + galaxy.model.tool_shed_install.ToolShedRepository.table.c.uninstalled == false(), + galaxy.model.tool_shed_install.ToolShedRepository.table.c.status == galaxy.model.tool_shed_install.ToolShedRepository.installation_status.INSTALLED)) \ .all() else: return install_session.query(galaxy.model.tool_shed_install.ToolShedRepository).all() @@ -64,8 +64,8 @@ def get_default_user_permissions_by_user(user): def get_galaxy_repository_by_name_owner_changeset_revision(repository_name, owner, changeset_revision): return install_session.query(galaxy.model.tool_shed_install.ToolShedRepository) \ .filter(and_(galaxy.model.tool_shed_install.ToolShedRepository.table.c.name == repository_name, - galaxy.model.tool_shed_install.ToolShedRepository.table.c.owner == owner, - galaxy.model.tool_shed_install.ToolShedRepository.table.c.changeset_revision == changeset_revision)) \ + galaxy.model.tool_shed_install.ToolShedRepository.table.c.owner == owner, + galaxy.model.tool_shed_install.ToolShedRepository.table.c.changeset_revision == changeset_revision)) \ .first() @@ -78,7 +78,7 @@ def get_installed_repository_by_id(repository_id): def get_installed_repository_by_name_owner(repository_name, owner, return_multiple=False): query = install_session.query(galaxy.model.tool_shed_install.ToolShedRepository) \ .filter(and_(galaxy.model.tool_shed_install.ToolShedRepository.table.c.name == repository_name, - galaxy.model.tool_shed_install.ToolShedRepository.table.c.owner == owner)) + galaxy.model.tool_shed_install.ToolShedRepository.table.c.owner == owner)) if return_multiple: return query.all() return query.first() @@ -101,7 +101,7 @@ def get_role(user, role_name): def get_repository_role_association(repository_id, role_id): rra = sa_session.query(model.RepositoryRoleAssociation) \ .filter(and_(model.RepositoryRoleAssociation.table.c.role_id == role_id, - model.RepositoryRoleAssociation.table.c.repository_id == repository_id)) \ + model.RepositoryRoleAssociation.table.c.repository_id == repository_id)) \ .first() return rra @@ -110,20 +110,20 @@ def get_repository_reviews(repository_id, reviewer_user_id=None, changeset_revis if reviewer_user_id and changeset_revision: reviews = sa_session.query(model.RepositoryReview) \ .filter(and_(model.RepositoryReview.table.c.repository_id == repository_id, - model.RepositoryReview.table.c.deleted == false(), - model.RepositoryReview.table.c.changeset_revision == changeset_revision, - model.RepositoryReview.table.c.user_id == reviewer_user_id)) \ + model.RepositoryReview.table.c.deleted == false(), + model.RepositoryReview.table.c.changeset_revision == changeset_revision, + model.RepositoryReview.table.c.user_id == reviewer_user_id)) \ .all() elif reviewer_user_id: reviews = sa_session.query(model.RepositoryReview) \ .filter(and_(model.RepositoryReview.table.c.repository_id == repository_id, - model.RepositoryReview.table.c.deleted == false(), - model.RepositoryReview.table.c.user_id == reviewer_user_id)) \ + model.RepositoryReview.table.c.deleted == false(), + model.RepositoryReview.table.c.user_id == reviewer_user_id)) \ .all() else: reviews = sa_session.query(model.RepositoryReview) \ .filter(and_(model.RepositoryReview.table.c.repository_id == repository_id, - model.RepositoryReview.table.c.deleted == false())) \ + model.RepositoryReview.table.c.deleted == false())) \ .all() return reviews @@ -147,7 +147,7 @@ def get_repository_by_id(repository_id): def get_repository_downloadable_revisions(repository_id): revisions = sa_session.query(model.RepositoryMetadata) \ .filter(and_(model.RepositoryMetadata.table.c.repository_id == repository_id, - model.RepositoryMetadata.table.c.downloadable == true())) \ + model.RepositoryMetadata.table.c.downloadable == true())) \ .all() return revisions @@ -155,7 +155,7 @@ def get_repository_downloadable_revisions(repository_id): def get_repository_metadata_for_changeset_revision(repository_id, changeset_revision): repository_metadata = sa_session.query(model.RepositoryMetadata) \ .filter(and_(model.RepositoryMetadata.table.c.repository_id == repository_id, - model.RepositoryMetadata.table.c.changeset_revision == changeset_revision)) \ + model.RepositoryMetadata.table.c.changeset_revision == changeset_revision)) \ .first() return repository_metadata @@ -163,8 +163,8 @@ def get_repository_metadata_for_changeset_revision(repository_id, changeset_revi def get_repository_review_by_user_id_changeset_revision(user_id, repository_id, changeset_revision): review = sa_session.query(model.RepositoryReview) \ .filter(and_(model.RepositoryReview.table.c.user_id == user_id, - model.RepositoryReview.table.c.repository_id == repository_id, - model.RepositoryReview.table.c.changeset_revision == changeset_revision)) \ + model.RepositoryReview.table.c.repository_id == repository_id, + model.RepositoryReview.table.c.changeset_revision == changeset_revision)) \ .first() return review @@ -218,7 +218,7 @@ def get_repository_by_name_and_owner(name, owner_username, return_multiple=False owner = get_user_by_name(owner_username) repository = sa_session.query(model.Repository) \ .filter(and_(model.Repository.table.c.name == name, - model.Repository.table.c.user_id == owner.id)) \ + model.Repository.table.c.user_id == owner.id)) \ .first() return repository @@ -226,6 +226,6 @@ def get_repository_by_name_and_owner(name, owner_username, return_multiple=False def get_repository_metadata_by_repository_id_changeset_revision(repository_id, changeset_revision): repository_metadata = sa_session.query(model.RepositoryMetadata) \ .filter(and_(model.RepositoryMetadata.table.c.repository_id == repository_id, - model.RepositoryMetadata.table.c.changeset_revision == changeset_revision)) \ + model.RepositoryMetadata.table.c.changeset_revision == changeset_revision)) \ .first() return repository_metadata diff --git a/test/shed_functional/base/twilltestcase.py b/test/shed_functional/base/twilltestcase.py index d6e48cb69a1..5cb1e468680 100644 --- a/test/shed_functional/base/twilltestcase.py +++ b/test/shed_functional/base/twilltestcase.py @@ -112,10 +112,10 @@ class ShedTwillTestCase(TwillTestCase): for elem in root.findall('repository'): if 'changeset_revision' in elem: raise AssertionError('Exported repository %s with owner %s has a dependency with a defined changeset revision.' % - (repository_name, repository_owner)) + (repository_name, repository_owner)) if 'toolshed' in elem: raise AssertionError('Exported repository %s with owner %s has a dependency with a defined tool shed.' % - (repository_name, repository_owner)) + (repository_name, repository_owner)) def check_for_valid_tools(self, repository, strings_displayed=None, strings_not_displayed=None): if strings_displayed is None: @@ -136,7 +136,7 @@ class ShedTwillTestCase(TwillTestCase): # from the same repository in different tool panel sections. Getting the first tool guid is ok, because # currently all tools contained in a single repository will be loaded into the same tool panel section. if repository.status in [galaxy_model.ToolShedRepository.installation_status.UNINSTALLED, - galaxy_model.ToolShedRepository.installation_status.DEACTIVATED]: + galaxy_model.ToolShedRepository.installation_status.DEACTIVATED]: tool_panel_section = self.get_tool_panel_section_from_repository_metadata(metadata) else: tool_panel_section = self.get_tool_panel_section_from_api(metadata) @@ -144,10 +144,10 @@ class ShedTwillTestCase(TwillTestCase): (expected_tool_panel_section, tool_panel_section, metadata) def check_installed_repository_tool_dependencies(self, - installed_repository, - strings_displayed=None, - strings_not_displayed=None, - dependencies_installed=False): + installed_repository, + strings_displayed=None, + strings_not_displayed=None, + dependencies_installed=False): # Tool dependencies are not being installed in these functional tests. If this is changed, the test method will also need to be updated. if not dependencies_installed: strings_displayed.append('Missing tool dependencies') @@ -217,9 +217,9 @@ class ShedTwillTestCase(TwillTestCase): self.visit_url(url) self.check_for_strings(tool_metadata_strings_displayed) self.load_display_tool_page(repository, tool_xml_path=tool_xml, - changeset_revision=changeset_revision, - strings_displayed=tool_page_strings_displayed, - strings_not_displayed=None) + changeset_revision=changeset_revision, + strings_displayed=tool_page_strings_displayed, + strings_not_displayed=None) def check_repository_invalid_tools_for_changeset_revision(self, repository, changeset_revision, strings_displayed=None, strings_not_displayed=None): '''Load the invalid tool page for each invalid tool associated with this changeset revision and verify the received error messages.''' @@ -228,10 +228,10 @@ class ShedTwillTestCase(TwillTestCase): assert 'invalid_tools' in metadata, 'Metadata for changeset revision %s does not define invalid tools' % changeset_revision for tool_xml in metadata['invalid_tools']: self.load_invalid_tool_page(repository, - tool_xml=tool_xml, - changeset_revision=changeset_revision, - strings_displayed=strings_displayed, - strings_not_displayed=strings_not_displayed) + tool_xml=tool_xml, + changeset_revision=changeset_revision, + strings_displayed=strings_displayed, + strings_not_displayed=strings_not_displayed) def check_string_count_in_page(self, pattern, min_count, max_count=None): """Checks the number of 'pattern' occurrences in the current browser page""" @@ -277,15 +277,15 @@ class ShedTwillTestCase(TwillTestCase): return category def create_repository_dependency(self, - repository=None, - repository_tuples=[], - filepath=None, - prior_installation_required=False, - complex=False, - package=None, - version=None, - strings_displayed=None, - strings_not_displayed=None): + repository=None, + repository_tuples=[], + filepath=None, + prior_installation_required=False, + complex=False, + package=None, + version=None, + strings_displayed=None, + strings_not_displayed=None): repository_names = [] if complex: filename = 'tool_dependencies.xml' @@ -296,19 +296,19 @@ class ShedTwillTestCase(TwillTestCase): dependency_description = '%s depends on %s.' % (repository.name, ', '.join(repository_names)) filename = 'repository_dependencies.xml' self.generate_simple_dependency_xml(repository_tuples=repository_tuples, - filename=filename, - filepath=filepath, - dependency_description=dependency_description, - prior_installation_required=prior_installation_required) + filename=filename, + filepath=filepath, + dependency_description=dependency_description, + prior_installation_required=prior_installation_required) self.upload_file(repository, - filename=filename, - filepath=filepath, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded dependency on %s.' % ', '.join(repository_names), - strings_displayed=None, - strings_not_displayed=None) + filename=filename, + filepath=filepath, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded dependency on %s.' % ', '.join(repository_names), + strings_displayed=None, + strings_not_displayed=None) def create_repository_review(self, repository, review_contents_dict, changeset_revision=None, copy_from=None): strings_displayed = [] @@ -624,10 +624,10 @@ class ShedTwillTestCase(TwillTestCase): template = string.Template(common.new_repository_dependencies_line) for toolshed_url, name, owner, changeset_revision in repository_tuples: dependency_entries.append(template.safe_substitute(toolshed_url=toolshed_url, - owner=owner, - repository_name=name, - changeset_revision=changeset_revision, - prior_installation_required='')) + owner=owner, + repository_name=name, + changeset_revision=changeset_revision, + prior_installation_required='')) if not os.path.exists(filepath): os.makedirs(filepath) dependency_template = string.Template(common.complex_repository_dependency_template) @@ -636,14 +636,14 @@ class ShedTwillTestCase(TwillTestCase): open(file_path, 'w').write(repository_dependency_xml) def generate_simple_dependency_xml(self, - repository_tuples, - filename, - filepath, - dependency_description='', - complex=False, - package=None, - version=None, - prior_installation_required=False): + repository_tuples, + filename, + filepath, + dependency_description='', + complex=False, + package=None, + version=None, + prior_installation_required=False): if not os.path.exists(filepath): os.makedirs(filepath) dependency_entries = [] @@ -654,10 +654,10 @@ class ShedTwillTestCase(TwillTestCase): for toolshed_url, name, owner, changeset_revision in repository_tuples: template = string.Template(common.new_repository_dependencies_line) dependency_entries.append(template.safe_substitute(toolshed_url=toolshed_url, - owner=owner, - repository_name=name, - changeset_revision=changeset_revision, - prior_installation_required=prior_installation_value)) + owner=owner, + repository_name=name, + changeset_revision=changeset_revision, + prior_installation_required=prior_installation_value)) if dependency_description: description = ' description="%s"' % dependency_description else: @@ -684,7 +684,7 @@ class ShedTwillTestCase(TwillTestCase): def get_env_sh_path(self, tool_dependency_name, tool_dependency_version, repository): '''Return the absolute path to an installed repository's env.sh file.''' env_sh_path = os.path.join(self.get_tool_dependency_path(tool_dependency_name, tool_dependency_version, repository), - 'env.sh') + 'env.sh') return env_sh_path def get_filename(self, filename, filepath=None): @@ -714,11 +714,11 @@ class ShedTwillTestCase(TwillTestCase): def get_tool_dependency_path(self, tool_dependency_name, tool_dependency_version, repository): '''Return the absolute path for an installed tool dependency.''' return os.path.join(self.galaxy_tool_dependency_dir, - tool_dependency_name, - tool_dependency_version, - repository.owner, - repository.name, - repository.installed_changeset_revision) + tool_dependency_name, + tool_dependency_version, + repository.owner, + repository.name, + repository.installed_changeset_revision) def get_or_create_repository(self, owner=None, strings_displayed=None, strings_not_displayed=None, **kwd): # If not checking for a specific string, it should be safe to assume that @@ -856,21 +856,21 @@ class ShedTwillTestCase(TwillTestCase): # As elsewhere, twill limits the possibility of submitting the form, this time due to not executing the javascript # attached to the role selection form. Visit the action url directly with the necessary parameters. params = dict(id=self.security.encode_id(role.id), - in_users=user.id, - operation='manage users and groups', - role_members_edit_button='Save') + in_users=user.id, + operation='manage users and groups', + role_members_edit_button='Save') url = '/admin/manage_users_and_groups_for_role' self.visit_url(url, params) strings_displayed = ["Role '%s' has been updated" % role.name] self.check_for_strings(strings_displayed, strings_not_displayed) def grant_write_access(self, - repository, - usernames=[], - strings_displayed=None, - strings_not_displayed=None, - post_submit_strings_displayed=None, - post_submit_strings_not_displayed=None): + repository, + usernames=[], + strings_displayed=None, + strings_not_displayed=None, + post_submit_strings_displayed=None, + post_submit_strings_not_displayed=None): self.display_manage_repository_page(repository) self.check_for_strings(strings_displayed, strings_not_displayed) for username in usernames: @@ -879,7 +879,7 @@ class ShedTwillTestCase(TwillTestCase): self.check_for_strings(post_submit_strings_displayed, post_submit_strings_not_displayed) def import_capsule(self, filename, strings_displayed=None, strings_not_displayed=None, - strings_displayed_after_submit=[], strings_not_displayed_after_submit=[]): + strings_displayed_after_submit=[], strings_not_displayed_after_submit=[]): url = '/repository/upload_capsule' self.visit_url(url) tc.formfile('upload_capsule', 'file_data', filename) @@ -901,10 +901,10 @@ class ShedTwillTestCase(TwillTestCase): self.check_for_strings(strings_displayed, strings_not_displayed) def initiate_installation_process(self, - install_tool_dependencies=False, - install_repository_dependencies=True, - no_changes=True, - new_tool_panel_section_label=None): + install_tool_dependencies=False, + install_repository_dependencies=True, + no_changes=True, + new_tool_panel_section_label=None): html = self.last_page() # Since the installation process is by necessity asynchronous, we have to get the parameters to 'manually' initiate the # installation process. This regex will return the tool shed repository IDs in group(1), the encoded_kwd parameter in @@ -927,7 +927,7 @@ class ShedTwillTestCase(TwillTestCase): return galaxy.util.listify(repository_ids) def install_repositories_from_search_results(self, repositories, install_tool_dependencies=False, - strings_displayed=None, strings_not_displayed=None, **kwd): + strings_displayed=None, strings_not_displayed=None, **kwd): ''' Normally, it would be possible to check the appropriate boxes in the search results, and click the install button. This works in a browser, but Twill manages to lose the 'toolshedgalaxyurl' cookie between one page and the next, so it's necessary to work @@ -953,10 +953,10 @@ class ShedTwillTestCase(TwillTestCase): self.wait_for_repository_installation(repository_ids) def install_repository(self, name, owner, category_name, install_resolver_dependencies=False, install_tool_dependencies=False, - install_repository_dependencies=True, changeset_revision=None, - strings_displayed=None, strings_not_displayed=None, preview_strings_displayed=None, - post_submit_strings_displayed=None, new_tool_panel_section_label=None, includes_tools_for_display_in_tool_panel=True, - **kwd): + install_repository_dependencies=True, changeset_revision=None, + strings_displayed=None, strings_not_displayed=None, preview_strings_displayed=None, + post_submit_strings_displayed=None, new_tool_panel_section_label=None, includes_tools_for_display_in_tool_panel=True, + **kwd): self.browse_tool_shed(url=self.url) self.browse_category(test_db_util.get_category_by_name(category_name)) self.preview_repository_in_tool_shed(name, owner, strings_displayed=preview_strings_displayed) @@ -989,15 +989,15 @@ class ShedTwillTestCase(TwillTestCase): self.wait_for_repository_installation(repository_ids) def load_citable_url(self, - username, - repository_name, - changeset_revision, - encoded_user_id, - encoded_repository_id, - strings_displayed=None, - strings_not_displayed=None, - strings_displayed_in_iframe=[], - strings_not_displayed_in_iframe=[]): + username, + repository_name, + changeset_revision, + encoded_user_id, + encoded_repository_id, + strings_displayed=None, + strings_not_displayed=None, + strings_displayed_in_iframe=[], + strings_not_displayed_in_iframe=[]): url = '%s/view/%s' % (self.url, username) # If repository name is passed in, append that to the url. if repository_name: @@ -1027,11 +1027,11 @@ class ShedTwillTestCase(TwillTestCase): def load_checkable_revisions(self, strings_displayed=None, strings_not_displayed=None): params = urlencode(dict(do_not_test='false', - downloadable='true', - includes_tools='true', - malicious='false', - missing_test_components='false', - skip_tool_test='false')) + downloadable='true', + includes_tools='true', + malicious='false', + missing_test_components='false', + skip_tool_test='false')) api_url = '%s?%s' % ('/'.join([self.url, 'api', 'repository_revisions']), params) self.visit_url(api_url) self.check_for_strings(strings_displayed, strings_not_displayed) @@ -1079,7 +1079,7 @@ class ShedTwillTestCase(TwillTestCase): if not changeset_revision: changeset_revision = self.get_repository_tip(repository) self.visit_url('/repository/preview_tools_in_changeset?repository_id=%s&changeset_revision=%s' % - (self.security.encode_id(repository.id), changeset_revision)) + (self.security.encode_id(repository.id), changeset_revision)) self.check_for_strings(strings_displayed, strings_not_displayed) def preview_workflow_in_tool_shed(self, repository_name, owner, workflow_name, strings_displayed=None, strings_not_displayed=None): @@ -1098,13 +1098,13 @@ class ShedTwillTestCase(TwillTestCase): self.check_for_strings(strings_displayed, []) def reinstall_repository(self, - installed_repository, - install_repository_dependencies=True, - install_tool_dependencies=False, - no_changes=True, - new_tool_panel_section_label='', - strings_displayed=None, - strings_not_displayed=None): + installed_repository, + install_repository_dependencies=True, + install_tool_dependencies=False, + no_changes=True, + new_tool_panel_section_label='', + strings_displayed=None, + strings_not_displayed=None): url = '/admin_toolshed/reselect_tool_panel_section?id=%s' % self.security.encode_id(installed_repository.id) self.visit_galaxy_url(url) self.check_for_strings(strings_displayed, strings_not_displayed=None) @@ -1128,9 +1128,9 @@ class ShedTwillTestCase(TwillTestCase): # Manually initiate the install process, as with installing a repository. See comments in the # initiate_installation_process method for details. repository_ids = self.initiate_installation_process(install_tool_dependencies, - install_repository_dependencies, - no_changes, - new_tool_panel_section_label) + install_repository_dependencies, + no_changes, + new_tool_panel_section_label) # Finally, wait until all repositories are in a final state (either Error or Installed) before returning. self.wait_for_repository_installation(repository_ids) @@ -1195,12 +1195,12 @@ class ShedTwillTestCase(TwillTestCase): self.check_for_strings(strings_displayed, strings_not_displayed) def send_message_to_repository_owner(self, - repository, - message, - strings_displayed=None, - strings_not_displayed=None, - post_submit_strings_displayed=None, - post_submit_strings_not_displayed=None): + repository, + message, + strings_displayed=None, + strings_not_displayed=None, + post_submit_strings_displayed=None, + post_submit_strings_not_displayed=None): url = '/repository/contact_owner?id=%s' % self.security.encode_id(repository.id) self.visit_url(url) self.check_for_strings(strings_displayed, strings_not_displayed) @@ -1290,15 +1290,15 @@ class ShedTwillTestCase(TwillTestCase): self.visit_galaxy_url(url) def upload_file(self, - repository, - filename, - filepath, - valid_tools_only, - uncompress_file, - remove_repo_files_not_in_tar, - commit_message, - strings_displayed=None, - strings_not_displayed=None): + repository, + filename, + filepath, + valid_tools_only, + uncompress_file, + remove_repo_files_not_in_tar, + commit_message, + strings_displayed=None, + strings_not_displayed=None): if strings_displayed is None: strings_displayed = [] if strings_not_displayed is None: @@ -1340,15 +1340,15 @@ class ShedTwillTestCase(TwillTestCase): # continue def upload_url(self, - repository, - url, - filepath, - valid_tools_only, - uncompress_file, - remove_repo_files_not_in_tar, - commit_message, - strings_displayed=None, - strings_not_displayed=None): + repository, + url, + filepath, + valid_tools_only, + uncompress_file, + remove_repo_files_not_in_tar, + commit_message, + strings_displayed=None, + strings_not_displayed=None): removed_message = 'files were removed from the repository' if remove_repo_files_not_in_tar: if not self.repository_is_new(repository): @@ -1517,7 +1517,7 @@ class ShedTwillTestCase(TwillTestCase): def wait_for_repository_installation(self, repository_ids): final_states = [galaxy_model.ToolShedRepository.installation_status.ERROR, - galaxy_model.ToolShedRepository.installation_status.INSTALLED] + galaxy_model.ToolShedRepository.installation_status.INSTALLED] # Wait until all repositories are in a final state before returning. This ensures that subsequent tests # are running against an installed repository, and not one that is still in the process of installing. if repository_ids: @@ -1530,6 +1530,6 @@ class ShedTwillTestCase(TwillTestCase): # This timeout currently defaults to 10 minutes. if timeout_counter > repository_installation_timeout: raise AssertionError('Repository installation timed out, %d seconds elapsed, repository state is %s.' % - (timeout_counter, galaxy_repository.status)) + (timeout_counter, galaxy_repository.status)) break time.sleep(1) diff --git a/test/shed_functional/functional/test_0000_basic_repository_features.py b/test/shed_functional/functional/test_0000_basic_repository_features.py index 1d0790a2b92..ed50fccc336 100644 --- a/test/shed_functional/functional/test_0000_basic_repository_features.py +++ b/test/shed_functional/functional/test_0000_basic_repository_features.py @@ -44,11 +44,11 @@ class TestBasicRepositoryFeatures(ShedTwillTestCase): category = self.test_db_util.get_category_by_name('Test 0000 Basic Repository Features 1') strings_displayed = self.expect_repo_created_strings(repository_name) self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) def test_0020_edit_repository(self): """Edit the repository name, description, and long description""" @@ -62,8 +62,8 @@ class TestBasicRepositoryFeatures(ShedTwillTestCase): """Change the categories associated with the filtering repository""" repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.edit_repository_categories(repository, - categories_to_add=["Test 0000 Basic Repository Features 2"], - categories_to_remove=["Test 0000 Basic Repository Features 1"]) + categories_to_add=["Test 0000 Basic Repository Features 2"], + categories_to_remove=["Test 0000 Basic Repository Features 1"]) def test_0030_grant_write_access(self): '''Grant write access to another user''' @@ -75,14 +75,14 @@ class TestBasicRepositoryFeatures(ShedTwillTestCase): """Upload filtering_1.1.0.tar to the repository""" repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=True, - commit_message="Uploaded filtering 1.1.0", - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=True, + commit_message="Uploaded filtering 1.1.0", + strings_displayed=[], + strings_not_displayed=[]) def test_0040_verify_repository(self): '''Display basic repository pages''' @@ -93,42 +93,42 @@ class TestBasicRepositoryFeatures(ShedTwillTestCase): tip = self.get_repository_tip(repository) tool_guid = '%s/repos/user1/filtering_0000/Filter1/1.1.0' % self.url.replace('http://', '').rstrip('/') tool_metadata_strings_displayed = [tool_guid, - '1.1.0', # The tool version. - 'Filter1', # The tool ID. - 'Filter', # The tool name. - 'data on any column using simple expressions'] # The tool description. + '1.1.0', # The tool version. + 'Filter1', # The tool ID. + 'Filter', # The tool name. + 'data on any column using simple expressions'] # The tool description. tool_page_strings_displayed = ['Filter (version 1.1.0)'] self.check_repository_tools_for_changeset_revision(repository, - tip, - tool_metadata_strings_displayed=tool_metadata_strings_displayed, - tool_page_strings_displayed=tool_page_strings_displayed) + tip, + tool_metadata_strings_displayed=tool_metadata_strings_displayed, + tool_page_strings_displayed=tool_page_strings_displayed) self.check_repository_metadata(repository, tip_only=False) self.browse_repository(repository, strings_displayed=["Repository '%s' revision" % repository.name, '(repository tip)']) self.display_repository_clone_page(common.test_user_1_name, - repository_name, - strings_displayed=['Uploaded filtering 1.1.0', latest_changeset_revision]) + repository_name, + strings_displayed=['Uploaded filtering 1.1.0', latest_changeset_revision]) def test_0045_alter_repository_states(self): '''Test toggling the malicious and deprecated repository flags.''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.login(email=common.admin_email, username=common.admin_username) self.set_repository_malicious(repository, - set_malicious=True, - strings_displayed=['The repository tip has been defined as malicious.']) + set_malicious=True, + strings_displayed=['The repository tip has been defined as malicious.']) self.set_repository_malicious(repository, - set_malicious=False, - strings_displayed=['The repository tip has been defined as not malicious.']) + set_malicious=False, + strings_displayed=['The repository tip has been defined as not malicious.']) self.login(email=common.test_user_1_email, username=common.test_user_1_name) self.set_repository_deprecated(repository, - strings_displayed=['has been marked as deprecated']) + strings_displayed=['has been marked as deprecated']) strings_displayed = ['This repository has been marked as deprecated', 'Mark repository as not deprecated'] self.display_manage_repository_page(repository, - strings_displayed=strings_displayed, - strings_not_displayed=['Upload files', 'Reset all repository metadata']) + strings_displayed=strings_displayed, + strings_not_displayed=['Upload files', 'Reset all repository metadata']) self.browse_repository(repository, strings_not_displayed=['Upload files']) self.set_repository_deprecated(repository, - strings_displayed=['has been marked as not deprecated'], - set_deprecated=False) + strings_displayed=['has been marked as not deprecated'], + set_deprecated=False) strings_displayed = ['Mark repository as deprecated', 'Upload files', 'Reset all repository metadata'] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) @@ -136,56 +136,56 @@ class TestBasicRepositoryFeatures(ShedTwillTestCase): '''Display the contents of filtering.xml in the repository tip revision''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.display_repository_file_contents(repository=repository, - filename='filtering.xml', - filepath=None, - strings_displayed=['1.1.0'], - strings_not_displayed=[]) + filename='filtering.xml', + filepath=None, + strings_displayed=['1.1.0'], + strings_not_displayed=[]) def test_0055_upload_filtering_txt_file(self): '''Upload filtering.txt file associated with tool version 1.1.0.''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='filtering/filtering_0000.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message="Uploaded filtering.txt", - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_0000.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message="Uploaded filtering.txt", + strings_displayed=[], + strings_not_displayed=[]) self.display_manage_repository_page(repository, strings_displayed=['Readme file for filtering 1.1.0']) def test_0060_upload_filtering_test_data(self): '''Upload filtering test data.''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='filtering/filtering_test_data.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message="Uploaded filtering test data", - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_test_data.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message="Uploaded filtering test data", + strings_displayed=[], + strings_not_displayed=[]) self.display_repository_file_contents(repository=repository, - filename='1.bed', - filepath='test-data', - strings_displayed=[], - strings_not_displayed=[]) + filename='1.bed', + filepath='test-data', + strings_displayed=[], + strings_not_displayed=[]) self.check_repository_metadata(repository, tip_only=True) def test_0065_upload_filtering_2_2_0(self): '''Upload filtering version 2.2.0''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message="Uploaded filtering 2.2.0", - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message="Uploaded filtering 2.2.0", + strings_displayed=[], + strings_not_displayed=[]) def test_0070_verify_filtering_repository(self): '''Verify the new tool versions and repository metadata.''' @@ -197,34 +197,34 @@ class TestBasicRepositoryFeatures(ShedTwillTestCase): self.check_count_of_metadata_revisions_associated_with_repository(repository, metadata_count=2) tool_guid = '%s/repos/user1/filtering_0000/Filter1/2.2.0' % self.url.replace('http://', '').rstrip('/') tool_metadata_strings_displayed = [tool_guid, - '2.2.0', # The tool version. - 'Filter1', # The tool ID. - 'Filter', # The tool name. - 'data on any column using simple expressions'] # The tool description. + '2.2.0', # The tool version. + 'Filter1', # The tool ID. + 'Filter', # The tool name. + 'data on any column using simple expressions'] # The tool description. tool_page_strings_displayed = ['Filter (version 2.2.0)'] self.check_repository_tools_for_changeset_revision(repository, - tip, - tool_metadata_strings_displayed=tool_metadata_strings_displayed, - tool_page_strings_displayed=tool_page_strings_displayed) + tip, + tool_metadata_strings_displayed=tool_metadata_strings_displayed, + tool_page_strings_displayed=tool_page_strings_displayed) self.check_repository_metadata(repository, tip_only=False) def test_0075_upload_readme_txt_file(self): '''Upload readme.txt file associated with tool version 2.2.0.''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='readme.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message="Uploaded readme.txt", - strings_displayed=[], - strings_not_displayed=[]) + filename='readme.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message="Uploaded readme.txt", + strings_displayed=[], + strings_not_displayed=[]) self.display_manage_repository_page(repository, strings_displayed=['This is a readme file.']) # Verify that there is a different readme file for each metadata revision. self.display_manage_repository_page(repository, - strings_displayed=['Readme file for filtering 1.1.0', - 'This is a readme file.']) + strings_displayed=['Readme file for filtering 1.1.0', + 'This is a readme file.']) def test_0080_delete_readme_txt_file(self): '''Delete the readme.txt file.''' @@ -250,11 +250,11 @@ class TestBasicRepositoryFeatures(ShedTwillTestCase): category = self.test_db_util.get_category_by_name('Test 0000 Basic Repository Features 1') error_message = 'The term repos is a reserved word in the tool shed, so it cannot be used as a repository name.' self.get_or_create_repository(name='repos', - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[error_message]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[error_message]) def test_0100_verify_reserved_username_handling(self): '''Check that reserved usernames are handled correctly.''' @@ -278,9 +278,9 @@ class TestBasicRepositoryFeatures(ShedTwillTestCase): strings_displayed = ['Contact the owner of the repository named', repository.name, 'streamline appropriate communication'] post_submit_strings_displayed = ['An error occurred sending your message by email'] self.send_message_to_repository_owner(repository=repository, - message=message, - strings_displayed=strings_displayed, - post_submit_strings_displayed=post_submit_strings_displayed) + message=message, + strings_displayed=strings_displayed, + post_submit_strings_displayed=post_submit_strings_displayed) def test_0110_delete_filtering_repository(self): '''Delete the filtering_0000 repository and verify that it no longer has any downloadable revisions.''' @@ -321,14 +321,14 @@ class TestBasicRepositoryFeatures(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) # Upload readme.txt to the filtering_0000 repository and verify that it is now displayed. self.upload_file(repository, - filename='filtering/readme.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message="Uploaded new readme.txt with invalid ascii characters.", - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/readme.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message="Uploaded new readme.txt with invalid ascii characters.", + strings_displayed=[], + strings_not_displayed=[]) self.display_manage_repository_page(repository, strings_displayed=['These characters should not']) def test_0130_verify_handling_of_invalid_characters(self): @@ -347,7 +347,7 @@ class TestBasicRepositoryFeatures(ShedTwillTestCase): # Check for the changeset revision, repository name, owner username, 'repos' in the clone url, and the captured # unicode decoding error message. strings_displayed = ['%d:%s' % (revision_number, revision_hash), 'filtering_0000', 'user1', 'repos', 'added:', - '+These characters should not'] + '+These characters should not'] self.load_changeset_in_tool_shed(repository_id, changeset_revision, strings_displayed=strings_displayed) def test_0135_api_get_repositories_in_category(self): diff --git a/test/shed_functional/functional/test_0010_repository_with_tool_dependencies.py b/test/shed_functional/functional/test_0010_repository_with_tool_dependencies.py index 377017a2bae..032c7550b05 100644 --- a/test/shed_functional/functional/test_0010_repository_with_tool_dependencies.py +++ b/test/shed_functional/functional/test_0010_repository_with_tool_dependencies.py @@ -45,20 +45,20 @@ class TestFreebayesRepository(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) category = self.test_db_util.get_category_by_name('Test 0010 Repository With Tool Dependencies') repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='freebayes/freebayes.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool xml.', - strings_displayed=['Metadata may have been defined', 'This file requires an entry', 'tool_data_table_conf'], - strings_not_displayed=[]) + filename='freebayes/freebayes.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool xml.', + strings_displayed=['Metadata may have been defined', 'This file requires an entry', 'tool_data_table_conf'], + strings_not_displayed=[]) self.display_manage_repository_page(repository, strings_displayed=['Invalid tools'], strings_not_displayed=['Valid tools']) tip = self.get_repository_tip(repository) strings_displayed = ['requires an entry', 'tool_data_table_conf.xml'] @@ -72,14 +72,14 @@ class TestFreebayesRepository(ShedTwillTestCase): ''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='freebayes/tool_data_table_conf.xml.sample', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool data table sample file.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/tool_data_table_conf.xml.sample', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool data table sample file.', + strings_displayed=[], + strings_not_displayed=[]) self.display_manage_repository_page(repository, strings_displayed=['Invalid tools'], strings_not_displayed=['Valid tools']) tip = self.get_repository_tip(repository) strings_displayed = ['refers to a file', 'sam_fa_indices.loc'] @@ -93,14 +93,14 @@ class TestFreebayesRepository(ShedTwillTestCase): ''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='freebayes/sam_fa_indices.loc.sample', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool data table .loc file.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/sam_fa_indices.loc.sample', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool data table .loc file.', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_upload_malformed_tool_dependency_xml(self): '''Upload tool_dependencies.xml with bad characters in the readme tag.''' @@ -110,14 +110,14 @@ class TestFreebayesRepository(ShedTwillTestCase): ''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename=os.path.join('freebayes', 'malformed_tool_dependencies', 'tool_dependencies.xml'), - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded malformed tool dependency XML.', - strings_displayed=['Exception attempting to parse', 'not well-formed'], - strings_not_displayed=[]) + filename=os.path.join('freebayes', 'malformed_tool_dependencies', 'tool_dependencies.xml'), + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded malformed tool dependency XML.', + strings_displayed=['Exception attempting to parse', 'not well-formed'], + strings_not_displayed=[]) def test_0030_upload_invalid_tool_dependency_xml(self): '''Upload tool_dependencies.xml defining version 0.9.5 of the freebayes package.''' @@ -127,14 +127,14 @@ class TestFreebayesRepository(ShedTwillTestCase): ''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename=os.path.join('freebayes', 'invalid_tool_dependencies', 'tool_dependencies.xml'), - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded invalid tool dependency XML.', - strings_displayed=['The settings for name, version and type from a contained tool configuration'], - strings_not_displayed=[]) + filename=os.path.join('freebayes', 'invalid_tool_dependencies', 'tool_dependencies.xml'), + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded invalid tool dependency XML.', + strings_displayed=['The settings for name, version and type from a contained tool configuration'], + strings_not_displayed=[]) def test_0035_upload_valid_tool_dependency_xml(self): '''Upload tool_dependencies.xml defining version 0.9.4_9696d0ce8a962f7bb61c4791be5ce44312b81cf8 of the freebayes package.''' @@ -144,14 +144,14 @@ class TestFreebayesRepository(ShedTwillTestCase): ''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename=os.path.join('freebayes', 'tool_dependencies.xml'), - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded valid tool dependency XML.', - strings_displayed=[], - strings_not_displayed=[]) + filename=os.path.join('freebayes', 'tool_dependencies.xml'), + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded valid tool dependency XML.', + strings_displayed=[], + strings_not_displayed=[]) def test_0040_verify_tool_dependencies(self): '''Verify that the uploaded tool_dependencies.xml specifies the correct package versions.''' diff --git a/test/shed_functional/functional/test_0020_basic_repository_dependencies.py b/test/shed_functional/functional/test_0020_basic_repository_dependencies.py index b7d60f217a1..136943910e7 100644 --- a/test/shed_functional/functional/test_0020_basic_repository_dependencies.py +++ b/test/shed_functional/functional/test_0020_basic_repository_dependencies.py @@ -38,14 +38,14 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): category_id=self.security.encode_id(category.id), strings_displayed=[]) self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_verify_datatypes_in_datatypes_repository(self): '''Verify that the emboss_datatypes repository contains datatype entries.''' @@ -62,14 +62,14 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): category_id=self.security.encode_id(category.id), strings_displayed=[]) self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_generate_and_upload_repository_dependencies_xml(self): '''Generate and upload the repository_dependencies.xml file''' @@ -85,13 +85,13 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): datatypes_repository = self.test_db_util.get_repository_by_name_and_owner(datatypes_repository_name, common.test_user_1_name) changeset_revision = self.get_repository_tip(datatypes_repository) strings_displayed = ['Tool dependencies', - 'emboss', - '5.0.0', - 'package', - 'emboss_datatypes_0020', - 'user1', - changeset_revision, - 'Repository dependencies'] + 'emboss', + '5.0.0', + 'package', + 'emboss_datatypes_0020', + 'user1', + changeset_revision, + 'Repository dependencies'] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) def test_0040_verify_repository_metadata(self): diff --git a/test/shed_functional/functional/test_0030_repository_dependency_revisions.py b/test/shed_functional/functional/test_0030_repository_dependency_revisions.py index f217c2e156f..06de82464d7 100644 --- a/test/shed_functional/functional/test_0030_repository_dependency_revisions.py +++ b/test/shed_functional/functional/test_0030_repository_dependency_revisions.py @@ -34,76 +34,76 @@ class TestRepositoryDependencyRevisions(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) category = self.test_db_util.get_category_by_name('Test 0030 Repository Dependency Revisions') repository = self.get_or_create_repository(name=emboss_5_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id)) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id)) self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_emboss_6_repository(self): '''Create and populate the emboss_6_0030 repository.''' self.login(email=common.test_user_1_email, username=common.test_user_1_name) category = self.test_db_util.get_category_by_name('Test 0030 Repository Dependency Revisions') repository = self.get_or_create_repository(name=emboss_6_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id)) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id)) self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_emboss_datatypes_repository(self): '''Create and populate the emboss_datatypes_0030 repository.''' self.login(email=common.test_user_1_email, username=common.test_user_1_name) category = self.test_db_util.get_category_by_name('Test 0030 Repository Dependency Revisions') repository = self.get_or_create_repository(name=datatypes_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id)) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id)) self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_create_emboss_repository(self): '''Create and populate the emboss_0030 repository.''' self.login(email=common.test_user_1_email, username=common.test_user_1_name) category = self.test_db_util.get_category_by_name('Test 0030 Repository Dependency Revisions') repository = self.get_or_create_repository(name=emboss_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id)) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id)) self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0030_generate_repository_dependencies_for_emboss_5(self): '''Generate a repository_dependencies.xml file specifying emboss_datatypes and upload it to the emboss_5 repository.''' @@ -150,8 +150,8 @@ class TestRepositoryDependencyRevisions(ShedTwillTestCase): strings_displayed = ['emboss_datatypes_0030', 'user1', datatypes_tip] strings_displayed.extend(['Tool dependencies', 'emboss', '5.0.0', 'package']) self.display_manage_repository_page(repository, - changeset_revision=changeset_revision, - strings_displayed=strings_displayed) + changeset_revision=changeset_revision, + strings_displayed=strings_displayed) def test_0055_verify_repository_metadata(self): '''Verify that resetting the metadata does not change it.''' diff --git a/test/shed_functional/functional/test_0040_repository_circular_dependencies.py b/test/shed_functional/functional/test_0040_repository_circular_dependencies.py index 44cc1d758d3..94d57ae43dd 100644 --- a/test/shed_functional/functional/test_0040_repository_circular_dependencies.py +++ b/test/shed_functional/functional/test_0040_repository_circular_dependencies.py @@ -31,39 +31,39 @@ class TestRepositoryCircularDependencies(ShedTwillTestCase): '''Create and populate freebayes_0040.''' self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=freebayes_repository_name, - description=freebayes_repository_description, - long_description=freebayes_repository_long_description, - owner=common.test_user_1_name, - categories=['test_0040_repository_circular_dependencies'], - strings_displayed=[]) + description=freebayes_repository_description, + long_description=freebayes_repository_long_description, + owner=common.test_user_1_name, + categories=['test_0040_repository_circular_dependencies'], + strings_displayed=[]) self.upload_file(repository, - filename='freebayes/freebayes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_filtering_repository(self): '''Create and populate filtering_0040.''' self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=filtering_repository_name, - description=filtering_repository_description, - long_description=filtering_repository_long_description, - owner=common.test_user_1_name, - categories=['test_0040_repository_circular_dependencies'], - strings_displayed=[]) + description=filtering_repository_description, + long_description=filtering_repository_long_description, + owner=common.test_user_1_name, + categories=['test_0040_repository_circular_dependencies'], + strings_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool tarball for filtering 1.1.0.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool tarball for filtering 1.1.0.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_dependency_on_freebayes(self): '''Upload a repository_dependencies.xml file that specifies the current revision of freebayes to the filtering_0040 repository.''' @@ -112,5 +112,5 @@ class TestRepositoryCircularDependencies(ShedTwillTestCase): '''Verify that freebayes displays tool dependencies.''' repository = self.test_db_util.get_repository_by_name_and_owner(freebayes_repository_name, common.test_user_1_name) self.display_manage_repository_page(repository, - strings_displayed=['freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18', 'Valid tools', 'package'], - strings_not_displayed=['Invalid tools']) + strings_displayed=['freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18', 'Valid tools', 'package'], + strings_not_displayed=['Invalid tools']) diff --git a/test/shed_functional/functional/test_0050_circular_dependencies_4_levels.py b/test/shed_functional/functional/test_0050_circular_dependencies_4_levels.py index 89ac2d6275c..22120886e36 100644 --- a/test/shed_functional/functional/test_0050_circular_dependencies_4_levels.py +++ b/test/shed_functional/functional/test_0050_circular_dependencies_4_levels.py @@ -51,135 +51,135 @@ class TestRepositoryCircularDependenciesToNLevels(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert_chars tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert_chars tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_column_repository(self): '''Create and populate convert_chars_0050.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column_maker tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column_maker tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_emboss_datatypes_repository(self): '''Create and populate emboss_datatypes_0050.''' category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=emboss_datatypes_repository_name, - description=emboss_datatypes_repository_description, - long_description=emboss_datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_datatypes_repository_description, + long_description=emboss_datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_emboss_repository(self): '''Create and populate emboss_0050.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=emboss_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_create_filtering_repository(self): '''Create and populate filtering_0050.''' category = self.create_category(name=category_name, description=category_description) filtering_repository = self.get_or_create_repository(name=filtering_repository_name, - description=filtering_repository_description, - long_description=filtering_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=filtering_repository_description, + long_description=filtering_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(filtering_repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0030_create_freebayes_repository(self): '''Create and populate freebayes_0050.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=freebayes_repository_name, - description=freebayes_repository_description, - long_description=freebayes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=freebayes_repository_description, + long_description=freebayes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='freebayes/freebayes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded freebayes tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded freebayes tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0035_create_bismark_repository(self): '''Create and populate bismark_0050.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=bismark_repository_name, - description=bismark_repository_description, - long_description=bismark_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bismark_repository_description, + long_description=bismark_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='bismark/bismark.tar', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded bismark tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bismark/bismark.tar', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded bismark tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0040_create_and_upload_dependency_definitions(self): column_repository = self.test_db_util.get_repository_by_name_and_owner(column_repository_name, common.test_user_1_name) @@ -207,8 +207,8 @@ class TestRepositoryCircularDependenciesToNLevels(ShedTwillTestCase): self.create_repository_dependency(repository=datatypes_repository, repository_tuples=[bismark_tuple], filepath=dependency_xml_path) self.create_repository_dependency(repository=emboss_repository, repository_tuples=[datatypes_tuple], filepath=dependency_xml_path) self.create_repository_dependency(repository=freebayes_repository, - repository_tuples=[freebayes_tuple, datatypes_tuple, emboss_tuple, column_tuple], - filepath=dependency_xml_path) + repository_tuples=[freebayes_tuple, datatypes_tuple, emboss_tuple, column_tuple], + filepath=dependency_xml_path) self.create_repository_dependency(repository=filtering_repository, repository_tuples=[emboss_tuple], filepath=dependency_xml_path) def test_0045_verify_repository_dependencies(self): @@ -246,14 +246,14 @@ class TestRepositoryCircularDependenciesToNLevels(ShedTwillTestCase): self.check_repository_dependency(freebayes_repository, repository) strings_displayed = ['freebayes_0050 depends on freebayes_0050, emboss_datatypes_0050, emboss_0050, column_maker_0050.'] self.display_manage_repository_page(freebayes_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0050_verify_tool_dependencies(self): '''Check that freebayes and emboss display tool dependencies.''' freebayes_repository = self.test_db_util.get_repository_by_name_and_owner(freebayes_repository_name, common.test_user_1_name) emboss_repository = self.test_db_util.get_repository_by_name_and_owner(emboss_repository_name, common.test_user_1_name) self.display_manage_repository_page(freebayes_repository, - strings_displayed=['freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18', 'Tool dependencies', 'package']) + strings_displayed=['freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18', 'Tool dependencies', 'package']) self.display_manage_repository_page(emboss_repository, strings_displayed=['Tool dependencies', 'emboss', '5.0.0', 'package']) def test_0055_verify_repository_metadata(self): diff --git a/test/shed_functional/functional/test_0060_workflows.py b/test/shed_functional/functional/test_0060_workflows.py index 875d075a2b5..a1331949ac9 100644 --- a/test/shed_functional/functional/test_0060_workflows.py +++ b/test/shed_functional/functional/test_0060_workflows.py @@ -39,11 +39,11 @@ class TestToolShedWorkflowFeatures(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) def test_0015_upload_workflow(self): '''Upload a workflow with a missing tool, and verify that the tool specified is marked as missing.''' @@ -55,28 +55,28 @@ class TestToolShedWorkflowFeatures(ShedTwillTestCase): os.makedirs(workflow_filepath) open(os.path.join(workflow_filepath, workflow_filename), 'w+').write(workflow) self.upload_file(repository, - filename=workflow_filename, - filepath=workflow_filepath, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering workflow.', - strings_displayed=[], - strings_not_displayed=[]) + filename=workflow_filename, + filepath=workflow_filepath, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering workflow.', + strings_displayed=[], + strings_not_displayed=[]) self.load_workflow_image_in_tool_shed(repository, workflow_name, strings_displayed=['#EBBCB2']) def test_0020_upload_tool(self): '''Upload the missing tool for the workflow in the previous step, and verify that the error is no longer present.''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 2.2.0.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 2.2.0.', + strings_displayed=[], + strings_not_displayed=[]) self.load_workflow_image_in_tool_shed(repository, workflow_name, strings_not_displayed=['#EBBCB2']) def test_0025_create_repository_with_only_workflow(self): @@ -84,29 +84,29 @@ class TestToolShedWorkflowFeatures(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) self.get_or_create_repository(name=workflow_repository_name, - description=workflow_repository_description, - long_description=workflow_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=workflow_repository_description, + long_description=workflow_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) workflow = open(self.get_filename('filtering_workflow/Workflow_for_0060_filter_workflow_repository.ga'), 'r').read() workflow = workflow.replace('__TEST_TOOL_SHED_URL__', self.url.replace('http://', '')) workflow = workflow.replace('Workflow for 0060_filter_workflow_repository', - 'New workflow for 0060_filter_workflow_repository') + 'New workflow for 0060_filter_workflow_repository') workflow_filepath = self.generate_temp_path('test_0060', additional_paths=['filtering_workflow_2']) if not os.path.exists(workflow_filepath): os.makedirs(workflow_filepath) open(os.path.join(workflow_filepath, workflow_filename), 'w+').write(workflow) repository = self.test_db_util.get_repository_by_name_and_owner(workflow_repository_name, common.test_user_1_name) self.upload_file(repository, - filename=workflow_filename, - filepath=workflow_filepath, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering workflow.', - strings_displayed=[], - strings_not_displayed=[]) + filename=workflow_filename, + filepath=workflow_filepath, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering workflow.', + strings_displayed=[], + strings_not_displayed=[]) self.load_workflow_image_in_tool_shed(repository, workflow_name, strings_displayed=['#EBBCB2']) def test_0030_check_workflow_repository(self): diff --git a/test/shed_functional/functional/test_0070_invalid_tool.py b/test/shed_functional/functional/test_0070_invalid_tool.py index 9622b0383da..2755f63dd17 100644 --- a/test/shed_functional/functional/test_0070_invalid_tool.py +++ b/test/shed_functional/functional/test_0070_invalid_tool.py @@ -26,42 +26,42 @@ class TestBismarkRepository(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='bismark/bismark.tar', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded bismark tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bismark/bismark.tar', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded bismark tarball.', + strings_displayed=[], + strings_not_displayed=[]) self.display_manage_repository_page(repository, strings_displayed=['Invalid tools']) invalid_revision = self.get_repository_tip(repository) self.upload_file(repository, - filename='bismark/bismark_methylation_extractor.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded an updated tool xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bismark/bismark_methylation_extractor.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded an updated tool xml.', + strings_displayed=[], + strings_not_displayed=[]) valid_revision = self.get_repository_tip(repository) self.test_db_util.refresh(repository) tool_guid = '%s/repos/user1/bismark_0070/bismark_methylation_extractor/0.7.7.3' % self.url.replace('http://', '').rstrip('/') tool_metadata_strings_displayed = [tool_guid, - '0.7.7.3', # The tool version. - 'bismark_methylation_extractor', # The tool ID. - 'Bismark', # The tool name. - 'methylation extractor'] # The tool description. + '0.7.7.3', # The tool version. + 'bismark_methylation_extractor', # The tool ID. + 'Bismark', # The tool name. + 'methylation extractor'] # The tool description. tool_page_strings_displayed = ['Bismark (version 0.7.7.3)'] self.check_repository_tools_for_changeset_revision(repository, - valid_revision, - tool_metadata_strings_displayed=tool_metadata_strings_displayed, - tool_page_strings_displayed=tool_page_strings_displayed) + valid_revision, + tool_metadata_strings_displayed=tool_metadata_strings_displayed, + tool_page_strings_displayed=tool_page_strings_displayed) self.check_repository_invalid_tools_for_changeset_revision(repository, invalid_revision) diff --git a/test/shed_functional/functional/test_0080_advanced_circular_dependencies.py b/test/shed_functional/functional/test_0080_advanced_circular_dependencies.py index 3ea8a2b2efa..9a2a9225c0c 100644 --- a/test/shed_functional/functional/test_0080_advanced_circular_dependencies.py +++ b/test/shed_functional/functional/test_0080_advanced_circular_dependencies.py @@ -31,20 +31,20 @@ class TestRepositoryCircularDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column_maker tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column_maker tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0005_create_convert_repository(self): """Create and populate the convert_chars repository.""" @@ -52,20 +52,20 @@ class TestRepositoryCircularDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert_chars tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert_chars tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_repository_dependencies(self): '''Upload a repository_dependencies.xml file that specifies the current revision of convert_chars_0080 to the column_maker_0080 repository.''' diff --git a/test/shed_functional/functional/test_0090_tool_search.py b/test/shed_functional/functional/test_0090_tool_search.py index 56a881b657f..e42dc30bae0 100644 --- a/test/shed_functional/functional/test_0090_tool_search.py +++ b/test/shed_functional/functional/test_0090_tool_search.py @@ -47,117 +47,117 @@ class TestRepositoryCircularDependenciesAgain(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=bwa_base_repository_name, - description=bwa_base_repository_description, - long_description=bwa_base_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_base_repository_description, + long_description=bwa_base_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='bwa/bwa_base.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded BWA tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bwa/bwa_base.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded BWA tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_bwa_color_repository(self): '''Create and populate bwa_color_0090.''' category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=bwa_color_repository_name, - description=bwa_color_repository_description, - long_description=bwa_color_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_color_repository_description, + long_description=bwa_color_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='bwa/bwa_color.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded BWA color tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bwa/bwa_color.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded BWA color tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_emboss_datatypes_repository(self): '''Create and populate emboss_datatypes_0090.''' category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=emboss_datatypes_repository_name, - description=emboss_datatypes_repository_description, - long_description=emboss_datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_datatypes_repository_description, + long_description=emboss_datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_emboss_repository(self): '''Create and populate emboss_0090.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=emboss_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_create_filtering_repository(self): '''Create and populate filtering_0090.''' category = self.create_category(name=category_name, description=category_description) filtering_repository = self.get_or_create_repository(name=filtering_repository_name, - description=filtering_repository_description, - long_description=filtering_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=filtering_repository_description, + long_description=filtering_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(filtering_repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0030_create_freebayes_repository(self): '''Create and populate freebayes_0090.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=freebayes_repository_name, - description=freebayes_repository_description, - long_description=freebayes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=freebayes_repository_description, + long_description=freebayes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='freebayes/freebayes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded freebayes tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded freebayes tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0035_create_and_upload_dependency_definitions(self): '''Create and upload repository dependency definitions.''' diff --git a/test/shed_functional/functional/test_0100_complex_repository_dependencies.py b/test/shed_functional/functional/test_0100_complex_repository_dependencies.py index a01fe24261d..b71aa946c4a 100644 --- a/test/shed_functional/functional/test_0100_complex_repository_dependencies.py +++ b/test/shed_functional/functional/test_0100_complex_repository_dependencies.py @@ -37,20 +37,20 @@ class TestComplexRepositoryDependencies(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) # Create a repository named package_bwa_0_5_9_0100 owned by user1. repository = self.get_or_create_repository(name=bwa_package_repository_name, - description=bwa_package_repository_description, - long_description=bwa_package_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_package_repository_description, + long_description=bwa_package_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='bwa/complex/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool_dependencies.xml.', - strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], - strings_not_displayed=[]) + filename='bwa/complex/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool_dependencies.xml.', + strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], + strings_not_displayed=[]) # Visit the manage repository page for package_bwa_0_5_9_0100. self.display_manage_repository_page(repository, strings_displayed=['Tool dependencies', 'will not be', 'to this repository']) @@ -60,21 +60,21 @@ class TestComplexRepositoryDependencies(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) # Create a repository named bwa_base_repository_0100 owned by user1. repository = self.get_or_create_repository(name=bwa_base_repository_name, - description=bwa_base_repository_description, - long_description=bwa_base_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_base_repository_description, + long_description=bwa_base_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Populate the repository named bwa_base_repository_0100 with a bwa_base tool archive. self.upload_file(repository, - filename='bwa/complex/bwa_base.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded bwa_base.tar with tool wrapper XML, but without tool dependency XML.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bwa/complex/bwa_base.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded bwa_base.tar with tool wrapper XML, but without tool dependency XML.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_generate_complex_repository_dependency_invalid_shed_url(self): '''Generate and upload a complex repository definition that specifies an invalid tool shed URL.''' @@ -91,12 +91,12 @@ class TestComplexRepositoryDependencies(ShedTwillTestCase): # Populate the dependent repository named bwa_base_repository_0100 with an invalid tool_dependencies.xml file. repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=base_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=True, - package='bwa', - version='0.5.9') + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=True, + package='bwa', + version='0.5.9') def test_0020_generate_complex_repository_dependency_invalid_repository_name(self): '''Generate and upload a complex repository definition that specifies an invalid repository name.''' @@ -113,12 +113,12 @@ class TestComplexRepositoryDependencies(ShedTwillTestCase): # Populate the dependent base_repository named package_bwa_0_5_9_0100 with an invalid tool_dependencies.xml file. repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=base_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=True, - package='bwa', - version='0.5.9') + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=True, + package='bwa', + version='0.5.9') def test_0025_generate_complex_repository_dependency_invalid_owner_name(self): '''Generate and upload a complex repository definition that specifies an invalid owner.''' @@ -134,12 +134,12 @@ class TestComplexRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['because the owner is invalid.'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=base_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=True, - package='bwa', - version='0.5.9') + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=True, + package='bwa', + version='0.5.9') def test_0030_generate_complex_repository_dependency_invalid_changeset_revision(self): '''Generate and upload a complex repository definition that specifies an invalid changeset revision.''' @@ -154,12 +154,12 @@ class TestComplexRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['because the changeset revision is invalid.'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=base_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=True, - package='bwa', - version='0.5.9') + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=True, + package='bwa', + version='0.5.9') def test_0035_generate_complex_repository_dependency(self): '''Generate and upload a valid tool_dependencies.xml file that specifies package_bwa_0_5_9_0100.''' @@ -174,11 +174,11 @@ class TestComplexRepositoryDependencies(ShedTwillTestCase): changeset_revision = self.get_repository_tip(tool_repository) repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=base_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - complex=True, - package='bwa', - version='0.5.9') + filepath=dependency_path, + repository_tuples=[repository_tuple], + complex=True, + package='bwa', + version='0.5.9') self.check_repository_dependency(base_repository, depends_on_repository=tool_repository) self.display_manage_repository_page(base_repository, strings_displayed=['bwa', '0.5.9', 'package', changeset_revision]) @@ -196,30 +196,30 @@ class TestComplexRepositoryDependencies(ShedTwillTestCase): open(xml_filename, 'w').write(open(old_tool_dependency, 'r') .read().replace('__PATH__', self.get_filename('bwa/complex'))) self.upload_file(tool_repository, - filename=xml_filename, - filepath=new_tool_dependency_path, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded new tool_dependencies.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename=xml_filename, + filepath=new_tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded new tool_dependencies.xml.', + strings_displayed=[], + strings_not_displayed=[]) # Verify that the dependency display has been updated as a result of the new tool_dependencies.xml file. repository_tip = self.get_repository_tip(tool_repository) strings_displayed = ['bwa', '0.5.9', 'package'] strings_displayed.append(repository_tip) strings_not_displayed = [previous_changeset] self.display_manage_repository_page(tool_repository, - strings_displayed=strings_displayed, - strings_not_displayed=strings_not_displayed) + strings_displayed=strings_displayed, + strings_not_displayed=strings_not_displayed) # Visit the manage page of the package_bwa_0_5_9_0100 to confirm the valid tool dependency definition. self.display_manage_repository_page(tool_repository, - strings_displayed=strings_displayed, - strings_not_displayed=strings_not_displayed) + strings_displayed=strings_displayed, + strings_not_displayed=strings_not_displayed) # Visit the manage page of the bwa_base_repository_0100 to confirm the valid tool dependency definition # and the updated changeset revision (updated tip) of the package_bwa_0_5_9_0100 repository is displayed # as the required repository revision. The original revision defined in the previously uploaded # tool_dependencies.xml file will be updated. self.display_manage_repository_page(base_repository, - strings_displayed=strings_displayed, - strings_not_displayed=strings_not_displayed) + strings_displayed=strings_displayed, + strings_not_displayed=strings_not_displayed) diff --git a/test/shed_functional/functional/test_0110_invalid_simple_repository_dependencies.py b/test/shed_functional/functional/test_0110_invalid_simple_repository_dependencies.py index bf6025b1ec0..f1a4928545c 100644 --- a/test/shed_functional/functional/test_0110_invalid_simple_repository_dependencies.py +++ b/test/shed_functional/functional/test_0110_invalid_simple_repository_dependencies.py @@ -41,14 +41,14 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): category_id=self.security.encode_id(category.id), strings_displayed=[]) self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_verify_datatypes_in_datatypes_repository(self): '''Verify that the emboss_datatypes repository contains datatype entries.''' @@ -65,14 +65,14 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): category_id=self.security.encode_id(category.id), strings_displayed=[]) self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_generate_repository_dependency_with_invalid_url(self): '''Generate a repository dependency for emboss 5 with an invalid URL.''' @@ -86,10 +86,10 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['Repository dependencies are currently supported only within the same tool shed'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=emboss_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=False) + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=False) def test_0030_generate_repository_dependency_with_invalid_name(self): '''Generate a repository dependency for emboss 5 with an invalid name.''' @@ -103,10 +103,10 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['because the name is invalid.'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=emboss_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=False) + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=False) def test_0035_generate_repository_dependency_with_invalid_owner(self): '''Generate a repository dependency for emboss 5 with an invalid owner.''' @@ -120,10 +120,10 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['because the owner is invalid.'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=emboss_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=False) + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=False) def test_0040_generate_repository_dependency_with_invalid_changeset_revision(self): '''Generate a repository dependency for emboss 5 with an invalid changeset revision.''' @@ -137,7 +137,7 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['because the changeset revision is invalid.'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=emboss_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=False) + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=False) diff --git a/test/shed_functional/functional/test_0120_simple_repository_dependency_multiple_owners.py b/test/shed_functional/functional/test_0120_simple_repository_dependency_multiple_owners.py index bfeb33ef047..58e85750fab 100644 --- a/test/shed_functional/functional/test_0120_simple_repository_dependency_multiple_owners.py +++ b/test/shed_functional/functional/test_0120_simple_repository_dependency_multiple_owners.py @@ -54,20 +54,20 @@ class TestRepositoryMultipleOwners(ShedTwillTestCase): self.login(email=common.test_user_2_email, username=common.test_user_2_name) strings_displayed = self.expect_repo_created_strings(datatypes_repository_name) repository = self.get_or_create_repository(name=datatypes_repository_name, - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, - owner=common.test_user_2_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_2_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='blast/blast_datatypes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded blast_datatypes tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='blast/blast_datatypes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded blast_datatypes tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_verify_datatypes_repository(self): '''Verify the blast_datatypes_0120 repository.''' @@ -92,20 +92,20 @@ class TestRepositoryMultipleOwners(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = self.expect_repo_created_strings(tool_repository_name) repository = self.get_or_create_repository(name=tool_repository_name, - description=tool_repository_description, - long_description=tool_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=tool_repository_description, + long_description=tool_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='blast/blastxml_to_top_descr.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded blastxml_to_top_descr tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='blast/blastxml_to_top_descr.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded blastxml_to_top_descr tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_verify_tool_repository(self): '''Verify the blastxml_to_top_descr_0120 repository.''' diff --git a/test/shed_functional/functional/test_0130_datatype_converters.py b/test/shed_functional/functional/test_0130_datatype_converters.py index 0768818744e..7462beafe1e 100644 --- a/test/shed_functional/functional/test_0130_datatype_converters.py +++ b/test/shed_functional/functional/test_0130_datatype_converters.py @@ -38,21 +38,21 @@ class TestDatatypeConverters(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) # Create a repository named bed_to_gff_0130 owned by user1. repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Upload bed_to_gff_converter.tar to the repository. self.upload_file(repository, - filename='bed_to_gff_converter/bed_to_gff_converter.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded bed_to_gff_converter.tar.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bed_to_gff_converter/bed_to_gff_converter.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded bed_to_gff_converter.tar.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_verify_tool_and_datatype(self): '''Verify that a valid tool and datatype are contained within the repository.''' @@ -74,5 +74,5 @@ class TestDatatypeConverters(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) tool_metadata_strings_displayed = '\n False' self.check_repository_tools_for_changeset_revision(repository, - self.get_repository_tip(repository), - tool_metadata_strings_displayed=tool_metadata_strings_displayed) + self.get_repository_tip(repository), + tool_metadata_strings_displayed=tool_metadata_strings_displayed) diff --git a/test/shed_functional/functional/test_0140_tool_help_images.py b/test/shed_functional/functional/test_0140_tool_help_images.py index dc5798193a5..9f52ca5a221 100644 --- a/test/shed_functional/functional/test_0140_tool_help_images.py +++ b/test/shed_functional/functional/test_0140_tool_help_images.py @@ -45,21 +45,21 @@ class TestToolHelpImages(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) # Create a repository named htseq_count_0140 owned by user1. repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Upload htseq_count.tar to the repository. self.upload_file(repository, - filename='htseq_count/htseq_count.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded htseq_count.tar.', - strings_displayed=[], - strings_not_displayed=[]) + filename='htseq_count/htseq_count.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded htseq_count.tar.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_load_tool_page(self): '''Load the tool page and check for the image.''' diff --git a/test/shed_functional/functional/test_0150_prior_installation_required.py b/test/shed_functional/functional/test_0150_prior_installation_required.py index 8f71a5b8f53..1d787fda498 100644 --- a/test/shed_functional/functional/test_0150_prior_installation_required.py +++ b/test/shed_functional/functional/test_0150_prior_installation_required.py @@ -45,39 +45,39 @@ class TestSimplePriorInstallation(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert_chars tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert_chars tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_column_repository(self): '''Create and populate convert_chars_0150.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column_maker tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column_maker tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_repository_dependency(self): '''Create a repository dependency specifying convert_chars.''' @@ -90,15 +90,15 @@ class TestSimplePriorInstallation(ShedTwillTestCase): dependency_xml_path = self.generate_temp_path('test_0150', additional_paths=['column']) convert_tuple = (self.url, convert_repository.name, convert_repository.user.username, self.get_repository_tip(convert_repository)) self.create_repository_dependency(repository=column_repository, - repository_tuples=[convert_tuple], - filepath=dependency_xml_path, - prior_installation_required=True) + repository_tuples=[convert_tuple], + filepath=dependency_xml_path, + prior_installation_required=True) def test_0020_verify_repository_dependency(self): '''Verify that the previously generated repositiory dependency displays correctly.''' column_repository = self.test_db_util.get_repository_by_name_and_owner(column_repository_name, common.test_user_1_name) convert_repository = self.test_db_util.get_repository_by_name_and_owner(convert_repository_name, common.test_user_1_name) self.check_repository_dependency(repository=column_repository, - depends_on_repository=convert_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=convert_repository, + depends_on_changeset_revision=None, + changeset_revision=None) diff --git a/test/shed_functional/functional/test_0160_circular_prior_installation_required.py b/test/shed_functional/functional/test_0160_circular_prior_installation_required.py index 7cd08bf1220..3d84b9fc6bd 100644 --- a/test/shed_functional/functional/test_0160_circular_prior_installation_required.py +++ b/test/shed_functional/functional/test_0160_circular_prior_installation_required.py @@ -44,58 +44,58 @@ class TestSimplePriorInstallation(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert_chars tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert_chars tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_column_repository(self): '''Create and populate convert_chars_0160.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column_maker tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column_maker tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_filtering_repository(self): '''Create and populate filtering_0160.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=filter_repository_name, - description=filter_repository_description, - long_description=filter_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=filter_repository_description, + long_description=filter_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_repository_dependency(self): '''Create a repository dependency specifying convert_chars.''' @@ -113,17 +113,17 @@ class TestSimplePriorInstallation(ShedTwillTestCase): convert_tuple = (self.url, convert_repository.name, convert_repository.user.username, convert_revision) filter_tuple = (self.url, filter_repository.name, filter_repository.user.username, filter_revision) self.create_repository_dependency(repository=column_repository, - repository_tuples=[convert_tuple, filter_tuple], - filepath=dependency_xml_path, - prior_installation_required=False) + repository_tuples=[convert_tuple, filter_tuple], + filepath=dependency_xml_path, + prior_installation_required=False) self.create_repository_dependency(repository=convert_repository, - repository_tuples=[column_tuple, filter_tuple], - filepath=dependency_xml_path, - prior_installation_required=False) + repository_tuples=[column_tuple, filter_tuple], + filepath=dependency_xml_path, + prior_installation_required=False) self.create_repository_dependency(repository=filter_repository, - repository_tuples=[convert_tuple, column_tuple], - filepath=dependency_xml_path, - prior_installation_required=True) + repository_tuples=[convert_tuple, column_tuple], + filepath=dependency_xml_path, + prior_installation_required=True) def test_0025_verify_repository_dependency(self): '''Verify that the previously generated repositiory dependency displays correctly.''' @@ -131,26 +131,26 @@ class TestSimplePriorInstallation(ShedTwillTestCase): column_repository = self.test_db_util.get_repository_by_name_and_owner(column_repository_name, common.test_user_1_name) convert_repository = self.test_db_util.get_repository_by_name_and_owner(convert_repository_name, common.test_user_1_name) self.check_repository_dependency(repository=column_repository, - depends_on_repository=convert_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=convert_repository, + depends_on_changeset_revision=None, + changeset_revision=None) self.check_repository_dependency(repository=column_repository, - depends_on_repository=filter_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=filter_repository, + depends_on_changeset_revision=None, + changeset_revision=None) self.check_repository_dependency(repository=convert_repository, - depends_on_repository=column_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=column_repository, + depends_on_changeset_revision=None, + changeset_revision=None) self.check_repository_dependency(repository=convert_repository, - depends_on_repository=filter_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=filter_repository, + depends_on_changeset_revision=None, + changeset_revision=None) self.check_repository_dependency(repository=filter_repository, - depends_on_repository=column_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=column_repository, + depends_on_changeset_revision=None, + changeset_revision=None) self.check_repository_dependency(repository=filter_repository, - depends_on_repository=convert_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=convert_repository, + depends_on_changeset_revision=None, + changeset_revision=None) diff --git a/test/shed_functional/functional/test_0170_complex_prior_installation_required.py b/test/shed_functional/functional/test_0170_complex_prior_installation_required.py index 8ef6ddec570..b3540857704 100644 --- a/test/shed_functional/functional/test_0170_complex_prior_installation_required.py +++ b/test/shed_functional/functional/test_0170_complex_prior_installation_required.py @@ -42,20 +42,20 @@ class TestComplexPriorInstallation(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=matplotlib_repository_name, - description=matplotlib_repository_description, - long_description=matplotlib_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=matplotlib_repository_description, + long_description=matplotlib_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='package_matplotlib/package_matplotlib_1_2.tar', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded matplotlib tool dependency tarball.', - strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], - strings_not_displayed=[]) + filename='package_matplotlib/package_matplotlib_1_2.tar', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded matplotlib tool dependency tarball.', + strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], + strings_not_displayed=[]) def test_0010_create_numpy_repository(self): '''Create and populate the package_numpy_1_7_0170 repository.''' @@ -65,20 +65,20 @@ class TestComplexPriorInstallation(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=numpy_repository_name, - description=numpy_repository_description, - long_description=numpy_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=numpy_repository_description, + long_description=numpy_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='package_numpy/package_numpy_1_7.tar', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded numpy tool dependency tarball.', - strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], - strings_not_displayed=[]) + filename='package_numpy/package_numpy_1_7.tar', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded numpy tool dependency tarball.', + strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], + strings_not_displayed=[]) def test_0015_create_complex_repository_dependency(self): '''Create a dependency on package_numpy_1_7_0170.''' @@ -108,14 +108,14 @@ class TestComplexPriorInstallation(ShedTwillTestCase): open(new_xml_file, 'w').write(original_xml.replace('', processed_xml)) # Upload the generated complex repository dependency XML to the matplotlib repository. self.upload_file(matplotlib_repository, - filename='tool_dependencies.xml', - filepath=dependency_xml_path, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded complex repository dependency on numpy 1.7.', - strings_displayed=[], - strings_not_displayed=[]) + filename='tool_dependencies.xml', + filepath=dependency_xml_path, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded complex repository dependency on numpy 1.7.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_verify_generated_dependency(self): '''Verify that matplotlib now has a package tool dependency and a complex repository dependency.''' diff --git a/test/shed_functional/functional/test_0300_reset_all_metadata.py b/test/shed_functional/functional/test_0300_reset_all_metadata.py index 1ae9d10268e..02183ff7df3 100644 --- a/test/shed_functional/functional/test_0300_reset_all_metadata.py +++ b/test/shed_functional/functional/test_0300_reset_all_metadata.py @@ -64,30 +64,30 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category_0000 = self.create_category(name='Test 0000 Basic Repository Features 1', description='Test 0000 Basic Repository Features 1') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name='filtering_0000', - description="Galaxy's filtering tool", - long_description="Long description of Galaxy's filtering tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category_0000.id)) + description="Galaxy's filtering tool", + long_description="Long description of Galaxy's filtering tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category_0000.id)) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 2.2.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 2.2.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_freebayes_repository(self): '''Create and populate the freebayes_0010 repository.''' @@ -96,48 +96,48 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category_0010 = self.create_category(name='Test 0010 Repository With Tool Dependencies', description='Tests for a repository with tool dependencies.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name='freebayes_0010', - description="Galaxy's freebayes tool", - long_description="Long description of Galaxy's freebayes tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category_0010.id), - strings_displayed=[]) + description="Galaxy's freebayes tool", + long_description="Long description of Galaxy's freebayes tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category_0010.id), + strings_displayed=[]) if running_standalone: self.upload_file(repository, - filename='freebayes/freebayes.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded freebayes.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded freebayes.xml.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='freebayes/tool_data_table_conf.xml.sample', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool_data_table_conf.xml.sample', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/tool_data_table_conf.xml.sample', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool_data_table_conf.xml.sample', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='freebayes/sam_fa_indices.loc.sample', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded sam_fa_indices.loc.sample', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/sam_fa_indices.loc.sample', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded sam_fa_indices.loc.sample', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='freebayes/tool_dependencies.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool_dependencies.xml', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/tool_dependencies.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool_dependencies.xml', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_datatypes_0020_repository(self): '''Create and populate the emboss_datatypes_0020 repository.''' @@ -147,20 +147,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category_0020 = self.create_category(name='Test 0020 Basic Repository Dependencies', description='Testing basic repository dependency features.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name='emboss_datatypes_0020', - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category_0020.id), - strings_displayed=[]) + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category_0020.id), + strings_displayed=[]) self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_emboss_0020_repository(self): '''Create and populate the emboss_0020 repository.''' @@ -170,20 +170,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category_0020 = self.create_category(name='Test 0020 Basic Repository Dependencies', description='Testing basic repository dependency features.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name='emboss_0020', - description=emboss_repository_long_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category_0020.id), - strings_displayed=[]) + description=emboss_repository_long_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category_0020.id), + strings_displayed=[]) self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_create_emboss_datatypes_0030_repository(self): '''Create and populate the emboss_0030 repository.''' @@ -193,20 +193,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category_0030 = self.create_category(name='Test 0030 Repository Dependency Revisions', description='Testing repository dependencies by revision.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) datatypes_repository = self.get_or_create_repository(name='emboss_datatypes_0030', - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category_0030.id), - strings_displayed=[]) + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category_0030.id), + strings_displayed=[]) self.upload_file(datatypes_repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0030_create_emboss_5_repository(self): '''Create and populate the emboss_5_0030 repository.''' @@ -216,20 +216,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category_0030 = self.create_category(name='Test 0030 Repository Dependency Revisions', description='Testing repository dependencies by revision.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) emboss_5_repository = self.get_or_create_repository(name='emboss_5_0030', - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category_0030.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category_0030.id), + strings_displayed=[]) self.upload_file(emboss_5_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) def test_0035_create_emboss_6_repository(self): '''Create and populate the emboss_6_0030 repository.''' @@ -239,20 +239,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category_0030 = self.create_category(name='Test 0030 Repository Dependency Revisions', description='Testing repository dependencies by revision.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) emboss_6_repository = self.get_or_create_repository(name='emboss_6_0030', - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category_0030.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category_0030.id), + strings_displayed=[]) self.upload_file(emboss_6_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) def test_0040_create_emboss_0030_repository(self): '''Create and populate the emboss_0030 repository.''' @@ -262,20 +262,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category_0030 = self.create_category(name='Test 0030 Repository Dependency Revisions', description='Testing repository dependencies by revision.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) emboss_repository = self.get_or_create_repository(name='emboss_0030', - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category_0030.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category_0030.id), + strings_displayed=[]) self.upload_file(emboss_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) def test_0045_create_repository_dependencies_for_0030(self): '''Create the dependency structure for test 0030.''' @@ -301,21 +301,21 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category_0040 = self.create_category(name='test_0040_repository_circular_dependencies', description='Testing handling of circular repository dependencies.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name='freebayes_0040', - description="Galaxy's freebayes tool", - long_description="Long description of Galaxy's freebayes tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category_0040.id), - strings_displayed=[]) + description="Galaxy's freebayes tool", + long_description="Long description of Galaxy's freebayes tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category_0040.id), + strings_displayed=[]) if running_standalone: self.upload_file(repository, - filename='freebayes/freebayes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded freebayes tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded freebayes tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0055_create_filtering_repository(self): '''Create and populate the filtering_0040 repository.''' @@ -325,20 +325,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category_0040 = self.create_category(name='test_0040_repository_circular_dependencies', description='Testing handling of circular repository dependencies.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name='filtering_0040', - description="Galaxy's filtering tool", - long_description="Long description of Galaxy's filtering tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category_0040.id), - strings_displayed=[]) + description="Galaxy's filtering tool", + long_description="Long description of Galaxy's filtering tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category_0040.id), + strings_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0060_create_dependency_structure(self): '''Create the dependency structure for test 0040.''' @@ -360,20 +360,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category = self.create_category(name=category_0050_name, description=category_0050_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert_chars tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert_chars tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0070_create_column_repository(self): '''Create and populate convert_chars_0050.''' @@ -383,20 +383,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category = self.create_category(name=category_0050_name, description=category_0050_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column_maker tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column_maker tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0075_create_emboss_datatypes_repository(self): '''Create and populate emboss_datatypes_0050.''' @@ -406,20 +406,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category = self.create_category(name=category_0050_name, description=category_0050_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=emboss_datatypes_repository_name, - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0080_create_emboss_repository(self): '''Create and populate emboss_0050.''' @@ -429,20 +429,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category = self.create_category(name=category_0050_name, description=category_0050_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=emboss_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0085_create_filtering_repository(self): '''Create and populate filtering_0050.''' @@ -452,20 +452,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category = self.create_category(name=category_0050_name, description=category_0050_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) filtering_repository = self.get_or_create_repository(name=filtering_repository_name, - description=filtering_repository_description, - long_description=filtering_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=filtering_repository_description, + long_description=filtering_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(filtering_repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0090_create_freebayes_repository(self): '''Create and populate freebayes_0050.''' @@ -475,20 +475,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category = self.create_category(name=category_0050_name, description=category_0050_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=freebayes_repository_name, - description=freebayes_repository_description, - long_description=freebayes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=freebayes_repository_description, + long_description=freebayes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='freebayes/freebayes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded freebayes tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded freebayes tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0095_create_bismark_repository(self): '''Create and populate bismark_0050.''' @@ -498,20 +498,20 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category = self.create_category(name=category_0050_name, description=category_0050_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=bismark_repository_name, - description=bismark_repository_description, - long_description=bismark_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bismark_repository_description, + long_description=bismark_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='bismark/bismark.tar', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded bismark tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bismark/bismark.tar', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded bismark tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0100_create_and_upload_dependency_definitions(self): '''Create the dependency structure for test 0050.''' @@ -543,8 +543,8 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): self.create_repository_dependency(repository=datatypes_repository, repository_tuples=[bismark_tuple], filepath=dependency_xml_path) self.create_repository_dependency(repository=emboss_repository, repository_tuples=[datatypes_tuple], filepath=dependency_xml_path) self.create_repository_dependency(repository=freebayes_repository, - repository_tuples=[freebayes_tuple, datatypes_tuple, emboss_tuple, column_tuple], - filepath=dependency_xml_path) + repository_tuples=[freebayes_tuple, datatypes_tuple, emboss_tuple, column_tuple], + filepath=dependency_xml_path) self.create_repository_dependency(repository=filtering_repository, repository_tuples=[emboss_tuple], filepath=dependency_xml_path) def test_0105_create_filtering_repository(self): @@ -553,11 +553,11 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): category_0060 = self.create_category(name='Test 0060 Workflow Features', description='Test 0060 - Workflow Features') self.login(email=common.test_user_1_email, username=common.test_user_1_name) workflow_repository = self.get_or_create_repository(name='filtering_0060', - description="Galaxy's filtering tool", - long_description="Long description of Galaxy's filtering tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category_0060.id), - strings_displayed=[]) + description="Galaxy's filtering tool", + long_description="Long description of Galaxy's filtering tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category_0060.id), + strings_displayed=[]) if self.repository_is_new(workflow_repository): workflow = open(self.get_filename('filtering_workflow/Workflow_for_0060_filter_workflow_repository.ga'), 'r').read() workflow = workflow.replace('__TEST_TOOL_SHED_URL__', self.url.replace('http://', '')) @@ -566,23 +566,23 @@ class TestResetAllRepositoryMetadata(ShedTwillTestCase): os.makedirs(workflow_filepath) open(os.path.join(workflow_filepath, workflow_filename), 'w+').write(workflow) self.upload_file(workflow_repository, - filename=workflow_filename, - filepath=workflow_filepath, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering workflow.', - strings_displayed=[], - strings_not_displayed=[]) + filename=workflow_filename, + filepath=workflow_filepath, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering workflow.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(workflow_repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 2.2.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 2.2.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0110_reset_metadata_on_all_repositories(self): '''Reset metadata on all repositories, then verify that it has not changed.''' diff --git a/test/shed_functional/functional/test_0310_hg_api_features.py b/test/shed_functional/functional/test_0310_hg_api_features.py index 85b5352d1fc..8aa0aef4305 100644 --- a/test/shed_functional/functional/test_0310_hg_api_features.py +++ b/test/shed_functional/functional/test_0310_hg_api_features.py @@ -45,29 +45,29 @@ class TestHgWebFeatures(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=True, - commit_message="Uploaded filtering 1.1.0.", - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=True, + commit_message="Uploaded filtering 1.1.0.", + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_test_data.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message="Uploaded filtering test data.", - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_test_data.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message="Uploaded filtering test data.", + strings_displayed=[], + strings_not_displayed=[]) def test_0010_clone(self): '''Clone the repository to a local path.''' diff --git a/test/shed_functional/functional/test_0400_repository_component_reviews.py b/test/shed_functional/functional/test_0400_repository_component_reviews.py index 6dc9b7c2d2b..80899114a8a 100644 --- a/test/shed_functional/functional/test_0400_repository_component_reviews.py +++ b/test/shed_functional/functional/test_0400_repository_component_reviews.py @@ -78,7 +78,7 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): strings_not_displayed = ['Repository dependencies'] self.manage_review_components(strings_not_displayed=strings_not_displayed) self.add_repository_review_component(name='Repository dependencies', - description='Repository dependencies defined in a file named repository_dependencies.xml included in the repository') + description='Repository dependencies defined in a file named repository_dependencies.xml included in the repository') strings_displayed = ['Data types', 'Functional tests', 'README', 'Repository dependencies', 'Tool dependencies', 'Tools', 'Workflows'] self.manage_review_components(strings_displayed=strings_displayed) @@ -93,20 +93,20 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = self.expect_repo_created_strings(repository_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_review_initial_revision_data_types(self): '''Review the datatypes component for the current tip revision.''' @@ -402,14 +402,14 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='readme.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded readme.txt.', - strings_displayed=[], - strings_not_displayed=[]) + filename='readme.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded readme.txt.', + strings_displayed=[], + strings_not_displayed=[]) def test_0095_review_new_changeset_readme_component(self): '''Update the filtering repository's readme component review to reflect the presence of the readme file.''' @@ -438,9 +438,9 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): # } review_contents_dict = {'README': dict(rating=5, comment='Clear and concise readme file, a true pleasure to read.', approved='yes', private='no')} self.create_repository_review(repository, - review_contents_dict, - changeset_revision=self.get_repository_tip(repository), - copy_from=(str(last_review.changeset_revision), last_review.id)) + review_contents_dict, + changeset_revision=self.get_repository_tip(repository), + copy_from=(str(last_review.changeset_revision), last_review.id)) def test_0100_verify_readme_review(self): '''Verify that the readme component review displays correctly.''' @@ -466,14 +466,14 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): """ repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='filtering/filtering_test_data.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering test data.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_test_data.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering test data.', + strings_displayed=[], + strings_not_displayed=[]) def test_0110_review_new_changeset_functional_tests(self): '''Update the filtering repository's readme component review to reflect the presence of the readme file.''' @@ -499,9 +499,9 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): # } review_contents_dict = {'Functional tests': dict(rating=5, comment='A good set of functional tests.', approved='yes', private='no')} self.create_repository_review(repository, - review_contents_dict, - changeset_revision=self.get_repository_tip(repository), - copy_from=(str(last_review.changeset_revision), last_review.id)) + review_contents_dict, + changeset_revision=self.get_repository_tip(repository), + copy_from=(str(last_review.changeset_revision), last_review.id)) def test_0115_verify_functional_tests_review(self): '''Verify that the functional tests component review displays correctly.''' @@ -526,14 +526,14 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 2.2.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 2.2.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0125_review_new_changeset_functional_tests(self): '''Update the filtering repository's review to apply to the new changeset with filtering 2.2.0.''' @@ -558,9 +558,9 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): # } review_contents_dict = {'Tools': dict(rating=5, comment='Version 2.2.0 does the impossible and improves this tool.', approved='yes', private='yes')} self.create_repository_review(repository, - review_contents_dict, - changeset_revision=self.get_repository_tip(repository), - copy_from=(str(last_review.changeset_revision), last_review.id)) + review_contents_dict, + changeset_revision=self.get_repository_tip(repository), + copy_from=(str(last_review.changeset_revision), last_review.id)) def test_0135_verify_review_for_new_version(self): '''Verify that the reviews display correctly for this changeset revision.''' diff --git a/test/shed_functional/functional/test_0410_repository_component_review_access_control.py b/test/shed_functional/functional/test_0410_repository_component_review_access_control.py index 1c75993881e..79fcba42eb7 100644 --- a/test/shed_functional/functional/test_0410_repository_component_review_access_control.py +++ b/test/shed_functional/functional/test_0410_repository_component_review_access_control.py @@ -56,7 +56,7 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): Make sure all the components we are to review are recorded in the database. """ self.add_repository_review_component(name='Repository dependencies', - description='Repository dependencies defined in a file named repository_dependencies.xml included in the repository') + description='Repository dependencies defined in a file named repository_dependencies.xml included in the repository') strings_displayed = ['Data types', 'Functional tests', 'README', 'Repository dependencies', 'Tool dependencies', 'Tools', 'Workflows'] self.manage_review_components(strings_displayed=strings_displayed) @@ -71,38 +71,38 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = self.expect_repo_created_strings(repository_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_test_data.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering test data.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_test_data.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering test data.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='readme.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded readme.txt.', - strings_displayed=[], - strings_not_displayed=[]) + filename='readme.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded readme.txt.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_review_repository(self): '''Complete a review of the filtering repository.''' @@ -113,12 +113,12 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): self.login(email=common.test_user_2_email, username=common.test_user_2_name) repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) review_contents_dict = {'Data types': dict(), - 'README': dict(rating=5, comment='Clear and concise readme file, a true pleasure to read.', approved='yes', private='no'), - 'Functional tests': dict(rating=5, comment='A good set of functional tests.', approved='yes', private='no'), - 'Repository dependencies': dict(), - 'Tool dependencies': dict(), - 'Tools': dict(rating=5, comment='Excellent tool, easy to use.', approved='yes', private='no'), - 'Workflows': dict()} + 'README': dict(rating=5, comment='Clear and concise readme file, a true pleasure to read.', approved='yes', private='no'), + 'Functional tests': dict(rating=5, comment='A good set of functional tests.', approved='yes', private='no'), + 'Repository dependencies': dict(), + 'Tool dependencies': dict(), + 'Tools': dict(rating=5, comment='Excellent tool, easy to use.', approved='yes', private='no'), + 'Workflows': dict()} self.create_repository_review(repository, review_contents_dict) def test_0025_verify_repository_review(self): @@ -181,9 +181,9 @@ class TestRepositoryComponentReviews(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) user = self.test_db_util.get_user(common.test_user_2_email) strings_displayed = ['A good set of functional tests.', - 'Clear and concise readme file', - 'a true pleasure to read.', - 'Excellent tool, easy to use.'] + 'Clear and concise readme file', + 'a true pleasure to read.', + 'Excellent tool, easy to use.'] changeset_revision = self.get_repository_tip(repository) review = self.test_db_util.get_repository_review_by_user_id_changeset_revision(user.id, repository.id, changeset_revision) self.browse_component_review(review, strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_0420_citable_urls_for_repositories.py b/test/shed_functional/functional/test_0420_citable_urls_for_repositories.py index 83ec1c5ae19..e312069c1ee 100644 --- a/test/shed_functional/functional/test_0420_citable_urls_for_repositories.py +++ b/test/shed_functional/functional/test_0420_citable_urls_for_repositories.py @@ -49,24 +49,24 @@ class TestRepositoryCitableURLs(ShedTwillTestCase): """ global first_changeset_hash category = self.create_category(name='Test 0400 Repository Citable URLs', - description='Test 0400 Repository Citable URLs category') + description='Test 0400 Repository Citable URLs category') self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = self.expect_repo_created_strings(repository_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 2.2.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 2.2.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) # We'll be checking for this hash later, after uploading another file to the repository, making get_repository_tip() not usable. first_changeset_hash = self.get_repository_tip(repository) @@ -79,14 +79,14 @@ class TestRepositoryCitableURLs(ShedTwillTestCase): ''' repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='readme.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded readme.txt.', - strings_displayed=[], - strings_not_displayed=[]) + filename='readme.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded readme.txt.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_load_user_view_page(self): '''Load the /view/ page amd check for strings.''' @@ -103,12 +103,12 @@ class TestRepositoryCitableURLs(ShedTwillTestCase): strings_displayed.append(encoded_user_id) strings_displayed_in_iframe = ['user1', 'filtering_0420', 'Galaxy filtering tool for test 0420'] self.load_citable_url(username='user1', - repository_name=None, - changeset_revision=None, - encoded_user_id=encoded_user_id, - encoded_repository_id=None, - strings_displayed=strings_displayed, - strings_displayed_in_iframe=strings_displayed_in_iframe) + repository_name=None, + changeset_revision=None, + encoded_user_id=encoded_user_id, + encoded_repository_id=None, + strings_displayed=strings_displayed, + strings_displayed_in_iframe=strings_displayed_in_iframe) def test_0020_load_repository_view_page(self): '''Load the /view// page and check for the appropriate strings.''' @@ -130,12 +130,12 @@ class TestRepositoryCitableURLs(ShedTwillTestCase): strings_displayed_in_iframe.append('Link to this repository:') strings_displayed_in_iframe.append('%s/view/user1/filtering_0420' % self.url) self.load_citable_url(username='user1', - repository_name='filtering_0420', - changeset_revision=None, - encoded_user_id=encoded_user_id, - encoded_repository_id=encoded_repository_id, - strings_displayed=strings_displayed, - strings_displayed_in_iframe=strings_displayed_in_iframe) + repository_name='filtering_0420', + changeset_revision=None, + encoded_user_id=encoded_user_id, + encoded_repository_id=encoded_repository_id, + strings_displayed=strings_displayed, + strings_displayed_in_iframe=strings_displayed_in_iframe) def test_0025_load_view_page_for_previous_revision(self): '''Load a citable url for a past changeset revision and verify that strings display.''' @@ -158,13 +158,13 @@ class TestRepositoryCitableURLs(ShedTwillTestCase): strings_displayed_in_iframe.append('%s/view/user1/filtering_0420/%s' % (self.url, first_changeset_hash)) strings_not_displayed_in_iframe = [] self.load_citable_url(username='user1', - repository_name='filtering_0420', - changeset_revision=first_changeset_hash, - encoded_user_id=encoded_user_id, - encoded_repository_id=encoded_repository_id, - strings_displayed=strings_displayed, - strings_displayed_in_iframe=strings_displayed_in_iframe, - strings_not_displayed_in_iframe=strings_not_displayed_in_iframe) + repository_name='filtering_0420', + changeset_revision=first_changeset_hash, + encoded_user_id=encoded_user_id, + encoded_repository_id=encoded_repository_id, + strings_displayed=strings_displayed, + strings_displayed_in_iframe=strings_displayed_in_iframe, + strings_not_displayed_in_iframe=strings_not_displayed_in_iframe) def test_0030_load_sharable_url_with_invalid_changeset_revision(self): '''Load a citable url with an invalid changeset revision specified.''' @@ -183,13 +183,13 @@ class TestRepositoryCitableURLs(ShedTwillTestCase): strings_displayed_in_iframe.append('%s/view/user1/filtering_0420/%s' % (self.url, invalid_changeset_hash)) strings_not_displayed_in_iframe = [] self.load_citable_url(username='user1', - repository_name='filtering_0420', - changeset_revision=invalid_changeset_hash, - encoded_user_id=encoded_user_id, - encoded_repository_id=encoded_repository_id, - strings_displayed=strings_displayed, - strings_displayed_in_iframe=strings_displayed_in_iframe, - strings_not_displayed_in_iframe=strings_not_displayed_in_iframe) + repository_name='filtering_0420', + changeset_revision=invalid_changeset_hash, + encoded_user_id=encoded_user_id, + encoded_repository_id=encoded_repository_id, + strings_displayed=strings_displayed, + strings_displayed_in_iframe=strings_displayed_in_iframe, + strings_not_displayed_in_iframe=strings_not_displayed_in_iframe) def test_0035_load_sharable_url_with_invalid_repository_name(self): '''Load a citable url with an invalid changeset revision specified.''' @@ -207,12 +207,12 @@ class TestRepositoryCitableURLs(ShedTwillTestCase): strings_displayed_in_iframe = ['user1', 'filtering_0420'] strings_displayed_in_iframe.append('Repositories Owned by user1') self.load_citable_url(username='user1', - repository_name='!!invalid!!', - changeset_revision=None, - encoded_user_id=encoded_user_id, - encoded_repository_id=None, - strings_displayed=strings_displayed, - strings_displayed_in_iframe=strings_displayed_in_iframe) + repository_name='!!invalid!!', + changeset_revision=None, + encoded_user_id=encoded_user_id, + encoded_repository_id=None, + strings_displayed=strings_displayed, + strings_displayed_in_iframe=strings_displayed_in_iframe) def test_0040_load_sharable_url_with_invalid_owner(self): '''Load a citable url with an invalid owner.''' @@ -222,8 +222,8 @@ class TestRepositoryCitableURLs(ShedTwillTestCase): ''' strings_displayed = ['The tool shed', self.url, 'contains no repositories owned by', '!!invalid!!'] self.load_citable_url(username='!!invalid!!', - repository_name=None, - changeset_revision=None, - encoded_user_id=None, - encoded_repository_id=None, - strings_displayed=strings_displayed) + repository_name=None, + changeset_revision=None, + encoded_user_id=None, + encoded_repository_id=None, + strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_0430_browse_utilities.py b/test/shed_functional/functional/test_0430_browse_utilities.py index fe771c94e42..fbd36a30b15 100644 --- a/test/shed_functional/functional/test_0430_browse_utilities.py +++ b/test/shed_functional/functional/test_0430_browse_utilities.py @@ -49,24 +49,24 @@ class TestToolShedBrowseUtilities(ShedTwillTestCase): Create and populate the repository that will contain one or more datatypes. """ category = self.create_category(name='Test 0430 Galaxy Utilities', - description='Description of Test 0430 Galaxy Utilities category') + description='Description of Test 0430 Galaxy Utilities category') self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = self.expect_repo_created_strings(datatypes_repository_name) repository = self.get_or_create_repository(name=datatypes_repository_name, - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_emboss_repository(self): """Create and populate the emboss_0430 repository""" @@ -75,7 +75,7 @@ class TestToolShedBrowseUtilities(ShedTwillTestCase): Create the emboss_0430 repository, and populate it with tools. """ category = self.create_category(name='Test 0430 Galaxy Utilities', - description='Description of Test 0430 Galaxy Utilities category') + description='Description of Test 0430 Galaxy Utilities category') self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = self.expect_repo_created_strings(emboss_repository_name) emboss_repository = self.get_or_create_repository(name=emboss_repository_name, @@ -85,14 +85,14 @@ class TestToolShedBrowseUtilities(ShedTwillTestCase): category_id=self.security.encode_id(category.id), strings_displayed=strings_displayed) self.upload_file(emboss_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_dependency_on_datatypes_repository(self): '''Create a dependency definition file that specifies emboss_datatypes_0430 and upload it to emboss_0430.''' @@ -110,24 +110,24 @@ class TestToolShedBrowseUtilities(ShedTwillTestCase): Create and populate the repository that will have a tool dependency defined. """ category = self.create_category(name='Test 0430 Galaxy Utilities', - description='Description of Test 0430 Galaxy Utilities category') + description='Description of Test 0430 Galaxy Utilities category') self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = self.expect_repo_created_strings(freebayes_repository_name) repository = self.get_or_create_repository(name=freebayes_repository_name, - description=freebayes_repository_description, - long_description=freebayes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=freebayes_repository_description, + long_description=freebayes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='freebayes/freebayes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded freebayes.tar.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded freebayes.tar.', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_browse_custom_datatypes(self): '''Load the page to browse custom datatypes.''' diff --git a/test/shed_functional/functional/test_0440_deleting_dependency_definitions.py b/test/shed_functional/functional/test_0440_deleting_dependency_definitions.py index 9dfef635b97..e18240ab666 100644 --- a/test/shed_functional/functional/test_0440_deleting_dependency_definitions.py +++ b/test/shed_functional/functional/test_0440_deleting_dependency_definitions.py @@ -68,24 +68,24 @@ class TestDeletedDependencies(ShedTwillTestCase): We are at simple repository dependencies, step 1 - Create and populate column_maker_0440 so that it has an installable revision 0. ''' category = self.create_category(name='Test 0440 Deleted Dependency Definitions', - description='Description of Deleted Dependency Definitions category for test 0440') + description='Description of Deleted Dependency Definitions category for test 0440') self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = ["Repository column_maker_0440 has been created"] repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column maker tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column maker tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_convert_chars_repository(self): '''Create and populate a repository named convert_chars_0440.''' @@ -96,20 +96,20 @@ class TestDeletedDependencies(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = ["Repository convert_chars_0440 has been created"] repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert chars tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert chars tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_dependency_on_convert_chars(self): '''Create a dependency definition file that specifies column_maker_0440 and upload it to convert_chars_0440.''' @@ -123,9 +123,9 @@ class TestDeletedDependencies(ShedTwillTestCase): column_tuple = (self.url, column_repository.name, column_repository.user.username, self.get_repository_tip(column_repository)) # After this, convert_chars_0440 should depend on column_maker_0440. self.create_repository_dependency(repository=convert_repository, - repository_tuples=[column_tuple], - filepath=dependency_xml_path, - prior_installation_required=True) + repository_tuples=[column_tuple], + filepath=dependency_xml_path, + prior_installation_required=True) self.check_repository_dependency(convert_repository, column_repository) def test_0020_verify_dependency_metadata(self): @@ -178,20 +178,20 @@ class TestDeletedDependencies(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = ["Repository bwa_package_0440 has been created"] repository = self.get_or_create_repository(name=bwa_package_repository_name, - description=bwa_package_repository_description, - long_description=bwa_package_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=bwa_package_repository_description, + long_description=bwa_package_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='bwa/complex/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded package tool dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bwa/complex/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded package tool dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) def test_0035_create_bwa_base_repository(self): '''Create and populate the bwa_base_0440 repository.''' @@ -203,20 +203,20 @@ class TestDeletedDependencies(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = ["Repository bwa_base_0440 has been created"] repository = self.get_or_create_repository(name=bwa_base_repository_name, - description=bwa_base_repository_description, - long_description=bwa_base_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=bwa_base_repository_description, + long_description=bwa_base_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='bwa/complex/bwa_base.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded BWA nucleotide space mapping tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bwa/complex/bwa_base.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded BWA nucleotide space mapping tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0040_create_dependency_on_bwa_package_repository(self): '''Create a complex repository dependency on bwa_package_0440 and upload it to bwa_tool_0440.''' @@ -230,12 +230,12 @@ class TestDeletedDependencies(ShedTwillTestCase): changeset_revision = self.get_repository_tip(bwa_package_repository) bwa_tuple = (self.url, bwa_package_repository.name, bwa_package_repository.user.username, changeset_revision) self.create_repository_dependency(repository=bwa_base_repository, - repository_tuples=[bwa_tuple], - filepath=dependency_path, - prior_installation_required=True, - complex=True, - package='bwa', - version='0.5.9') + repository_tuples=[bwa_tuple], + filepath=dependency_path, + prior_installation_required=True, + complex=True, + package='bwa', + version='0.5.9') def test_0045_verify_dependency_metadata(self): '''Verify that uploading the dependency moved metadata to the tip.''' @@ -285,20 +285,20 @@ class TestDeletedDependencies(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = ["Repository bwa_tool_dependency_0440 has been created"] repository = self.get_or_create_repository(name=bwa_tool_dependency_repository_name, - description=bwa_tool_dependency_repository_description, - long_description=bwa_tool_dependency_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=bwa_tool_dependency_repository_description, + long_description=bwa_tool_dependency_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) self.upload_file(repository, - filename='bwa/complex/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded package tool dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bwa/complex/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded package tool dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) def test_0060_delete_bwa_tool_dependency_definition(self): '''Delete the tool_dependencies.xml file from bwa_tool_dependency_0440.''' @@ -335,14 +335,14 @@ class TestDeletedDependencies(ShedTwillTestCase): # is re-uploaded and a new downloadable revision is created. old_changeset_revision = self.get_repository_tip(repository) self.upload_file(repository, - filename='bwa/complex/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded package tool dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bwa/complex/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded package tool dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) new_changeset_revision = self.get_repository_tip(repository) # Check that the old changeset revision is still downloadable. metadata_record = self.get_repository_metadata_by_changeset_revision(repository, old_changeset_revision) diff --git a/test/shed_functional/functional/test_0460_upload_to_repository.py b/test/shed_functional/functional/test_0460_upload_to_repository.py index a1590a558d2..4f160b2526e 100644 --- a/test/shed_functional/functional/test_0460_upload_to_repository.py +++ b/test/shed_functional/functional/test_0460_upload_to_repository.py @@ -81,20 +81,20 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=datatypes_repository_name, - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate emboss_datatypes_0460 with datatype definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate emboss_datatypes_0460 with datatype definitions.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_bwa_package_repository(self): '''Create and populate the package_bwa_0_5_9_0460 repository.''' @@ -103,20 +103,20 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=bwa_repository_name, - description=bwa_repository_description, - long_description=bwa_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_repository_description, + long_description=bwa_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='bwa/complex/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_bwa_0_5_9_0460 with a tool dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bwa/complex/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_bwa_0_5_9_0460 with a tool dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_tool_dependency_repositories(self): '''Create repositories for testing complex dependency generation.''' @@ -137,11 +137,11 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository_base_long_description = 'Test #%d for complex repository dependency definitions.' for number in range(1, 6): self.get_or_create_repository(name=repository_base_name % number, - description=repository_base_description % number, - long_description=repository_base_long_description % number, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_base_description % number, + long_description=repository_base_long_description % number, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) def test_0020_populate_complex_dependency_test_1_0460(self): '''Populate complex_dependency_test_1_0460.''' @@ -152,14 +152,14 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner('complex_dependency_test_1_0460', common.test_user_1_name) package_repository = self.test_db_util.get_repository_by_name_and_owner('package_bwa_0_5_9_0460', common.test_user_1_name) self.upload_file(repository, - filename='0460_files/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded complex repository dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0460_files/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded complex repository dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) changeset_revision = self.get_repository_tip(package_repository) strings_displayed = ['package_bwa_0_5_9_0460', 'bwa', '0.5.9', 'package', changeset_revision] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) @@ -174,14 +174,14 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner('complex_dependency_test_2_0460', common.test_user_1_name) package_repository = self.test_db_util.get_repository_by_name_and_owner('package_bwa_0_5_9_0460', common.test_user_1_name) self.upload_file(repository, - filename='0460_files/tool_dependencies_in_root.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=True, - commit_message='Uploaded complex repository dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0460_files/tool_dependencies_in_root.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=True, + commit_message='Uploaded complex repository dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) changeset_revision = self.get_repository_tip(package_repository) strings_displayed = ['package_bwa_0_5_9_0460', 'bwa', '0.5.9', 'package', changeset_revision] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) @@ -196,21 +196,21 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner('complex_dependency_test_3_0460', common.test_user_1_name) package_repository = self.test_db_util.get_repository_by_name_and_owner('package_bwa_0_5_9_0460', common.test_user_1_name) self.upload_file(repository, - filename='0460_files/tool_dependencies_in_subfolder.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=True, - commit_message='Uploaded complex repository dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0460_files/tool_dependencies_in_subfolder.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=True, + commit_message='Uploaded complex repository dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) changeset_revision = self.get_repository_tip(package_repository) strings_displayed = ['package_bwa_0_5_9_0460', 'bwa', '0.5.9', 'package', changeset_revision] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) self.display_repository_file_contents(repository, - filename='tool_dependencies.xml', - filepath='subfolder', - strings_displayed=[changeset_revision]) + filename='tool_dependencies.xml', + filepath='subfolder', + strings_displayed=[changeset_revision]) def test_0035_create_repositories_for_url_upload(self): '''Create and populate hg_tool_dependency_0460 and hg_subfolder_tool_dependency_0460.''' @@ -219,35 +219,35 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name='hg_tool_dependency_0460', - description=bwa_repository_description, - long_description=bwa_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_repository_description, + long_description=bwa_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='0460_files/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate hg_tool_dependency_0460 with a tool dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0460_files/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate hg_tool_dependency_0460 with a tool dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) repository = self.get_or_create_repository(name='hg_subfolder_tool_dependency_0460', - description=bwa_repository_description, - long_description=bwa_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_repository_description, + long_description=bwa_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='0460_files/tool_dependencies_in_subfolder.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate hg_subfolder_tool_dependency_0460 with a tool dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0460_files/tool_dependencies_in_subfolder.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate hg_subfolder_tool_dependency_0460 with a tool dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) def test_0040_url_upload_to_complex_test(self): '''Populate complex_dependency_test_4_0460.''' @@ -258,20 +258,20 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner('complex_dependency_test_4_0460', common.test_user_1_name) package_repository = self.test_db_util.get_repository_by_name_and_owner('package_bwa_0_5_9_0460', common.test_user_1_name) self.upload_url(repository, - url=url, - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=True, - commit_message='Uploaded complex repository dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + url=url, + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=True, + commit_message='Uploaded complex repository dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) changeset_revision = self.get_repository_tip(package_repository) strings_displayed = ['package_bwa_0_5_9_0460', 'bwa', '0.5.9', 'package', changeset_revision] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) self.display_repository_file_contents(repository, - filename='tool_dependencies.xml', - strings_displayed=[changeset_revision]) + filename='tool_dependencies.xml', + strings_displayed=[changeset_revision]) def test_0045_url_upload_to_complex_test(self): '''Populate complex_dependency_test_4_0460.''' @@ -282,21 +282,21 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner('complex_dependency_test_5_0460', common.test_user_1_name) package_repository = self.test_db_util.get_repository_by_name_and_owner('package_bwa_0_5_9_0460', common.test_user_1_name) self.upload_url(repository, - url=url, - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=True, - commit_message='Uploaded complex repository dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + url=url, + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=True, + commit_message='Uploaded complex repository dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) changeset_revision = self.get_repository_tip(package_repository) strings_displayed = ['package_bwa_0_5_9_0460', 'bwa', '0.5.9', 'package', changeset_revision] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) self.display_repository_file_contents(repository, - filename='tool_dependencies.xml', - filepath='subfolder', - strings_displayed=[changeset_revision]) + filename='tool_dependencies.xml', + filepath='subfolder', + strings_displayed=[changeset_revision]) def test_0050_create_repositories_for_simple_dependencies(self): '''Create repositories for testing simple dependency generation.''' @@ -317,11 +317,11 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository_base_long_description = 'Test #%d for repository dependency definitions.' for number in range(1, 6): self.get_or_create_repository(name=repository_base_name % number, - description=repository_base_description % number, - long_description=repository_base_long_description % number, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_base_description % number, + long_description=repository_base_long_description % number, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) def test_0055_populate_repository_dependency_test_1_0460(self): '''Populate repository_dependency_test_1_0460.''' @@ -332,14 +332,14 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner('repository_dependency_test_1_0460', common.test_user_1_name) package_repository = self.test_db_util.get_repository_by_name_and_owner('emboss_datatypes_0460', common.test_user_1_name) self.upload_file(repository, - filename='0460_files/repository_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded complex repository dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0460_files/repository_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded complex repository dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) changeset_revision = self.get_repository_tip(package_repository) strings_displayed = ['emboss_datatypes_0460', 'user1', changeset_revision] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) @@ -353,14 +353,14 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner('repository_dependency_test_2_0460', common.test_user_1_name) package_repository = self.test_db_util.get_repository_by_name_and_owner('emboss_datatypes_0460', common.test_user_1_name) self.upload_file(repository, - filename='0460_files/repository_dependencies_in_root.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=True, - commit_message='Uploaded complex repository dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0460_files/repository_dependencies_in_root.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=True, + commit_message='Uploaded complex repository dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) changeset_revision = self.get_repository_tip(package_repository) strings_displayed = ['emboss_datatypes_0460', 'user1', changeset_revision] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) @@ -375,21 +375,21 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner('repository_dependency_test_3_0460', common.test_user_1_name) package_repository = self.test_db_util.get_repository_by_name_and_owner('emboss_datatypes_0460', common.test_user_1_name) self.upload_file(repository, - filename='0460_files/repository_dependencies_in_subfolder.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=True, - commit_message='Uploaded complex repository dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0460_files/repository_dependencies_in_subfolder.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=True, + commit_message='Uploaded complex repository dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) changeset_revision = self.get_repository_tip(package_repository) strings_displayed = ['emboss_datatypes_0460', 'user1', changeset_revision] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) self.display_repository_file_contents(repository, - filename='repository_dependencies.xml', - filepath='subfolder', - strings_displayed=[changeset_revision]) + filename='repository_dependencies.xml', + filepath='subfolder', + strings_displayed=[changeset_revision]) def test_0070_create_repositories_for_url_upload(self): '''Create and populate hg_repository_dependency_0460 and hg_subfolder_repository_dependency_0460.''' @@ -399,35 +399,35 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name='hg_repository_dependency_0460', - description=bwa_repository_description, - long_description=bwa_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_repository_description, + long_description=bwa_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='0460_files/repository_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate hg_repository_dependency_0460 with a tool dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0460_files/repository_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate hg_repository_dependency_0460 with a tool dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) repository = self.get_or_create_repository(name='hg_subfolder_repository_dependency_0460', - description=bwa_repository_description, - long_description=bwa_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_repository_description, + long_description=bwa_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='0460_files/repository_dependencies_in_subfolder.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate hg_subfolder_repository_dependency_0460 with a tool dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0460_files/repository_dependencies_in_subfolder.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate hg_subfolder_repository_dependency_0460 with a tool dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) def test_0075_url_upload_to_complex_test(self): '''Populate repository_dependency_test_4_0460.''' @@ -439,20 +439,20 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner('repository_dependency_test_4_0460', common.test_user_1_name) package_repository = self.test_db_util.get_repository_by_name_and_owner('emboss_datatypes_0460', common.test_user_1_name) self.upload_url(repository, - url=url, - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=True, - commit_message='Uploaded repository dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + url=url, + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=True, + commit_message='Uploaded repository dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) changeset_revision = self.get_repository_tip(package_repository) strings_displayed = ['emboss_datatypes_0460', 'user1', changeset_revision] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) self.display_repository_file_contents(repository, - filename='repository_dependencies.xml', - strings_displayed=[changeset_revision]) + filename='repository_dependencies.xml', + strings_displayed=[changeset_revision]) def test_0080_url_upload_to_complex_test(self): '''Populate repository_dependency_test_4_0460.''' @@ -464,18 +464,18 @@ class TestAutomaticDependencyRevision(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner('repository_dependency_test_5_0460', common.test_user_1_name) package_repository = self.test_db_util.get_repository_by_name_and_owner('emboss_datatypes_0460', common.test_user_1_name) self.upload_url(repository, - url=url, - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=True, - commit_message='Uploaded repository dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + url=url, + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=True, + commit_message='Uploaded repository dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) changeset_revision = self.get_repository_tip(package_repository) strings_displayed = ['emboss_datatypes_0460', 'user1', changeset_revision] self.display_manage_repository_page(repository, strings_displayed=strings_displayed) self.display_repository_file_contents(repository, - filename='repository_dependencies.xml', - filepath='subfolder', - strings_displayed=[changeset_revision]) + filename='repository_dependencies.xml', + filepath='subfolder', + strings_displayed=[changeset_revision]) diff --git a/test/shed_functional/functional/test_0470_tool_dependency_repository_type.py b/test/shed_functional/functional/test_0470_tool_dependency_repository_type.py index 3fbfb5d2135..81e9ea8d821 100644 --- a/test/shed_functional/functional/test_0470_tool_dependency_repository_type.py +++ b/test/shed_functional/functional/test_0470_tool_dependency_repository_type.py @@ -80,21 +80,21 @@ class TestEnvironmentInheritance(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=package_libx11_repository_name, - description=package_libx11_repository_description, - long_description=package_libx11_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=package_libx11_repository_description, + long_description=package_libx11_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Upload the tool dependency definition to the package_x11_client_1_5_proto_7_0_0470 repository. self.upload_file(repository, - filename='emboss/libx11_proto/first_tool_dependency/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_x11_client_1_5_proto_7_0_0470 with tool dependency definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/libx11_proto/first_tool_dependency/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_x11_client_1_5_proto_7_0_0470 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_emboss_5_0_0_repository(self): '''Create and populate package_emboss_5_0_0_0470.''' @@ -107,21 +107,21 @@ class TestEnvironmentInheritance(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=package_emboss_repository_name, - description=package_emboss_repository_description, - long_description=package_emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=package_emboss_repository_description, + long_description=package_emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Upload the edited tool dependency definition to the package_emboss_5_0_0 repository. self.upload_file(repository, - filename='emboss/emboss_5_0_0/first_tool_dependency/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_emboss_5_0_0_0470 with tool dependency definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss_5_0_0/first_tool_dependency/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_emboss_5_0_0_0470 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_emboss_5_repository(self): '''Create and populate emboss_5_0470.''' @@ -134,21 +134,21 @@ class TestEnvironmentInheritance(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=emboss_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Populate emboss_5 with tool and dependency definitions. self.upload_file(repository, - filename='emboss/0470_files/emboss_complex_dependency.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Populate emboss_5 with tool and dependency definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/0470_files/emboss_complex_dependency.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Populate emboss_5 with tool and dependency definitions.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_upload_updated_tool_dependency_to_package_x11(self): '''Upload a new tool_dependencies.xml to package_x11_client_1_5_proto_7_0_0470.''' @@ -159,14 +159,14 @@ class TestEnvironmentInheritance(ShedTwillTestCase): package_x11_repository = self.test_db_util.get_repository_by_name_and_owner(package_libx11_repository_name, common.test_user_1_name) # Upload the tool dependency definition to the package_x11_client_1_5_proto_7_0_0470 repository. self.upload_file(package_x11_repository, - filename='emboss/libx11_proto/second_tool_dependency/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_x11_client_1_5_proto_7_0_0470 with tool dependency definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/libx11_proto/second_tool_dependency/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_x11_client_1_5_proto_7_0_0470 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[]) assert len(package_x11_repository.metadata_revisions) == 1, \ 'package_x11_client_1_5_proto_7_0_0470 has incorrect number of metadata revisions, expected 1 but found %d' % \ len(package_x11_repository.metadata_revisions) @@ -181,14 +181,14 @@ class TestEnvironmentInheritance(ShedTwillTestCase): package_emboss_repository = self.test_db_util.get_repository_by_name_and_owner(package_emboss_repository_name, common.test_user_1_name) # Populate package_emboss_5_0_0_0470 with updated tool dependency definition. self.upload_file(package_emboss_repository, - filename='emboss/emboss_5_0_0/second_tool_dependency/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_emboss_5_0_0_0470 with tool dependency definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss_5_0_0/second_tool_dependency/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_emboss_5_0_0_0470 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[]) assert len(package_emboss_repository.metadata_revisions) == 2, \ 'package_emboss_5_0_0_0470 has incorrect number of metadata revisions, expected 2 but found %d' % \ len(package_emboss_repository.metadata_revisions) @@ -203,14 +203,14 @@ class TestEnvironmentInheritance(ShedTwillTestCase): emboss_repository = self.test_db_util.get_repository_by_name_and_owner(emboss_repository_name, common.test_user_1_name) # Populate package_emboss_5_0_0_0470 with updated tool dependency definition. self.upload_file(emboss_repository, - filename='emboss/0470_files/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Upload updated complex repository dependency definition to emboss_5_0470.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/0470_files/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Upload updated complex repository dependency definition to emboss_5_0470.', + strings_displayed=[], + strings_not_displayed=[]) assert len(emboss_repository.metadata_revisions) == 2, 'package_emboss_5_0_0_0470 has incorrect number of metadata revisions' def test_0035_modify_package_x11_repository_type(self): diff --git a/test/shed_functional/functional/test_0480_tool_dependency_xml_verification.py b/test/shed_functional/functional/test_0480_tool_dependency_xml_verification.py index a9a69534c4a..082431222b4 100644 --- a/test/shed_functional/functional/test_0480_tool_dependency_xml_verification.py +++ b/test/shed_functional/functional/test_0480_tool_dependency_xml_verification.py @@ -47,20 +47,20 @@ class TestDependencyDefinitionValidation(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='0480_files/tool_dependencies.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_invalid_tool_dependency_xml_1_0_0 with an improperly defined tool dependency.', - strings_displayed=['package cannot be installed because', 'missing either an <actions> tag set'], - strings_not_displayed=[]) + filename='0480_files/tool_dependencies.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_invalid_tool_dependency_xml_1_0_0 with an improperly defined tool dependency.', + strings_displayed=['package cannot be installed because', 'missing either an <actions> tag set'], + strings_not_displayed=[]) def test_0010_populate_tool_dependency_repository(self): '''Verify package_invalid_tool_dependency_xml_1_0_0.''' diff --git a/test/shed_functional/functional/test_0490_export_import_repositories.py b/test/shed_functional/functional/test_0490_export_import_repositories.py index 421e83e0a8f..a3b6edbee07 100644 --- a/test/shed_functional/functional/test_0490_export_import_repositories.py +++ b/test/shed_functional/functional/test_0490_export_import_repositories.py @@ -51,10 +51,10 @@ class TestExportImportRepository(ShedTwillTestCase): self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) self.import_capsule(self.get_filename('repository_capsules/0490_filtering.tar.gz'), - strings_displayed=[repository_name, 'Exists'], - strings_not_displayed=[' Exists'], - strings_displayed_after_submit=['Repository filtering_0490 has been created.'], - strings_not_displayed_after_submit=['Import not necessary']) + strings_displayed=[repository_name, 'Exists'], + strings_not_displayed=[' Exists'], + strings_displayed_after_submit=['Repository filtering_0490 has been created.'], + strings_not_displayed_after_submit=['Import not necessary']) def test_0010_export_repository_capsule(self): '''Export the repository that was imported in the previous step.''' @@ -85,6 +85,6 @@ class TestExportImportRepository(ShedTwillTestCase): ''' global capsule_filepath self.import_capsule(capsule_filepath, - strings_displayed=[repository_name, ' Exists', self.url], - strings_not_displayed_after_submit=['Repository filtering_0490 has been created.'], - strings_displayed_after_submit=['Import not necessary', 'Exists']) + strings_displayed=[repository_name, ' Exists', self.url], + strings_not_displayed_after_submit=['Repository filtering_0490 has been created.'], + strings_displayed_after_submit=['Import not necessary', 'Exists']) diff --git a/test/shed_functional/functional/test_0500_export_repository_simple_dependency.py b/test/shed_functional/functional/test_0500_export_repository_simple_dependency.py index 09be3534ec0..c56a1b98a94 100644 --- a/test/shed_functional/functional/test_0500_export_repository_simple_dependency.py +++ b/test/shed_functional/functional/test_0500_export_repository_simple_dependency.py @@ -48,11 +48,11 @@ class TestExportImportRepository(ShedTwillTestCase): self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) self.import_capsule(self.get_filename('repository_capsules/0500_emboss_5.tar.gz'), - strings_displayed=[emboss_repository_name, datatypes_repository_name, 'Exists'], - strings_not_displayed=[' Exists'], - strings_displayed_after_submit=['Repository emboss_5_0500 has been created.', - 'Repository emboss_datatypes_0500 has been created.'], - strings_not_displayed_after_submit=['Import not necessary']) + strings_displayed=[emboss_repository_name, datatypes_repository_name, 'Exists'], + strings_not_displayed=[' Exists'], + strings_displayed_after_submit=['Repository emboss_5_0500 has been created.', + 'Repository emboss_datatypes_0500 has been created.'], + strings_not_displayed_after_submit=['Import not necessary']) def test_0010_export_repository_capsule(self): '''Export the repository that was imported in the previous step.''' @@ -83,7 +83,7 @@ class TestExportImportRepository(ShedTwillTestCase): ''' global capsule_filepath self.import_capsule(capsule_filepath, - strings_displayed=[emboss_repository_name, datatypes_repository_name, ' Exists', self.url], - strings_not_displayed_after_submit=['Repository emboss_5_0500 has been created.', - 'Repository emboss_datatypes_0500 has been created.'], - strings_displayed_after_submit=['Import not necessary', ' Exists']) + strings_displayed=[emboss_repository_name, datatypes_repository_name, ' Exists', self.url], + strings_not_displayed_after_submit=['Repository emboss_5_0500 has been created.', + 'Repository emboss_datatypes_0500 has been created.'], + strings_displayed_after_submit=['Import not necessary', ' Exists']) diff --git a/test/shed_functional/functional/test_0510_export_import_repository_complex_dependencies.py b/test/shed_functional/functional/test_0510_export_import_repository_complex_dependencies.py index 14a7f0e6f4c..d0f424b8208 100644 --- a/test/shed_functional/functional/test_0510_export_import_repository_complex_dependencies.py +++ b/test/shed_functional/functional/test_0510_export_import_repository_complex_dependencies.py @@ -41,19 +41,19 @@ class TestExportImportRepository(ShedTwillTestCase): self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) self.import_capsule(self.get_filename('repository_capsules/0510_trans_proteomic_pipeline.tar.gz'), - strings_displayed=['package_trans_proteomic_pipeline_4_6_3', - 'package_perl_5_18', - 'package_libpng_1_2', - 'package_libgd_2_1', - 'package_expat_2_1', - 'Exists'], - strings_not_displayed=[' Exists'], - strings_displayed_after_submit=['Repository package_trans_proteomic_pipeline_4_6_3 has been created.', - 'Repository package_perl_5_18 has been created.', - 'Repository package_libpng_1_2 has been created.', - 'Repository package_libgd_2_1 has been created.', - 'Repository package_expat_2_1 has been created.'], - strings_not_displayed_after_submit=['Import not necessary']) + strings_displayed=['package_trans_proteomic_pipeline_4_6_3', + 'package_perl_5_18', + 'package_libpng_1_2', + 'package_libgd_2_1', + 'package_expat_2_1', + 'Exists'], + strings_not_displayed=[' Exists'], + strings_displayed_after_submit=['Repository package_trans_proteomic_pipeline_4_6_3 has been created.', + 'Repository package_perl_5_18 has been created.', + 'Repository package_libpng_1_2 has been created.', + 'Repository package_libgd_2_1 has been created.', + 'Repository package_expat_2_1 has been created.'], + strings_not_displayed_after_submit=['Import not necessary']) def test_0010_export_repository_capsule(self): '''Export the repository that was imported in the previous step.''' @@ -84,16 +84,16 @@ class TestExportImportRepository(ShedTwillTestCase): ''' global capsule_filepath self.import_capsule(capsule_filepath, - strings_displayed=['package_trans_proteomic_pipeline_4_6_3', - 'package_perl_5_18', - 'package_libpng_1_2', - 'package_libgd_2_1', - 'package_expat_2_1', - ' Exists', - self.url], - strings_not_displayed_after_submit=['Repository package_trans_proteomic_pipeline_4_6_3 has been created.', - 'Repository package_perl_5_18 has been created.', - 'Repository package_libpng_1_2 has been created.', - 'Repository package_libgd_2_1 has been created.', - 'Repository package_expat_2_1 has been created.'], - strings_displayed_after_submit=['Import not necessary', ' Exists']) + strings_displayed=['package_trans_proteomic_pipeline_4_6_3', + 'package_perl_5_18', + 'package_libpng_1_2', + 'package_libgd_2_1', + 'package_expat_2_1', + ' Exists', + self.url], + strings_not_displayed_after_submit=['Repository package_trans_proteomic_pipeline_4_6_3 has been created.', + 'Repository package_perl_5_18 has been created.', + 'Repository package_libpng_1_2 has been created.', + 'Repository package_libgd_2_1 has been created.', + 'Repository package_expat_2_1 has been created.'], + strings_displayed_after_submit=['Import not necessary', ' Exists']) diff --git a/test/shed_functional/functional/test_0520_import_export_circular_dependencies.py b/test/shed_functional/functional/test_0520_import_export_circular_dependencies.py index d9f2d22414d..fbc123e95f3 100644 --- a/test/shed_functional/functional/test_0520_import_export_circular_dependencies.py +++ b/test/shed_functional/functional/test_0520_import_export_circular_dependencies.py @@ -47,10 +47,10 @@ class TestExportImportRepository(ShedTwillTestCase): self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) self.import_capsule(self.get_filename('repository_capsules/0520_filtering.tar.gz'), - strings_displayed=[filtering_repository_name, freebayes_repository_name, 'Exists'], - strings_not_displayed=[' Exists'], - strings_displayed_after_submit=['Repository filtering_0520 has been created.'], - strings_not_displayed_after_submit=['Import not necessary']) + strings_displayed=[filtering_repository_name, freebayes_repository_name, 'Exists'], + strings_not_displayed=[' Exists'], + strings_displayed_after_submit=['Repository filtering_0520 has been created.'], + strings_not_displayed_after_submit=['Import not necessary']) def test_0010_verify_invalid_dependency(self): '''Verify that the repository dependencies are marked as invalid.''' @@ -62,11 +62,11 @@ class TestExportImportRepository(ShedTwillTestCase): filtering_repository = self.test_db_util.get_repository_by_name_and_owner(filtering_repository_name, common.test_user_1_name) strings_displayed = ['Ignoring repository dependency definition', self.url, 'filtering_0520', 'name is invalid'] self.display_manage_repository_page(freebayes_repository, - strings_displayed=strings_displayed, - strings_not_displayed=['Repository dependencies']) + strings_displayed=strings_displayed, + strings_not_displayed=['Repository dependencies']) self.display_manage_repository_page(filtering_repository, - strings_displayed=['Repository dependencies', self.get_repository_tip(freebayes_repository)], - strings_not_displayed=[]) + strings_displayed=['Repository dependencies', self.get_repository_tip(freebayes_repository)], + strings_not_displayed=[]) def test_0015_verify_repository_metadata(self): '''Verify that the repositories are not marked as downloadable.''' diff --git a/test/shed_functional/functional/test_0530_repository_admin_feature.py b/test/shed_functional/functional/test_0530_repository_admin_feature.py index 29cccd77685..3a11bdff16b 100644 --- a/test/shed_functional/functional/test_0530_repository_admin_feature.py +++ b/test/shed_functional/functional/test_0530_repository_admin_feature.py @@ -56,20 +56,20 @@ class TestRepositoryAdminRole(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_verify_repository_admin_role_exists(self): '''Verify that the role filtering_0530_user1_admin exists.''' diff --git a/test/shed_functional/functional/test_0540_get_all_metadata_from_api.py b/test/shed_functional/functional/test_0540_get_all_metadata_from_api.py index 2c1e4681b73..bb76935d698 100644 --- a/test/shed_functional/functional/test_0540_get_all_metadata_from_api.py +++ b/test/shed_functional/functional/test_0540_get_all_metadata_from_api.py @@ -5,14 +5,14 @@ from shed_functional.base.twilltestcase import common, ShedTwillTestCase log = logging.getLogger(__name__) repositories = dict(column=dict(name='column_maker_0540', - description='Description for column_maker_0540', - long_description='Long description for column_maker_0540'), - convert=dict(name='convert_chars_0540', - description='Description for convert_chars_0540', - long_description='Long description for convert_chars_0540'), - bwa=dict(name='package_bwa_0_5_9_0540', - description='Description for package_bwa_0_5_9_0540', - long_description='Long description for package_bwa_0_5_9_0540')) + description='Description for column_maker_0540', + long_description='Long description for column_maker_0540'), + convert=dict(name='convert_chars_0540', + description='Description for convert_chars_0540', + long_description='Long description for convert_chars_0540'), + bwa=dict(name='package_bwa_0_5_9_0540', + description='Description for package_bwa_0_5_9_0540', + long_description='Long description for package_bwa_0_5_9_0540')) category_name = 'Test 0540' category_description = 'Verify API endpoint to retrieve all metadata' @@ -50,21 +50,21 @@ class TestGetAllMetadata(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) # Create a repository named package_bwa_0_5_9_0100 owned by user1. repository = self.get_or_create_repository(name=repositories['bwa']['name'], - description=repositories['bwa']['description'], - long_description=repositories['bwa']['long_description'], - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repositories['bwa']['description'], + long_description=repositories['bwa']['long_description'], + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) assert repository is not None, 'Error creating repository %s' % repositories['bwa']['name'] self.upload_file(repository, - filename='0540_files/package_bwa/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool_dependencies.xml.', - strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], - strings_not_displayed=[]) + filename='0540_files/package_bwa/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool_dependencies.xml.', + strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], + strings_not_displayed=[]) # Visit the manage repository page for package_bwa_0_5_9_0100. self.display_manage_repository_page(repository, strings_displayed=['Tool dependencies', 'will not be', 'to this repository']) @@ -72,31 +72,31 @@ class TestGetAllMetadata(ShedTwillTestCase): '''Create the convert_chars_0540 repository.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=repositories['convert']['name'], - description=repositories['convert']['description'], - long_description=repositories['convert']['long_description'], - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repositories['convert']['description'], + long_description=repositories['convert']['long_description'], + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) assert repository is not None, 'Error creating repository %s' % repositories['convert']['name'] self.upload_file(repository, - filename='0540_files/convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column maker 1.0.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0540_files/convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column maker 1.0.', + strings_displayed=[], + strings_not_displayed=[]) # Add a dependency on BWA. self.upload_file(repository, - filename='0540_files/convert_chars/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column maker 1.0.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0540_files/convert_chars/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column maker 1.0.', + strings_displayed=[], + strings_not_displayed=[]) # Visit the manage repository page for convert_chars_0540. self.display_manage_repository_page(repository, strings_displayed=[repositories['bwa']['name']]) @@ -104,35 +104,35 @@ class TestGetAllMetadata(ShedTwillTestCase): '''Create the column_maker_0540 repository.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=repositories['column']['name'], - description=repositories['column']['description'], - long_description=repositories['column']['long_description'], - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repositories['column']['description'], + long_description=repositories['column']['long_description'], + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) assert repository is not None, 'Error creating repository %s' % repositories['column']['name'] self.upload_file(repository, - filename='0540_files/column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column maker 1.0.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0540_files/column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column maker 1.0.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_repository_dependency(self): '''Make column_maker depend on convert_chars.''' repository = self.test_db_util.get_repository_by_name_and_owner(repositories['column']['name'], - common.test_user_1_name) + common.test_user_1_name) self.upload_file(repository, - filename='0540_files/column_maker/repository_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column maker 2.0.', - strings_displayed=[], - strings_not_displayed=[]) + filename='0540_files/column_maker/repository_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column maker 2.0.', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_verify_dependency_json(self): ''' @@ -140,8 +140,8 @@ class TestGetAllMetadata(ShedTwillTestCase): that all three repository names are displayed. ''' repository = self.test_db_util.get_repository_by_name_and_owner(repositories['column']['name'], - common.test_user_1_name) + common.test_user_1_name) strings_displayed = [repositories['column']['name'], - repositories['convert']['name'], - repositories['bwa']['name']] + repositories['convert']['name'], + repositories['bwa']['name']] self.fetch_repository_metadata(repository, strings_displayed=strings_displayed, strings_not_displayed=None) diff --git a/test/shed_functional/functional/test_0550_metadata_updated_dependencies.py b/test/shed_functional/functional/test_0550_metadata_updated_dependencies.py index fb0037b2eae..0edf4012d48 100644 --- a/test/shed_functional/functional/test_0550_metadata_updated_dependencies.py +++ b/test/shed_functional/functional/test_0550_metadata_updated_dependencies.py @@ -5,14 +5,14 @@ from shed_functional.base.twilltestcase import common, ShedTwillTestCase log = logging.getLogger(__name__) repositories = dict(freebayes=dict(name='package_freebayes_0550', - description='Description for package_freebayes_0550', - long_description='Long description for package_freebayes_0550'), - samtools=dict(name='package_samtools_0550', - description='Description for package_samtools_0550', - long_description='Long description for package_samtools_0550'), - filtering=dict(name='filtering_0550', - description='Description for filtering_0550', - long_description='Long description for filtering_0550')) + description='Description for package_freebayes_0550', + long_description='Long description for package_freebayes_0550'), + samtools=dict(name='package_samtools_0550', + description='Description for package_samtools_0550', + long_description='Long description for package_samtools_0550'), + filtering=dict(name='filtering_0550', + description='Description for filtering_0550', + long_description='Long description for filtering_0550')) category_name = 'Test 0550' category_description = 'Verify metadata updates' @@ -54,21 +54,21 @@ class TestGetUpdatedMetadata(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) # Create a repository named package_freebayes_0550 owned by user1. freebayes = self.get_or_create_repository(name=repositories['freebayes']['name'], - description=repositories['freebayes']['description'], - long_description=repositories['freebayes']['long_description'], - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repositories['freebayes']['description'], + long_description=repositories['freebayes']['long_description'], + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) assert freebayes is not None, 'Error creating freebayes %s' % repositories['freebayes']['name'] self.upload_file(freebayes, - filename='0550_files/package_freebayes_1_0550.tgz', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded.', - strings_displayed=['has been successfully uploaded to the repository', 'contains a single file'], - strings_not_displayed=None) + filename='0550_files/package_freebayes_1_0550.tgz', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded.', + strings_displayed=['has been successfully uploaded to the repository', 'contains a single file'], + strings_not_displayed=None) # Visit the manage repository page for package_freebayes_0_5_9_0100. self.display_manage_repository_page(freebayes, strings_displayed=['Tool dependencies', 'will not be', 'to this repository']) @@ -76,41 +76,41 @@ class TestGetUpdatedMetadata(ShedTwillTestCase): '''Create and populate the package_samtools_0550 repository.''' category = self.create_category(name=category_name, description=category_description) samtools = self.get_or_create_repository(name=repositories['samtools']['name'], - description=repositories['samtools']['description'], - long_description=repositories['samtools']['long_description'], - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repositories['samtools']['description'], + long_description=repositories['samtools']['long_description'], + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) assert samtools is not None, 'Error creating samtools %s' % repositories['samtools']['name'] self.upload_file(samtools, - filename='0550_files/package_samtools_1_0550.tgz', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded samtools 1.0.', - strings_displayed=['has been successfully uncompressed and uploaded to the repository'], - strings_not_displayed=[]) + filename='0550_files/package_samtools_1_0550.tgz', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded samtools 1.0.', + strings_displayed=['has been successfully uncompressed and uploaded to the repository'], + strings_not_displayed=[]) def test_0015_create_filtering_repository(self): '''Create the filtering_0550 repository.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=repositories['filtering']['name'], - description=repositories['filtering']['description'], - long_description=repositories['filtering']['long_description'], - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repositories['filtering']['description'], + long_description=repositories['filtering']['long_description'], + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) assert repository is not None, 'Error creating repository %s' % repositories['filtering']['name'] self.upload_file(repository, - filename='0550_files/filtering_1.0.tgz', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.0.', - strings_displayed=['has been successfully uncompressed and uploaded to the repository'], - strings_not_displayed=[]) + filename='0550_files/filtering_1.0.tgz', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.0.', + strings_displayed=['has been successfully uncompressed and uploaded to the repository'], + strings_not_displayed=[]) def test_0020_check_repository_dependency(self): '''Make filtering depend on samtools and freebayes.''' @@ -119,7 +119,7 @@ class TestGetUpdatedMetadata(ShedTwillTestCase): samtools = self.test_db_util.get_repository_by_name_and_owner(repositories['samtools']['name'], common.test_user_1_name) filtering = self.test_db_util.get_repository_by_name_and_owner(repositories['filtering']['name'], - common.test_user_1_name) + common.test_user_1_name) strings_displayed = [self.security.encode_id(freebayes.id), self.security.encode_id(samtools.id)] self.display_manage_repository_page(filtering, strings_displayed=strings_displayed) @@ -132,26 +132,26 @@ class TestGetUpdatedMetadata(ShedTwillTestCase): samtools = self.test_db_util.get_repository_by_name_and_owner(repositories['samtools']['name'], common.test_user_1_name) filtering = self.test_db_util.get_repository_by_name_and_owner(repositories['filtering']['name'], - common.test_user_1_name) + common.test_user_1_name) self.upload_file(freebayes, - filename='0550_files/package_freebayes_2_0550.tgz', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded freebayes 2.0.', - strings_displayed=['has been successfully uncompressed and uploaded to the repository'], - strings_not_displayed=[]) + filename='0550_files/package_freebayes_2_0550.tgz', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded freebayes 2.0.', + strings_displayed=['has been successfully uncompressed and uploaded to the repository'], + strings_not_displayed=[]) self.upload_file(samtools, - filename='0550_files/package_samtools_2_0550.tgz', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded samtools 2.0.', - strings_displayed=['has been successfully uncompressed and uploaded to the repository'], - strings_not_displayed=[]) + filename='0550_files/package_samtools_2_0550.tgz', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded samtools 2.0.', + strings_displayed=['has been successfully uncompressed and uploaded to the repository'], + strings_not_displayed=[]) strings_displayed = [repositories['freebayes']['name'], - repositories['samtools']['name'], - repositories['filtering']['name']] + repositories['samtools']['name'], + repositories['filtering']['name']] self.fetch_repository_metadata(filtering, strings_displayed=strings_displayed, strings_not_displayed=None) diff --git a/test/shed_functional/functional/test_1000_install_basic_repository.py b/test/shed_functional/functional/test_1000_install_basic_repository.py index d395eeb0223..4fc6d2223db 100644 --- a/test/shed_functional/functional/test_1000_install_basic_repository.py +++ b/test/shed_functional/functional/test_1000_install_basic_repository.py @@ -26,47 +26,47 @@ class BasicToolShedFeatures(ShedTwillTestCase): category = self.create_category(name='Test 0000 Basic Repository Features 1', description='Test Description 0000 Basic Repository Features 1') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name='filtering_0000', - description="Galaxy's filtering tool", - long_description="Long description of Galaxy's filtering tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id)) + description="Galaxy's filtering tool", + long_description="Long description of Galaxy's filtering tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id)) if self.repository_is_new(repository): self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_0000.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded readme for 1.1.0', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_0000.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded readme for 1.1.0', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 2.2.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 2.2.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='readme.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded readme for 2.2.0', - strings_displayed=[], - strings_not_displayed=[]) + filename='readme.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded readme for 2.2.0', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_browse_tool_sheds(self): """Browse the available tool sheds in this Galaxy instance.""" @@ -86,15 +86,15 @@ class BasicToolShedFeatures(ShedTwillTestCase): def test_0025_install_filtering_repository(self): self.install_repository('filtering_0000', - common.test_user_1_name, - 'Test 0000 Basic Repository Features 1', - new_tool_panel_section_label='test_1000') + common.test_user_1_name, + 'Test 0000 Basic Repository Features 1', + new_tool_panel_section_label='test_1000') installed_repository = self.test_db_util.get_installed_repository_by_name_owner('filtering_0000', common.test_user_1_name) strings_displayed = ['filtering_0000', - "Galaxy's filtering tool", - 'user1', - self.url.replace('http://', ''), - str(installed_repository.installed_changeset_revision)] + "Galaxy's filtering tool", + 'user1', + self.url.replace('http://', ''), + str(installed_repository.installed_changeset_revision)] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'Filter1']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) @@ -107,14 +107,14 @@ class BasicToolShedFeatures(ShedTwillTestCase): # repository was already installed, nothing will be in the process of being installed, so the grid will not display 'filtering_0000'. post_submit_strings_not_displayed = ['filtering_0000'] self.install_repository('filtering_0000', - common.test_user_1_name, - 'Test 0000 Basic Repository Features 1', - post_submit_strings_not_displayed=post_submit_strings_not_displayed) + common.test_user_1_name, + 'Test 0000 Basic Repository Features 1', + post_submit_strings_not_displayed=post_submit_strings_not_displayed) strings_displayed = ['filtering_0000', - "Galaxy's filtering tool", - 'user1', - self.url.replace('http://', ''), - str(installed_repository.installed_changeset_revision)] + "Galaxy's filtering tool", + 'user1', + self.url.replace('http://', ''), + str(installed_repository.installed_changeset_revision)] self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_1010_install_repository_with_tool_dependencies.py b/test/shed_functional/functional/test_1010_install_repository_with_tool_dependencies.py index 6588414cca7..55f4ec79bd4 100644 --- a/test/shed_functional/functional/test_1010_install_repository_with_tool_dependencies.py +++ b/test/shed_functional/functional/test_1010_install_repository_with_tool_dependencies.py @@ -32,65 +32,65 @@ class ToolWithToolDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description='Tests for a repository with tool dependencies.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id)) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id)) if self.repository_is_new(repository): self.upload_file(repository, - filename='freebayes/freebayes.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool xml.', - strings_displayed=['Metadata may have been defined', 'This file requires an entry', 'tool_data_table_conf'], - strings_not_displayed=[]) + filename='freebayes/freebayes.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool xml.', + strings_displayed=['Metadata may have been defined', 'This file requires an entry', 'tool_data_table_conf'], + strings_not_displayed=[]) self.upload_file(repository, - filename='freebayes/tool_data_table_conf.xml.sample', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool data table sample file.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/tool_data_table_conf.xml.sample', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool data table sample file.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='freebayes/sam_fa_indices.loc.sample', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool data table .loc file.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/sam_fa_indices.loc.sample', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool data table .loc file.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename=os.path.join('freebayes', 'malformed_tool_dependencies', 'tool_dependencies.xml'), - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded malformed tool dependency XML.', - strings_displayed=['Exception attempting to parse', 'not well-formed'], - strings_not_displayed=[]) + filename=os.path.join('freebayes', 'malformed_tool_dependencies', 'tool_dependencies.xml'), + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded malformed tool dependency XML.', + strings_displayed=['Exception attempting to parse', 'not well-formed'], + strings_not_displayed=[]) self.upload_file(repository, - filename=os.path.join('freebayes', 'invalid_tool_dependencies', 'tool_dependencies.xml'), - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded invalid tool dependency XML.', - strings_displayed=['The settings for name, version and type from a contained tool configuration'], - strings_not_displayed=[]) + filename=os.path.join('freebayes', 'invalid_tool_dependencies', 'tool_dependencies.xml'), + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded invalid tool dependency XML.', + strings_displayed=['The settings for name, version and type from a contained tool configuration'], + strings_not_displayed=[]) self.upload_file(repository, - filename=os.path.join('freebayes', 'tool_dependencies.xml'), - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded valid tool dependency XML.', - strings_displayed=[], - strings_not_displayed=[]) + filename=os.path.join('freebayes', 'tool_dependencies.xml'), + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded valid tool dependency XML.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_browse_tool_shed(self): """Browse the available tool sheds in this Galaxy instance and preview the freebayes tool.""" @@ -106,17 +106,17 @@ class ToolWithToolDependencies(ShedTwillTestCase): strings_displayed = ['Never installed', 'install all needed dependencies', 'install Tool Shed managed', 'tool dependencies'] strings_displayed.extend(['freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18']) self.install_repository(repository_name, - common.test_user_1_name, - category_name, - strings_displayed=strings_displayed, - install_tool_dependencies=False, - new_tool_panel_section_label='test_1010') + common.test_user_1_name, + category_name, + strings_displayed=strings_displayed, + install_tool_dependencies=False, + new_tool_panel_section_label='test_1010') installed_repository = self.test_db_util.get_installed_repository_by_name_owner(repository_name, common.test_user_1_name) strings_displayed = ['freebayes_0010', - "Galaxy's freebayes tool", - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + "Galaxy's freebayes tool", + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'FreeBayes']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_1020_install_repository_with_repository_dependencies.py b/test/shed_functional/functional/test_1020_install_repository_with_repository_dependencies.py index fb20d917314..d7d3cafa171 100644 --- a/test/shed_functional/functional/test_1020_install_repository_with_repository_dependencies.py +++ b/test/shed_functional/functional/test_1020_install_repository_with_repository_dependencies.py @@ -36,36 +36,36 @@ class ToolWithRepositoryDependencies(ShedTwillTestCase): category = self.create_category(name='Test 0020 Basic Repository Dependencies', description='Test 0020 Basic Repository Dependencies') self.login(email=common.test_user_1_email, username=common.test_user_1_name) datatypes_repository = self.get_or_create_repository(name=datatypes_repository_name, - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) + if self.repository_is_new(datatypes_repository): + self.upload_file(datatypes_repository, + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) + emboss_repository = self.get_or_create_repository(name=emboss_repository_name, + description=emboss_repository_description, + long_description=emboss_repository_long_description, owner=common.test_user_1_name, category_id=self.security.encode_id(category.id), strings_displayed=[]) - if self.repository_is_new(datatypes_repository): - self.upload_file(datatypes_repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) - emboss_repository = self.get_or_create_repository(name=emboss_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) self.upload_file(emboss_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_1020', additional_paths=['emboss', '5']) repository_tuple = (self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip(datatypes_repository)) self.create_repository_dependency(repository=emboss_repository, repository_tuples=[repository_tuple], filepath=repository_dependencies_path) @@ -87,17 +87,17 @@ class ToolWithRepositoryDependencies(ShedTwillTestCase): global base_datatypes_count strings_displayed = ['Handle', 'Never installed', 'tool dependencies', 'emboss', '5.0.0', 'package'] self.install_repository('emboss_0020', - common.test_user_1_name, - 'Test 0020 Basic Repository Dependencies', - strings_displayed=strings_displayed, - install_tool_dependencies=False, - new_tool_panel_section_label='test_1020') + common.test_user_1_name, + 'Test 0020 Basic Repository Dependencies', + strings_displayed=strings_displayed, + install_tool_dependencies=False, + new_tool_panel_section_label='test_1020') installed_repository = self.test_db_util.get_installed_repository_by_name_owner('emboss_0020', common.test_user_1_name) strings_displayed = ['emboss_0020', - 'Galaxy wrappers for Emboss version 5.0.0 tools for test 0020', - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + 'Galaxy wrappers for Emboss version 5.0.0 tools for test 0020', + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'antigenic']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_1030_install_repository_with_dependency_revisions.py b/test/shed_functional/functional/test_1030_install_repository_with_dependency_revisions.py index 374789682c1..aac2205f862 100644 --- a/test/shed_functional/functional/test_1030_install_repository_with_dependency_revisions.py +++ b/test/shed_functional/functional/test_1030_install_repository_with_dependency_revisions.py @@ -40,73 +40,73 @@ class RepositoryWithDependencyRevisions(ShedTwillTestCase): category = self.create_category(name='Test 0030 Repository Dependency Revisions', description='Test 0030 Repository Dependency Revisions') self.login(email=common.test_user_1_email, username=common.test_user_1_name) datatypes_repository = self.get_or_create_repository(name=datatypes_repository_name, - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(datatypes_repository): running_standalone = True self.upload_file(datatypes_repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) emboss_5_repository = self.get_or_create_repository(name=emboss_5_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(emboss_5_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_1030', additional_paths=['emboss', '5']) datatypes_tuple = (self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip(datatypes_repository)) self.create_repository_dependency(repository=emboss_5_repository, repository_tuples=[datatypes_tuple], filepath=repository_dependencies_path) emboss_6_repository = self.get_or_create_repository(name=emboss_6_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(emboss_6_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_1030', additional_paths=['emboss', '6']) datatypes_tuple = (self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip(datatypes_repository)) self.create_repository_dependency(repository=emboss_6_repository, repository_tuples=[datatypes_tuple], filepath=repository_dependencies_path) emboss_repository = self.get_or_create_repository(name=emboss_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(emboss_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_1030', additional_paths=['emboss', '5']) dependency_tuple = (self.url, emboss_5_repository.name, emboss_5_repository.user.username, self.get_repository_tip(emboss_5_repository)) self.create_repository_dependency(repository=emboss_repository, repository_tuples=[dependency_tuple], filepath=repository_dependencies_path) @@ -130,17 +130,17 @@ class RepositoryWithDependencyRevisions(ShedTwillTestCase): base_datatypes_count = int(self.get_datatypes_count()) strings_displayed = ['Handle', 'Never installed', 'tool dependencies', 'emboss', '5.0.0', 'package'] self.install_repository('emboss_0030', - common.test_user_1_name, - 'Test 0030 Repository Dependency Revisions', - strings_displayed=strings_displayed, - install_tool_dependencies=False, - new_tool_panel_section_label='test_1030') + common.test_user_1_name, + 'Test 0030 Repository Dependency Revisions', + strings_displayed=strings_displayed, + install_tool_dependencies=False, + new_tool_panel_section_label='test_1030') installed_repository = self.test_db_util.get_installed_repository_by_name_owner('emboss_0030', common.test_user_1_name) strings_displayed = ['emboss_0030', - 'Galaxy wrappers for Emboss version 5.0.0 tools for test 0030', - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + 'Galaxy wrappers for Emboss version 5.0.0 tools for test 0030', + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'antigenic']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_1040_install_repository_basic_circular_dependencies.py b/test/shed_functional/functional/test_1040_install_repository_basic_circular_dependencies.py index f1ea48fc4d8..c31c52cee51 100644 --- a/test/shed_functional/functional/test_1040_install_repository_basic_circular_dependencies.py +++ b/test/shed_functional/functional/test_1040_install_repository_basic_circular_dependencies.py @@ -33,22 +33,22 @@ class TestInstallingCircularDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description='Testing handling of circular repository dependencies.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=freebayes_repository_name, - description=freebayes_repository_description, - long_description=freebayes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=freebayes_repository_description, + long_description=freebayes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='freebayes/freebayes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_filtering_repository(self): '''Create and populate filtering_0040.''' @@ -56,22 +56,22 @@ class TestInstallingCircularDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description='Testing handling of circular repository dependencies.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=filtering_repository_name, - description=filtering_repository_description, - long_description=filtering_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=filtering_repository_description, + long_description=filtering_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool tarball for filtering 1.1.0.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool tarball for filtering 1.1.0.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_repository_dependencies(self): '''Set up the filtering and freebayes repository dependencies.''' @@ -94,11 +94,11 @@ class TestInstallingCircularDependencies(ShedTwillTestCase): self.galaxy_login(email=common.admin_email, username=common.admin_username) strings_displayed = ['Handle', 'tool dependencies', 'freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18'] self.install_repository(freebayes_repository_name, - common.test_user_1_name, - category_name, - strings_displayed=strings_displayed, - install_tool_dependencies=False, - install_repository_dependencies=True) + common.test_user_1_name, + category_name, + strings_displayed=strings_displayed, + install_tool_dependencies=False, + install_repository_dependencies=True) def test_0030_uninstall_filtering_repository(self): '''Deactivate filtering, verify tool panel section and missing repository dependency.''' @@ -112,18 +112,18 @@ class TestInstallingCircularDependencies(ShedTwillTestCase): strings_displayed = ['Missing repository', 'filtering', 'freebayes_0040', 'user1', "Galaxy's freebayes tool for test 0040"] self.display_installed_repository_manage_page(installed_freebayes_repository, strings_displayed=strings_displayed) self.check_galaxy_repository_db_status(filtering_repository_name, - common.test_user_1_name, - 'Deactivated') + common.test_user_1_name, + 'Deactivated') def test_0035_reactivate_filtering_repository(self): '''Reinstall filtering into 'filtering' tool panel section.''' installed_filtering_repository = self.test_db_util.get_installed_repository_by_name_owner(freebayes_repository_name, common.test_user_1_name) self.reinstall_repository(installed_filtering_repository, - install_tool_dependencies=False, - install_repository_dependencies=True, - new_tool_panel_section_label='filtering', - no_changes=False) + install_tool_dependencies=False, + install_repository_dependencies=True, + new_tool_panel_section_label='filtering', + no_changes=False) def test_0040_uninstall_freebayes_repository(self): '''Deactivate freebayes, verify tool panel section and missing repository dependency.''' @@ -137,8 +137,8 @@ class TestInstallingCircularDependencies(ShedTwillTestCase): strings_displayed = ['Missing repository', 'freebayes', 'filtering_0040', 'user1', "Galaxy's filtering tool for test 0040"] self.display_installed_repository_manage_page(installed_filtering_repository, strings_displayed=strings_displayed) self.check_galaxy_repository_db_status('freebayes_0040', - 'user1', - 'Deactivated') + 'user1', + 'Deactivated') def test_0045_deactivate_filtering_repository(self): '''Deactivate filtering, verify tool panel section.''' @@ -151,5 +151,5 @@ class TestInstallingCircularDependencies(ShedTwillTestCase): strings_displayed = ['Missing repository', 'filtering', 'freebayes_0040', 'user1', "Galaxy's freebayes tool for test 0040"] self.display_installed_repository_manage_page(installed_freebayes_repository, strings_displayed=strings_displayed) self.check_galaxy_repository_db_status(filtering_repository_name, - common.test_user_1_name, - 'Deactivated') + common.test_user_1_name, + 'Deactivated') diff --git a/test/shed_functional/functional/test_1050_circular_dependencies_4_levels.py b/test/shed_functional/functional/test_1050_circular_dependencies_4_levels.py index 3186f15951d..915ec3e21f1 100644 --- a/test/shed_functional/functional/test_1050_circular_dependencies_4_levels.py +++ b/test/shed_functional/functional/test_1050_circular_dependencies_4_levels.py @@ -54,142 +54,142 @@ class TestInstallRepositoryCircularDependencies(ShedTwillTestCase): global running_standalone self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert_chars tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert_chars tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_column_repository(self): '''Create and populate convert_chars_0050.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column_maker tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column_maker tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_emboss_datatypes_repository(self): '''Create and populate emboss_datatypes_0050.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=emboss_datatypes_repository_name, - description=emboss_datatypes_repository_description, - long_description=emboss_datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_datatypes_repository_description, + long_description=emboss_datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_emboss_repository(self): '''Create and populate emboss_0050.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=emboss_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_create_filtering_repository(self): '''Create and populate filtering_0050.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=filtering_repository_name, - description=filtering_repository_description, - long_description=filtering_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=filtering_repository_description, + long_description=filtering_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0030_create_freebayes_repository(self): '''Create and populate freebayes_0050.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=freebayes_repository_name, - description=freebayes_repository_description, - long_description=freebayes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=freebayes_repository_description, + long_description=freebayes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='freebayes/freebayes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded freebayes tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded freebayes tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0035_create_bismark_repository(self): '''Create and populate bismark_0050.''' category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=bismark_repository_name, - description=bismark_repository_description, - long_description=bismark_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bismark_repository_description, + long_description=bismark_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='bismark/bismark.tar', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded bismark tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bismark/bismark.tar', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded bismark tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0040_create_and_upload_dependency_definitions(self): '''Set up the dependency structure.''' @@ -220,8 +220,8 @@ class TestInstallRepositoryCircularDependencies(ShedTwillTestCase): self.create_repository_dependency(repository=datatypes_repository, repository_tuples=[bismark_tuple], filepath=dependency_xml_path) self.create_repository_dependency(repository=emboss_repository, repository_tuples=[datatypes_tuple], filepath=dependency_xml_path) self.create_repository_dependency(repository=freebayes_repository, - repository_tuples=[freebayes_tuple, datatypes_tuple, emboss_tuple, column_tuple], - filepath=dependency_xml_path) + repository_tuples=[freebayes_tuple, datatypes_tuple, emboss_tuple, column_tuple], + filepath=dependency_xml_path) self.create_repository_dependency(repository=filtering_repository, repository_tuples=[emboss_tuple], filepath=dependency_xml_path) def test_0045_verify_repository_dependencies(self): @@ -266,21 +266,21 @@ class TestInstallRepositoryCircularDependencies(ShedTwillTestCase): freebayes_repository = self.test_db_util.get_repository_by_name_and_owner(freebayes_repository_name, common.test_user_1_name) emboss_repository = self.test_db_util.get_repository_by_name_and_owner(emboss_repository_name, common.test_user_1_name) self.display_manage_repository_page(freebayes_repository, - strings_displayed=['freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18', 'Tool dependencies']) + strings_displayed=['freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18', 'Tool dependencies']) self.display_manage_repository_page(emboss_repository, strings_displayed=['Tool dependencies', 'emboss', '5.0.0', 'package']) def test_0055_install_column_repository(self): '''Install column_maker with repository dependencies.''' self.galaxy_login(email=common.admin_email, username=common.admin_username) self.install_repository(column_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=True, - new_tool_panel_section_label='column_maker') + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=True, + new_tool_panel_section_label='column_maker') # This should result in column_maker and convert_chars being installed, and the rest never installed. installed_repositories = [(column_repository_name, common.test_user_1_name), - (convert_repository_name, common.test_user_1_name)] + (convert_repository_name, common.test_user_1_name)] strings_displayed = ['column_maker_0050', 'convert_chars_0050'] strings_not_displayed = ['emboss_datatypes_0050', 'emboss_0050', 'filtering_0050', 'freebayes_0050', 'bismark_0050'] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed) @@ -291,19 +291,19 @@ class TestInstallRepositoryCircularDependencies(ShedTwillTestCase): global running_standalone original_datatypes = self.get_datatypes_count() self.install_repository(emboss_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=True, - new_tool_panel_section_label='emboss_5_0050') + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=True, + new_tool_panel_section_label='emboss_5_0050') if running_standalone: assert original_datatypes < self.get_datatypes_count(), 'Installing a repository that depends on emboss_datatypes did not add datatypes.' # Now we have emboss_datatypes, emboss, bismark, column_maker, and convert_chars installed, filtering and freebayes never installed. installed_repositories = [(emboss_datatypes_repository_name, common.test_user_1_name), - (column_repository_name, common.test_user_1_name), - (emboss_repository_name, common.test_user_1_name), - (convert_repository_name, common.test_user_1_name), - (bismark_repository_name, common.test_user_1_name)] + (column_repository_name, common.test_user_1_name), + (emboss_repository_name, common.test_user_1_name), + (convert_repository_name, common.test_user_1_name), + (bismark_repository_name, common.test_user_1_name)] strings_displayed = ['emboss_datatypes_0050', 'emboss_0050', 'column_maker_0050', 'convert_chars_0050', 'bismark_0050'] strings_not_displayed = ['filtering_0050', 'freebayes_0050'] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed) @@ -317,9 +317,9 @@ class TestInstallRepositoryCircularDependencies(ShedTwillTestCase): assert original_datatypes > self.get_datatypes_count(), 'Deactivating emboss_datatypes did not remove datatypes.' # Now we have emboss, bismark, column_maker, and convert_chars installed, filtering and freebayes never installed, and emboss_datatypes deactivated. installed_repositories = [(column_repository_name, common.test_user_1_name), - (emboss_repository_name, common.test_user_1_name), - (convert_repository_name, common.test_user_1_name), - (bismark_repository_name, common.test_user_1_name)] + (emboss_repository_name, common.test_user_1_name), + (convert_repository_name, common.test_user_1_name), + (bismark_repository_name, common.test_user_1_name)] strings_displayed = ['emboss_0050', 'column_maker_0050', 'convert_chars_0050', 'bismark_0050'] strings_not_displayed = ['emboss_datatypes_0050', 'filtering_0050', 'freebayes_0050'] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed) @@ -336,8 +336,8 @@ class TestInstallRepositoryCircularDependencies(ShedTwillTestCase): # Now we have bismark, column_maker, and convert_chars installed, filtering and freebayes never installed, emboss_datatypes deactivated, # and emboss uninstalled. installed_repositories = [(column_repository_name, common.test_user_1_name), - (convert_repository_name, common.test_user_1_name), - (bismark_repository_name, common.test_user_1_name)] + (convert_repository_name, common.test_user_1_name), + (bismark_repository_name, common.test_user_1_name)] strings_displayed = ['column_maker_0050', 'convert_chars_0050', 'bismark_0050'] strings_not_displayed = ['emboss_0050', 'emboss_datatypes_0050', 'filtering_0050', 'freebayes_0050'] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed) @@ -348,28 +348,28 @@ class TestInstallRepositoryCircularDependencies(ShedTwillTestCase): original_datatypes = self.get_datatypes_count() strings_displayed = ['Handle', 'tool dependencies', 'freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18'] self.install_repository(freebayes_repository_name, - common.test_user_1_name, - category_name, - strings_displayed=strings_displayed, - install_tool_dependencies=False, - install_repository_dependencies=True, - new_tool_panel_section_label='freebayes') + common.test_user_1_name, + category_name, + strings_displayed=strings_displayed, + install_tool_dependencies=False, + install_repository_dependencies=True, + new_tool_panel_section_label='freebayes') assert original_datatypes < self.get_datatypes_count(), 'Installing a repository that depends on emboss_datatypes did not add datatypes.' emboss_repository = self.test_db_util.get_installed_repository_by_name_owner(emboss_repository_name, common.test_user_1_name) datatypes_repository = self.test_db_util.get_installed_repository_by_name_owner(emboss_datatypes_repository_name, common.test_user_1_name) strings_displayed = ['emboss_0050', - 'emboss_datatypes_0050', - emboss_repository.installed_changeset_revision, - datatypes_repository.installed_changeset_revision] + 'emboss_datatypes_0050', + emboss_repository.installed_changeset_revision, + datatypes_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) # Installing freebayes should automatically reinstall emboss and reactivate emboss_datatypes. # Now column_maker, convert_chars, emboss, emboss_datatypes, freebayes, and bismark should be installed. installed_repositories = [(column_repository_name, common.test_user_1_name), - (emboss_datatypes_repository_name, common.test_user_1_name), - (emboss_repository_name, common.test_user_1_name), - (freebayes_repository_name, common.test_user_1_name), - (convert_repository_name, common.test_user_1_name), - (bismark_repository_name, common.test_user_1_name)] + (emboss_datatypes_repository_name, common.test_user_1_name), + (emboss_repository_name, common.test_user_1_name), + (freebayes_repository_name, common.test_user_1_name), + (convert_repository_name, common.test_user_1_name), + (bismark_repository_name, common.test_user_1_name)] strings_displayed = ['emboss_0050', 'emboss_datatypes_0050', 'column_maker_0050', 'convert_chars_0050', 'bismark_0050', 'freebayes_0050'] strings_not_displayed = ['filtering_0050'] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed) diff --git a/test/shed_functional/functional/test_1060_install_repository_with_workflow.py b/test/shed_functional/functional/test_1060_install_repository_with_workflow.py index 0835dd6d298..2ae72777491 100644 --- a/test/shed_functional/functional/test_1060_install_repository_with_workflow.py +++ b/test/shed_functional/functional/test_1060_install_repository_with_workflow.py @@ -40,11 +40,11 @@ class ToolWithRepositoryDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): workflow = open(self.get_filename('filtering_workflow/Workflow_for_0060_filter_workflow_repository.ga'), 'r').read() workflow = workflow.replace('__TEST_TOOL_SHED_URL__', self.url.replace('http://', '')) @@ -53,43 +53,43 @@ class ToolWithRepositoryDependencies(ShedTwillTestCase): os.makedirs(workflow_filepath) open(os.path.join(workflow_filepath, workflow_filename), 'w+').write(workflow) self.upload_file(repository, - filename=workflow_filename, - filepath=workflow_filepath, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering workflow.', - strings_displayed=[], - strings_not_displayed=[]) + filename=workflow_filename, + filepath=workflow_filepath, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering workflow.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 2.2.0.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 2.2.0.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_install_repository_with_workflow(self): """Browse the available tool sheds in this Galaxy instance and preview the filtering tool.""" self.preview_repository_in_tool_shed(repository_name, - common.test_user_1_name, - strings_displayed=[repository_name, 'Valid tools', 'Workflows']) + common.test_user_1_name, + strings_displayed=[repository_name, 'Valid tools', 'Workflows']) self.galaxy_login(email=common.admin_email, username=common.admin_username) self.install_repository(repository_name, - common.test_user_1_name, - 'Test 0060 Workflow Features', - install_tool_dependencies=False, - new_tool_panel_section_label='test_1060') + common.test_user_1_name, + 'Test 0060 Workflow Features', + install_tool_dependencies=False, + new_tool_panel_section_label='test_1060') def test_0015_import_workflow_from_installed_repository(self): '''Import the workflow from the installed repository and verify that it appears in the list of all workflows.''' installed_repository = self.test_db_util.get_installed_repository_by_name_owner(repository_name, common.test_user_1_name) self.display_installed_workflow_image(installed_repository, - workflow_name, - strings_displayed=['#EBD9B2'], - strings_not_displayed=['#EBBCB2']) + workflow_name, + strings_displayed=['#EBD9B2'], + strings_not_displayed=['#EBBCB2']) self.display_all_workflows(strings_not_displayed=['Workflow for 0060_filter_workflow_repository']) self.import_workflow(installed_repository, workflow_name) self.display_all_workflows(strings_displayed=['Workflow for 0060_filter_workflow_repository']) @@ -99,55 +99,55 @@ class ToolWithRepositoryDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=workflow_repository_name, - description=workflow_repository_description, - long_description=workflow_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=workflow_repository_description, + long_description=workflow_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): workflow = open(self.get_filename('filtering_workflow/Workflow_for_0060_filter_workflow_repository.ga'), 'r').read() workflow = workflow.replace('__TEST_TOOL_SHED_URL__', self.url.replace('http://', '')) workflow = workflow.replace('Workflow for 0060_filter_workflow_repository', - 'New workflow for 0060_filter_workflow_repository') + 'New workflow for 0060_filter_workflow_repository') workflow_filepath = self.generate_temp_path('test_0060', additional_paths=['filtering_workflow_2']) if not os.path.exists(workflow_filepath): os.makedirs(workflow_filepath) open(os.path.join(workflow_filepath, workflow_filename), 'w+').write(workflow) self.upload_file(repository, - filename=workflow_filename, - filepath=workflow_filepath, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering workflow.', - strings_displayed=[], - strings_not_displayed=[]) + filename=workflow_filename, + filepath=workflow_filepath, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering workflow.', + strings_displayed=[], + strings_not_displayed=[]) self.load_workflow_image_in_tool_shed(repository, - 'New workflow for 0060_filter_workflow_repository', - strings_displayed=['#EBBCB2']) + 'New workflow for 0060_filter_workflow_repository', + strings_displayed=['#EBBCB2']) def test_0025_install_repository_with_workflow(self): """Browse the available tool sheds in this Galaxy instance and preview the filtering workflow repository.""" self.preview_repository_in_tool_shed(workflow_repository_name, - common.test_user_1_name, - strings_displayed=['filtering_workflow_0060', 'Workflows'], - strings_not_displayed=['Valid tools', 'Invalid tools']) + common.test_user_1_name, + strings_displayed=['filtering_workflow_0060', 'Workflows'], + strings_not_displayed=['Valid tools', 'Invalid tools']) self.galaxy_login(email=common.admin_email, username=common.admin_username) self.install_repository(workflow_repository_name, - common.test_user_1_name, - 'Test 0060 Workflow Features', - install_tool_dependencies=False, - includes_tools_for_display_in_tool_panel=False) + common.test_user_1_name, + 'Test 0060 Workflow Features', + install_tool_dependencies=False, + includes_tools_for_display_in_tool_panel=False) def test_0030_import_workflow_from_installed_repository(self): '''Import the workflow from the installed repository and verify that it appears in the list of all workflows.''' installed_repository = self.test_db_util.get_installed_repository_by_name_owner(workflow_repository_name, common.test_user_1_name) self.display_installed_workflow_image(installed_repository, - 'New workflow for 0060_filter_workflow_repository', - strings_displayed=['#EBD9B2'], - strings_not_displayed=['#EBBCB2']) + 'New workflow for 0060_filter_workflow_repository', + strings_displayed=['#EBD9B2'], + strings_not_displayed=['#EBBCB2']) self.display_all_workflows(strings_not_displayed=['New workflow for 0060_filter_workflow_repository']) self.import_workflow(installed_repository, - 'New workflow for 0060_filter_workflow_repository', - strings_displayed=['New workflow for 0060_filter_workflow_repository']) + 'New workflow for 0060_filter_workflow_repository', + strings_displayed=['New workflow for 0060_filter_workflow_repository']) self.display_all_workflows(strings_displayed=['New workflow for 0060_filter_workflow_repository']) diff --git a/test/shed_functional/functional/test_1070_invalid_tool.py b/test/shed_functional/functional/test_1070_invalid_tool.py index 44f42f50cba..aa28c6fd20d 100644 --- a/test/shed_functional/functional/test_1070_invalid_tool.py +++ b/test/shed_functional/functional/test_1070_invalid_tool.py @@ -30,30 +30,30 @@ class TestFreebayesRepository(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='bismark/bismark.tar', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded bismark tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bismark/bismark.tar', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded bismark tarball.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='bismark/bismark_methylation_extractor.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded an updated tool xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bismark/bismark_methylation_extractor.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded an updated tool xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_browse_tool_shed(self): """Browse the available tool sheds in this Galaxy instance and preview the bismark repository.""" @@ -66,21 +66,21 @@ class TestFreebayesRepository(ShedTwillTestCase): def test_0015_install_freebayes_repository(self): '''Install the test repository without installing tool dependencies.''' self.install_repository(repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - new_tool_panel_section_label='test_1070') + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + new_tool_panel_section_label='test_1070') installed_repository = self.test_db_util.get_installed_repository_by_name_owner(repository_name, common.test_user_1_name) strings_displayed = ['bismark_0070', - "Galaxy's bismark wrapper", - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + "Galaxy's bismark wrapper", + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['methylation extractor', 'Invalid tools']) self.display_installed_repository_manage_page(installed_repository, - strings_displayed=strings_displayed, - strings_not_displayed=['bisulfite mapper']) + strings_displayed=strings_displayed, + strings_not_displayed=['bisulfite mapper']) self.verify_tool_metadata_for_installed_repository(installed_repository) self.update_installed_repository(installed_repository, strings_displayed=["there are no updates available"]) assert 'invalid_tools' in installed_repository.metadata, 'No invalid tools were defined in %s.' % \ diff --git a/test/shed_functional/functional/test_1080_advanced_circular_dependency_installation.py b/test/shed_functional/functional/test_1080_advanced_circular_dependency_installation.py index e202bd47305..90004bc0477 100644 --- a/test/shed_functional/functional/test_1080_advanced_circular_dependency_installation.py +++ b/test/shed_functional/functional/test_1080_advanced_circular_dependency_installation.py @@ -42,21 +42,21 @@ class TestRepositoryDependencies(ShedTwillTestCase): global running_standalone self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column_maker tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column_maker tarball.', + strings_displayed=[], + strings_not_displayed=[]) running_standalone = True def test_0010_create_and_populate_convert_repository(self): @@ -66,21 +66,21 @@ class TestRepositoryDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert_chars tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert_chars tarball.', + strings_displayed=[], + strings_not_displayed=[]) running_standalone = True def test_0015_upload_dependency_xml_if_needed(self): @@ -99,59 +99,59 @@ class TestRepositoryDependencies(ShedTwillTestCase): '''Install convert_chars without repository dependencies into convert_chars tool panel section.''' self.galaxy_login(email=common.admin_email, username=common.admin_username) self.install_repository(convert_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=False, - new_tool_panel_section_label='convert_chars') + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=False, + new_tool_panel_section_label='convert_chars') installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner(convert_repository_name, common.test_user_1_name) installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner(column_repository_name, common.test_user_1_name) browse_strings_displayed = ['convert_chars_0080', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision] strings_displayed = ['convert_chars_0080', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision, - 'column_maker_0080', - installed_column_repository.installed_changeset_revision, - 'Missing repository dependencies'] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision, + 'column_maker_0080', + installed_column_repository.installed_changeset_revision, + 'Missing repository dependencies'] self.display_galaxy_browse_repositories_page(strings_displayed=browse_strings_displayed) self.display_installed_repository_manage_page(installed_convert_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0025_install_column_repository(self): '''Install column maker with repository dependencies into column_maker tool panel section.''' self.install_repository(column_repository_name, - common.test_user_1_name, - category_name, - install_repository_dependencies=True, - new_tool_panel_section_label='column_maker', - strings_displayed=['install_repository_dependencies']) + common.test_user_1_name, + category_name, + install_repository_dependencies=True, + new_tool_panel_section_label='column_maker', + strings_displayed=['install_repository_dependencies']) installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner(convert_repository_name, common.test_user_1_name) installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner(column_repository_name, common.test_user_1_name) browse_strings_displayed = ['convert_chars_0080', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision, - 'column_maker_0080', - 'Add column', - installed_column_repository.installed_changeset_revision] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision, + 'column_maker_0080', + 'Add column', + installed_column_repository.installed_changeset_revision] strings_displayed = ['column_maker_0080', - 'Add column', - self.url.replace('http://', ''), - installed_column_repository.installed_changeset_revision, - 'convert_chars_0080', - installed_convert_repository.installed_changeset_revision, - 'Installed repository dependencies'] + 'Add column', + self.url.replace('http://', ''), + installed_column_repository.installed_changeset_revision, + 'convert_chars_0080', + installed_convert_repository.installed_changeset_revision, + 'Installed repository dependencies'] self.display_galaxy_browse_repositories_page(strings_displayed=browse_strings_displayed) self.display_installed_repository_manage_page(installed_column_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0030_deactivate_convert_repository(self): '''Deactivate convert_chars, verify that column_maker is installed and missing repository dependencies.''' @@ -161,15 +161,15 @@ class TestRepositoryDependencies(ShedTwillTestCase): common.test_user_1_name) self.deactivate_repository(installed_convert_repository) strings_displayed = ['column_maker_0080', - 'Add column', - self.url.replace('http://', ''), - installed_column_repository.installed_changeset_revision, - 'convert_chars_0080', - installed_convert_repository.installed_changeset_revision, - 'Missing repository dependencies', - 'Deactivated'] + 'Add column', + self.url.replace('http://', ''), + installed_column_repository.installed_changeset_revision, + 'convert_chars_0080', + installed_convert_repository.installed_changeset_revision, + 'Missing repository dependencies', + 'Deactivated'] self.display_installed_repository_manage_page(installed_column_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0035_reactivate_convert_repository(self): '''Reactivate convert_chars, both convert_chars and column_maker should now show as installed.''' @@ -179,16 +179,16 @@ class TestRepositoryDependencies(ShedTwillTestCase): common.test_user_1_name) self.reactivate_repository(installed_convert_repository) strings_displayed = ['convert_chars_0080', - 'Compute', - 'an expression on every row', - '1.1.0', - 'column_maker_0080', - 'Installed repository dependencies', - self.url.replace('http://', ''), - installed_column_repository.installed_changeset_revision, - installed_convert_repository.installed_changeset_revision] + 'Compute', + 'an expression on every row', + '1.1.0', + 'column_maker_0080', + 'Installed repository dependencies', + self.url.replace('http://', ''), + installed_column_repository.installed_changeset_revision, + installed_convert_repository.installed_changeset_revision] self.display_installed_repository_manage_page(installed_column_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0040_deactivate_column_repository(self): '''Deactivate column_maker, verify that convert_chars is installed and missing repository dependencies.''' @@ -198,15 +198,15 @@ class TestRepositoryDependencies(ShedTwillTestCase): common.test_user_1_name) self.deactivate_repository(installed_column_repository) strings_displayed = ['convert_chars_0080', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision, - 'column_maker_0080', - installed_column_repository.installed_changeset_revision, - 'Missing repository dependencies', - 'Deactivated'] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision, + 'column_maker_0080', + installed_column_repository.installed_changeset_revision, + 'Missing repository dependencies', + 'Deactivated'] self.display_installed_repository_manage_page(installed_convert_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0045_deactivate_convert_repository(self): '''Deactivate convert_chars, verify that both convert_chars and column_maker are deactivated.''' @@ -216,9 +216,9 @@ class TestRepositoryDependencies(ShedTwillTestCase): common.test_user_1_name) self.deactivate_repository(installed_convert_repository) strings_not_displayed = ['column_maker_0080', - installed_column_repository.installed_changeset_revision, - 'convert_chars_0080', - installed_convert_repository.installed_changeset_revision] + installed_column_repository.installed_changeset_revision, + 'convert_chars_0080', + installed_convert_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_not_displayed=strings_not_displayed) def test_0050_reactivate_column_repository(self): @@ -229,15 +229,15 @@ class TestRepositoryDependencies(ShedTwillTestCase): common.test_user_1_name) self.reactivate_repository(installed_column_repository) strings_displayed = ['column_maker_0080', - 'Add column', - self.url.replace('http://', ''), - installed_column_repository.installed_changeset_revision, - 'convert_chars_0080', - installed_convert_repository.installed_changeset_revision, - 'Missing repository dependencies', - 'Deactivated'] + 'Add column', + self.url.replace('http://', ''), + installed_column_repository.installed_changeset_revision, + 'convert_chars_0080', + installed_convert_repository.installed_changeset_revision, + 'Missing repository dependencies', + 'Deactivated'] self.display_installed_repository_manage_page(installed_column_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0055_reactivate_convert_repository(self): '''Activate convert_chars. Both convert_chars and column_maker should now show as installed.''' @@ -247,23 +247,23 @@ class TestRepositoryDependencies(ShedTwillTestCase): common.test_user_1_name) self.reactivate_repository(installed_convert_repository) strings_displayed = ['column_maker_0080', - 'Add column', - self.url.replace('http://', ''), - installed_column_repository.installed_changeset_revision, - 'convert_chars_0080', - installed_convert_repository.installed_changeset_revision, - 'Installed repository dependencies'] + 'Add column', + self.url.replace('http://', ''), + installed_column_repository.installed_changeset_revision, + 'convert_chars_0080', + installed_convert_repository.installed_changeset_revision, + 'Installed repository dependencies'] self.display_installed_repository_manage_page(installed_column_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) strings_displayed = ['convert_chars_0080', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision, - 'column_maker_0080', - installed_column_repository.installed_changeset_revision, - 'Installed repository dependencies'] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision, + 'column_maker_0080', + installed_column_repository.installed_changeset_revision, + 'Installed repository dependencies'] self.display_installed_repository_manage_page(installed_convert_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0060_uninstall_column_repository(self): '''Uninstall column_maker. Verify that convert_chars is installed and missing repository dependencies.''' @@ -273,15 +273,15 @@ class TestRepositoryDependencies(ShedTwillTestCase): common.test_user_1_name) self.uninstall_repository(installed_column_repository) strings_displayed = ['convert_chars_0080', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision, - 'column_maker_0080', - installed_column_repository.installed_changeset_revision, - 'Missing repository dependencies', - 'Uninstalled'] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision, + 'column_maker_0080', + installed_column_repository.installed_changeset_revision, + 'Missing repository dependencies', + 'Uninstalled'] self.display_installed_repository_manage_page(installed_convert_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) self.test_db_util.install_session.refresh(installed_column_repository) def test_0065_reinstall_column_repository(self): @@ -292,23 +292,23 @@ class TestRepositoryDependencies(ShedTwillTestCase): common.test_user_1_name) self.reinstall_repository(installed_column_repository, install_repository_dependencies=False) strings_displayed = ['column_maker_0080', - 'Add column', - self.url.replace('http://', ''), - installed_column_repository.installed_changeset_revision, - 'convert_chars_0080', - installed_convert_repository.installed_changeset_revision, - 'Installed repository dependencies'] + 'Add column', + self.url.replace('http://', ''), + installed_column_repository.installed_changeset_revision, + 'convert_chars_0080', + installed_convert_repository.installed_changeset_revision, + 'Installed repository dependencies'] self.display_installed_repository_manage_page(installed_column_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) strings_displayed = ['convert_chars_0080', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision, - 'column_maker_0080', - installed_column_repository.installed_changeset_revision, - 'Installed repository dependencies'] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision, + 'column_maker_0080', + installed_column_repository.installed_changeset_revision, + 'Installed repository dependencies'] self.display_installed_repository_manage_page(installed_convert_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0070_uninstall_convert_repository(self): '''Uninstall convert_chars, verify column_maker installed but missing repository dependencies.''' @@ -318,15 +318,15 @@ class TestRepositoryDependencies(ShedTwillTestCase): common.test_user_1_name) self.deactivate_repository(installed_convert_repository) strings_displayed = ['column_maker_0080', - 'Add column', - self.url.replace('http://', ''), - installed_column_repository.installed_changeset_revision, - 'convert_chars_0080', - installed_convert_repository.installed_changeset_revision, - 'Missing repository dependencies', - 'Deactivated'] + 'Add column', + self.url.replace('http://', ''), + installed_column_repository.installed_changeset_revision, + 'convert_chars_0080', + installed_convert_repository.installed_changeset_revision, + 'Missing repository dependencies', + 'Deactivated'] self.display_installed_repository_manage_page(installed_column_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) self.test_db_util.install_session.refresh(installed_convert_repository) def test_0075_uninstall_column_repository(self): @@ -337,16 +337,16 @@ class TestRepositoryDependencies(ShedTwillTestCase): common.test_user_1_name) self.deactivate_repository(installed_column_repository) strings_displayed = ['convert_chars_0080', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision, - 'column_maker_0080', - installed_column_repository.installed_changeset_revision, - 'Missing repository dependencies', - 'Activate or reinstall repository', - 'Deactivated'] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision, + 'column_maker_0080', + installed_column_repository.installed_changeset_revision, + 'Missing repository dependencies', + 'Activate or reinstall repository', + 'Deactivated'] self.display_installed_repository_manage_page(installed_convert_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0080_reinstall_convert_repository(self): '''Reinstall convert_chars with repository dependencies, verify that this installs both convert_chars and column_maker.''' @@ -355,23 +355,23 @@ class TestRepositoryDependencies(ShedTwillTestCase): installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner(column_repository_name, common.test_user_1_name) self.reinstall_repository(installed_convert_repository, - install_repository_dependencies=True, - no_changes=False) + install_repository_dependencies=True, + no_changes=False) strings_displayed = ['column_maker_0080', - 'Add column', - self.url.replace('http://', ''), - installed_column_repository.installed_changeset_revision, - 'convert_chars_0080', - installed_convert_repository.installed_changeset_revision, - 'Installed repository dependencies'] + 'Add column', + self.url.replace('http://', ''), + installed_column_repository.installed_changeset_revision, + 'convert_chars_0080', + installed_convert_repository.installed_changeset_revision, + 'Installed repository dependencies'] self.display_installed_repository_manage_page(installed_column_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) strings_displayed = ['convert_chars_0080', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision, - 'column_maker_0080', - installed_column_repository.installed_changeset_revision, - 'Installed repository dependencies'] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision, + 'column_maker_0080', + installed_column_repository.installed_changeset_revision, + 'Installed repository dependencies'] self.display_installed_repository_manage_page(installed_convert_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_1090_repository_dependency_handling.py b/test/shed_functional/functional/test_1090_repository_dependency_handling.py index 9c4212518b1..5f2b4fdeb32 100644 --- a/test/shed_functional/functional/test_1090_repository_dependency_handling.py +++ b/test/shed_functional/functional/test_1090_repository_dependency_handling.py @@ -39,42 +39,42 @@ class TestRepositoryDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column_maker tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column_maker tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_and_populate_convert_repository(self): self.login(email=common.admin_email, username=common.admin_username) category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert_chars tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert_chars tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_and_upload_dependency_files(self): convert_repository = self.test_db_util.get_repository_by_name_and_owner(convert_repository_name, common.test_user_1_name) @@ -89,33 +89,33 @@ class TestRepositoryDependencies(ShedTwillTestCase): '''Install column_maker into column_maker tool panel section and install repository dependencies.''' self.galaxy_login(email=common.admin_email, username=common.admin_username) self.install_repository(column_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=True, - new_tool_panel_section_label='column_maker', - strings_displayed=['install_repository_dependencies']) + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=True, + new_tool_panel_section_label='column_maker', + strings_displayed=['install_repository_dependencies']) installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner(convert_repository_name, common.test_user_1_name) installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner(column_repository_name, common.test_user_1_name) browse_strings_displayed = ['convert_chars_1085', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision, - 'column_maker_1085', - 'Add column', - installed_column_repository.installed_changeset_revision] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision, + 'column_maker_1085', + 'Add column', + installed_column_repository.installed_changeset_revision] strings_displayed = ['convert_chars_1085', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision, - 'column_maker_1085', - installed_column_repository.installed_changeset_revision, - 'Installed repository dependencies'] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision, + 'column_maker_1085', + installed_column_repository.installed_changeset_revision, + 'Installed repository dependencies'] self.display_galaxy_browse_repositories_page(strings_displayed=browse_strings_displayed) self.display_installed_repository_manage_page(installed_convert_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0025_uninstall_column_repository(self): '''uninstall column_maker, verify same section''' @@ -137,32 +137,32 @@ class TestRepositoryDependencies(ShedTwillTestCase): installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner(column_repository_name, common.test_user_1_name) self.reinstall_repository(installed_column_repository, - install_tool_dependencies=False, - install_repository_dependencies=False, - new_tool_panel_section_label='new_column_maker', - no_changes=False) + install_tool_dependencies=False, + install_repository_dependencies=False, + new_tool_panel_section_label='new_column_maker', + no_changes=False) strings_displayed = ['column_maker_1085', - 'Add column', - self.url.replace('http://', ''), - installed_column_repository.installed_changeset_revision] + 'Add column', + self.url.replace('http://', ''), + installed_column_repository.installed_changeset_revision] self.display_installed_repository_manage_page(installed_column_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0040_reinstall_convert_repository(self): '''reinstall convert_chars into new section 'new_convert_chars' (no_changes = false), no dependencies''' installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner(convert_repository_name, common.test_user_1_name) self.reinstall_repository(installed_convert_repository, - install_tool_dependencies=False, - install_repository_dependencies=False, - new_tool_panel_section_label='new_convert_chars', - no_changes=False) + install_tool_dependencies=False, + install_repository_dependencies=False, + new_tool_panel_section_label='new_convert_chars', + no_changes=False) strings_displayed = ['convert_chars_1085', - 'Convert delimiters', - self.url.replace('http://', ''), - installed_convert_repository.installed_changeset_revision] + 'Convert delimiters', + self.url.replace('http://', ''), + installed_convert_repository.installed_changeset_revision] self.display_installed_repository_manage_page(installed_convert_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) # The following check fails somewhere around 5% of the time maybe on Jenkins. # https://jenkins.galaxyproject.org/job/docker-toolshed/5578/ diff --git a/test/shed_functional/functional/test_1100_install_updated_repository_dependencies.py b/test/shed_functional/functional/test_1100_install_updated_repository_dependencies.py index cf91ee7526b..70debd4c467 100644 --- a/test/shed_functional/functional/test_1100_install_updated_repository_dependencies.py +++ b/test/shed_functional/functional/test_1100_install_updated_repository_dependencies.py @@ -35,21 +35,21 @@ class TestRepositoryDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column_maker tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column_maker tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_and_populate_convert_repository(self): '''Create and populate the convert_chars repository.''' @@ -57,32 +57,32 @@ class TestRepositoryDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert_chars tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert_chars tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_install_and_uninstall_column_repository(self): '''Install and uninstall the column_maker repository.''' self.galaxy_login(email=common.admin_email, username=common.admin_username) self.install_repository(column_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=True, - new_tool_panel_section_label='column_maker', - strings_not_displayed=['install_repository_dependencies']) + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=True, + new_tool_panel_section_label='column_maker', + strings_not_displayed=['install_repository_dependencies']) installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner(column_repository_name, common.test_user_1_name) self.uninstall_repository(installed_column_repository) diff --git a/test/shed_functional/functional/test_1110_install_tool_from_tool_search.py b/test/shed_functional/functional/test_1110_install_tool_from_tool_search.py index 57b1b183846..6bb1b341c01 100644 --- a/test/shed_functional/functional/test_1110_install_tool_from_tool_search.py +++ b/test/shed_functional/functional/test_1110_install_tool_from_tool_search.py @@ -50,132 +50,132 @@ class TestToolSearchAndInstall(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) global running_standalone repository = self.get_or_create_repository(name=bwa_base_repository_name, - description=bwa_base_repository_description, - long_description=bwa_base_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_base_repository_description, + long_description=bwa_base_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='bwa/bwa_base.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded BWA tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bwa/bwa_base.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded BWA tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_bwa_color_repository(self): '''Create and populate bwa_color_0090.''' category = self.create_category(name=category_name, description=category_description) global running_standalone repository = self.get_or_create_repository(name=bwa_color_repository_name, - description=bwa_color_repository_description, - long_description=bwa_color_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_color_repository_description, + long_description=bwa_color_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='bwa/bwa_color.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded BWA color tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bwa/bwa_color.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded BWA color tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_emboss_datatypes_repository(self): '''Create and populate emboss_datatypes_0090.''' category = self.create_category(name=category_name, description=category_description) global running_standalone repository = self.get_or_create_repository(name=emboss_datatypes_repository_name, - description=emboss_datatypes_repository_description, - long_description=emboss_datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_datatypes_repository_description, + long_description=emboss_datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_emboss_repository(self): '''Create and populate emboss_0090.''' category = self.create_category(name=category_name, description=category_description) global running_standalone repository = self.get_or_create_repository(name=emboss_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_create_filtering_repository(self): '''Create and populate filtering_0090.''' category = self.create_category(name=category_name, description=category_description) global running_standalone repository = self.get_or_create_repository(name=filtering_repository_name, - description=filtering_repository_description, - long_description=filtering_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=filtering_repository_description, + long_description=filtering_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0030_create_freebayes_repository(self): '''Create and populate freebayes_0090.''' category = self.create_category(name=category_name, description=category_description) global running_standalone repository = self.get_or_create_repository(name=freebayes_repository_name, - description=freebayes_repository_description, - long_description=freebayes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=freebayes_repository_description, + long_description=freebayes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='freebayes/freebayes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded freebayes tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded freebayes tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0035_create_and_upload_dependency_definitions(self): '''Create and upload repository dependency definitions.''' @@ -217,11 +217,11 @@ class TestToolSearchAndInstall(ShedTwillTestCase): # Installed: freebayes # Never installed: filtering, emboss, emboss_datatypes, bwa_color, bwa_base self.install_repository(freebayes_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=False, - new_tool_panel_section_label='freebayes_1090') + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=False, + new_tool_panel_section_label='freebayes_1090') installed_repositories = [(freebayes_repository_name, common.test_user_1_name)] strings_displayed = ['freebayes_0090'] strings_not_displayed = ['filtering_0090', 'emboss_0090', 'emboss_datatypes_0090', 'bwa_color_0090', 'bwa_base_0090'] @@ -236,13 +236,13 @@ class TestToolSearchAndInstall(ShedTwillTestCase): # Deactivated: filtering # Never installed: emboss, emboss_datatypes, bwa_color, bwa_base self.install_repository(filtering_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=False, - new_tool_panel_section_label='filtering_1090') + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=False, + new_tool_panel_section_label='filtering_1090') installed_repositories = [(filtering_repository_name, common.test_user_1_name), - (freebayes_repository_name, common.test_user_1_name)] + (freebayes_repository_name, common.test_user_1_name)] strings_displayed = ['filtering_0090', 'freebayes_0090'] strings_not_displayed = ['emboss_0090', 'emboss_datatypes_0090', 'bwa_color_0090', 'bwa_base_0090'] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed) @@ -261,11 +261,11 @@ class TestToolSearchAndInstall(ShedTwillTestCase): # Uninstalled: emboss_datatypes # Never installed: emboss, bwa_color, bwa_base self.install_repository(emboss_datatypes_repository_name, - common.test_user_1_name, - category_name, - includes_tools_for_display_in_tool_panel=False) + common.test_user_1_name, + category_name, + includes_tools_for_display_in_tool_panel=False) installed_repositories = [(emboss_datatypes_repository_name, common.test_user_1_name), - (freebayes_repository_name, common.test_user_1_name)] + (freebayes_repository_name, common.test_user_1_name)] strings_displayed = ['emboss_datatypes_0090', 'freebayes_0090'] strings_not_displayed = ['filtering_0090', 'emboss_0090', 'bwa_color_0090', 'bwa_base_0090'] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed, strings_not_displayed=strings_not_displayed) @@ -283,8 +283,8 @@ class TestToolSearchAndInstall(ShedTwillTestCase): bwa_base_revision = self.get_repository_tip(bwa_base_repository) bwa_color_revision = self.get_repository_tip(bwa_color_repository) self.search_for_valid_tools(search_fields={'tool_id': 'bwa'}, - exact_matches=False, from_galaxy=True, - strings_displayed=['bwa_color_0090', 'bwa_base_0090', bwa_base_revision, bwa_color_revision]) + exact_matches=False, from_galaxy=True, + strings_displayed=['bwa_color_0090', 'bwa_base_0090', bwa_base_revision, bwa_color_revision]) strings_displayed = ['freebayes_0090', 'emboss_0090', 'filtering_0090'] strings_displayed.extend(['bwa_color_0090', 'bwa_base_0090']) strings_displayed.extend(['bwa', 'Handle', 'tool dependencies']) @@ -295,17 +295,17 @@ class TestToolSearchAndInstall(ShedTwillTestCase): # After this test, the repositories should be in the following state: # Installed: bwa_color, bwa_base, emboss_datatypes, emboss, filtering, freebayes self.install_repositories_from_search_results(repositories_to_install, - install_repository_dependencies='True', - install_tool_dependencies=False, - new_tool_panel_section_label='bwa_1090', - strings_displayed=strings_displayed) + install_repository_dependencies='True', + install_tool_dependencies=False, + new_tool_panel_section_label='bwa_1090', + strings_displayed=strings_displayed) installed_repositories = [(emboss_repository_name, common.test_user_1_name), - (filtering_repository_name, common.test_user_1_name), - (bwa_color_repository_name, common.test_user_1_name), - (bwa_base_repository_name, common.test_user_1_name), - (emboss_datatypes_repository_name, common.test_user_1_name), - (freebayes_repository_name, common.test_user_1_name)] + (filtering_repository_name, common.test_user_1_name), + (bwa_color_repository_name, common.test_user_1_name), + (bwa_base_repository_name, common.test_user_1_name), + (emboss_datatypes_repository_name, common.test_user_1_name), + (freebayes_repository_name, common.test_user_1_name)] strings_displayed = ['emboss_datatypes_0090', 'filtering_0090', 'emboss_0090', 'bwa_color_0090', 'bwa_base_0090', 'freebayes_0090'] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) self.verify_installed_repositories(installed_repositories) diff --git a/test/shed_functional/functional/test_1120_install_repository_with_complex_dependencies.py b/test/shed_functional/functional/test_1120_install_repository_with_complex_dependencies.py index 49665681d5f..921056c4849 100644 --- a/test/shed_functional/functional/test_1120_install_repository_with_complex_dependencies.py +++ b/test/shed_functional/functional/test_1120_install_repository_with_complex_dependencies.py @@ -35,11 +35,11 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=bwa_package_repository_name, - description=bwa_package_repository_description, - long_description=bwa_package_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_package_repository_description, + long_description=bwa_package_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True old_tool_dependency = self.get_filename(os.path.join('bwa', 'complex', 'tool_dependencies.xml')) @@ -48,14 +48,14 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): open(xml_filename, 'w').write(open(old_tool_dependency, 'r') .read().replace('__PATH__', self.get_filename('bwa/complex'))) self.upload_file(repository, - filename=xml_filename, - filepath=new_tool_dependency_path, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool_dependencies.xml.', - strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], - strings_not_displayed=[]) + filename=xml_filename, + filepath=new_tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool_dependencies.xml.', + strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], + strings_not_displayed=[]) self.display_manage_repository_page(repository, strings_displayed=['Tool dependencies', 'consider setting its type']) def test_0010_create_bwa_base_repository(self): @@ -65,21 +65,21 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=bwa_base_repository_name, - description=bwa_base_repository_description, - long_description=bwa_base_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=bwa_base_repository_description, + long_description=bwa_base_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.test_db_util.get_repository_by_name_and_owner(bwa_package_repository_name, common.test_user_1_name) self.upload_file(repository, - filename='bwa/complex/bwa_base.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded bwa_base.tar with tool wrapper XML, but without tool dependency XML.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bwa/complex/bwa_base.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded bwa_base.tar with tool wrapper XML, but without tool dependency XML.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_generate_complex_repository_dependency_invalid_shed_url(self): '''Generate and upload a complex repository definition that specifies an invalid tool shed URL.''' @@ -95,12 +95,12 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['Repository dependencies are currently supported only within the same tool shed'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=base_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=True, - package='bwa', - version='0.5.9') + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=True, + package='bwa', + version='0.5.9') def test_0020_generate_complex_repository_dependency_invalid_repository_name(self): '''Generate and upload a complex repository definition that specifies an invalid repository name.''' @@ -116,12 +116,12 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['because the name is invalid.'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=base_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=True, - package='bwa', - version='0.5.9') + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=True, + package='bwa', + version='0.5.9') def test_0025_generate_complex_repository_dependency_invalid_owner_name(self): '''Generate and upload a complex repository definition that specifies an invalid owner.''' @@ -137,12 +137,12 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['because the owner is invalid.'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=base_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=True, - package='bwa', - version='0.5.9') + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=True, + package='bwa', + version='0.5.9') def test_0030_generate_complex_repository_dependency_invalid_changeset_revision(self): '''Generate and upload a complex repository definition that specifies an invalid changeset revision.''' @@ -158,12 +158,12 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['because the changeset revision is invalid.'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=base_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=True, - package='bwa', - version='0.5.9') + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=True, + package='bwa', + version='0.5.9') def test_0035_generate_valid_complex_repository_dependency(self): '''Generate and upload a valid tool_dependencies.xml file that specifies package_bwa_0_5_9_0100.''' @@ -178,11 +178,11 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): changeset_revision = self.get_repository_tip(tool_repository) repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=base_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - complex=True, - package='bwa', - version='0.5.9') + filepath=dependency_path, + repository_tuples=[repository_tuple], + complex=True, + package='bwa', + version='0.5.9') self.check_repository_dependency(base_repository, tool_repository) self.display_manage_repository_page(base_repository, strings_displayed=['bwa', '0.5.9', 'package']) @@ -199,18 +199,18 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): open(xml_filename, 'w').write(open(old_tool_dependency, 'r') .read().replace('__PATH__', self.get_filename('bwa/complex'))) self.upload_file(tool_repository, - filename=xml_filename, - filepath=new_tool_dependency_path, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded new tool_dependencies.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename=xml_filename, + filepath=new_tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded new tool_dependencies.xml.', + strings_displayed=[], + strings_not_displayed=[]) # Verify that the dependency display has been updated as a result of the new tool_dependencies.xml file. self.display_manage_repository_page(base_repository, - strings_displayed=[self.get_repository_tip(tool_repository), 'bwa', '0.5.9', 'package'], - strings_not_displayed=[previous_changeset]) + strings_displayed=[self.get_repository_tip(tool_repository), 'bwa', '0.5.9', 'package'], + strings_not_displayed=[previous_changeset]) def test_0045_install_base_repository(self): '''Verify installation of the repository with complex repository dependencies.''' @@ -219,12 +219,12 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): tool_repository = self.test_db_util.get_repository_by_name_and_owner(bwa_package_repository_name, common.test_user_1_name) preview_strings_displayed = [tool_repository.name, self.get_repository_tip(tool_repository)] self.install_repository(bwa_base_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=True, - preview_strings_displayed=preview_strings_displayed, - post_submit_strings_displayed=[base_repository.name, tool_repository.name, 'New'], - includes_tools_for_display_in_tool_panel=True) + common.test_user_1_name, + category_name, + install_tool_dependencies=True, + preview_strings_displayed=preview_strings_displayed, + post_submit_strings_displayed=[base_repository.name, tool_repository.name, 'New'], + includes_tools_for_display_in_tool_panel=True) def test_0050_verify_installed_repositories(self): '''Verify that the installed repositories are displayed properly.''' @@ -237,30 +237,30 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['package_bwa_0_5_9_0100', 'user1', tool_repository.installed_changeset_revision] strings_not_displayed = ['Missing tool dependencies'] self.display_installed_repository_manage_page(tool_repository, - strings_displayed=strings_displayed, - strings_not_displayed=strings_not_displayed) + strings_displayed=strings_displayed, + strings_not_displayed=strings_not_displayed) strings_displayed = ['bwa_base_repository_0100', - 'user1', - 'package_bwa_0_5_9_0100', - base_repository.installed_changeset_revision, - tool_repository.installed_changeset_revision] + 'user1', + 'package_bwa_0_5_9_0100', + base_repository.installed_changeset_revision, + tool_repository.installed_changeset_revision] strings_not_displayed = ['Missing tool dependencies'] self.display_installed_repository_manage_page(base_repository, - strings_displayed=strings_displayed, - strings_not_displayed=strings_not_displayed) + strings_displayed=strings_displayed, + strings_not_displayed=strings_not_displayed) def test_0055_verify_complex_tool_dependency(self): '''Verify that the generated env.sh contains the right data.''' base_repository = self.test_db_util.get_installed_repository_by_name_owner(bwa_base_repository_name, common.test_user_1_name) tool_repository = self.test_db_util.get_installed_repository_by_name_owner(bwa_package_repository_name, common.test_user_1_name) env_sh_path = self.get_env_sh_path(tool_dependency_name='bwa', - tool_dependency_version='0.5.9', - repository=base_repository) + tool_dependency_version='0.5.9', + repository=base_repository) assert os.path.exists(env_sh_path), 'env.sh was not generated in %s for this dependency.' % env_sh_path contents = open(env_sh_path, 'r').read() if tool_repository.installed_changeset_revision not in contents: raise AssertionError('Installed changeset revision %s not found in env.sh.\nContents of env.sh: %s' % - (tool_repository.installed_changeset_revision, contents)) + (tool_repository.installed_changeset_revision, contents)) if 'package_bwa_0_5_9_0100' not in contents: raise AssertionError('Repository name package_bwa_0_5_9_0100 not found in env.sh.\nContents of env.sh: %s' % contents) @@ -273,10 +273,10 @@ class TestInstallingComplexRepositoryDependencies(ShedTwillTestCase): tool_repository = self.test_db_util.get_installed_repository_by_name_owner(bwa_package_repository_name, common.test_user_1_name) self.deactivate_repository(tool_repository) env_sh_path = os.path.join(self.galaxy_tool_dependency_dir, - 'bwa', - '0.5.9', - tool_repository.owner, - tool_repository.name, - tool_repository.installed_changeset_revision, - 'env.sh') + 'bwa', + '0.5.9', + tool_repository.owner, + tool_repository.name, + tool_repository.installed_changeset_revision, + 'env.sh') assert os.path.exists(env_sh_path), 'Path %s does not exist after deactivating the repository that generated it.' % env_sh_path diff --git a/test/shed_functional/functional/test_1130_install_repository_with_invalid_repository_dependency.py b/test/shed_functional/functional/test_1130_install_repository_with_invalid_repository_dependency.py index c24492d7b35..edb32f07dbd 100644 --- a/test/shed_functional/functional/test_1130_install_repository_with_invalid_repository_dependency.py +++ b/test/shed_functional/functional/test_1130_install_repository_with_invalid_repository_dependency.py @@ -45,14 +45,14 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_verify_datatypes_in_datatypes_repository(self): '''Verify that the emboss_datatypes repository contains datatype entries.''' @@ -71,14 +71,14 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): category_id=self.security.encode_id(category.id), strings_displayed=[]) self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_generate_repository_dependency_with_invalid_url(self): '''Generate a repository dependency for emboss 5 with an invalid URL.''' @@ -94,10 +94,10 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['Repository dependencies are currently supported only within the same tool shed'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=emboss_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=False) + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=False) def test_0030_generate_repository_dependency_with_invalid_name(self): '''Generate a repository dependency for emboss 5 with an invalid name.''' @@ -113,10 +113,10 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['because the name is invalid.'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=emboss_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=False) + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=False) def test_0035_generate_repository_dependency_with_invalid_owner(self): '''Generate a repository dependency for emboss 5 with an invalid owner.''' @@ -132,10 +132,10 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['because the owner is invalid.'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=emboss_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=False) + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=False) def test_0040_generate_repository_dependency_with_invalid_changeset_revision(self): '''Generate a repository dependency for emboss 5 with an invalid changeset revision.''' @@ -151,10 +151,10 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): strings_displayed = ['because the changeset revision is invalid.'] repository_tuple = (url, name, owner, changeset_revision) self.create_repository_dependency(repository=emboss_repository, - filepath=dependency_path, - repository_tuples=[repository_tuple], - strings_displayed=strings_displayed, - complex=False) + filepath=dependency_path, + repository_tuples=[repository_tuple], + strings_displayed=strings_displayed, + complex=False) def test_0045_install_repository_with_invalid_repository_dependency(self): '''Install the repository and verify that galaxy detects invalid repository dependencies.''' @@ -162,14 +162,14 @@ class TestBasicRepositoryDependencies(ShedTwillTestCase): repository = self.test_db_util.get_repository_by_name_and_owner(emboss_repository_name, common.test_user_1_name) preview_strings_displayed = ['emboss_0110', self.get_repository_tip(repository), 'Ignoring repository dependency definition'] self.install_repository(emboss_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=True, - preview_strings_displayed=preview_strings_displayed, - post_submit_strings_displayed=[repository.name, repository.name, 'New'], - includes_tools_for_display_in_tool_panel=True) + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=True, + preview_strings_displayed=preview_strings_displayed, + post_submit_strings_displayed=[repository.name, repository.name, 'New'], + includes_tools_for_display_in_tool_panel=True) installed_repository = self.test_db_util.get_installed_repository_by_name_owner(emboss_repository_name, common.test_user_1_name) self.display_installed_repository_manage_page(installed_repository=installed_repository, - strings_displayed=[], - strings_not_displayed=['Repository dependencies']) + strings_displayed=[], + strings_not_displayed=['Repository dependencies']) diff --git a/test/shed_functional/functional/test_1140_simple_repository_dependency_multiple_owners.py b/test/shed_functional/functional/test_1140_simple_repository_dependency_multiple_owners.py index b3141329136..eb0c7e0ace1 100644 --- a/test/shed_functional/functional/test_1140_simple_repository_dependency_multiple_owners.py +++ b/test/shed_functional/functional/test_1140_simple_repository_dependency_multiple_owners.py @@ -59,21 +59,21 @@ class TestInstallRepositoryMultipleOwners(ShedTwillTestCase): self.login(email=common.test_user_2_email, username=common.test_user_2_name) strings_displayed = self.expect_repo_created_strings(datatypes_repository_name) repository = self.get_or_create_repository(name=datatypes_repository_name, - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, - owner=common.test_user_2_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_2_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) if self.repository_is_new(repository): self.upload_file(repository, - filename='blast/blast_datatypes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded blast_datatypes tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='blast/blast_datatypes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded blast_datatypes tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_verify_datatypes_repository(self): '''Verify the blast_datatypes_0120 repository.''' @@ -99,22 +99,22 @@ class TestInstallRepositoryMultipleOwners(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) strings_displayed = self.expect_repo_created_strings(tool_repository_name) repository = self.get_or_create_repository(name=tool_repository_name, - description=tool_repository_description, - long_description=tool_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=strings_displayed) + description=tool_repository_description, + long_description=tool_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=strings_displayed) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='blast/blastxml_to_top_descr.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded blastxml_to_top_descr tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='blast/blastxml_to_top_descr.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded blastxml_to_top_descr tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_verify_tool_repository(self): '''Verify the blastxml_to_top_descr_0120 repository.''' @@ -162,11 +162,11 @@ class TestInstallRepositoryMultipleOwners(ShedTwillTestCase): base_datatypes_count = int(self.get_datatypes_count()) post_submit_strings_displayed = ['blastxml_to_top_descr_0120', 'blast_datatypes_0120', 'New'] self.install_repository(name='blastxml_to_top_descr_0120', - owner=common.test_user_1_name, - category_name='Test 0120', - install_repository_dependencies=True, - post_submit_strings_displayed=post_submit_strings_displayed, - new_tool_panel_section_label='Test 0120') + owner=common.test_user_1_name, + category_name='Test 0120', + install_repository_dependencies=True, + post_submit_strings_displayed=post_submit_strings_displayed, + new_tool_panel_section_label='Test 0120') def test_0050_verify_repository_installation(self): '''Verify installation of blastxml_to_top_descr_0120 and blast_datatypes_0120.''' diff --git a/test/shed_functional/functional/test_1150_datatype_converters.py b/test/shed_functional/functional/test_1150_datatype_converters.py index 31852a2ef4b..59f6a629d69 100644 --- a/test/shed_functional/functional/test_1150_datatype_converters.py +++ b/test/shed_functional/functional/test_1150_datatype_converters.py @@ -38,22 +38,22 @@ class TestDatatypeConverters(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) # Create a repository named bed_to_gff_0130 owned by user1. repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): # Upload bed_to_gff_converter.tar to the repository, if the repository is new. self.upload_file(repository, - filename='bed_to_gff_converter/bed_to_gff_converter.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded bed_to_gff_converter.tar.', - strings_displayed=[], - strings_not_displayed=[]) + filename='bed_to_gff_converter/bed_to_gff_converter.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded bed_to_gff_converter.tar.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_install_datatype_converter_to_galaxy(self): '''Install bed_to_gff_converter_0130 into the running Galaxy instance.''' @@ -67,14 +67,14 @@ class TestDatatypeConverters(ShedTwillTestCase): strings_displayed = ['Your Galaxy instance is configured with', 'shed-related tool configuration file'] strings_not_displayed = ['tool panel section'] self.install_repository(repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - preview_strings_displayed=preview_strings_displayed, - strings_displayed=strings_displayed, - strings_not_displayed=strings_not_displayed, - post_submit_strings_displayed=[repository.name, 'New'], - includes_tools_for_display_in_tool_panel=False) + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + preview_strings_displayed=preview_strings_displayed, + strings_displayed=strings_displayed, + strings_not_displayed=strings_not_displayed, + post_submit_strings_displayed=[repository.name, 'New'], + includes_tools_for_display_in_tool_panel=False) def test_0015_uninstall_and_verify_tool_panel_section(self): '''Uninstall bed_to_gff_converter_0130 and verify that the saved tool_panel_section is None.''' diff --git a/test/shed_functional/functional/test_1160_tool_help_images.py b/test/shed_functional/functional/test_1160_tool_help_images.py index c6dc550f824..57ecda213da 100644 --- a/test/shed_functional/functional/test_1160_tool_help_images.py +++ b/test/shed_functional/functional/test_1160_tool_help_images.py @@ -44,22 +44,22 @@ class TestToolHelpImages(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) # Create a repository named htseq_count_0140 owned by user1. repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): # Upload htseq_count.tar to the repository if it hasn't already been populated. self.upload_file(repository, - filename='htseq_count/htseq_count.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded htseq_count.tar.', - strings_displayed=[], - strings_not_displayed=[]) + filename='htseq_count/htseq_count.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded htseq_count.tar.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_load_tool_page(self): '''Load the tool page and check for the image URL.''' diff --git a/test/shed_functional/functional/test_1170_prior_installation_required.py b/test/shed_functional/functional/test_1170_prior_installation_required.py index 08296feacb8..af1b2a2d0f2 100644 --- a/test/shed_functional/functional/test_1170_prior_installation_required.py +++ b/test/shed_functional/functional/test_1170_prior_installation_required.py @@ -56,43 +56,43 @@ class TestSimplePriorInstallation(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert_chars tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert_chars tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_column_repository(self): '''Create and populate convert_chars_0150.''' global running_standalone category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if running_standalone: self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column_maker tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column_maker tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_repository_dependency(self): '''Create a repository dependency specifying convert_chars.''' @@ -107,18 +107,18 @@ class TestSimplePriorInstallation(ShedTwillTestCase): dependency_xml_path = self.generate_temp_path('test_1150', additional_paths=['column']) convert_tuple = (self.url, convert_repository.name, convert_repository.user.username, self.get_repository_tip(convert_repository)) self.create_repository_dependency(repository=column_repository, - repository_tuples=[convert_tuple], - filepath=dependency_xml_path, - prior_installation_required=True) + repository_tuples=[convert_tuple], + filepath=dependency_xml_path, + prior_installation_required=True) def test_0020_verify_repository_dependency(self): '''Verify that the previously generated repositiory dependency displays correctly.''' column_repository = self.test_db_util.get_repository_by_name_and_owner(column_repository_name, common.test_user_1_name) convert_repository = self.test_db_util.get_repository_by_name_and_owner(convert_repository_name, common.test_user_1_name) self.check_repository_dependency(repository=column_repository, - depends_on_repository=convert_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=convert_repository, + depends_on_changeset_revision=None, + changeset_revision=None) def test_0025_install_column_repository(self): '''Install column_maker_0150.''' @@ -127,15 +127,15 @@ class TestSimplePriorInstallation(ShedTwillTestCase): preview_strings_displayed = ['column_maker_0150', self.get_repository_tip(column_repository)] strings_displayed = ['Choose the tool panel section'] self.install_repository(column_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=True, - preview_strings_displayed=preview_strings_displayed, - strings_displayed=strings_displayed, - strings_not_displayed=[], - post_submit_strings_displayed=['column_maker_0150', 'New'], - includes_tools_for_display_in_tool_panel=True) + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=True, + preview_strings_displayed=preview_strings_displayed, + strings_displayed=strings_displayed, + strings_not_displayed=[], + post_submit_strings_displayed=['column_maker_0150', 'New'], + includes_tools_for_display_in_tool_panel=True) def test_0030_verify_installation_order(self): '''Verify that convert_chars_0150 was installed before column_maker_0150.''' diff --git a/test/shed_functional/functional/test_1180_circular_prior_installation_required.py b/test/shed_functional/functional/test_1180_circular_prior_installation_required.py index fe668456307..0d1dd5ad159 100644 --- a/test/shed_functional/functional/test_1180_circular_prior_installation_required.py +++ b/test/shed_functional/functional/test_1180_circular_prior_installation_required.py @@ -69,64 +69,64 @@ class TestSimplePriorInstallation(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=convert_repository_name, - description=convert_repository_description, - long_description=convert_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=convert_repository_description, + long_description=convert_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='convert_chars/convert_chars.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded convert_chars tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='convert_chars/convert_chars.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded convert_chars tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_column_repository(self): '''Create and populate convert_chars_0160.''' global running_standalone category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if running_standalone: self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded column_maker tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded column_maker tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_filtering_repository(self): '''Create and populate filtering_0160.''' global running_standalone category = self.create_category(name=category_name, description=category_description) repository = self.get_or_create_repository(name=filter_repository_name, - description=filter_repository_description, - long_description=filter_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=filter_repository_description, + long_description=filter_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if running_standalone: self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_repository_dependency(self): '''Create a repository dependency specifying convert_chars.''' @@ -146,17 +146,17 @@ class TestSimplePriorInstallation(ShedTwillTestCase): convert_tuple = (self.url, convert_repository.name, convert_repository.user.username, convert_revision) filter_tuple = (self.url, filter_repository.name, filter_repository.user.username, filter_revision) self.create_repository_dependency(repository=column_repository, - repository_tuples=[convert_tuple, filter_tuple], - filepath=dependency_xml_path, - prior_installation_required=False) + repository_tuples=[convert_tuple, filter_tuple], + filepath=dependency_xml_path, + prior_installation_required=False) self.create_repository_dependency(repository=convert_repository, - repository_tuples=[column_tuple, filter_tuple], - filepath=dependency_xml_path, - prior_installation_required=False) + repository_tuples=[column_tuple, filter_tuple], + filepath=dependency_xml_path, + prior_installation_required=False) self.create_repository_dependency(repository=filter_repository, - repository_tuples=[convert_tuple, column_tuple], - filepath=dependency_xml_path, - prior_installation_required=True) + repository_tuples=[convert_tuple, column_tuple], + filepath=dependency_xml_path, + prior_installation_required=True) def test_0025_verify_repository_dependency(self): '''Verify that the previously generated repositiory dependency displays correctly.''' @@ -164,29 +164,29 @@ class TestSimplePriorInstallation(ShedTwillTestCase): column_repository = self.test_db_util.get_repository_by_name_and_owner(column_repository_name, common.test_user_1_name) convert_repository = self.test_db_util.get_repository_by_name_and_owner(convert_repository_name, common.test_user_1_name) self.check_repository_dependency(repository=column_repository, - depends_on_repository=convert_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=convert_repository, + depends_on_changeset_revision=None, + changeset_revision=None) self.check_repository_dependency(repository=column_repository, - depends_on_repository=filter_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=filter_repository, + depends_on_changeset_revision=None, + changeset_revision=None) self.check_repository_dependency(repository=convert_repository, - depends_on_repository=column_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=column_repository, + depends_on_changeset_revision=None, + changeset_revision=None) self.check_repository_dependency(repository=convert_repository, - depends_on_repository=filter_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=filter_repository, + depends_on_changeset_revision=None, + changeset_revision=None) self.check_repository_dependency(repository=filter_repository, - depends_on_repository=column_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=column_repository, + depends_on_changeset_revision=None, + changeset_revision=None) self.check_repository_dependency(repository=filter_repository, - depends_on_repository=convert_repository, - depends_on_changeset_revision=None, - changeset_revision=None) + depends_on_repository=convert_repository, + depends_on_changeset_revision=None, + changeset_revision=None) def test_0030_install_filtering_repository(self): '''Install the filtering_0160 repository.''' @@ -195,15 +195,15 @@ class TestSimplePriorInstallation(ShedTwillTestCase): preview_strings_displayed = ['filtering_0160', self.get_repository_tip(filter_repository)] strings_displayed = ['Choose the tool panel section'] self.install_repository(filter_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=True, - preview_strings_displayed=preview_strings_displayed, - strings_displayed=strings_displayed, - strings_not_displayed=[], - post_submit_strings_displayed=['filtering_0160', 'New'], - includes_tools_for_display_in_tool_panel=True) + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=True, + preview_strings_displayed=preview_strings_displayed, + strings_displayed=strings_displayed, + strings_not_displayed=[], + post_submit_strings_displayed=['filtering_0160', 'New'], + includes_tools_for_display_in_tool_panel=True) def test_0035_verify_installation_order(self): '''Verify that convert_chars_0160 and column_maker_0160 were installed before filtering_0160.''' @@ -228,10 +228,10 @@ class TestSimplePriorInstallation(ShedTwillTestCase): filter_repository = self.test_db_util.get_installed_repository_by_name_owner(filter_repository_name, common.test_user_1_name) self.reactivate_repository(filter_repository) strings_displayed = ['filtering_0160', - "Galaxy's filtering tool for test 0160", - 'user1', - self.url.replace('http://', ''), - filter_repository.installed_changeset_revision] + "Galaxy's filtering tool for test 0160", + 'user1', + self.url.replace('http://', ''), + filter_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'Filter1']) self.display_installed_repository_manage_page(filter_repository, strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_1190_complex_prior_installation_required.py b/test/shed_functional/functional/test_1190_complex_prior_installation_required.py index d2f261e23f9..043ccef4565 100644 --- a/test/shed_functional/functional/test_1190_complex_prior_installation_required.py +++ b/test/shed_functional/functional/test_1190_complex_prior_installation_required.py @@ -47,22 +47,22 @@ class TestComplexPriorInstallation(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=matplotlib_repository_name, - description=matplotlib_repository_description, - long_description=matplotlib_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=matplotlib_repository_description, + long_description=matplotlib_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='package_matplotlib/package_matplotlib_1_2.tar', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded matplotlib tool dependency tarball.', - strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], - strings_not_displayed=[]) + filename='package_matplotlib/package_matplotlib_1_2.tar', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded matplotlib tool dependency tarball.', + strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], + strings_not_displayed=[]) def test_0010_create_numpy_repository(self): '''Create and populate the package_numpy_1_7_0170 repository.''' @@ -74,20 +74,20 @@ class TestComplexPriorInstallation(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) if running_standalone: repository = self.get_or_create_repository(name=numpy_repository_name, - description=numpy_repository_description, - long_description=numpy_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=numpy_repository_description, + long_description=numpy_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='package_numpy/package_numpy_1_7.tar', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded numpy tool dependency tarball.', - strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], - strings_not_displayed=[]) + filename='package_numpy/package_numpy_1_7.tar', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded numpy tool dependency tarball.', + strings_displayed=['This repository currently contains a single file named tool_dependencies.xml'], + strings_not_displayed=[]) def test_0015_create_complex_repository_dependency(self): '''Create a dependency on package_numpy_1_7_0170.''' @@ -119,14 +119,14 @@ class TestComplexPriorInstallation(ShedTwillTestCase): open(new_xml_file, 'w').write(original_xml.replace('', processed_xml)) # Upload the generated complex repository dependency XML to the matplotlib repository. self.upload_file(matplotlib_repository, - filename='tool_dependencies.xml', - filepath=dependency_xml_path, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded complex repository dependency on numpy 1.7.', - strings_displayed=[], - strings_not_displayed=[]) + filename='tool_dependencies.xml', + filepath=dependency_xml_path, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded complex repository dependency on numpy 1.7.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_verify_generated_dependency(self): '''Verify that matplotlib now has a package tool dependency and a complex repository dependency.''' @@ -152,15 +152,15 @@ class TestComplexPriorInstallation(ShedTwillTestCase): preview_strings_displayed = ['package_matplotlib_1_2_0170', self.get_repository_tip(matplotlib_repository)] strings_displayed = ['Handle repository dependencies', numpy_repository_name, 'Never installed'] self.install_repository(matplotlib_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=True, - preview_strings_displayed=preview_strings_displayed, - strings_displayed=strings_displayed, - strings_not_displayed=[], - post_submit_strings_displayed=['package_matplotlib_1_2_0170', 'New'], - includes_tools_for_display_in_tool_panel=False) + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=True, + preview_strings_displayed=preview_strings_displayed, + strings_displayed=strings_displayed, + strings_not_displayed=[], + post_submit_strings_displayed=['package_matplotlib_1_2_0170', 'New'], + includes_tools_for_display_in_tool_panel=False) def test_0030_verify_installation_order(self): '''Verify that the numpy repository was installed before the matplotlib repository.''' diff --git a/test/shed_functional/functional/test_1200_uninstall_and_reinstall_basic_repository.py b/test/shed_functional/functional/test_1200_uninstall_and_reinstall_basic_repository.py index 6d6e9a7575b..56ecdca98d7 100644 --- a/test/shed_functional/functional/test_1200_uninstall_and_reinstall_basic_repository.py +++ b/test/shed_functional/functional/test_1200_uninstall_and_reinstall_basic_repository.py @@ -25,61 +25,61 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): self.create_category(name='Test 0000 Basic Repository Features 2', description='Test 0000 Basic Repository Features 2') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name='filtering_0000', - description="Galaxy's filtering tool for test 0000", - long_description="Long description of Galaxy's filtering tool for test 0000", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id)) + description="Galaxy's filtering tool for test 0000", + long_description="Long description of Galaxy's filtering tool for test 0000", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id)) if self.repository_is_new(repository): self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_0000.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded readme for 1.1.0', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_0000.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded readme for 1.1.0', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 2.2.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 2.2.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='readme.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded readme for 2.2.0', - strings_displayed=[], - strings_not_displayed=[]) + filename='readme.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded readme for 2.2.0', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_install_filtering_repository(self): '''Install the filtering repository into the Galaxy instance.''' self.galaxy_login(email=common.admin_email, username=common.admin_username) self.install_repository('filtering_0000', - common.test_user_1_name, - 'Test 0000 Basic Repository Features 1', - new_tool_panel_section_label='test_1000') + common.test_user_1_name, + 'Test 0000 Basic Repository Features 1', + new_tool_panel_section_label='test_1000') installed_repository = self.test_db_util.get_installed_repository_by_name_owner('filtering_0000', common.test_user_1_name) strings_displayed = ['filtering_0000', - "Galaxy's filtering tool for test 0000", - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + "Galaxy's filtering tool for test 0000", + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) def test_0015_uninstall_filtering_repository(self): @@ -87,8 +87,8 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): installed_repository = self.test_db_util.get_installed_repository_by_name_owner('filtering_0000', common.test_user_1_name) self.uninstall_repository(installed_repository) strings_not_displayed = ['filtering_0000', - "Galaxy's filtering tool for test 0000", - installed_repository.installed_changeset_revision] + "Galaxy's filtering tool for test 0000", + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_not_displayed=strings_not_displayed) def test_0020_reinstall_filtering_repository(self): @@ -96,10 +96,10 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): installed_repository = self.test_db_util.get_installed_repository_by_name_owner('filtering_0000', common.test_user_1_name) self.reinstall_repository(installed_repository) strings_displayed = ['filtering_0000', - "Galaxy's filtering tool for test 0000", - 'user1', - self.url.replace('http://', ''), - str(installed_repository.installed_changeset_revision)] + "Galaxy's filtering tool for test 0000", + 'user1', + self.url.replace('http://', ''), + str(installed_repository.installed_changeset_revision)] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'Filter1']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) @@ -110,8 +110,8 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): installed_repository = self.test_db_util.get_installed_repository_by_name_owner('filtering_0000', common.test_user_1_name) self.deactivate_repository(installed_repository) strings_not_displayed = ['filtering_0000', - "Galaxy's filtering tool for test 0000", - installed_repository.installed_changeset_revision] + "Galaxy's filtering tool for test 0000", + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_not_displayed=strings_not_displayed) def test_0030_reactivate_filtering_repository(self): @@ -119,10 +119,10 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): installed_repository = self.test_db_util.get_installed_repository_by_name_owner('filtering_0000', common.test_user_1_name) self.reactivate_repository(installed_repository) strings_displayed = ['filtering_0000', - "Galaxy's filtering tool for test 0000", - 'user1', - self.url.replace('http://', ''), - str(installed_repository.installed_changeset_revision)] + "Galaxy's filtering tool for test 0000", + 'user1', + self.url.replace('http://', ''), + str(installed_repository.installed_changeset_revision)] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'Filter1']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_1210_uninstall_reinstall_repository_with_tool_dependencies.py b/test/shed_functional/functional/test_1210_uninstall_reinstall_repository_with_tool_dependencies.py index 4dbdc3d8341..9ddca3a1c42 100644 --- a/test/shed_functional/functional/test_1210_uninstall_reinstall_repository_with_tool_dependencies.py +++ b/test/shed_functional/functional/test_1210_uninstall_reinstall_repository_with_tool_dependencies.py @@ -26,81 +26,81 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): category = self.create_category(name='Test 0010 Repository With Tool Dependencies', description='Tests for a repository with tool dependencies.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name='freebayes_0010', - description="Galaxy's freebayes tool", - long_description="Long description of Galaxy's freebayes tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id)) + description="Galaxy's freebayes tool", + long_description="Long description of Galaxy's freebayes tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id)) if self.repository_is_new(repository): self.upload_file(repository, - filename='freebayes/freebayes.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool xml.', - strings_displayed=['Metadata may have been defined', 'This file requires an entry', 'tool_data_table_conf'], - strings_not_displayed=[]) + filename='freebayes/freebayes.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool xml.', + strings_displayed=['Metadata may have been defined', 'This file requires an entry', 'tool_data_table_conf'], + strings_not_displayed=[]) self.upload_file(repository, - filename='freebayes/tool_data_table_conf.xml.sample', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool data table sample file.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/tool_data_table_conf.xml.sample', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool data table sample file.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='freebayes/sam_fa_indices.loc.sample', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool data table .loc file.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/sam_fa_indices.loc.sample', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool data table .loc file.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename=os.path.join('freebayes', 'malformed_tool_dependencies', 'tool_dependencies.xml'), - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded malformed tool dependency XML.', - strings_displayed=['Exception attempting to parse', 'not well-formed'], - strings_not_displayed=[]) + filename=os.path.join('freebayes', 'malformed_tool_dependencies', 'tool_dependencies.xml'), + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded malformed tool dependency XML.', + strings_displayed=['Exception attempting to parse', 'not well-formed'], + strings_not_displayed=[]) self.upload_file(repository, - filename=os.path.join('freebayes', 'invalid_tool_dependencies', 'tool_dependencies.xml'), - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded invalid tool dependency XML.', - strings_displayed=['The settings for name, version and type from a contained tool configuration'], - strings_not_displayed=[]) + filename=os.path.join('freebayes', 'invalid_tool_dependencies', 'tool_dependencies.xml'), + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded invalid tool dependency XML.', + strings_displayed=['The settings for name, version and type from a contained tool configuration'], + strings_not_displayed=[]) self.upload_file(repository, - filename=os.path.join('freebayes', 'tool_dependencies.xml'), - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded valid tool dependency XML.', - strings_displayed=[], - strings_not_displayed=[]) + filename=os.path.join('freebayes', 'tool_dependencies.xml'), + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded valid tool dependency XML.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_install_freebayes_repository(self): '''Install the freebayes repository into the Galaxy instance.''' self.galaxy_login(email=common.admin_email, username=common.admin_username) strings_displayed = ['install Tool Shed managed', 'tool dependencies', 'freebayes', '0.9.4_9696d0ce8a9', 'samtools', '0.1.18'] self.install_repository('freebayes_0010', - common.test_user_1_name, - 'Test 0010 Repository With Tool Dependencies', - strings_displayed=strings_displayed, - new_tool_panel_section_label='test_1210') + common.test_user_1_name, + 'Test 0010 Repository With Tool Dependencies', + strings_displayed=strings_displayed, + new_tool_panel_section_label='test_1210') installed_repository = self.test_db_util.get_installed_repository_by_name_owner('freebayes_0010', common.test_user_1_name) strings_displayed = ['freebayes_0010', - "Galaxy's freebayes tool", - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + "Galaxy's freebayes tool", + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) def test_0015_uninstall_freebayes_repository(self): @@ -115,10 +115,10 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): installed_repository = self.test_db_util.get_installed_repository_by_name_owner('freebayes_0010', common.test_user_1_name) self.reinstall_repository(installed_repository) strings_displayed = ['freebayes_0010', - "Galaxy's freebayes tool", - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + "Galaxy's freebayes tool", + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'FreeBayes']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) @@ -136,10 +136,10 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): installed_repository = self.test_db_util.get_installed_repository_by_name_owner('freebayes_0010', common.test_user_1_name) self.reactivate_repository(installed_repository) strings_displayed = ['freebayes_0010', - "Galaxy's freebayes tool", - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + "Galaxy's freebayes tool", + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'FreeBayes']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_1220_uninstall_reinstall_repository_with_repository_dependencies.py b/test/shed_functional/functional/test_1220_uninstall_reinstall_repository_with_repository_dependencies.py index aaae39de025..01ff942f7ca 100644 --- a/test/shed_functional/functional/test_1220_uninstall_reinstall_repository_with_repository_dependencies.py +++ b/test/shed_functional/functional/test_1220_uninstall_reinstall_repository_with_repository_dependencies.py @@ -38,37 +38,37 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): category = self.create_category(name='Test 0020 Basic Repository Dependencies', description='Tests for a repository with tool dependencies.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) datatypes_repository = self.get_or_create_repository(name=datatypes_repository_name, - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(datatypes_repository): running_standalone = True self.upload_file(datatypes_repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) emboss_repository = self.get_or_create_repository(name=emboss_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(emboss_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_1020', additional_paths=['emboss', '5']) repository_tuple = (self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip(datatypes_repository)) self.create_repository_dependency(repository=emboss_repository, repository_tuples=[repository_tuple], filepath=repository_dependencies_path) @@ -82,16 +82,16 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): base_datatypes_count = int(self.get_datatypes_count()) strings_displayed = ['Handle', 'Never installed', 'tool dependencies', 'emboss', '5.0.0', 'package'] self.install_repository(emboss_repository_name, - common.test_user_1_name, - 'Test 0020 Basic Repository Dependencies', - strings_displayed=strings_displayed, - new_tool_panel_section_label='test_1210') + common.test_user_1_name, + 'Test 0020 Basic Repository Dependencies', + strings_displayed=strings_displayed, + new_tool_panel_section_label='test_1210') installed_repository = self.test_db_util.get_installed_repository_by_name_owner(emboss_repository_name, common.test_user_1_name) strings_displayed = ['emboss_0020', - 'Galaxy wrappers for Emboss version 5.0.0 tools', - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + 'Galaxy wrappers for Emboss version 5.0.0 tools', + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) current_datatypes = int(self.get_datatypes_count()) # If we are running this test by itself, installing the emboss repository should also install the emboss_datatypes @@ -114,10 +114,10 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): installed_repository = self.test_db_util.get_installed_repository_by_name_owner(emboss_repository_name, common.test_user_1_name) self.reinstall_repository(installed_repository) strings_displayed = ['emboss_0020', - 'Galaxy wrappers for Emboss version 5.0.0 tools', - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + 'Galaxy wrappers for Emboss version 5.0.0 tools', + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'emboss']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) @@ -128,7 +128,7 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): installed_repository = self.test_db_util.get_installed_repository_by_name_owner(emboss_repository_name, common.test_user_1_name) self.deactivate_repository(installed_repository) strings_not_displayed = ['emboss_0020', - installed_repository.installed_changeset_revision] + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_not_displayed=strings_not_displayed) def test_0030_reactivate_emboss_repository(self): @@ -136,10 +136,10 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): installed_repository = self.test_db_util.get_installed_repository_by_name_owner(emboss_repository_name, common.test_user_1_name) self.reactivate_repository(installed_repository) strings_displayed = ['emboss_0020', - 'Galaxy wrappers for Emboss version 5.0.0 tools', - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + 'Galaxy wrappers for Emboss version 5.0.0 tools', + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'emboss']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_1230_uninstall_reinstall_repository_with_dependency_revisions.py b/test/shed_functional/functional/test_1230_uninstall_reinstall_repository_with_dependency_revisions.py index 2d3b2a9185d..01d36a79780 100644 --- a/test/shed_functional/functional/test_1230_uninstall_reinstall_repository_with_dependency_revisions.py +++ b/test/shed_functional/functional/test_1230_uninstall_reinstall_repository_with_dependency_revisions.py @@ -40,64 +40,64 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): category = self.create_category(name='Test 0030 Repository Dependency Revisions', description='Tests for a repository with tool dependencies.') self.login(email=common.test_user_1_email, username=common.test_user_1_name) datatypes_repository = self.get_or_create_repository(name=datatypes_repository_name, - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(datatypes_repository): running_standalone = True emboss_5_repository = self.get_or_create_repository(name=emboss_5_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(datatypes_repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_1030', additional_paths=['emboss', '5']) datatypes_tuple = (self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip(datatypes_repository)) self.create_repository_dependency(repository=emboss_5_repository, repository_tuples=[datatypes_tuple], filepath=repository_dependencies_path) emboss_6_repository = self.get_or_create_repository(name=emboss_6_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(emboss_6_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_1030', additional_paths=['emboss', '6']) datatypes_tuple = (self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip(datatypes_repository)) self.create_repository_dependency(repository=emboss_6_repository, repository_tuples=[datatypes_tuple], filepath=repository_dependencies_path) emboss_repository = self.get_or_create_repository(name=emboss_repository_name, - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(emboss_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_1030', additional_paths=['emboss', '5']) dependency_tuple = (self.url, emboss_5_repository.name, emboss_5_repository.user.username, self.get_repository_tip(emboss_5_repository)) self.create_repository_dependency(repository=emboss_repository, repository_tuples=[dependency_tuple], filepath=repository_dependencies_path) @@ -114,16 +114,16 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): base_datatypes_count = int(self.get_datatypes_count()) strings_displayed = ['Handle', 'Never installed', 'tool dependencies', 'emboss', '5.0.0', 'package'] self.install_repository(emboss_repository_name, - common.test_user_1_name, - 'Test 0030 Repository Dependency Revisions', - strings_displayed=strings_displayed, - new_tool_panel_section_label='test_1210') + common.test_user_1_name, + 'Test 0030 Repository Dependency Revisions', + strings_displayed=strings_displayed, + new_tool_panel_section_label='test_1210') installed_repository = self.test_db_util.get_installed_repository_by_name_owner(emboss_repository_name, common.test_user_1_name) strings_displayed = ['emboss_0030', - 'Galaxy wrappers for Emboss version 5.0.0 tools', - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + 'Galaxy wrappers for Emboss version 5.0.0 tools', + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) current_datatypes = int(self.get_datatypes_count()) # If we are running this test by itself, installing the emboss repository should also install the emboss_datatypes @@ -150,10 +150,10 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): installed_repository = self.test_db_util.get_installed_repository_by_name_owner(emboss_repository_name, common.test_user_1_name) self.reinstall_repository(installed_repository) strings_displayed = ['emboss_0030', - 'Galaxy wrappers for Emboss version 5.0.0 tools', - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + 'Galaxy wrappers for Emboss version 5.0.0 tools', + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'emboss']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) @@ -171,10 +171,10 @@ class UninstallingAndReinstallingRepositories(ShedTwillTestCase): installed_repository = self.test_db_util.get_installed_repository_by_name_owner(emboss_repository_name, common.test_user_1_name) self.reactivate_repository(installed_repository) strings_displayed = ['emboss_0030', - 'Galaxy wrappers for Emboss version 5.0.0 tools', - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + 'Galaxy wrappers for Emboss version 5.0.0 tools', + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'emboss']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) diff --git a/test/shed_functional/functional/test_1300_reset_all_metadata.py b/test/shed_functional/functional/test_1300_reset_all_metadata.py index 2e1b06729f2..e53c82d78f7 100644 --- a/test/shed_functional/functional/test_1300_reset_all_metadata.py +++ b/test/shed_functional/functional/test_1300_reset_all_metadata.py @@ -70,97 +70,97 @@ class TestResetInstalledRepositoryMetadata(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) category = self.create_category(name=category_0000_name, description='') repository = self.get_or_create_repository(name='filtering_0000', - description="Galaxy's filtering tool", - long_description="Long description of Galaxy's filtering tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id)) + description="Galaxy's filtering tool", + long_description="Long description of Galaxy's filtering tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id)) if self.repository_is_new(repository): running_standalone = True self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 2.2.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 2.2.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_repositories_from_0010_series(self): '''Create repository freebayes_0010.''' category = self.create_category(name=category_0010_name, description='') repository = self.get_or_create_repository(name='freebayes_0010', - description="Galaxy's freebayes tool", - long_description="Long description of Galaxy's freebayes tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description="Galaxy's freebayes tool", + long_description="Long description of Galaxy's freebayes tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='freebayes/freebayes.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded freebayes.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded freebayes.xml.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='freebayes/tool_data_table_conf.xml.sample', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool_data_table_conf.xml.sample', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/tool_data_table_conf.xml.sample', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool_data_table_conf.xml.sample', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='freebayes/sam_fa_indices.loc.sample', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded sam_fa_indices.loc.sample', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/sam_fa_indices.loc.sample', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded sam_fa_indices.loc.sample', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='freebayes/tool_dependencies.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded tool_dependencies.xml', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/tool_dependencies.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded tool_dependencies.xml', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_repositories_from_0020_series(self): '''Create repositories emboss_0020 and emboss_datatypes_0020 if necessary.''' category = self.create_category(name=category_0020_name, description='') repository = self.get_or_create_repository(name='emboss_datatypes_0020', - description="Galaxy applicable data formats used by Emboss tools.", - long_description="Galaxy applicable data formats used by Emboss tools. This repository contains no tools.", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description="Galaxy applicable data formats used by Emboss tools.", + long_description="Galaxy applicable data formats used by Emboss tools. This repository contains no tools.", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) repository = self.get_or_create_repository(name='emboss_0020', description='Galaxy wrappers for Emboss version 5.0.0 tools', long_description='Galaxy wrappers for Emboss version 5.0.0 tools', @@ -168,87 +168,87 @@ class TestResetInstalledRepositoryMetadata(ShedTwillTestCase): category_id=self.security.encode_id(category.id), strings_displayed=[]) self.upload_file(repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_create_repositories_from_0030_series(self): '''Create repositories emboss_0030, emboss_5_0030, emboss_6_0030, and emboss_datatypes_0030.''' global repository_datatypes_count category = self.create_category(name=category_0030_name, description='') datatypes_repository = self.get_or_create_repository(name='emboss_datatypes_0030', - description=datatypes_repository_description, - long_description=datatypes_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=datatypes_repository_description, + long_description=datatypes_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(datatypes_repository): self.upload_file(datatypes_repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) repository_datatypes_count = int(self.get_repository_datatypes_count(datatypes_repository)) emboss_5_repository = self.get_or_create_repository(name='emboss_5_0030', - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(emboss_5_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_0330', additional_paths=['emboss', '5']) dependency_tuple = (self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip(datatypes_repository)) self.create_repository_dependency(repository=emboss_5_repository, repository_tuples=[dependency_tuple], filepath=repository_dependencies_path) emboss_6_repository = self.get_or_create_repository(name='emboss_6_0030', - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(emboss_6_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_0330', additional_paths=['emboss', '6']) dependency_tuple = (self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip(datatypes_repository)) self.create_repository_dependency(repository=emboss_6_repository, repository_tuples=[dependency_tuple], filepath=repository_dependencies_path) emboss_repository = self.get_or_create_repository(name='emboss_0030', - description=emboss_repository_description, - long_description=emboss_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=emboss_repository_description, + long_description=emboss_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(emboss_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_0330', additional_paths=['emboss', '5']) dependency_tuple = (self.url, emboss_5_repository.name, emboss_5_repository.user.username, self.get_repository_tip(emboss_5_repository)) self.create_repository_dependency(repository=emboss_repository, repository_tuples=[dependency_tuple], filepath=repository_dependencies_path) @@ -259,36 +259,36 @@ class TestResetInstalledRepositoryMetadata(ShedTwillTestCase): '''Create repositories freebayes_0040 and filtering_0040.''' category = self.create_category(name=category_0040_name, description='') repository = self.get_or_create_repository(name='freebayes_0040', - description="Galaxy's freebayes tool", - long_description="Long description of Galaxy's freebayes tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description="Galaxy's freebayes tool", + long_description="Long description of Galaxy's freebayes tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='freebayes/freebayes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool tarball.', + strings_displayed=[], + strings_not_displayed=[]) repository = self.get_or_create_repository(name='filtering_0040', - description=filtering_repository_description, - long_description=filtering_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=filtering_repository_description, + long_description=filtering_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded the tool tarball for filtering 1.1.0.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded the tool tarball for filtering 1.1.0.', + strings_displayed=[], + strings_not_displayed=[]) repository = self.test_db_util.get_repository_by_name_and_owner('freebayes_0040', common.test_user_1_name) filtering_repository = self.test_db_util.get_repository_by_name_and_owner('filtering_0040', common.test_user_1_name) repository_dependencies_path = self.generate_temp_path('test_1340', additional_paths=['filtering']) @@ -317,53 +317,53 @@ class TestResetInstalledRepositoryMetadata(ShedTwillTestCase): category_id=self.security.encode_id(category.id), strings_displayed=[]) filtering_repository = self.get_or_create_repository(name='filtering_0050', - description="Galaxy's filtering tool", - long_description="Long description of Galaxy's filtering tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description="Galaxy's filtering tool", + long_description="Long description of Galaxy's filtering tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) freebayes_repository = self.get_or_create_repository(name='freebayes_0050', - description="Galaxy's freebayes tool", - long_description="Long description of Galaxy's freebayes tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description="Galaxy's freebayes tool", + long_description="Long description of Galaxy's freebayes tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(datatypes_repository, - filename='emboss/datatypes/datatypes_conf.xml', - filepath=None, - valid_tools_only=False, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatypes_conf.xml.', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/datatypes/datatypes_conf.xml', + filepath=None, + valid_tools_only=False, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatypes_conf.xml.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(emboss_repository, - filename='emboss/emboss.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded emboss.tar', - strings_displayed=[], - strings_not_displayed=[]) + filename='emboss/emboss.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded emboss.tar', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(freebayes_repository, - filename='freebayes/freebayes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded freebayes tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='freebayes/freebayes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded freebayes tarball.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(filtering_repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) repository_dependencies_path = self.generate_temp_path('test_0350', additional_paths=['emboss']) dependency_tuple = (self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip(datatypes_repository)) self.create_repository_dependency(repository=emboss_repository, repository_tuples=[dependency_tuple], filepath=repository_dependencies_path) @@ -374,19 +374,19 @@ class TestResetInstalledRepositoryMetadata(ShedTwillTestCase): dependency_tuple = (self.url, filtering_repository.name, filtering_repository.user.username, self.get_repository_tip(filtering_repository)) self.create_repository_dependency(repository=emboss_repository, repository_tuples=[dependency_tuple], filepath=repository_dependencies_path) dependency_tuples = [(self.url, datatypes_repository.name, datatypes_repository.user.username, self.get_repository_tip(datatypes_repository)), - (self.url, emboss_repository.name, emboss_repository.user.username, self.get_repository_tip(emboss_repository)), - (self.url, filtering_repository.name, filtering_repository.user.username, self.get_repository_tip(filtering_repository)), - (self.url, freebayes_repository.name, freebayes_repository.user.username, self.get_repository_tip(freebayes_repository))] + (self.url, emboss_repository.name, emboss_repository.user.username, self.get_repository_tip(emboss_repository)), + (self.url, filtering_repository.name, filtering_repository.user.username, self.get_repository_tip(filtering_repository)), + (self.url, freebayes_repository.name, freebayes_repository.user.username, self.get_repository_tip(freebayes_repository))] self.create_repository_dependency(repository=freebayes_repository, repository_tuples=dependency_tuples, filepath=repository_dependencies_path) def test_0035_create_repositories_from_0060_series(self): category = self.create_category(name=category_0060_name, description='') workflow_repository = self.get_or_create_repository(name='filtering_0060', - description="Galaxy's filtering tool", - long_description="Long description of Galaxy's filtering tool", - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description="Galaxy's filtering tool", + long_description="Long description of Galaxy's filtering tool", + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(workflow_repository): workflow = open(self.get_filename('filtering_workflow/Workflow_for_0060_filter_workflow_repository.ga'), 'r').read() workflow = workflow.replace('__TEST_TOOL_SHED_URL__', self.url.replace('http://', '')) @@ -395,23 +395,23 @@ class TestResetInstalledRepositoryMetadata(ShedTwillTestCase): os.makedirs(workflow_filepath) open(os.path.join(workflow_filepath, workflow_filename), 'w+').write(workflow) self.upload_file(workflow_repository, - filename=workflow_filename, - filepath=workflow_filepath, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering workflow.', - strings_displayed=[], - strings_not_displayed=[]) + filename=workflow_filename, + filepath=workflow_filepath, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering workflow.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(workflow_repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 2.2.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 2.2.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_9900_install_all_missing_repositories(self): '''Call the install_repository method to ensure that all required repositories are installed.''' diff --git a/test/shed_functional/functional/test_1400_review_migration_stages.py b/test/shed_functional/functional/test_1400_review_migration_stages.py index 68769a0eaa9..5433f77690b 100644 --- a/test/shed_functional/functional/test_1400_review_migration_stages.py +++ b/test/shed_functional/functional/test_1400_review_migration_stages.py @@ -19,23 +19,23 @@ class TestToolMigrationStages(ShedTwillTestCase): '''Load the migration page and check for the appropriate migration stages.''' stages = [] migration_message_strings = ['The Emboss 5.0.0 tools have been eliminated', - 'The freebayes tool has been eliminated', - 'The NCBI BLAST+ tools', - 'The tools "Map with BWA for Illumina"', - 'FASTQ to BAM, SAM to FASTQ, BAM ', - 'Map with Bowtie for Illumina, ', - 'BAM-to-SAM converts BAM format'] + 'The freebayes tool has been eliminated', + 'The NCBI BLAST+ tools', + 'The tools "Map with BWA for Illumina"', + 'FASTQ to BAM, SAM to FASTQ, BAM ', + 'Map with Bowtie for Illumina, ', + 'BAM-to-SAM converts BAM format'] migrated_repository_names = ['emboss_5', 'emboss_datatypes', 'freebayes', 'ncbi_blast_plus', - 'blast_datatypes', 'bwa_wrappers', 'picard', 'lastz', - 'lastz_paired_reads', 'bowtie_color_wrappers', 'bowtie_wrappers', - 'xy_plot', 'bam_to_sam'] + 'blast_datatypes', 'bwa_wrappers', 'picard', 'lastz', + 'lastz_paired_reads', 'bowtie_color_wrappers', 'bowtie_wrappers', + 'xy_plot', 'bam_to_sam'] migrated_tool_dependencies = ['emboss', '5.0.0', 'freebayes', '0.9.4_a46483351fd0196637614121868fb5c386612b55', - 'samtools', '0.1.18', 'blast+', '2.2.26+', 'bwa', '0.5.9', 'picard', '1.56.0', - 'lastz', '1.02.00', 'bowtie', '0.12.7', 'FreeBayes requires g++', 'ncurses', 'zlib', - 'blast.ncbi.nlm.nih.gov', 'fastx_toolkit', '0.0.13', 'samtools', '0.1.16', 'cufflinks', - '2.1.1', 'R', '2.11.0'] + 'samtools', '0.1.18', 'blast+', '2.2.26+', 'bwa', '0.5.9', 'picard', '1.56.0', + 'lastz', '1.02.00', 'bowtie', '0.12.7', 'FreeBayes requires g++', 'ncurses', 'zlib', + 'blast.ncbi.nlm.nih.gov', 'fastx_toolkit', '0.0.13', 'samtools', '0.1.16', 'cufflinks', + '2.1.1', 'R', '2.11.0'] migration_scripts = ['0002_tools.sh', '0003_tools.sh', '0004_tools.sh', '0005_tools.sh', '0006_tools.sh', - '0007_tools.sh', '0008_tools.sh'] + '0007_tools.sh', '0008_tools.sh'] stages.extend(migration_scripts + migrated_tool_dependencies + migrated_repository_names) stages.extend(migration_message_strings) self.load_galaxy_tool_migrations_page(strings_displayed=stages) diff --git a/test/shed_functional/functional/test_1410_update_manager.py b/test/shed_functional/functional/test_1410_update_manager.py index c9364f1eb4e..3c449cf5d35 100644 --- a/test/shed_functional/functional/test_1410_update_manager.py +++ b/test/shed_functional/functional/test_1410_update_manager.py @@ -52,19 +52,19 @@ class TestUpdateManager(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id)) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id)) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=True, - commit_message="Uploaded filtering 1.1.0", - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=True, + commit_message="Uploaded filtering 1.1.0", + strings_displayed=[], + strings_not_displayed=[]) def test_0010_install_filtering_repository(self): '''Install the filtering_1410 repository.''' @@ -74,15 +74,15 @@ class TestUpdateManager(ShedTwillTestCase): ''' self.galaxy_login(email=common.admin_email, username=common.admin_username) self.install_repository('filtering_1410', - common.test_user_1_name, - category_name, - new_tool_panel_section_label='test_1410') + common.test_user_1_name, + category_name, + new_tool_panel_section_label='test_1410') installed_repository = self.test_db_util.get_installed_repository_by_name_owner('filtering_1410', common.test_user_1_name) strings_displayed = ['filtering_1410', - "Galaxy's filtering tool", - 'user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + "Galaxy's filtering tool", + 'user1', + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) strings_displayed.extend(['Installed tool shed repository', 'Valid tools', 'Filter1']) self.display_installed_repository_manage_page(installed_repository, strings_displayed=strings_displayed) @@ -99,14 +99,14 @@ class TestUpdateManager(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='readme.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message="Uploaded readme.txt", - strings_displayed=[], - strings_not_displayed=[]) + filename='readme.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message="Uploaded readme.txt", + strings_displayed=[], + strings_not_displayed=[]) def test_0020_check_for_displayed_update(self): '''Browse installed repositories and verify update.''' diff --git a/test/shed_functional/functional/test_1420_tool_dependency_environment_inheritance.py b/test/shed_functional/functional/test_1420_tool_dependency_environment_inheritance.py index 4a243ae5c97..d97fc68ad40 100644 --- a/test/shed_functional/functional/test_1420_tool_dependency_environment_inheritance.py +++ b/test/shed_functional/functional/test_1420_tool_dependency_environment_inheritance.py @@ -81,11 +81,11 @@ class TestEnvironmentInheritance(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=package_lapack_repository_name, - description=package_lapack_repository_description, - long_description=package_lapack_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=package_lapack_repository_description, + long_description=package_lapack_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the # actual system path where the binary tarball is found. tool_dependency_path = self.generate_temp_path('1420_tool_dependency', additional_paths=['package_lapack_3_4_1420']) @@ -96,14 +96,14 @@ class TestEnvironmentInheritance(ShedTwillTestCase): open(edited_tool_dependency_filename, 'w').write(tool_dependency_definition) # Upload the edited tool dependency definition to the package_lapack_3_4_1420 repository. self.upload_file(repository, - filename='tool_dependencies.xml', - filepath=tool_dependency_path, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_lapack_3_4_1420 with tool dependency definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_lapack_3_4_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_atlas_repository(self): '''Create and populate package_atlas_3_10_1420.''' @@ -115,11 +115,11 @@ class TestEnvironmentInheritance(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=package_atlas_repository_name, - description=package_atlas_repository_description, - long_description=package_atlas_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=package_atlas_repository_description, + long_description=package_atlas_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the # actual system path where the binary tarball is found. tool_dependency_path = self.generate_temp_path('1420_tool_dependency', additional_paths=['package_atlas_3_10_1420']) @@ -130,14 +130,14 @@ class TestEnvironmentInheritance(ShedTwillTestCase): open(edited_tool_dependency_filename, 'w').write(tool_dependency_definition) # Upload the edited tool dependency definition to the package_atlas_3_10_1420 repository. self.upload_file(repository, - filename='tool_dependencies.xml', - filepath=tool_dependency_path, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_atlas_3_10_1420 with tool dependency definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_atlas_3_10_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_bzlib_repository(self): '''Create and populate package_bzlib_1_0_1420.''' @@ -149,11 +149,11 @@ class TestEnvironmentInheritance(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=package_bzlib_repository_name, - description=package_bzlib_repository_description, - long_description=package_bzlib_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=package_bzlib_repository_description, + long_description=package_bzlib_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the # actual system path where the binary tarball is found. tool_dependency_path = self.generate_temp_path('1420_tool_dependency', additional_paths=['package_bzlib_1_0_1420']) @@ -164,14 +164,14 @@ class TestEnvironmentInheritance(ShedTwillTestCase): open(edited_tool_dependency_filename, 'w').write(tool_dependency_definition) # Upload the edited tool dependency definition to the package_bzlib_1_0_1420 repository. self.upload_file(repository, - filename='tool_dependencies.xml', - filepath=tool_dependency_path, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_bzlib_1_0_1420 with tool dependency definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_bzlib_1_0_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_create_boost_repository(self): '''Create and populate package_boost_1_53_1420.''' @@ -183,11 +183,11 @@ class TestEnvironmentInheritance(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=package_boost_repository_name, - description=package_boost_repository_description, - long_description=package_boost_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=package_boost_repository_description, + long_description=package_boost_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the # actual system path where the binary tarball is found. tool_dependency_path = self.generate_temp_path('1420_tool_dependency', additional_paths=['package_boost_1_53_1420']) @@ -198,14 +198,14 @@ class TestEnvironmentInheritance(ShedTwillTestCase): open(edited_tool_dependency_filename, 'w').write(tool_dependency_definition) # Upload the edited tool dependency definition to the package_boost_1_53_1420 repository. self.upload_file(repository, - filename='tool_dependencies.xml', - filepath=tool_dependency_path, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_boost_1_53_1420 with tool dependency definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_boost_1_53_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[]) def test_0025_create_numpy_repository(self): '''Create and populate package_numpy_1_7_1420.''' @@ -217,11 +217,11 @@ class TestEnvironmentInheritance(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=package_numpy_repository_name, - description=package_numpy_repository_description, - long_description=package_numpy_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=package_numpy_repository_description, + long_description=package_numpy_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the # actual system path where the binary tarball is found. tool_dependency_path = self.generate_temp_path('1420_tool_dependency', additional_paths=['package_numpy_1_7_1420']) @@ -232,14 +232,14 @@ class TestEnvironmentInheritance(ShedTwillTestCase): open(edited_tool_dependency_filename, 'w').write(tool_dependency_definition) # Upload the edited tool dependency definition to the package_numpy_1_7_1420 repository. self.upload_file(repository, - filename='tool_dependencies.xml', - filepath=tool_dependency_path, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_numpy_1_7_1420 with tool dependency definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_numpy_1_7_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[]) def test_0030_create_rdkit_repository(self): '''Create and populate package_rdkit_2012_12_1420.''' @@ -251,11 +251,11 @@ class TestEnvironmentInheritance(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=package_rdkit_repository_name, - description=package_rdkit_repository_description, - long_description=package_rdkit_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=package_rdkit_repository_description, + long_description=package_rdkit_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the # actual system path where the binary tarball is found. tool_dependency_path = self.generate_temp_path('1420_tool_dependency', additional_paths=['package_rdkit_2012_12_1420']) @@ -266,14 +266,14 @@ class TestEnvironmentInheritance(ShedTwillTestCase): open(edited_tool_dependency_filename, 'w').write(tool_dependency_definition) # Upload the edited tool dependency definition to the package_rdkit_2012_12_1420 repository. self.upload_file(repository, - filename='tool_dependencies.xml', - filepath=tool_dependency_path, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_rdkit_2012_12_1420 with tool dependency definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_rdkit_2012_12_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[]) def test_0035_install_rdkit_2012_12_repository(self): '''Install the package_rdkit_2012_12_1420 repository into Galaxy.''' @@ -287,12 +287,12 @@ class TestEnvironmentInheritance(ShedTwillTestCase): ''' self.galaxy_login(email=common.admin_email, username=common.admin_username) post_submit_strings_displayed = ['package_rdkit_2012_12_1420', 'package_atlas_3_10_1420', 'package_bzlib_1_0_1420', - 'package_numpy_1_7_1420', 'package_lapack_3_4_1420', 'package_boost_1_53_1420'] + 'package_numpy_1_7_1420', 'package_lapack_3_4_1420', 'package_boost_1_53_1420'] self.install_repository('package_rdkit_2012_12_1420', - common.test_user_1_name, - category_name, - install_tool_dependencies=True, - post_submit_strings_displayed=post_submit_strings_displayed) + common.test_user_1_name, + category_name, + install_tool_dependencies=True, + post_submit_strings_displayed=post_submit_strings_displayed) def test_0040_verify_env_sh_contents(self): '''Check the env.sh file for the appropriate contents.''' @@ -304,14 +304,14 @@ class TestEnvironmentInheritance(ShedTwillTestCase): package_numpy_repository = self.test_db_util.get_installed_repository_by_name_owner('package_numpy_1_7_1420', common.test_user_1_name) package_boost_repository = self.test_db_util.get_installed_repository_by_name_owner('package_boost_1_53_1420', common.test_user_1_name) rdkit_env_sh = self.get_env_sh_path(tool_dependency_name='rdkit', - tool_dependency_version='2012_12_1', - repository=package_rdkit_repository) + tool_dependency_version='2012_12_1', + repository=package_rdkit_repository) numpy_tool_dependency_path = self.get_tool_dependency_path(tool_dependency_name='numpy', - tool_dependency_version='1.7.1', - repository=package_numpy_repository) + tool_dependency_version='1.7.1', + repository=package_numpy_repository) boost_tool_dependency_path = self.get_tool_dependency_path(tool_dependency_name='boost', - tool_dependency_version='1.53.0', - repository=package_boost_repository) + tool_dependency_version='1.53.0', + repository=package_boost_repository) rdkit_env_file_contents = open(rdkit_env_sh, 'r').read() if numpy_tool_dependency_path not in rdkit_env_file_contents or boost_tool_dependency_path not in rdkit_env_file_contents: message = 'Environment file for package_rdkit_2012_12_1420 does not contain expected path.' diff --git a/test/shed_functional/functional/test_1430_repair_installed_repository.py b/test/shed_functional/functional/test_1430_repair_installed_repository.py index 177fa157af4..8be7adc20ea 100644 --- a/test/shed_functional/functional/test_1430_repair_installed_repository.py +++ b/test/shed_functional/functional/test_1430_repair_installed_repository.py @@ -63,20 +63,20 @@ class TestRepairRepository(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=filter_repository_name, - description=filter_repository_description, - long_description=filter_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=filter_repository_description, + long_description=filter_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Populate filter_1430 with version 1.1.0.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Populate filter_1430 with version 1.1.0.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_column_repository(self): '''Create and populate the column_1430 repository.''' @@ -87,20 +87,20 @@ class TestRepairRepository(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=column_repository_name, - description=column_repository_description, - long_description=column_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=column_repository_description, + long_description=column_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='column_maker/column_maker.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Populate column_1430 with tool definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='column_maker/column_maker.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Populate column_1430 with tool definitions.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_create_repository_dependency(self): '''Create a dependency on filter_1430.''' @@ -128,12 +128,12 @@ class TestRepairRepository(ShedTwillTestCase): self.galaxy_login(email=common.admin_email, username=common.admin_username) post_submit_strings_displayed = ['column_1430', 'filter_1430'] self.install_repository('column_1430', - common.test_user_1_name, - category_name, - new_tool_panel_section_label='repair', - post_submit_strings_displayed=post_submit_strings_displayed, - install_tool_dependencies=False, - install_repository_dependencies=True) + common.test_user_1_name, + category_name, + new_tool_panel_section_label='repair', + post_submit_strings_displayed=post_submit_strings_displayed, + install_tool_dependencies=False, + install_repository_dependencies=True) def test_0025_uninstall_filter_repository(self): '''Uninstall the filter_1430 repository from Galaxy.''' @@ -144,11 +144,11 @@ class TestRepairRepository(ShedTwillTestCase): strings_displayed = ['Uninstalling this repository will result in the following'] strings_not_displayed = [] self.uninstall_repository(installed_repository, - strings_displayed=strings_displayed, - strings_not_displayed=strings_not_displayed) + strings_displayed=strings_displayed, + strings_not_displayed=strings_not_displayed) strings_not_displayed = ['filter_1430', - "Galaxy's filter tool for test 1430", - installed_repository.installed_changeset_revision] + "Galaxy's filter tool for test 1430", + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_not_displayed=strings_not_displayed) def test_0030_repair_column_repository(self): @@ -167,7 +167,7 @@ class TestRepairRepository(ShedTwillTestCase): ''' filter_repository = self.test_db_util.get_installed_repository_by_name_owner('filter_1430', common.test_user_1_name) strings_displayed = ['filter_1430', - "Galaxy's filter tool for test 1430", - filter_repository.installed_changeset_revision] + "Galaxy's filter tool for test 1430", + filter_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) self.check_galaxy_repository_tool_panel_section(repository=filter_repository, expected_tool_panel_section='repair') diff --git a/test/shed_functional/functional/test_1440_missing_env_sh_files.py b/test/shed_functional/functional/test_1440_missing_env_sh_files.py index 58342648ef8..243cafff117 100644 --- a/test/shed_functional/functional/test_1440_missing_env_sh_files.py +++ b/test/shed_functional/functional/test_1440_missing_env_sh_files.py @@ -54,21 +54,21 @@ class TestMissingEnvSh(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=package_repository_name, - description=package_repository_description, - long_description=package_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=package_repository_description, + long_description=package_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Upload the edited tool dependency definition to the package_lapack_3_4_1440 repository. self.upload_file(repository, - filename='1440_files/dependency_definition/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate package_env_sh_1_0_1440 with a broken tool dependency definition.', - strings_displayed=[], - strings_not_displayed=[]) + filename='1440_files/dependency_definition/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_env_sh_1_0_1440 with a broken tool dependency definition.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_create_filter_repository(self): '''Create and populate filter_1440.''' @@ -78,30 +78,30 @@ class TestMissingEnvSh(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=tool_repository_name, - description=tool_repository_description, - long_description=tool_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=tool_repository_description, + long_description=tool_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Upload the edited tool dependency definition to the package_lapack_3_4_1440 repository. self.upload_file(repository, - filename='filtering/filtering_2.2.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate filter_1440 with the filtering tool.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_2.2.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate filter_1440 with the filtering tool.', + strings_displayed=[], + strings_not_displayed=[]) self.upload_file(repository, - filename='1440_files/complex_dependency/tool_dependencies.xml', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Populate filter_1440 with a dependency on package_env_sh_1_0_1440.', - strings_displayed=[], - strings_not_displayed=[]) + filename='1440_files/complex_dependency/tool_dependencies.xml', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate filter_1440 with a dependency on package_env_sh_1_0_1440.', + strings_displayed=[], + strings_not_displayed=[]) def test_0015_install_filter_repository(self): '''Install the filter_1440 repository to galaxy.''' @@ -112,10 +112,10 @@ class TestMissingEnvSh(ShedTwillTestCase): self.galaxy_login(email=common.admin_email, username=common.admin_username) post_submit_strings_displayed = ['filter_1440', 'package_env_sh_1_0_1440'] self.install_repository('filter_1440', - common.test_user_1_name, - category_name, - install_tool_dependencies=True, - post_submit_strings_displayed=post_submit_strings_displayed) + common.test_user_1_name, + category_name, + install_tool_dependencies=True, + post_submit_strings_displayed=post_submit_strings_displayed) def test_0020_verify_missing_tool_dependency(self): '''Verify that the filter_1440 repository is installed and missing tool dependencies.''' diff --git a/test/shed_functional/functional/test_1450_installing_datatypes_sniffers.py b/test/shed_functional/functional/test_1450_installing_datatypes_sniffers.py index f08152a90df..50dc57fce86 100644 --- a/test/shed_functional/functional/test_1450_installing_datatypes_sniffers.py +++ b/test/shed_functional/functional/test_1450_installing_datatypes_sniffers.py @@ -46,21 +46,21 @@ class TestInstallDatatypesSniffers(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) if self.repository_is_new(repository): self.upload_file(repository, - filename='proteomics_datatypes/proteomics_datatypes.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded datatype and sniffer definitions.', - strings_displayed=[], - strings_not_displayed=[]) + filename='proteomics_datatypes/proteomics_datatypes.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded datatype and sniffer definitions.', + strings_displayed=[], + strings_not_displayed=[]) repository_datatypes_count = self.get_repository_datatypes_count(repository) def test_0010_install_datatypes_repository(self): @@ -77,14 +77,14 @@ class TestInstallDatatypesSniffers(ShedTwillTestCase): self.galaxy_login(email=common.admin_email, username=common.admin_username) strings_displayed = ['proteomics'] self.install_repository('proteomics_datatypes_1450', - common.test_user_1_name, - category_name, - strings_displayed=strings_displayed, - new_tool_panel_section_label='test_1450') + common.test_user_1_name, + category_name, + strings_displayed=strings_displayed, + new_tool_panel_section_label='test_1450') installed_repository = self.test_db_util.get_installed_repository_by_name_owner('proteomics_datatypes_1450', common.test_user_1_name) strings_displayed = ['user1', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision] + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) def test_0015_verify_datatypes_count(self): diff --git a/test/shed_functional/functional/test_1460_data_managers.py b/test/shed_functional/functional/test_1460_data_managers.py index 5161aeea9cc..d961117c1a2 100644 --- a/test/shed_functional/functional/test_1460_data_managers.py +++ b/test/shed_functional/functional/test_1460_data_managers.py @@ -52,21 +52,21 @@ class TestDataManagers(ShedTwillTestCase): ''' category = self.test_db_util.get_category_by_name(category_name) repository = self.get_or_create_repository(name=data_manager_repository_name, - description=data_manager_repository_description, - long_description=data_manager_repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=data_manager_repository_description, + long_description=data_manager_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) # Upload the data manager files to the repository. self.upload_file(repository, - filename=data_manager_tar_file, - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Populate %s with a data manager configuration.' % data_manager_repository_name, - strings_displayed=[], - strings_not_displayed=[]) + filename=data_manager_tar_file, + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Populate %s with a data manager configuration.' % data_manager_repository_name, + strings_displayed=[], + strings_not_displayed=[]) def test_0020_install_data_manager_repository(self): '''Install the data_manager_1460 repository to galaxy.''' @@ -76,10 +76,10 @@ class TestDataManagers(ShedTwillTestCase): self.galaxy_login(email=common.admin_email, username=common.admin_username) post_submit_strings_displayed = [data_manager_repository_name] self.install_repository(data_manager_repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=True, - post_submit_strings_displayed=post_submit_strings_displayed) + common.test_user_1_name, + category_name, + install_tool_dependencies=True, + post_submit_strings_displayed=post_submit_strings_displayed) def test_0030_verify_data_manager_tool(self): '''Verify that the data_manager_1460 repository is installed and Data Manager tool appears in list in Galaxy.''' diff --git a/test/shed_functional/functional/test_1470_updating_installed_repositories.py b/test/shed_functional/functional/test_1470_updating_installed_repositories.py index fd91527a35d..5acac14a69e 100644 --- a/test/shed_functional/functional/test_1470_updating_installed_repositories.py +++ b/test/shed_functional/functional/test_1470_updating_installed_repositories.py @@ -40,20 +40,20 @@ class TestUpdateInstalledRepository(ShedTwillTestCase): category = self.create_category(name=category_name, description=category_description) self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.get_or_create_repository(name=repository_name, - description=repository_description, - long_description=repository_long_description, - owner=common.test_user_1_name, - category_id=self.security.encode_id(category.id), - strings_displayed=[]) + description=repository_description, + long_description=repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id(category.id), + strings_displayed=[]) self.upload_file(repository, - filename='filtering/filtering_1.1.0.tar', - filepath=None, - valid_tools_only=True, - uncompress_file=True, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded filtering 1.1.0 tarball.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/filtering_1.1.0.tar', + filepath=None, + valid_tools_only=True, + uncompress_file=True, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded filtering 1.1.0 tarball.', + strings_displayed=[], + strings_not_displayed=[]) def test_0010_install_filtering_to_galaxy(self): '''Install the filtering_1470 repository to galaxy.''' @@ -62,20 +62,20 @@ class TestUpdateInstalledRepository(ShedTwillTestCase): ''' self.galaxy_login(email=common.admin_email, username=common.admin_username) self.install_repository(repository_name, - common.test_user_1_name, - category_name, - install_tool_dependencies=False, - install_repository_dependencies=False, - new_tool_panel_section_label='Filtering') + common.test_user_1_name, + category_name, + install_tool_dependencies=False, + install_repository_dependencies=False, + new_tool_panel_section_label='Filtering') installed_repository = self.test_db_util.get_installed_repository_by_name_owner(repository_name, - common.test_user_1_name) + common.test_user_1_name) strings_displayed = ['filtering_1470', - self.url.replace('http://', ''), - installed_repository.installed_changeset_revision, - installed_repository.changeset_revision] + self.url.replace('http://', ''), + installed_repository.installed_changeset_revision, + installed_repository.changeset_revision] self.display_galaxy_browse_repositories_page(strings_displayed=strings_displayed) self.display_installed_repository_manage_page(installed_repository, - strings_displayed=strings_displayed) + strings_displayed=strings_displayed) def test_0015_update_repository(self): '''Upload a readme file to the filtering_1470 repository.''' @@ -88,14 +88,14 @@ class TestUpdateInstalledRepository(ShedTwillTestCase): self.login(email=common.test_user_1_email, username=common.test_user_1_name) repository = self.test_db_util.get_repository_by_name_and_owner(repository_name, common.test_user_1_name) self.upload_file(repository, - filename='filtering/readme.txt', - filepath=None, - valid_tools_only=True, - uncompress_file=False, - remove_repo_files_not_in_tar=False, - commit_message='Uploaded readme.', - strings_displayed=[], - strings_not_displayed=[]) + filename='filtering/readme.txt', + filepath=None, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Uploaded readme.', + strings_displayed=[], + strings_not_displayed=[]) def test_0020_get_repository_updates(self): '''Get updates to the installed repository.''' @@ -104,7 +104,7 @@ class TestUpdateInstalledRepository(ShedTwillTestCase): ''' self.galaxy_login(email=common.admin_email, username=common.admin_username) installed_repository = self.test_db_util.get_installed_repository_by_name_owner(repository_name, - common.test_user_1_name) + common.test_user_1_name) self.update_installed_repository(installed_repository) def test_0025_uninstall_repository(self): @@ -113,7 +113,7 @@ class TestUpdateInstalledRepository(ShedTwillTestCase): This is step 4 - In Galaxy, uninstall the repository. ''' installed_repository = self.test_db_util.get_installed_repository_by_name_owner(repository_name, - common.test_user_1_name) + common.test_user_1_name) self.uninstall_repository(installed_repository) def test_0030_reinstall_repository(self): @@ -122,7 +122,7 @@ class TestUpdateInstalledRepository(ShedTwillTestCase): This is step 5 - In Galaxy, reinstall the repository. ''' installed_repository = self.test_db_util.get_installed_repository_by_name_owner(repository_name, - common.test_user_1_name) + common.test_user_1_name) self.reinstall_repository(installed_repository) def test_0035_verify_absence_of_ghosts(self): @@ -131,6 +131,6 @@ class TestUpdateInstalledRepository(ShedTwillTestCase): This is step 6 - Make sure step 5 created no white ghosts. ''' installed_repository = self.test_db_util.get_installed_repository_by_name_owner(repository_name, - common.test_user_1_name, - return_multiple=True) + common.test_user_1_name, + return_multiple=True) assert len(installed_repository) == 1, 'Multiple filtering repositories found in the Galaxy database, possibly indicating a "white ghost" scenario.' diff --git a/test/shed_functional/functional_tests.py b/test/shed_functional/functional_tests.py index 23b6acb5b08..1805acca543 100644 --- a/test/shed_functional/functional_tests.py +++ b/test/shed_functional/functional_tests.py @@ -79,22 +79,22 @@ class ToolShedTestDriver(driver_util.TestDriver): print("Directory location for hgweb.config:", hgweb_config_dir) toolshed_database_conf = driver_util.database_conf(shed_db_path, prefix="TOOL_SHED") kwargs = dict(admin_users='test@bx.psu.edu', - allow_user_creation=True, - allow_user_deletion=True, - datatype_converters_config_file='datatype_converters_conf.xml.sample', - file_path=shed_file_path, - hgweb_config_dir=hgweb_config_dir, - job_queue_workers=5, - id_secret='changethisinproductiontoo', - log_destination="stdout", - new_file_path=new_repos_path, - running_functional_tests=True, - shed_tool_data_table_config=shed_tool_data_table_conf_file, - smtp_server='smtp.dummy.string.tld', - email_from='functional@localhost', - template_path='templates', - tool_parse_help=False, - use_heartbeat=False) + allow_user_creation=True, + allow_user_deletion=True, + datatype_converters_config_file='datatype_converters_conf.xml.sample', + file_path=shed_file_path, + hgweb_config_dir=hgweb_config_dir, + job_queue_workers=5, + id_secret='changethisinproductiontoo', + log_destination="stdout", + new_file_path=new_repos_path, + running_functional_tests=True, + shed_tool_data_table_config=shed_tool_data_table_conf_file, + smtp_server='smtp.dummy.string.tld', + email_from='functional@localhost', + template_path='templates', + tool_parse_help=False, + use_heartbeat=False) kwargs.update(toolshed_database_conf) # Generate the tool_data_table_conf.xml file. open(default_tool_data_table_config_path, 'w').write(tool_data_table_conf_xml_template) @@ -136,10 +136,10 @@ class ToolShedTestDriver(driver_util.TestDriver): if not os.environ.get('GALAXY_SHED_DATA_MANAGER_CONF'): open(galaxy_shed_data_manager_conf_file, 'wb').write(shed_data_manager_conf_xml_template) kwargs = dict(migrated_tools_config=galaxy_migrated_tool_conf_file, - shed_data_manager_config_file=galaxy_shed_data_manager_conf_file, - shed_tool_path=galaxy_shed_tool_path, - tool_data_path=tool_data_path, - tool_sheds_config_file=galaxy_tool_sheds_conf_file) + shed_data_manager_config_file=galaxy_shed_data_manager_conf_file, + shed_tool_path=galaxy_shed_tool_path, + tool_data_path=tool_data_path, + tool_sheds_config_file=galaxy_tool_sheds_conf_file) kwargs.update( driver_util.setup_galaxy_config( galaxy_db_path, diff --git a/test/unit/datatypes/dataproviders/test_line_dataproviders.py b/test/unit/datatypes/dataproviders/test_line_dataproviders.py index 819a7a6a841..29dec9c9544 100644 --- a/test/unit/datatypes/dataproviders/test_line_dataproviders.py +++ b/test/unit/datatypes/dataproviders/test_line_dataproviders.py @@ -86,7 +86,7 @@ class Test_FilteredLineDataProvider(test_base_dataproviders.Test_FilteredDataPro """ (contents, provider, data) = self.contents_provider_and_data(comment_char='T') self.assertEqual(data, ['# this should be stripped out', 'One', - '# as should blank lines', '# preceding/trailing whitespace too']) + '# as should blank lines', '# preceding/trailing whitespace too']) self.assertCounters(provider, 7, 4, 4) @@ -247,7 +247,7 @@ class Test_BlockDataProvider(test_base_dataproviders.Test_FilteredDataProvider): strip_lines=False, strip_newlines=True, new_block_delim_fn=is_not_indented, block_filter_fn=empty_block) self.assertEqual(data, [{'header': 'One', 'data': ['ABCD']}, - {'header': 'Two', 'data': ['ABCD', 'EFGH']}]) + {'header': 'Two', 'data': ['ABCD', 'EFGH']}]) self.assertCounters(provider, 3, 2, 2) def test_block_filter_fn_w_limit_offset(self): diff --git a/test/unit/managers/test_DatasetManager.py b/test/unit/managers/test_DatasetManager.py index a1bfd237d33..6e99186ef4c 100644 --- a/test/unit/managers/test_DatasetManager.py +++ b/test/unit/managers/test_DatasetManager.py @@ -239,7 +239,7 @@ class DatasetSerializerTestCase(BaseTestCase): for key in self.dataset_serializer.serializable_keyset: instantiated_attribute = getattr(dataset, key, None) if not ((key in self.dataset_serializer.serializers) or - (isinstance(instantiated_attribute, self.TYPES_NEEDING_NO_SERIALIZERS))): + (isinstance(instantiated_attribute, self.TYPES_NEEDING_NO_SERIALIZERS))): self.fail('no serializer for: %s (%s)' % (key, instantiated_attribute)) else: self.assertTrue(True, 'all serializable keys have a serializer') diff --git a/test/unit/managers/test_UserManager.py b/test/unit/managers/test_UserManager.py index cc36f918529..445a292e1b4 100644 --- a/test/unit/managers/test_UserManager.py +++ b/test/unit/managers/test_UserManager.py @@ -142,7 +142,7 @@ class UserSerializerTestCase(BaseTestCase): for key in self.user_serializer.serializable_keyset: instantiated_attribute = getattr(user, key, None) if not ((key in self.user_serializer.serializers) or - (isinstance(instantiated_attribute, self.TYPES_NEEDING_NO_SERIALIZERS))): + (isinstance(instantiated_attribute, self.TYPES_NEEDING_NO_SERIALIZERS))): self.fail('no serializer for: %s (%s)' % (key, instantiated_attribute)) else: self.assertTrue(True, 'all serializable keys have a serializer') diff --git a/tools/data_source/data_source.py b/tools/data_source/data_source.py index 5815f126139..0417be67477 100644 --- a/tools/data_source/data_source.py +++ b/tools/data_source/data_source.py @@ -55,9 +55,9 @@ def __main__(): enhanced_handling = False job_params = dict(param_dict=params) job_params['output_data'] = [dict(out_data_name='output', - ext='data', - file_name=filename, - extra_files_path=None)] + ext='data', + file_name=filename, + extra_files_path=None)] job_params['job_config'] = dict(GALAXY_ROOT_DIR=GALAXY_ROOT_DIR, GALAXY_DATATYPES_CONF_FILE=GALAXY_DATATYPES_CONF_FILE, TOOL_PROVIDED_JOB_METADATA_FILE=TOOL_PROVIDED_JOB_METADATA_FILE) else: enhanced_handling = True @@ -109,8 +109,8 @@ def __main__(): except Exception as e: stop_err(str(e)) info = dict(type='dataset', - dataset_id=data_dict['dataset_id'], - ext=ext) + dataset_id=data_dict['dataset_id'], + ext=ext) json_file.write("%s\n" % dumps(info)) diff --git a/tools/data_source/upload.py b/tools/data_source/upload.py index b418b66a9be..e1415c6a972 100644 --- a/tools/data_source/upload.py +++ b/tools/data_source/upload.py @@ -40,9 +40,9 @@ def stop_err(msg, ret=1): def file_err(msg, dataset, json_file): json_file.write(dumps(dict(type='dataset', - ext='data', - dataset_id=dataset.dataset_id, - stderr=msg)) + "\n") + ext='data', + dataset_id=dataset.dataset_id, + stderr=msg)) + "\n") # never remove a server-side upload if dataset.type in ('server_dir', 'path_paste'): return @@ -332,11 +332,11 @@ def add_file(dataset, registry, json_file, output_path): # Write the job info stdout = stdout or 'uploaded %s file' % data_type info = dict(type='dataset', - dataset_id=dataset.dataset_id, - ext=ext, - stdout=stdout, - name=dataset.name, - line_count=line_count) + dataset_id=dataset.dataset_id, + ext=ext, + stdout=stdout, + name=dataset.name, + line_count=line_count) if dataset.get('uuid', None) is not None: info['uuid'] = dataset.get('uuid') json_file.write(dumps(info) + "\n") @@ -376,8 +376,8 @@ def add_composite_file(dataset, json_file, output_path, files_path): shutil.move(dataset.primary_file, output_path) # Write the job info info = dict(type='dataset', - dataset_id=dataset.dataset_id, - stdout='uploaded %s file' % dataset.file_type) + dataset_id=dataset.dataset_id, + stdout='uploaded %s file' % dataset.file_type) json_file.write(dumps(info) + "\n") diff --git a/tools/filters/axt_to_lav.py b/tools/filters/axt_to_lav.py index ac776795b22..5c764cc0c6b 100644 --- a/tools/filters/axt_to_lav.py +++ b/tools/filters/axt_to_lav.py @@ -104,7 +104,7 @@ def main(): out = bx.align.lav.Writer(open(lav_out, 'w'), attributes={"name_format_1": primaryFile, - "name_format_2": secondaryFile}) + "name_format_2": secondaryFile}) axtsRead = 0 axtsWritten = 0 diff --git a/tools/filters/ucsc_gene_bed_to_exon_bed.py b/tools/filters/ucsc_gene_bed_to_exon_bed.py index bb7f72cc5cc..081d2917f06 100755 --- a/tools/filters/ucsc_gene_bed_to_exon_bed.py +++ b/tools/filters/ucsc_gene_bed_to_exon_bed.py @@ -24,15 +24,15 @@ assert sys.version_info[:2] >= (2, 4) def main(): parser = optparse.OptionParser(usage="%prog [options] ") parser.add_option("-r", "--region", dest="region", default="transcribed", - help="Limit to region: one of coding, utr3, utr5, transcribed [default]") + help="Limit to region: one of coding, utr3, utr5, transcribed [default]") parser.add_option("-e", "--exons", action="store_true", dest="exons", - help="Only print intervals overlapping an exon") + help="Only print intervals overlapping an exon") parser.add_option("-s", "--strand", action="store_true", dest="strand", - help="Print strand after interval") + help="Print strand after interval") parser.add_option("-i", "--input", dest="input", default=None, - help="Input file") + help="Input file") parser.add_option("-o", "--output", dest="output", default=None, - help="Output file") + help="Output file") options, args = parser.parse_args() assert options.region in ('coding', 'utr3', 'utr5', 'transcribed', 'intron', 'codon'), "Invalid region argument" diff --git a/tools/filters/ucsc_gene_bed_to_intron_bed.py b/tools/filters/ucsc_gene_bed_to_intron_bed.py index a280f67d645..b43029a9ee8 100755 --- a/tools/filters/ucsc_gene_bed_to_intron_bed.py +++ b/tools/filters/ucsc_gene_bed_to_intron_bed.py @@ -24,11 +24,11 @@ assert sys.version_info[:2] >= (2, 4) def main(): parser = optparse.OptionParser(usage="%prog [options] ") parser.add_option("-s", "--strand", action="store_true", dest="strand", - help="Print strand after interval") + help="Print strand after interval") parser.add_option("-i", "--input", dest="input", default=None, - help="Input file") + help="Input file") parser.add_option("-o", "--output", dest="output", default=None, - help="Output file") + help="Output file") options, args = parser.parse_args() try: diff --git a/tools/filters/ucsc_gene_table_to_intervals.py b/tools/filters/ucsc_gene_table_to_intervals.py index f8972e45688..80e82188bd0 100755 --- a/tools/filters/ucsc_gene_table_to_intervals.py +++ b/tools/filters/ucsc_gene_table_to_intervals.py @@ -24,15 +24,15 @@ assert sys.version_info[:2] >= (2, 4) def main(): parser = optparse.OptionParser(usage="%prog [options] ") parser.add_option("-r", "--region", dest="region", default="transcribed", - help="Limit to region: one of coding, utr3, utr5, transcribed [default]") + help="Limit to region: one of coding, utr3, utr5, transcribed [default]") parser.add_option("-e", "--exons", action="store_true", dest="exons", - help="Only print intervals overlapping an exon") + help="Only print intervals overlapping an exon") parser.add_option("-s", "--strand", action="store_true", dest="strand", - help="Print strand after interval") + help="Print strand after interval") parser.add_option("-i", "--input", dest="input", default=None, - help="Input file") + help="Input file") parser.add_option("-o", "--output", dest="output", default=None, - help="Output file") + help="Output file") options, args = parser.parse_args() assert options.region in ('coding', 'utr3', 'utr5', 'transcribed'), "Invalid region argument" diff --git a/tools/genomespace/genomespace_exporter.py b/tools/genomespace/genomespace_exporter.py index 5cedba44983..9d9a97f1585 100644 --- a/tools/genomespace/genomespace_exporter.py +++ b/tools/genomespace/genomespace_exporter.py @@ -256,8 +256,8 @@ def send_file_to_genomespace(genomespace_site, username, token, source_filename, upload_request.get_method = lambda: 'GET' upload_info = json.loads(url_opener.open(upload_request).read()) conn = S3Connection(aws_access_key_id=upload_info['amazonCredentials']['accessKey'], - aws_secret_access_key=upload_info['amazonCredentials']['secretKey'], - security_token=upload_info['amazonCredentials']['sessionToken']) + aws_secret_access_key=upload_info['amazonCredentials']['secretKey'], + security_token=upload_info['amazonCredentials']['sessionToken']) # Cannot use conn.get_bucket due to permissions, manually create bucket object bucket = boto.s3.bucket.Bucket(connection=conn, name=upload_info['s3BucketName']) mp = bucket.initiate_multipart_upload(upload_info['s3ObjectKey']) diff --git a/tools/genomespace/genomespace_file_browser.py b/tools/genomespace/genomespace_file_browser.py index 5a407e916d8..cce34b8f2cc 100644 --- a/tools/genomespace/genomespace_file_browser.py +++ b/tools/genomespace/genomespace_file_browser.py @@ -172,16 +172,16 @@ def download_from_genomespace_file_browser(json_parameter_file, genomespace_site output_filename = os.path.join(os.getcwd(), 'primary_%i_%s_visible_%s' % (hda_id, filename, galaxy_ext)) metadata_dict = dict(type='new_primary_dataset', - base_dataset_id=dataset_id, - ext=galaxy_ext, - filename=output_filename, - name="GenomeSpace import on %s" % (original_filename)) + base_dataset_id=dataset_id, + ext=galaxy_ext, + filename=output_filename, + name="GenomeSpace import on %s" % (original_filename)) else: if dataset_id is not None: metadata_dict = dict(type='dataset', - dataset_id=dataset_id, - ext=galaxy_ext, - name="GenomeSpace import on %s" % (filename)) + dataset_id=dataset_id, + ext=galaxy_ext, + name="GenomeSpace import on %s" % (filename)) output_file = open(output_filename, 'wb') chunk_write(target_download_url, output_file) output_file.close() diff --git a/tools/genomespace/genomespace_importer.py b/tools/genomespace/genomespace_importer.py index 169de4e97fc..115c76b46b0 100644 --- a/tools/genomespace/genomespace_importer.py +++ b/tools/genomespace/genomespace_importer.py @@ -185,9 +185,9 @@ def download_from_genomespace_importer(username, token, json_parameter_file, gen # save json info for single primary dataset if dataset_id is not None: metadata_parameter_file.write("%s\n" % json.dumps(dict(type='dataset', - dataset_id=dataset_id, - ext=file_type, - name="GenomeSpace importer on %s" % (filename)))) + dataset_id=dataset_id, + ext=file_type, + name="GenomeSpace importer on %s" % (filename)))) # if using tmp file, move the file to the new file path dir to get scooped up later if using_temp_file: original_filename = filename @@ -198,10 +198,10 @@ def download_from_genomespace_importer(username, token, json_parameter_file, gen target_output_filename = os.path.join(os.getcwd(), 'primary_%i_%s_visible_%s' % (hda_id, filename, file_type)) shutil.move(output_filename, target_output_filename) metadata_parameter_file.write("%s\n" % json.dumps(dict(type='new_primary_dataset', - base_dataset_id=base_dataset_id, - ext=file_type, - filename=target_output_filename, - name="GenomeSpace importer on %s" % (original_filename)))) + base_dataset_id=base_dataset_id, + ext=file_type, + filename=target_output_filename, + name="GenomeSpace importer on %s" % (original_filename)))) dataset_id = None # only one primary dataset available output_filename = None # only have one filename available metadata_parameter_file.close()
    ncallstottimepercallcumtimepercallfilename:lineno(function)
    tottimepercallcumtimepercallfilename:lineno(function)