From e3272e69fa5f59abea756efdb8c82b78763ce723 Mon Sep 17 00:00:00 2001 From: Greg Von Kuster Date: Mon, 16 Jul 2007 20:02:30 +0000 Subject: [PATCH] More fixes related to metadata. Now only the GOPS tool tests are broken... --- lib/galaxy/datatypes/interval.py | 14 ++++++++++---- lib/galaxy/datatypes/tabular.py | 17 +++++++++-------- test/functional/test_basic.py | 5 ++++- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/lib/galaxy/datatypes/interval.py b/lib/galaxy/datatypes/interval.py index 20be025b938..d99cdc78265 100644 --- a/lib/galaxy/datatypes/interval.py +++ b/lib/galaxy/datatypes/interval.py @@ -44,6 +44,7 @@ class Interval( Tabular ): MetadataElement( name="strandCol", desc="Strand column", param=metadata.ColumnParameter, optional=True ) MetadataElement( name="dbkey", desc="Database/Build", default="?", param=metadata.SelectParameter, multiple=False, values=util.dbnames ) + MetadataElement( name="columns", default=3, desc="Number of columns", readonly=True ) def __init__(self, **kwd): @@ -187,6 +188,7 @@ class Bed( Interval ): MetadataElement( name="strandCol", desc="Strand column", param=metadata.ColumnParameter, optional=True ) MetadataElement( name="dbkey", desc="Database/Build", default=None, param=metadata.SelectParameter, multiple=False, values=util.dbnames ) + MetadataElement( name="columns", default=3, desc="Number of columns", readonly=True ) def missing_meta( self, dataset ): """Checks for empty meta values""" @@ -204,18 +206,20 @@ class Bed( Interval ): valid_bed_data = False if dataset.has_data(): for i, line in enumerate( file(dataset.file_name) ): - line = line.strip() - if len(line) > 0 and ( line.startswith('chr') or line.startswith('scaff') ): + line = line.rstrip('\r\n') + if line and len(line) > 0 and ( line.startswith('chr') or line.startswith('scaff') ): valid_bed_data = True elems = line.split("\t") if len(elems) < 6: - dataset.metadata.strandCol = 0 + dataset.metadata.is_strandCol = "false" + dataset.metadata.strandCol = None dataset.mark_metadata_changed() break if i == 30: break if not valid_bed_data: - dataset.metadata.strandCol = 0 + dataset.metadata.is_strandCol = "false" + dataset.metadata.strandCol = None dataset.mark_metadata_changed() def as_ucsc_display_file( self, dataset, **kwd ): @@ -259,6 +263,7 @@ class Gff( Tabular ): """Add metadata elements""" MetadataElement( name="dbkey", desc="Database/Build", default="?", param=metadata.SelectParameter, multiple=False, values=util.dbnames ) + MetadataElement( name="columns", default=9, desc="Number of columns", readonly=True ) def __init__(self, **kwd): """Initialize datatype, by adding GBrowse display app""" @@ -331,6 +336,7 @@ class Wiggle( Tabular ): """Tab delimited data in wiggle format""" MetadataElement( name="dbkey", desc="Database/Build", default="?", param=metadata.SelectParameter, multiple=False, values=util.dbnames ) + MetadataElement( name="columns", default=3, desc="Number of columns", readonly=True ) def make_html_table(self, data): return Tabular.make_html_table(self, data, skipchar='#') diff --git a/lib/galaxy/datatypes/tabular.py b/lib/galaxy/datatypes/tabular.py index ccbf4fab4ac..50b147232fc 100644 --- a/lib/galaxy/datatypes/tabular.py +++ b/lib/galaxy/datatypes/tabular.py @@ -19,10 +19,7 @@ class Tabular( data.Text ): """Tab delimited data""" """Add metadata elements""" - MetadataElement( name="columns", - default=0, - desc="Number of columns", - readonly=True ) + MetadataElement( name="columns", default=0, desc="Number of columns", readonly=True ) MetadataElement( name="dbkey", desc="Database/Build", default="?", param=metadata.SelectParameter, multiple=False, values=util.dbnames ) @@ -85,10 +82,14 @@ class Tabular( data.Text ): maxcols = 0 count = 0 for line in open( dataset.file_name ): - count += 1 - if count > 1000: break - cols = len( line.split("\t") ) - if cols > maxcols: maxcols = cols + line = line.rstrip('\r\n') + if line and not line.startswith( '#' ): + count += 1 + if count > 1000: + break + cols = len( line.split("\t") ) + if cols > maxcols: + maxcols = cols setattr( dataset.metadata, "columns", maxcols ) except: pass diff --git a/test/functional/test_basic.py b/test/functional/test_basic.py index abbdac00a8c..3523391148a 100644 --- a/test/functional/test_basic.py +++ b/test/functional/test_basic.py @@ -41,7 +41,10 @@ class BasicFunctions(TwillTestCase): # #self.edit_data(hid=1, dbkey='hg15', chromCol='1', info='foo') #self.check_history('hg15 Testdata interval foo') - self.edit_data(hid=1, dbkey='hg16', is_strandCol='') + """ + TODO: Ian make sure this test is functioning as you expect... + """ + self.edit_data(hid=1, dbkey='hg16', is_strandCol="true") self.check_history('hg16 Testdata bed') def test_delete(self):