mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
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:
@@ -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"""
|
||||
|
||||
@@ -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 ):
|
||||
"""
|
||||
"""
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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 ):
|
||||
"""
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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>
|
||||
|
||||
Reference in New Issue
Block a user