diff --git a/lib/galaxy/datatypes/data.py b/lib/galaxy/datatypes/data.py
index 6be6f808f51..db8188a38fa 100644
--- a/lib/galaxy/datatypes/data.py
+++ b/lib/galaxy/datatypes/data.py
@@ -103,8 +103,12 @@ class Data( object ):
return False
def set_peek( self, dataset ):
"""Set the peek and blurb text"""
- dataset.peek = ''
- dataset.blurb = 'data'
+ if not dataset.dataset.purged:
+ dataset.peek = ''
+ dataset.blurb = 'data'
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def display_peek(self, dataset):
"""Create HTML table, used for displaying peek"""
out = ['
']
@@ -275,19 +279,27 @@ class Text( Data ):
return 'text/plain'
def set_peek( self, dataset, line_count=None ):
- dataset.peek = get_file_peek( dataset.file_name )
- if line_count is None:
- dataset.blurb = "%s lines" % util.commaify( str( get_line_count( dataset.file_name ) ) )
+ if not dataset.dataset.purged:
+ # The file must exist on disk for the get_file_peek() method
+ dataset.peek = get_file_peek( dataset.file_name )
+ if line_count is None:
+ dataset.blurb = "%s lines" % util.commaify( str( get_line_count( dataset.file_name ) ) )
+ else:
+ dataset.blurb = "%s lines" % util.commaify( str( line_count ) )
else:
- dataset.blurb = "%s lines" % util.commaify( str( line_count ) )
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
class Binary( Data ):
"""Binary data"""
-
def set_peek( self, dataset ):
"""Set the peek and blurb text"""
- dataset.peek = 'binary data'
- dataset.blurb = 'data'
+ if not dataset.dataset.purged:
+ dataset.peek = 'binary data'
+ dataset.blurb = 'data'
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def get_test_fname( fname ):
"""Returns test data filename"""
diff --git a/lib/galaxy/datatypes/genetics.py b/lib/galaxy/datatypes/genetics.py
index 9857eb7d36d..10d4ad9dc28 100644
--- a/lib/galaxy/datatypes/genetics.py
+++ b/lib/galaxy/datatypes/genetics.py
@@ -43,11 +43,14 @@ class GenomeGraphs( Tabular ):
def set_peek( self, dataset ):
"""Set the peek and blurb text"""
- dataset.peek = data.get_file_peek( dataset.file_name )
- ## dataset.peek = self.make_html_table( dataset.peek )
- dataset.blurb = util.commaify( str( data.get_line_count( dataset.file_name ) ) ) + " rows"
- #i don't think set_meta should not be called here, it should be called separately
- self.set_meta( dataset )
+ if not dataset.dataset.purged:
+ dataset.peek = data.get_file_peek( dataset.file_name )
+ dataset.blurb = util.commaify( str( data.get_line_count( dataset.file_name ) ) ) + " rows"
+ #i don't think set_meta should not be called here, it should be called separately
+ self.set_meta( dataset )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def get_estimated_display_viewport( self, dataset ):
"""Return a chrom, start, stop tuple for viewing a file."""
@@ -130,8 +133,12 @@ class SNPMatrix(Rgenetics):
file_ext="snpmatrix"
def set_peek( self, dataset ):
- dataset.peek = "Binary RGenetics file"
- dataset.blurb = data.nice_size( dataset.get_size() )
+ if not dataset.dataset.purged:
+ dataset.peek = "Binary RGenetics file"
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def sniff( self, filename ):
"""
"""
diff --git a/lib/galaxy/datatypes/images.py b/lib/galaxy/datatypes/images.py
index 14d9d6cd756..dab8e4a636e 100644
--- a/lib/galaxy/datatypes/images.py
+++ b/lib/galaxy/datatypes/images.py
@@ -14,9 +14,13 @@ class Ab1( data.Data ):
"""Class describing an ab1 binary sequence file"""
file_ext = "ab1"
def set_peek( self, dataset ):
- export_url = "/history_add_to?"+urlencode({'history_id':dataset.history_id,'ext':'ab1','name':'ab1 sequence','info':'Sequence file','dbkey':dataset.dbkey})
- dataset.peek = "Binary ab1 sequence file"
- dataset.blurb = data.nice_size( dataset.get_size() )
+ if not dataset.dataset.purged:
+ export_url = "/history_add_to?" + urlencode({'history_id':dataset.history_id,'ext':'ab1','name':'ab1 sequence','info':'Sequence file','dbkey':dataset.dbkey})
+ dataset.peek = "Binary ab1 sequence file"
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def display_peek(self, dataset):
try:
return dataset.peek
@@ -27,9 +31,13 @@ class Scf( data.Data ):
"""Class describing an scf binary sequence file"""
file_ext = "scf"
def set_peek( self, dataset ):
- export_url = "/history_add_to?"+urlencode({'history_id':dataset.history_id,'ext':'scf','name':'scf sequence','info':'Sequence file','dbkey':dataset.dbkey})
- dataset.peek = "Binary scf sequence file"
- dataset.blurb = data.nice_size( dataset.get_size() )
+ if not dataset.dataset.purged:
+ export_url = "/history_add_to?" + urlencode({'history_id':dataset.history_id,'ext':'scf','name':'scf sequence','info':'Sequence file','dbkey':dataset.dbkey})
+ dataset.peek = "Binary scf sequence file"
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def display_peek(self, dataset):
try:
return dataset.peek
@@ -40,10 +48,14 @@ class Binseq( data.Data ):
"""Class describing a zip archive of binary sequence files"""
file_ext = "binseq.zip"
def set_peek( self, dataset ):
- zip_file = zipfile.ZipFile( dataset.file_name, "r" )
- num_files = len( zip_file.namelist() )
- dataset.peek = "Archive of %s binary sequence files" % ( str( num_files ) )
- dataset.blurb = data.nice_size( dataset.get_size() )
+ if not dataset.dataset.purged:
+ zip_file = zipfile.ZipFile( dataset.file_name, "r" )
+ num_files = len( zip_file.namelist() )
+ dataset.peek = "Archive of %s binary sequence files" % ( str( num_files ) )
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def display_peek(self, dataset):
try:
return dataset.peek
@@ -57,10 +69,14 @@ class Txtseq( data.Data ):
"""Class describing a zip archive of text sequence files"""
file_ext = "txtseq.zip"
def set_peek( self, dataset ):
- zip_file = zipfile.ZipFile( dataset.file_name, "r" )
- num_files = len( zip_file.namelist() )
- dataset.peek = "Archive of %s text sequence files" % ( str( num_files ) )
- dataset.blurb = data.nice_size( dataset.get_size() )
+ if not dataset.dataset.purged:
+ zip_file = zipfile.ZipFile( dataset.file_name, "r" )
+ num_files = len( zip_file.namelist() )
+ dataset.peek = "Archive of %s text sequence files" % ( str( num_files ) )
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def display_peek(self, dataset):
try:
return dataset.peek
@@ -73,8 +89,12 @@ class Txtseq( data.Data ):
class Image( data.Data ):
"""Class describing an image"""
def set_peek( self, dataset ):
- dataset.peek = 'Image in %s format' % dataset.extension
- dataset.blurb = data.nice_size( dataset.get_size() )
+ if not dataset.dataset.purged:
+ dataset.peek = 'Image in %s format' % dataset.extension
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def create_applet_tag_peek( class_name, archive, params ):
text = """
@@ -104,18 +124,22 @@ class Gmaj( data.Data ):
"""Class describing a GMAJ Applet"""
file_ext = "gmaj.zip"
def set_peek( self, dataset ):
- params = {
- "bundle":"display?id=%s&tofile=yes&toext=.zip" % dataset.id,
- "buttonlabel": "Launch GMAJ",
- "nobutton": "false",
- "urlpause" :"100",
- "debug": "false",
- "posturl": "history_add_to?%s" % urlencode( { 'history_id': dataset.history_id, 'ext': 'maf', 'name': 'GMAJ Output on data %s' % dataset.hid, 'info': 'Added by GMAJ', 'dbkey': dataset.dbkey } )
- }
- class_name = "edu.psu.bx.gmaj.MajApplet.class"
- archive = "/static/gmaj/gmaj.jar"
- dataset.peek = create_applet_tag_peek( class_name, archive, params )
- dataset.blurb = 'GMAJ Multiple Alignment Viewer'
+ if not dataset.dataset.purged:
+ params = {
+ "bundle":"display?id=%s&tofile=yes&toext=.zip" % dataset.id,
+ "buttonlabel": "Launch GMAJ",
+ "nobutton": "false",
+ "urlpause" :"100",
+ "debug": "false",
+ "posturl": "history_add_to?%s" % urlencode( { 'history_id': dataset.history_id, 'ext': 'maf', 'name': 'GMAJ Output on data %s' % dataset.hid, 'info': 'Added by GMAJ', 'dbkey': dataset.dbkey } )
+ }
+ class_name = "edu.psu.bx.gmaj.MajApplet.class"
+ archive = "/static/gmaj/gmaj.jar"
+ dataset.peek = create_applet_tag_peek( class_name, archive, params )
+ dataset.blurb = 'GMAJ Multiple Alignment Viewer'
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def display_peek(self, dataset):
try:
return dataset.peek
@@ -147,8 +171,12 @@ class Html( data.Text ):
"""Class describing an html file"""
file_ext = "html"
def set_peek( self, dataset ):
- dataset.peek = "HTML file"
- dataset.blurb = data.nice_size( dataset.get_size() )
+ if not dataset.dataset.purged:
+ dataset.peek = "HTML file"
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def get_mime(self):
"""Returns the mime type of the datatype"""
return 'text/html'
@@ -176,17 +204,21 @@ class Laj( data.Text ):
"""Class describing a LAJ Applet"""
file_ext = "laj"
def set_peek( self, dataset ):
- params = {
- "alignfile1": "display?id=%s" % dataset.id,
- "buttonlabel": "Launch LAJ",
- "title": "LAJ in Galaxy",
- "posturl": "history_add_to?%s" % urlencode( { 'history_id': dataset.history_id, 'ext': 'lav', 'name': 'LAJ Output', 'info': 'Added by LAJ', 'dbkey': dataset.dbkey } ),
- "noseq": "true"
- }
- class_name = "edu.psu.cse.bio.laj.LajApplet.class"
- archive = "/static/laj/laj.jar"
- dataset.peek = create_applet_tag_peek( class_name, archive, params )
- dataset.blurb = 'LAJ Multiple Alignment Viewer'
+ if not dataset.dataset.purged:
+ params = {
+ "alignfile1": "display?id=%s" % dataset.id,
+ "buttonlabel": "Launch LAJ",
+ "title": "LAJ in Galaxy",
+ "posturl": "history_add_to?%s" % urlencode( { 'history_id': dataset.history_id, 'ext': 'lav', 'name': 'LAJ Output', 'info': 'Added by LAJ', 'dbkey': dataset.dbkey } ),
+ "noseq": "true"
+ }
+ class_name = "edu.psu.cse.bio.laj.LajApplet.class"
+ archive = "/static/laj/laj.jar"
+ dataset.peek = create_applet_tag_peek( class_name, archive, params )
+ dataset.blurb = 'LAJ Multiple Alignment Viewer'
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def display_peek(self, dataset):
try:
return dataset.peek
diff --git a/lib/galaxy/datatypes/interval.py b/lib/galaxy/datatypes/interval.py
index 940af654523..3ee543ca454 100644
--- a/lib/galaxy/datatypes/interval.py
+++ b/lib/galaxy/datatypes/interval.py
@@ -59,11 +59,15 @@ class Interval( Tabular ):
def set_peek( self, dataset, line_count=None ):
"""Set the peek and blurb text"""
- dataset.peek = data.get_file_peek( dataset.file_name )
- if line_count is None:
- dataset.blurb = "%s regions" % util.commaify( str( data.get_line_count( dataset.file_name ) ) )
+ if not dataset.dataset.purged:
+ dataset.peek = data.get_file_peek( dataset.file_name )
+ if line_count is None:
+ dataset.blurb = "%s regions" % util.commaify( str( data.get_line_count( dataset.file_name ) ) )
+ else:
+ dataset.blurb = "%s regions" % util.commaify( str( line_count ) )
else:
- dataset.blurb = "%s regions" % util.commaify( str( line_count ) )
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def set_meta( self, dataset, overwrite = True, first_line_is_header = False, **kwd ):
Tabular.set_meta( self, dataset, overwrite = overwrite, skip = 0 )
diff --git a/lib/galaxy/datatypes/qualityscore.py b/lib/galaxy/datatypes/qualityscore.py
index cfd5b280adb..188cd413b0d 100644
--- a/lib/galaxy/datatypes/qualityscore.py
+++ b/lib/galaxy/datatypes/qualityscore.py
@@ -16,11 +16,15 @@ class QualityScore ( data.Text ):
file_ext = "qual"
def set_peek( self, dataset, line_count=None ):
- dataset.peek = data.get_file_peek( dataset.file_name )
- if line_count is None:
- dataset.blurb = data.nice_size( dataset.get_size() )
+ if not dataset.dataset.purged:
+ dataset.peek = data.get_file_peek( dataset.file_name )
+ if line_count is None:
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.blurb = "%s lines, Quality score file" % util.commaify( str( line_count ) )
else:
- dataset.blurb = "%s lines, Quality score file" % util.commaify( str( line_count ) )
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def display_peek(self, dataset):
try:
diff --git a/lib/galaxy/datatypes/sequence.py b/lib/galaxy/datatypes/sequence.py
index 2ec55345cc3..13144ef652c 100644
--- a/lib/galaxy/datatypes/sequence.py
+++ b/lib/galaxy/datatypes/sequence.py
@@ -31,8 +31,12 @@ class Fasta( Sequence ):
file_ext = "fasta"
def set_peek( self, dataset ):
- dataset.peek = data.get_file_peek( dataset.file_name )
- dataset.blurb = data.nice_size( dataset.get_size() )
+ if not dataset.dataset.purged:
+ dataset.peek = data.get_file_peek( dataset.file_name )
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def sniff( self, filename ):
"""
@@ -86,8 +90,12 @@ class csFasta( Sequence ):
file_ext = "csfasta"
def set_peek( self, dataset ):
- dataset.peek = data.get_file_peek( dataset.file_name )
- dataset.blurb = data.nice_size( dataset.get_size() )
+ if not dataset.dataset.purged:
+ dataset.peek = data.get_file_peek( dataset.file_name )
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def sniff( self, filename ):
"""
@@ -108,8 +116,12 @@ class FastqSolexa( Sequence ):
file_ext = "fastqsolexa"
def set_peek( self, dataset ):
- dataset.peek = data.get_file_peek( dataset.file_name )
- dataset.blurb = data.nice_size( dataset.get_size() )
+ if not dataset.dataset.purged:
+ dataset.peek = data.get_file_peek( dataset.file_name )
+ dataset.blurb = data.nice_size( dataset.get_size() )
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def sniff( self, filename ):
"""
diff --git a/lib/galaxy/datatypes/xml.py b/lib/galaxy/datatypes/xml.py
index d658e33308f..e496aad00ab 100644
--- a/lib/galaxy/datatypes/xml.py
+++ b/lib/galaxy/datatypes/xml.py
@@ -12,8 +12,12 @@ class BlastXml( data.Text ):
file_ext = "blastxml"
def set_peek( self, dataset ):
"""Set the peek and blurb text"""
- dataset.peek = data.get_file_peek( dataset.file_name )
- dataset.blurb = 'NCBI Blast XML data'
+ if not dataset.dataset.purged:
+ dataset.peek = data.get_file_peek( dataset.file_name )
+ dataset.blurb = 'NCBI Blast XML data'
+ else:
+ dataset.peek = 'file does not exist'
+ dataset.blurb = 'file purged from disk'
def sniff( self, filename ):
"""
Determines whether the file is blastxml
diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py
index e3fe89703fa..1586d90c067 100644
--- a/lib/galaxy/model/__init__.py
+++ b/lib/galaxy/model/__init__.py
@@ -287,14 +287,26 @@ class HistoryDatasetAssociation( object ):
return self.datatype.find_conversion_destination( self, accepted_formats, datatypes_registry, **kwd )
def copy( self, copy_children = False, parent_id = None ):
- des = 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 )
+ des = 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 )
des.flush()
des.set_size()
des.metadata = self.metadata #need to set after flushed, as MetadataFiles require dataset.id
if copy_children:
for child in self.children:
child_copy = child.copy( copy_children = copy_children, parent_id = des.id )
- des.set_peek() #in some instances peek relies on dataset_id, i.e. gmaj.zip for viewing MAFs
+ # In some instances peek relies on dataset_id ( e.g., gmaj.zip for viewing MAFs )
+ des.set_peek()
des.flush()
return des
@@ -376,7 +388,7 @@ class History( object ):
des.flush()
des.name = self.name
des.user_id = self.user_id
- for data in self.active_datasets:
+ for data in self.datasets:
new_data = data.copy( copy_children = True )
des.add_dataset( new_data )
new_data.flush()
diff --git a/tools/data_source/echo.xml b/tools/data_source/echo.xml
index 860e6a12656..e3c3a2a84a2 100644
--- a/tools/data_source/echo.xml
+++ b/tools/data_source/echo.xml
@@ -6,14 +6,18 @@
echoes parameters
- echo.py $input $output
+ echo.py $input $database $output
+
+
+
+
-
+