Change History.copy() back to use datasets rather than active_datasets. Add checks in set_peek() to properly set peek on purged datasets. Fixes sharing a history that contains purged datasets.

This commit is contained in:
Greg Von Kuster
2009-01-15 10:49:01 -05:00
parent d46171ea21
commit b7aaa17bc3
9 changed files with 169 additions and 78 deletions
+21 -9
View File
@@ -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 = ['<table cellspacing="0" cellpadding="3">']
@@ -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"""
+14 -7
View File
@@ -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 ):
"""
"""
+73 -41
View File
@@ -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
+8 -4
View File
@@ -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 )
+8 -4
View File
@@ -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:
+18 -6
View File
@@ -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 ):
"""
+6 -2
View File
@@ -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
+15 -3
View File
@@ -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()
+6 -2
View File
@@ -6,14 +6,18 @@
echoes parameters
</description>
<command interpreter="python">echo.py $input $output </command>
<command interpreter="python">echo.py $input $database $output </command>
<inputs>
<param format="tabular" name="input" type="data" label="Input stuff"/>
<param type="select" name="database" label="Database">
<option value="alignseq.loc">Human (hg18)</option>
<option value="faseq.loc">Fly (dm3)</option>
</param>
</inputs>
<outputs>
<data format="input" name="output" />
<data format="input" name="output" label="Blat on ${database.value_label}" />
</outputs>
</tool>