diff --git a/lib/galaxy/datatypes/data.py b/lib/galaxy/datatypes/data.py index afa4f351b1e..ee19a938c69 100644 --- a/lib/galaxy/datatypes/data.py +++ b/lib/galaxy/datatypes/data.py @@ -407,7 +407,15 @@ class Text( Data ): else: # Number of lines is not known ( this should not happen ), and auto-detect is # needed to set metadata - dataset.blurb = "? lines" + # This can happen when the file is larger than max_optional_metadata_filesize. + # Perform a rough estimate by extrapolating number of lines from a small read. + sample_size = min(self.max_optional_metadata_filesize, 1048576) + dataset_fh = open( dataset.file_name ) + dataset_read = dataset_fh.read(sample_size) + dataset_fh.close() + sample_lines = dataset_read.count('\n') + est_lines = int(sample_lines * (dataset.get_size() / float(sample_size))) + dataset.blurb = "~%s lines" % util.commaify(str(est_lines)) else: dataset.blurb = "%s lines" % util.commaify( str( line_count ) ) else: