First pass removing to_json_string/from_json_string.

This commit is contained in:
Dannon Baker
2014-09-08 16:41:53 -04:00
parent 1d32e43a37
commit 9be7118d6a
107 changed files with 1257 additions and 246 deletions
@@ -52,4 +52,4 @@ def main():
FileArrayTreeDict.dict_to_file( d, open( out_fname, "w" ) )
if __name__ == "__main__":
main()
main()
@@ -49,4 +49,4 @@ def compute_fasta_length( fasta_file, out_file, keep_first_char, keep_first_word
out.close()
if __name__ == "__main__" :
compute_fasta_length( sys.argv[1], sys.argv[2], sys.argv[3], True )
compute_fasta_length( sys.argv[1], sys.argv[2], sys.argv[3], True )
@@ -40,4 +40,4 @@ def __main__():
print >> out, "%s\t%s" %( fasta_title, sequence )
out.close()
if __name__ == "__main__" : __main__()
if __name__ == "__main__" : __main__()
@@ -52,4 +52,4 @@ def __main__():
outfile.close()
if __name__ == "__main__": __main__()
if __name__ == "__main__": __main__()
@@ -149,4 +149,4 @@ if __name__ == "__main__":
fix_strand=True )
main( interval, coverage )
temp_file.close()
coverage.close()
coverage.close()
@@ -26,4 +26,4 @@ def main():
FileArrayTreeDict.dict_to_file( d, open( out_fname, "w" ) )
if __name__ == "__main__":
main()
main()
+2 -2
View File
@@ -14,7 +14,7 @@ from galaxy.datatypes import metadata
from galaxy.datatypes.checkers import is_gzip
from galaxy.datatypes.metadata import MetadataElement
from galaxy.datatypes.sniff import get_headers, get_test_fname
from galaxy.util.json import to_json_string
from galaxy.util.json import dumps
import dataproviders
log = logging.getLogger(__name__)
@@ -272,7 +272,7 @@ class Tabular( data.Text ):
while cursor and ck_data[-1] != '\n':
ck_data += cursor
cursor = f.read(1)
return to_json_string( { 'ck_data': util.unicodify( ck_data ), 'ck_index': ck_index + 1 } )
return dumps( { 'ck_data': util.unicodify( ck_data ), 'ck_index': ck_index + 1 } )
def display_data(self, trans, dataset, preview=False, filename=None, to_ext=None, chunk=None, **kwd):
preview = util.string_as_bool( preview )
+1 -1
View File
@@ -1,3 +1,3 @@
"""
Utilities for Galaxy datatypes.
"""
"""
@@ -1,4 +1,4 @@
from galaxy.util.json import to_json_string, from_json_string
from galaxy.util.json import dumps, loads
from galaxy.util.template import fill_template
import logging
@@ -44,7 +44,7 @@ class ExternalServiceActionJSONResultHandler( ExternalServiceActionResultHandler
type = 'json_display'
def handle_result( self, result, param_dict, trans ):
rval = from_json_string( result.content )
rval = loads( result.content )
return trans.fill_template( '/external_services/generic_json.mako', result = rval, param_dict = param_dict, action=self.parent )
class ExternalServiceActionJQueryGridResultHandler( ExternalServiceActionResultHandler ):
@@ -53,7 +53,7 @@ class ExternalServiceActionJQueryGridResultHandler( ExternalServiceActionResultH
type = 'jquery_grid'
def handle_result( self, result, param_dict, trans ):
rval = from_json_string( result.content )
rval = loads( result.content )
return trans.fill_template( '/external_services/generic_jquery_grid.mako', result = rval, param_dict = param_dict, action=self.parent )
result_type_to_class = {}
+3 -3
View File
@@ -25,7 +25,7 @@ from galaxy.jobs.mapper import JobRunnerMapper
from galaxy.jobs.runners import BaseJobRunner, JobState
from galaxy.util.bunch import Bunch
from galaxy.util.expressions import ExpressionContext
from galaxy.util.json import from_json_string
from galaxy.util.json import loads
from galaxy.util import unicodify
from .output_checker import check_output
@@ -723,7 +723,7 @@ class JobWrapper( object ):
self.job_runner_mapper = JobRunnerMapper( self, queue.dispatcher.url_to_destination, self.app.job_config )
self.params = None
if job.params:
self.params = from_json_string( job.params )
self.params = loads( job.params )
if use_persisted_destination:
self.job_runner_mapper.cached_job_destination = JobDestination( from_job=job )
@@ -1390,7 +1390,7 @@ class JobWrapper( object ):
if os.path.exists( meta_file ):
for line in open( meta_file, 'r' ):
try:
line = from_json_string( line )
line = loads( line )
assert 'type' in line
except:
log.exception( '(%s) Got JSON data from tool, but data is improperly formatted or no "type" key in data' % self.job_id )
+1 -1
View File
@@ -1,4 +1,4 @@
"""
This package contains job action classes.
"""
"""
+2 -2
View File
@@ -5,7 +5,7 @@ Actions to be run at job completion. Currently only used in workflows.
import datetime
import logging
from galaxy.util import send_mail
from galaxy.util.json import to_json_string
from galaxy.util.json import dumps
log = logging.getLogger( __name__ )
@@ -461,7 +461,7 @@ class ActionBox(object):
else:
# Not pja stuff.
pass
return to_json_string(npd)
return dumps(npd)
@classmethod
def get_add_list(cls):
@@ -83,7 +83,7 @@ class SMRTPortalPlugin( DataTransfer ):
return self.job_states.INVALID
url = 'http://' + job.params[ 'smrt_host' ] + self.api_path + '/Jobs/' + job.params[ 'smrt_job_id' ] + '/Status'
r = urllib2.urlopen( url )
status = json.from_json_string( r.read() )
status = json.loads( r.read() )
# TODO: error handling: unexpected json or bad response, bad url, etc.
if status[ 'Code' ] == 'Completed':
log.debug( "SMRT Portal job '%s' is Completed. Initiating transfer." % job.params[ 'smrt_job_id' ] )
+1 -1
View File
@@ -82,7 +82,7 @@ class TransferManager( object ):
sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
sock.settimeout( 5 )
sock.connect( ( 'localhost', tj.socket ) )
sock.send( json.to_json_string( request ) )
sock.send( json.dumps( request ) )
response = sock.recv( 8192 )
valid, response = json.validate_jsonrpc_response( response, id=request['id'] )
if not valid:
+2 -2
View File
@@ -4,7 +4,7 @@ Mixins for transaction-like objects.
import os
from galaxy.util.json import to_json_string
from galaxy.util.json import dumps
from galaxy.util import bunch
class ProvidesAppContext( object ):
@@ -19,7 +19,7 @@ class ProvidesAppContext( object ):
Application-level logging of user actions.
"""
if self.app.config.log_actions:
action = self.app.model.UserAction(action=action, context=context, params=unicode( to_json_string( params ) ) )
action = self.app.model.UserAction(action=action, context=context, params=unicode( dumps( params ) ) )
try:
if user:
action.user = user
@@ -10,7 +10,7 @@ from migrate.changeset import *
from sqlalchemy.exc import *
from galaxy.model.custom_types import *
from galaxy.util.json import from_json_string, to_json_string
from galaxy.util.json import loads, dumps
import datetime
now = datetime.datetime.utcnow
@@ -62,7 +62,7 @@ def upgrade(migrate_engine):
for r in result:
sample_id = r[0]
if r[1]:
dataset_files = from_json_string(r[1])
dataset_files = loads(r[1])
for df in dataset_files:
if type(df) == type(dict()):
cmd = "INSERT INTO sample_dataset VALUES (%s, %s, %s, %s, '%s', '%s', '%s', '%s', '%s')"
@@ -6,7 +6,7 @@ from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
from galaxy.util.json import from_json_string
from galaxy.util.json import loads
import logging
log = logging.getLogger( __name__ )
@@ -41,7 +41,7 @@ def upgrade(migrate_engine):
viz_id = viz['viz_id']
viz_rev_id = viz['viz_rev_id']
if viz[Visualization_revision_table.c.config]:
dbkey = from_json_string(viz[Visualization_revision_table.c.config]).get('dbkey', "").replace("'", "\\'")
dbkey = loads(viz[Visualization_revision_table.c.config]).get('dbkey', "").replace("'", "\\'")
migrate_engine.execute("UPDATE visualization_revision SET dbkey='%s' WHERE id=%s" % (dbkey, viz_rev_id))
migrate_engine.execute("UPDATE visualization SET dbkey='%s' WHERE id=%s" % (dbkey, viz_id))
@@ -10,7 +10,7 @@ from migrate.changeset import *
from sqlalchemy.exc import *
from galaxy.model.custom_types import *
from galaxy.util.json import from_json_string, to_json_string
from galaxy.util.json import loads, dumps
import datetime
now = datetime.datetime.utcnow
@@ -46,13 +46,13 @@ def upgrade(migrate_engine):
id = int(r[0])
notify_old = r[1]
notify_new = dict(email=[], sample_states=[], body='', subject='')
cmd = "update request set notification='%s' where id=%i" % (to_json_string(notify_new), id)
cmd = "update request set notification='%s' where id=%i" % (dumps(notify_new), id)
migrate_engine.execute( cmd )
cmd = "SELECT id, notification FROM request"
result = migrate_engine.execute( cmd )
for r in result:
rr = from_json_string(str(r[1]))
rr = loads(str(r[1]))
# remove the 'notify' column for non-sqlite databases.
if migrate_engine.name != 'sqlite':
@@ -10,7 +10,7 @@ from migrate.changeset import *
from sqlalchemy.exc import *
from galaxy.model.custom_types import *
from galaxy.util.json import from_json_string, to_json_string
from galaxy.util.json import loads, dumps
import datetime
now = datetime.datetime.utcnow
@@ -9,7 +9,7 @@ from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
from sqlalchemy.exc import *
from galaxy.util.json import from_json_string, to_json_string
from galaxy.util.json import loads, dumps
from galaxy.model.custom_types import _sniffnfix_pg9_hex
import datetime
@@ -53,13 +53,13 @@ def upgrade(migrate_engine):
fields = str( row[1] )
if not fields.strip():
continue
fields_list = from_json_string( _sniffnfix_pg9_hex( fields ) )
fields_list = loads( _sniffnfix_pg9_hex( fields ) )
if len( fields_list ):
for index, field in enumerate( fields_list ):
field[ 'name' ] = 'field_%i' % index
field[ 'helptext' ] = field[ 'helptext' ].replace("'", "''").replace('"', "")
field[ 'label' ] = field[ 'label' ].replace("'", "''")
fields_json = to_json_string( fields_list )
fields_json = dumps( fields_list )
if migrate_engine.name == 'mysql':
cmd = "UPDATE form_definition AS f SET f.fields='%s' WHERE f.id=%i" %( fields_json, form_definition_id )
else:
@@ -76,16 +76,16 @@ def upgrade(migrate_engine):
if not str( row[1] ).strip():
continue
row1 = str(row[1]).replace('\n', '').replace('\r', '')
values_list = from_json_string( str( row1 ).strip() )
values_list = loads( str( row1 ).strip() )
if not str( row[2] ).strip():
continue
fields_list = from_json_string( str( row[2] ).strip() )
fields_list = loads( str( row[2] ).strip() )
if fields_list and type(values_list) == type(list()):
values_dict = {}
for field_index, field in enumerate( fields_list ):
field_name = field[ 'name' ]
values_dict[ field_name ] = get_value(values_list, field_index )
cmd = "UPDATE form_values SET content='%s' WHERE id=%i" %( to_json_string( values_dict ), form_values_id )
cmd = "UPDATE form_values SET content='%s' WHERE id=%i" %( dumps( values_dict ), form_values_id )
migrate_engine.execute( cmd )
def downgrade(migrate_engine):
@@ -110,17 +110,17 @@ def downgrade(migrate_engine):
form_values_id = int( row[0] )
if not str( row[1] ).strip():
continue
values_dict = from_json_string( str( row[1] ) )
values_dict = loads( str( row[1] ) )
if not str( row[2] ).strip():
continue
fields_list = from_json_string( str( row[2] ) )
fields_list = loads( str( row[2] ) )
if fields_list:
values_list = []
for field_index, field in enumerate( fields_list ):
field_name = field[ 'name' ]
field_value = values_dict[ field_name ]
values_list.append( field_value )
cmd = "UPDATE form_values SET content='%s' WHERE id=%i" %( to_json_string( values_list ), form_values_id )
cmd = "UPDATE form_values SET content='%s' WHERE id=%i" %( dumps( values_list ), form_values_id )
migrate_engine.execute( cmd )
# remove name attribute from the field column of the form_definition table
cmd = "SELECT f.id, f.fields FROM form_definition AS f"
@@ -130,13 +130,13 @@ def downgrade(migrate_engine):
fields = str( row[1] )
if not fields.strip():
continue
fields_list = from_json_string( _sniffnfix_pg9_hex( fields ) )
fields_list = loads( _sniffnfix_pg9_hex( fields ) )
if len( fields_list ):
for index, field in enumerate( fields_list ):
if field.has_key( 'name' ):
del field[ 'name' ]
if migrate_engine.name == 'mysql':
cmd = "UPDATE form_definition AS f SET f.fields='%s' WHERE f.id=%i" %( to_json_string( fields_list ), form_definition_id )
cmd = "UPDATE form_definition AS f SET f.fields='%s' WHERE f.id=%i" %( dumps( fields_list ), form_definition_id )
else:
cmd = "UPDATE form_definition SET fields='%s' WHERE id=%i" %( to_json_string( fields_list ), form_definition_id )
cmd = "UPDATE form_definition SET fields='%s' WHERE id=%i" %( dumps( fields_list ), form_definition_id )
migrate_engine.execute( cmd )
@@ -13,7 +13,7 @@ from sqlalchemy.exc import *
from galaxy.model.custom_types import *
from galaxy.util.json import from_json_string, to_json_string
from galaxy.util.json import loads, dumps
import datetime
now = datetime.datetime.utcnow
@@ -104,7 +104,7 @@ def create_sequencer_form_definition():
'layout': 'none',
'default': '' } )
form_definition_type = 'Sequencer Information Form'
form_definition_layout = to_json_string('[]')
form_definition_layout = dumps('[]')
cmd = "INSERT INTO form_definition VALUES ( %s, %s, %s, '%s', '%s', %s, '%s', '%s', '%s' )"
cmd = cmd % ( nextval( 'form_definition' ),
localtimestamp(),
@@ -112,7 +112,7 @@ def create_sequencer_form_definition():
form_definition_name,
form_definition_desc,
form_definition_current_id,
to_json_string( form_definition_fields ),
dumps( form_definition_fields ),
form_definition_type,
form_definition_layout )
migrate_engine.execute( cmd )
@@ -134,7 +134,7 @@ def get_sequencer_id( sequencer_info ):
values = str( row[1] )
if not values.strip():
continue
values = from_json_string( values )
values = loads( values )
# proceed only if sequencer_info is a valid list
if values and type( values ) == type( dict() ):
if sequencer_info.get( 'host', '' ) == values.get( 'field_0', '' ) \
@@ -148,7 +148,7 @@ def get_sequencer_id( sequencer_info ):
def add_sequencer( sequencer_index, sequencer_form_definition_id, sequencer_info ):
'''Adds a new sequencer to the sequencer table along with its form values.'''
# Create a new form values record with the supplied sequencer information
values = to_json_string( { 'field_0': sequencer_info.get( 'host', '' ),
values = dumps( { 'field_0': sequencer_info.get( 'host', '' ),
'field_1': sequencer_info.get( 'username', '' ),
'field_2': sequencer_info.get( 'password', '' ),
'field_3': sequencer_info.get( 'data_dir', '' ),
@@ -233,7 +233,7 @@ def upgrade(migrate_engine):
# skip if sequencer_info is empty
if not sequencer_info.strip() or sequencer_info in ['None', 'null']:
continue
sequencer_info = from_json_string( sequencer_info.strip() )
sequencer_info = loads( sequencer_info.strip() )
# proceed only if sequencer_info is a valid dict
if sequencer_info and type( sequencer_info ) == type( dict() ):
# check if this sequencer has already been added to the sequencer table
@@ -277,9 +277,9 @@ def downgrade(migrate_engine):
result = migrate_engine.execute( cmd )
for row in result:
request_type_id = row[0]
seq_values = from_json_string( str( row[1] ) )
seq_values = loads( str( row[1] ) )
# create the datatx_info json dict
datatx_info = to_json_string( dict( host = seq_values.get( 'field_0', '' ),
datatx_info = dumps( dict( host = seq_values.get( 'field_0', '' ),
username = seq_values.get( 'field_1', '' ),
password = seq_values.get( 'field_2', '' ),
data_dir = seq_values.get( 'field_3', '' ),
@@ -15,7 +15,7 @@ from sqlalchemy.exc import *
from galaxy.model.custom_types import *
from galaxy.util.json import from_json_string, to_json_string
from galaxy.util.json import loads, dumps
import datetime
now = datetime.datetime.utcnow
@@ -9,7 +9,7 @@ from migrate.changeset import *
from sqlalchemy.exc import *
import binascii
from galaxy.util.json import from_json_string, to_json_string
from galaxy.util.json import loads, dumps
import logging
log = logging.getLogger( __name__ )
@@ -42,11 +42,11 @@ def upgrade(migrate_engine):
# first check if loading the dict from the json succeeds
# if that fails, it means that the content field is corrupted.
try:
field_values_dict = from_json_string( _sniffnfix_pg9_hex( str( row['field_values'] ) ) )
field_values_dict = loads( _sniffnfix_pg9_hex( str( row['field_values'] ) ) )
except Exception, e:
corrupted_rows = corrupted_rows + 1
# content field is corrupted
fields_list = from_json_string( _sniffnfix_pg9_hex( str( row['fdfields'] ) ) )
fields_list = loads( _sniffnfix_pg9_hex( str( row['fdfields'] ) ) )
field_values_str = _sniffnfix_pg9_hex( str( row['field_values'] ) )
try:
#Encoding errors? Just to be safe.
@@ -85,7 +85,7 @@ def upgrade(migrate_engine):
# add to the new values dict
field_values_dict[ field['name'] ] = value
# update the db
json_values = to_json_string(field_values_dict)
json_values = dumps(field_values_dict)
cmd = "UPDATE form_values SET content='%s' WHERE id=%i" %( json_values, int( row['id'] ) )
migrate_engine.execute( cmd )
try:
@@ -12,7 +12,7 @@ now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
from galaxy.model.custom_types import _sniffnfix_pg9_hex
from galaxy.util.json import from_json_string, to_json_string
from galaxy.util.json import loads, dumps
import sys, logging
log = logging.getLogger( __name__ )
@@ -77,7 +77,7 @@ def upgrade(migrate_engine):
for row in result:
if row[1]:
tool_shed_repository_id = row[0]
repository_metadata = from_json_string( _sniffnfix_pg9_hex( str( row[1] ) ) )
repository_metadata = loads( _sniffnfix_pg9_hex( str( row[1] ) ) )
# Create a new row in the tool table for each tool included in repository. We will NOT
# handle tool_version_associaions because we do not have the information we need to do so.
tools = repository_metadata.get( 'tools', [] )
@@ -22,4 +22,4 @@ def downgrade(migrate_engine):
try:
user.c.password.alter(type=String(40))
except:
log.exception( "Altering password column failed" )
log.exception( "Altering password column failed" )
@@ -54,4 +54,4 @@ def downgrade(migrate_engine):
user_active.drop()
user_activation_token.drop()
except Exception, e:
log.debug( "Dropping 'active' and 'activation_token' columns from galaxy_user table failed: %s" % ( str( e ) ) )
log.debug( "Dropping 'active' and 'activation_token' columns from galaxy_user table failed: %s" % ( str( e ) ) )
@@ -45,4 +45,4 @@ class TraceLoggerProxy(ConnectionProxy):
self.trace_logger.log( "sqlalchemy_query",
message="Query executed", statement=statement, parameters=parameters,
executemany=executemany, duration=duration )
return rval
return rval
+2 -2
View File
@@ -39,7 +39,7 @@ JobToInputLibraryDatasetAssociation, JobToInputDatasetAssociation, JobToOutputDa
Page, PageRevision)
from galaxy.model.tool_shed_install import ToolVersion
from galaxy.util.json import to_json_string
from galaxy.util.json import dumps
from sqlalchemy import and_
from sqlalchemy.orm import aliased
@@ -429,7 +429,7 @@ def job_param_filter(view, left, operator, right):
and_(
Job.id == alias.job_id,
alias.name == param_name,
alias.value == to_json_string(right)
alias.value == dumps(right)
)
)
@@ -1 +0,0 @@
../../../migrate/versions/0082_add_tool_shed_repository_table.py
@@ -0,0 +1,51 @@
"""
Migration script to add the tool_shed_repository table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import sys, logging
from galaxy.model.custom_types import *
from sqlalchemy.exc import *
import datetime
now = datetime.datetime.utcnow
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
# New table to store information about cloned tool shed repositories.
ToolShedRepository_table = Table( "tool_shed_repository", metadata,
Column( "id", Integer, primary_key=True ),
Column( "create_time", DateTime, default=now ),
Column( "update_time", DateTime, default=now, onupdate=now ),
Column( "tool_shed", TrimmedString( 255 ), index=True ),
Column( "name", TrimmedString( 255 ), index=True ),
Column( "description" , TEXT ),
Column( "owner", TrimmedString( 255 ), index=True ),
Column( "changeset_revision", TrimmedString( 255 ), index=True ),
Column( "deleted", Boolean, index=True, default=False ) )
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
try:
ToolShedRepository_table.create()
except Exception, e:
log.debug( "Creating tool_shed_repository table failed: %s" % str( e ) )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
try:
ToolShedRepository_table.drop()
except Exception, e:
log.debug( "Dropping tool_shed_repository table failed: %s" % str( e ) )
@@ -1 +0,0 @@
../../../migrate/versions/0086_add_tool_shed_repository_table_columns.py
@@ -0,0 +1,79 @@
"""
Migration script to add the metadata, update_available and includes_datatypes columns to the tool_shed_repository table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
import sys, logging
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
def get_default_false(migrate_engine):
if migrate_engine.name == 'mysql' or migrate_engine.name == 'sqlite':
return "0"
elif migrate_engine.name in ['postgresql', 'postgres']:
return "false"
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
c = Column( "metadata", JSONType(), nullable=True )
try:
c.create( ToolShedRepository_table )
assert c is ToolShedRepository_table.c.metadata
except Exception, e:
print "Adding metadata column to the tool_shed_repository table failed: %s" % str( e )
log.debug( "Adding metadata column to the tool_shed_repository table failed: %s" % str( e ) )
c = Column( "includes_datatypes", Boolean, index=True, default=False )
try:
c.create( ToolShedRepository_table, index_name="ix_tool_shed_repository_includes_datatypes")
assert c is ToolShedRepository_table.c.includes_datatypes
migrate_engine.execute( "UPDATE tool_shed_repository SET includes_datatypes=%s" % get_default_false(migrate_engine))
except Exception, e:
print "Adding includes_datatypes column to the tool_shed_repository table failed: %s" % str( e )
log.debug( "Adding includes_datatypes column to the tool_shed_repository table failed: %s" % str( e ) )
c = Column( "update_available", Boolean, default=False )
try:
c.create( ToolShedRepository_table )
assert c is ToolShedRepository_table.c.update_available
migrate_engine.execute( "UPDATE tool_shed_repository SET update_available=%s" % get_default_false(migrate_engine))
except Exception, e:
print "Adding update_available column to the tool_shed_repository table failed: %s" % str( e )
log.debug( "Adding update_available column to the tool_shed_repository table failed: %s" % str( e ) )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
try:
ToolShedRepository_table.c.metadata.drop()
except Exception, e:
print "Dropping column metadata from the tool_shed_repository table failed: %s" % str( e )
log.debug( "Dropping column metadata from the tool_shed_repository table failed: %s" % str( e ) )
try:
ToolShedRepository_table.c.includes_datatypes.drop()
except Exception, e:
print "Dropping column includes_datatypes from the tool_shed_repository table failed: %s" % str( e )
log.debug( "Dropping column includes_datatypes from the tool_shed_repository table failed: %s" % str( e ) )
try:
ToolShedRepository_table.c.update_available.drop()
except Exception, e:
print "Dropping column update_available from the tool_shed_repository table failed: %s" % str( e )
log.debug( "Dropping column update_available from the tool_shed_repository table failed: %s" % str( e ) )
@@ -1 +0,0 @@
../../../migrate/versions/0087_tool_id_guid_map_table.py
@@ -0,0 +1,52 @@
"""
Migration script to create the tool_id_guid_map table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
import sys, logging
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
ToolIdGuidMap_table = Table( "tool_id_guid_map", metadata,
Column( "id", Integer, primary_key=True ),
Column( "create_time", DateTime, default=now ),
Column( "update_time", DateTime, default=now, onupdate=now ),
Column( "tool_id", String( 255 ) ),
Column( "tool_version", TEXT ),
Column( "tool_shed", TrimmedString( 255 ) ),
Column( "repository_owner", TrimmedString( 255 ) ),
Column( "repository_name", TrimmedString( 255 ) ),
Column( "guid", TEXT, index=True, unique=True ) )
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
try:
ToolIdGuidMap_table.create()
except Exception, e:
log.debug( "Creating tool_id_guid_map table failed: %s" % str( e ) )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
try:
ToolIdGuidMap_table.drop()
except Exception, e:
log.debug( "Dropping tool_id_guid_map table failed: %s" % str( e ) )
@@ -1 +0,0 @@
../../../migrate/versions/0088_add_installed_changeset_revison_column.py
@@ -0,0 +1,64 @@
"""
Migration script to add the installed_changeset_revision column to the tool_shed_repository table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
import sys, logging
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
col = Column( "installed_changeset_revision", TrimmedString( 255 ) )
try:
col.create( ToolShedRepository_table )
assert col is ToolShedRepository_table.c.installed_changeset_revision
except Exception, e:
print "Adding installed_changeset_revision column to the tool_shed_repository table failed: %s" % str( e )
log.debug( "Adding installed_changeset_revision column to the tool_shed_repository table failed: %s" % str( e ) )
# Update each row by setting the value of installed_changeset_revison to be the value of changeset_revision.
# This will be problematic if the value of changeset_revision was updated to something other than the value
# that it was when the repository was installed (because the install path determined in real time will attempt to
# find the repository using the updated changeset_revison instead of the required installed_changeset_revision),
# but at the time this script was written, this scenario is extremely unlikely.
cmd = "SELECT id AS id, " \
+ "installed_changeset_revision AS installed_changeset_revision, " \
+ "changeset_revision AS changeset_revision " \
+ "FROM tool_shed_repository;"
tool_shed_repositories = migrate_engine.execute( cmd ).fetchall()
update_count = 0
for row in tool_shed_repositories:
cmd = "UPDATE tool_shed_repository " \
+ "SET installed_changeset_revision = '%s' " % row.changeset_revision \
+ "WHERE changeset_revision = '%s';" % row.changeset_revision
migrate_engine.execute( cmd )
update_count += 1
print "Updated the installed_changeset_revision column for ", update_count, " rows in the tool_shed_repository table. "
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
try:
ToolShedRepository_table.c.installed_changeset_revision.drop()
except Exception, e:
print "Dropping column installed_changeset_revision from the tool_shed_repository table failed: %s" % str( e )
log.debug( "Dropping column installed_changeset_revision from the tool_shed_repository table failed: %s" % str( e ) )
@@ -1 +0,0 @@
../../../migrate/versions/0090_add_tool_shed_repository_table_columns.py
@@ -0,0 +1,63 @@
"""
Migration script to add the uninstalled and dist_to_shed columns to the tool_shed_repository table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
import sys, logging
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
def default_false(migrate_engine):
if migrate_engine.name == 'mysql' or migrate_engine.name == 'sqlite':
return "0"
elif migrate_engine.name in ['postgresql', 'postgres']:
return "false"
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
c = Column( "uninstalled", Boolean, default=False )
try:
c.create( ToolShedRepository_table )
assert c is ToolShedRepository_table.c.uninstalled
migrate_engine.execute( "UPDATE tool_shed_repository SET uninstalled=%s" % default_false(migrate_engine) )
except Exception, e:
print "Adding uninstalled column to the tool_shed_repository table failed: %s" % str( e )
c = Column( "dist_to_shed", Boolean, default=False )
try:
c.create( ToolShedRepository_table )
assert c is ToolShedRepository_table.c.dist_to_shed
migrate_engine.execute( "UPDATE tool_shed_repository SET dist_to_shed=%s" % default_false(migrate_engine) )
except Exception, e:
print "Adding dist_to_shed column to the tool_shed_repository table failed: %s" % str( e )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
try:
ToolShedRepository_table.c.uninstalled.drop()
except Exception, e:
print "Dropping column uninstalled from the tool_shed_repository table failed: %s" % str( e )
try:
ToolShedRepository_table.c.dist_to_shed.drop()
except Exception, e:
print "Dropping column dist_to_shed from the tool_shed_repository table failed: %s" % str( e )
@@ -1 +0,0 @@
../../../migrate/versions/0091_add_tool_version_tables.py
@@ -0,0 +1,122 @@
"""
Migration script to create the tool_version and tool_version_association tables and drop the tool_id_guid_map table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
from galaxy.model.custom_types import _sniffnfix_pg9_hex
from galaxy.util.json import loads, dumps
import sys, logging
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
#migrate_engine = scoped_session( sessionmaker( bind=migrate_engine, autoflush=False, autocommit=True ) )
def nextval( table, col='id' ):
if migrate_engine.name == 'postgres':
return "nextval('%s_%s_seq')" % ( table, col )
elif migrate_engine.name == 'mysql' or migrate_engine.name == 'sqlite':
return "null"
else:
raise Exception( 'Unable to convert data for unknown database type: %s' % migrate_engine.name )
def localtimestamp():
if migrate_engine.name == 'postgres' or migrate_engine.name == 'mysql':
return "LOCALTIMESTAMP"
elif migrate_engine.name == 'sqlite':
return "current_date || ' ' || current_time"
else:
raise Exception( 'Unable to convert data for unknown database type: %s' % db )
ToolVersion_table = Table( "tool_version", metadata,
Column( "id", Integer, primary_key=True ),
Column( "create_time", DateTime, default=now ),
Column( "update_time", DateTime, default=now, onupdate=now ),
Column( "tool_id", String( 255 ) ),
Column( "tool_shed_repository_id", Integer, ForeignKey( "tool_shed_repository.id" ), index=True, nullable=True ) )
ToolVersionAssociation_table = Table( "tool_version_association", metadata,
Column( "id", Integer, primary_key=True ),
Column( "tool_id", Integer, ForeignKey( "tool_version.id" ), index=True, nullable=False ),
Column( "parent_id", Integer, ForeignKey( "tool_version.id" ), index=True, nullable=False ) )
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
ToolIdGuidMap_table = Table( "tool_id_guid_map", metadata, autoload=True )
metadata.reflect()
# Create the tables.
try:
ToolVersion_table.create()
except Exception, e:
log.debug( "Creating tool_version table failed: %s" % str( e ) )
try:
ToolVersionAssociation_table.create()
except Exception, e:
log.debug( "Creating tool_version_association table failed: %s" % str( e ) )
# Populate the tool table with tools included in installed tool shed repositories.
cmd = "SELECT id, metadata FROM tool_shed_repository"
result = migrate_engine.execute( cmd )
count = 0
for row in result:
if row[1]:
tool_shed_repository_id = row[0]
repository_metadata = loads( _sniffnfix_pg9_hex( str( row[1] ) ) )
# Create a new row in the tool table for each tool included in repository. We will NOT
# handle tool_version_associaions because we do not have the information we need to do so.
tools = repository_metadata.get( 'tools', [] )
for tool_dict in tools:
cmd = "INSERT INTO tool_version VALUES (%s, %s, %s, '%s', %s)" % \
( nextval( 'tool_version' ), localtimestamp(), localtimestamp(), tool_dict[ 'guid' ], tool_shed_repository_id )
migrate_engine.execute( cmd )
count += 1
print "Added %d rows to the new tool_version table." % count
# Drop the tool_id_guid_map table since the 2 new tables render it unnecessary.
try:
ToolIdGuidMap_table.drop()
except Exception, e:
log.debug( "Dropping tool_id_guid_map table failed: %s" % str( e ) )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
ToolIdGuidMap_table = Table( "tool_id_guid_map", metadata,
Column( "id", Integer, primary_key=True ),
Column( "create_time", DateTime, default=now ),
Column( "update_time", DateTime, default=now, onupdate=now ),
Column( "tool_id", String( 255 ) ),
Column( "tool_version", TEXT ),
Column( "tool_shed", TrimmedString( 255 ) ),
Column( "repository_owner", TrimmedString( 255 ) ),
Column( "repository_name", TrimmedString( 255 ) ),
Column( "guid", TEXT, index=True, unique=True ) )
metadata.reflect()
try:
ToolVersionAssociation_table.drop()
except Exception, e:
log.debug( "Dropping tool_version_association table failed: %s" % str( e ) )
try:
ToolVersion_table.drop()
except Exception, e:
log.debug( "Dropping tool_version table failed: %s" % str( e ) )
try:
ToolIdGuidMap_table.create()
except Exception, e:
log.debug( "Creating tool_id_guid_map table failed: %s" % str( e ) )
@@ -1 +0,0 @@
../../../migrate/versions/0092_add_migrate_tools_table.py
@@ -0,0 +1,50 @@
"""
Migration script to create the migrate_tools table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
import sys, logging
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
MigrateTools_table = Table( "migrate_tools", metadata,
Column( "repository_id", TrimmedString( 255 ) ),
Column( "repository_path", TEXT ),
Column( "version", Integer ) )
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
# Create the table.
try:
MigrateTools_table.create()
cmd = "INSERT INTO migrate_tools VALUES ('GalaxyTools', 'lib/galaxy/tool_shed/migrate', %d)" % 1
migrate_engine.execute( cmd )
except Exception, e:
log.debug( "Creating migrate_tools table failed: %s" % str( e ) )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
try:
MigrateTools_table.drop()
except Exception, e:
log.debug( "Dropping migrate_tools table failed: %s" % str( e ) )
@@ -1 +0,0 @@
../../../migrate/versions/0097_add_ctx_rev_column.py
@@ -0,0 +1,44 @@
"""
Migration script to add the ctx_rev column to the tool_shed_repository table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
import sys, logging
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
col = Column( "ctx_rev", TrimmedString( 10 ) )
try:
col.create( ToolShedRepository_table )
assert col is ToolShedRepository_table.c.ctx_rev
except Exception, e:
print "Adding ctx_rev column to the tool_shed_repository table failed: %s" % str( e )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
try:
ToolShedRepository_table.c.ctx_rev.drop()
except Exception, e:
print "Dropping column ctx_rev from the tool_shed_repository table failed: %s" % str( e )
@@ -1 +0,0 @@
../../../migrate/versions/0099_add_tool_dependency_table.py
@@ -0,0 +1,51 @@
"""
Migration script to add the tool_dependency table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import sys, logging
from galaxy.model.custom_types import *
from sqlalchemy.exc import *
import datetime
now = datetime.datetime.utcnow
log = logging.getLogger( __name__ )
log.setLevel( logging.DEBUG )
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
# New table to store information about cloned tool shed repositories.
ToolDependency_table = Table( "tool_dependency", metadata,
Column( "id", Integer, primary_key=True ),
Column( "create_time", DateTime, default=now ),
Column( "update_time", DateTime, default=now, onupdate=now ),
Column( "tool_shed_repository_id", Integer, ForeignKey( "tool_shed_repository.id" ), index=True, nullable=False ),
Column( "installed_changeset_revision", TrimmedString( 255 ) ),
Column( "name", TrimmedString( 255 ) ),
Column( "version", TrimmedString( 40 ) ),
Column( "type", TrimmedString( 40 ) ),
Column( "uninstalled", Boolean, default=False ) )
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
try:
ToolDependency_table.create()
except Exception, e:
log.debug( "Creating tool_dependency table failed: %s" % str( e ) )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
try:
ToolDependency_table.drop()
except Exception, e:
log.debug( "Dropping tool_dependency table failed: %s" % str( e ) )
@@ -1 +0,0 @@
../../../migrate/versions/0100_alter_tool_dependency_table_version_column.py
@@ -0,0 +1,54 @@
"""
Migration script to alter the type of the tool_dependency.version column from TrimmedString(40) to Text.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
import sys, logging
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
ToolDependency_table = Table( "tool_dependency", metadata, autoload=True )
# Change the tool_dependency table's version column from TrimmedString to Text.
if migrate_engine.name in ['postgresql', 'postgres']:
cmd = "ALTER TABLE tool_dependency ALTER COLUMN version TYPE Text;"
elif migrate_engine.name == 'mysql':
cmd = "ALTER TABLE tool_dependency MODIFY COLUMN version Text;"
else:
# We don't have to do anything for sqlite tables. From the sqlite documentation at http://sqlite.org/datatype3.html:
# 1.0 Storage Classes and Datatypes
# Each value stored in an SQLite database (or manipulated by the database engine) has one of the following storage classes:
# NULL. The value is a NULL value.
# INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.
# REAL. The value is a floating point value, stored as an 8-byte IEEE floating point number.
# TEXT. The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16LE).
# BLOB. The value is a blob of data, stored exactly as it was input.
cmd = None
if cmd:
try:
migrate_engine.execute( cmd )
except Exception, e:
log.debug( "Altering tool_dependency.version column from TrimmedString(40) to Text failed: %s" % str( e ) )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
# Not necessary to change column type Text to TrimmedString(40).
pass
@@ -1 +0,0 @@
../../../migrate/versions/0101_drop_installed_changeset_revision_column.py
@@ -0,0 +1,41 @@
"""
Migration script to drop the installed_changeset_revision column from the tool_dependency table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import sys, logging
from galaxy.model.custom_types import *
from sqlalchemy.exc import *
import datetime
now = datetime.datetime.utcnow
log = logging.getLogger( __name__ )
log.setLevel( logging.DEBUG )
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
try:
ToolDependency_table = Table( "tool_dependency", metadata, autoload=True )
except NoSuchTableError:
ToolDependency_table = None
log.debug( "Failed loading table tool_dependency" )
if ToolDependency_table is not None:
try:
col = ToolDependency_table.c.installed_changeset_revision
col.drop()
except Exception, e:
log.debug( "Dropping column 'installed_changeset_revision' from tool_dependency table failed: %s" % ( str( e ) ) )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
pass
@@ -1 +0,0 @@
../../../migrate/versions/0102_add_tool_dependency_status_columns.py
@@ -0,0 +1,71 @@
"""
Migration script to add status and error_message columns to the tool_dependency table and drop the uninstalled column from the tool_dependency table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
import sys, logging
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
ToolDependency_table = Table( "tool_dependency", metadata, autoload=True )
if migrate_engine.name == 'sqlite':
col = Column( "status", TrimmedString( 255 ))
else:
col = Column( "status", TrimmedString( 255 ), nullable=False)
try:
col.create( ToolDependency_table )
assert col is ToolDependency_table.c.status
except Exception, e:
print "Adding status column to the tool_dependency table failed: %s" % str( e )
col = Column( "error_message", TEXT )
try:
col.create( ToolDependency_table )
assert col is ToolDependency_table.c.error_message
except Exception, e:
print "Adding error_message column to the tool_dependency table failed: %s" % str( e )
if migrate_engine.name != 'sqlite':
#This breaks in sqlite due to failure to drop check constraint.
# TODO move to alembic.
try:
ToolDependency_table.c.uninstalled.drop()
except Exception, e:
print "Dropping uninstalled column from the tool_dependency table failed: %s" % str( e )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
ToolDependency_table = Table( "tool_dependency", metadata, autoload=True )
try:
ToolDependency_table.c.status.drop()
except Exception, e:
print "Dropping column status from the tool_dependency table failed: %s" % str( e )
try:
ToolDependency_table.c.error_message.drop()
except Exception, e:
print "Dropping column error_message from the tool_dependency table failed: %s" % str( e )
col = Column( "uninstalled", Boolean, default=False )
try:
col.create( ToolDependency_table )
assert col is ToolDependency_table.c.uninstalled
except Exception, e:
print "Adding uninstalled column to the tool_dependency table failed: %s" % str( e )
@@ -1 +0,0 @@
../../../migrate/versions/0103_add_tool_shed_repository_status_columns.py
@@ -0,0 +1,69 @@
"""Migration script to add status and error_message columns to the tool_shed_repository table."""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
metadata = MetaData()
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
# Add the status column to the tool_shed_repository table.
col = Column( "status", TrimmedString( 255 ) )
try:
col.create( ToolShedRepository_table )
assert col is ToolShedRepository_table.c.status
except Exception, e:
print "Adding status column to the tool_shed_repository table failed: %s" % str( e )
# Add the error_message column to the tool_shed_repository table.
col = Column( "error_message", TEXT )
try:
col.create( ToolShedRepository_table )
assert col is ToolShedRepository_table.c.error_message
except Exception, e:
print "Adding error_message column to the tool_shed_repository table failed: %s" % str( e )
# Update the status column value for tool_shed_repositories to the default value 'Installed'.
cmd = "UPDATE tool_shed_repository SET status = 'Installed';"
try:
migrate_engine.execute( cmd )
except Exception, e:
print "Exception executing sql command: "
print cmd
print str( e )
# Update the status column for tool_shed_repositories that have been uninstalled.
cmd = "UPDATE tool_shed_repository SET status = 'Uninstalled' WHERE uninstalled;"
try:
migrate_engine.execute( cmd )
except Exception, e:
print "Exception executing sql command: "
print cmd
print str( e )
# Update the status column for tool_shed_repositories that have been deactivated.
cmd = "UPDATE tool_shed_repository SET status = 'Deactivated' where deleted and not uninstalled;"
try:
migrate_engine.execute( cmd )
except Exception, e:
print "Exception executing sql command: "
print cmd
print str( e )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
try:
ToolShedRepository_table.c.status.drop()
except Exception, e:
print "Dropping column status from the tool_shed_repository table failed: %s" % str( e )
try:
ToolShedRepository_table.c.error_message.drop()
except Exception, e:
print "Dropping column error_message from the tool_shed_repository table failed: %s" % str( e )
@@ -1 +0,0 @@
../../../migrate/versions/0109_add_repository_dependency_tables.py
@@ -0,0 +1,60 @@
"""
Migration script to add the repository_dependency and repository_repository_dependency_association tables.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import sys, logging
from galaxy.model.custom_types import *
from sqlalchemy.exc import *
import datetime
now = datetime.datetime.utcnow
log = logging.getLogger( __name__ )
log.setLevel( logging.DEBUG )
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
RepositoryDependency_table = Table( "repository_dependency", metadata,
Column( "id", Integer, primary_key=True ),
Column( "create_time", DateTime, default=now ),
Column( "update_time", DateTime, default=now, onupdate=now ),
Column( "tool_shed_repository_id", Integer, ForeignKey( "tool_shed_repository.id" ), index=True, nullable=False ) )
RepositoryRepositoryDependencyAssociation_table = Table( "repository_repository_dependency_association", metadata,
Column( "id", Integer, primary_key=True ),
Column( "create_time", DateTime, default=now ),
Column( "update_time", DateTime, default=now, onupdate=now ),
Column( "tool_shed_repository_id", Integer, ForeignKey( "tool_shed_repository.id" ), index=True ),
Column( "repository_dependency_id", Integer, ForeignKey( "repository_dependency.id" ), index=True ) )
def upgrade(migrate_engine):
print __doc__
metadata.bind = migrate_engine
metadata.reflect()
try:
RepositoryDependency_table.create()
except Exception, e:
log.debug( "Creating repository_dependency table failed: %s" % str( e ) )
try:
RepositoryRepositoryDependencyAssociation_table.create()
except Exception, e:
log.debug( "Creating repository_repository_dependency_association table failed: %s" % str( e ) )
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
try:
RepositoryRepositoryDependencyAssociation_table.drop()
except Exception, e:
log.debug( "Dropping repository_repository_dependency_association table failed: %s" % str( e ) )
try:
RepositoryDependency_table.drop()
except Exception, e:
log.debug( "Dropping repository_dependency table failed: %s" % str( e ) )
@@ -1 +0,0 @@
../../../migrate/versions/0113_update_migrate_tools_table.py
@@ -0,0 +1,38 @@
"""
Migration script to update the migrate_tools.repository_path column to point to the new location lib/tool_shed/galaxy_install/migrate.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
import sys, logging
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
def upgrade(migrate_engine):
print __doc__
# Create the table.
try:
cmd = "UPDATE migrate_tools set repository_path='lib/galaxy/tool_shed/migrate';"
migrate_engine.execute( cmd )
except Exception, e:
log.debug( "Updating migrate_tools.repository_path column to point to the new location lib/tool_shed/galaxy_install/migrate failed: %s" % str( e ) )
def downgrade(migrate_engine):
try:
cmd = "UPDATE migrate_tools set repository_path='lib/galaxy/tool_shed/migrate';"
migrate_engine.execute( cmd )
except Exception, e:
log.debug( "Updating migrate_tools.repository_path column to point to the old location lib/galaxy/tool_shed/migrate failed: %s" % str( e ) )
@@ -1 +0,0 @@
../../../migrate/versions/0114_update_migrate_tools_table_again.py
@@ -0,0 +1,40 @@
"""
Migration script to update the migrate_tools.repository_path column to point to the new location lib/tool_shed/galaxy_install/migrate.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import datetime
now = datetime.datetime.utcnow
# Need our custom types, but don't import anything else from model
from galaxy.model.custom_types import *
import sys, logging
log = logging.getLogger( __name__ )
log.setLevel(logging.DEBUG)
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
def upgrade(migrate_engine):
print __doc__
# Create the table.
try:
cmd = "UPDATE migrate_tools set repository_path='lib/tool_shed/galaxy_install/migrate';"
migrate_engine.execute( cmd )
except Exception, e:
log.debug( "Updating migrate_tools.repository_path column to point to the new location lib/tool_shed/galaxy_install/migrate failed: %s" % str( e ) )
def downgrade(migrate_engine):
try:
cmd = "UPDATE migrate_tools set repository_path='lib/galaxy/tool_shed/migrate';"
migrate_engine.execute( cmd )
except Exception, e:
log.debug( "Updating migrate_tools.repository_path column to point to the old location lib/galaxy/tool_shed/migrate failed: %s" % str( e ) )
@@ -1 +0,0 @@
../../../migrate/versions/0116_drop_update_available_col_add_tool_shed_status_col.py
@@ -0,0 +1,77 @@
"""
Migration script to drop the update_available Boolean column and replace it with the tool_shed_status JSONType column in the tool_shed_repository table.
"""
from sqlalchemy import *
from sqlalchemy.orm import *
from migrate import *
from migrate.changeset import *
import sys, logging
from galaxy.model.custom_types import *
from sqlalchemy.exc import *
import datetime
now = datetime.datetime.utcnow
log = logging.getLogger( __name__ )
log.setLevel( logging.DEBUG )
handler = logging.StreamHandler( sys.stdout )
format = "%(name)s %(levelname)s %(asctime)s %(message)s"
formatter = logging.Formatter( format )
handler.setFormatter( formatter )
log.addHandler( handler )
metadata = MetaData()
def default_false( migrate_engine ):
if migrate_engine.name == 'mysql' or migrate_engine.name == 'sqlite':
return "0"
elif migrate_engine.name in [ 'postgresql', 'postgres' ]:
return "false"
def upgrade( migrate_engine ):
metadata.bind = migrate_engine
print __doc__
metadata.reflect()
try:
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
except NoSuchTableError:
ToolShedRepository_table = None
log.debug( "Failed loading table tool_shed_repository" )
if ToolShedRepository_table is not None:
# For some unknown reason it is no longer possible to drop a column in a migration script if using the sqlite database.
if migrate_engine.name != 'sqlite':
try:
col = ToolShedRepository_table.c.update_available
col.drop()
except Exception, e:
print "Dropping column update_available from the tool_shed_repository table failed: %s" % str( e )
c = Column( "tool_shed_status", JSONType, nullable=True )
try:
c.create( ToolShedRepository_table )
assert c is ToolShedRepository_table.c.tool_shed_status
except Exception, e:
print "Adding tool_shed_status column to the tool_shed_repository table failed: %s" % str( e )
def downgrade( migrate_engine ):
metadata.bind = migrate_engine
metadata.reflect()
try:
ToolShedRepository_table = Table( "tool_shed_repository", metadata, autoload=True )
except NoSuchTableError:
ToolShedRepository_table = None
log.debug( "Failed loading table tool_shed_repository" )
if ToolShedRepository_table is not None:
# For some unknown reason it is no longer possible to drop a column in a migration script if using the sqlite database.
if migrate_engine.name != 'sqlite':
try:
col = ToolShedRepository_table.c.tool_shed_status
col.drop()
except Exception, e:
print "Dropping column tool_shed_status from the tool_shed_repository table failed: %s" % str( e )
c = Column( "update_available", Boolean, default=False )
try:
c.create( ToolShedRepository_table )
assert c is ToolShedRepository_table.c.update_available
migrate_engine.execute( "UPDATE tool_shed_repository SET update_available=%s" % default_false( migrate_engine ) )
except Exception, e:
print "Adding column update_available to the tool_shed_repository table failed: %s" % str( e )
+1 -1
View File
@@ -1,3 +1,3 @@
"""
OpenID functionality
"""
"""
+2 -2
View File
@@ -4,7 +4,7 @@ from galaxy import model
from galaxy.tools.parameters import DataToolParameter
from galaxy.tools.parameters import DataCollectionToolParameter
from galaxy.tools.parameters.wrapped import WrappedParameters
from galaxy.util.json import to_json_string
from galaxy.util.json import dumps
from galaxy.util.none_like import NoneDataset
from galaxy.util.odict import odict
from galaxy.util.template import fill_template
@@ -324,7 +324,7 @@ class DefaultToolAction( object ):
job.add_output_dataset( name, dataset )
job.object_store_id = object_store_populator.object_store_id
if job_params:
job.params = to_json_string( job_params )
job.params = dumps( job_params )
job.set_handler(tool.get_job_handler(job_params))
trans.sa_session.add( job )
# Now that we have a job id, we can remap any outputs if this is a rerun and the user chose to continue dependent jobs
+2 -2
View File
@@ -1,7 +1,7 @@
from __init__ import ToolAction
from galaxy.datatypes.metadata import JobExternalOutputMetadataWrapper
from galaxy.util.odict import odict
from galaxy.util.json import to_json_string
from galaxy.util.json import dumps
import logging
log = logging.getLogger( __name__ )
@@ -50,7 +50,7 @@ class SetMetadataToolAction( ToolAction ):
if user:
job.user_id = user.id
if job_params:
job.params = to_json_string( job_params )
job.params = dumps( job_params )
start_job_state = job.state #should be job.states.NEW
try:
# For backward compatibility, some tools may not have versions yet.
+3 -3
View File
@@ -7,7 +7,7 @@ from cgi import FieldStorage
from galaxy import datatypes, util
from galaxy.util.odict import odict
from galaxy.datatypes import sniff
from galaxy.util.json import to_json_string
from galaxy.util.json import dumps
from galaxy.model.orm import eagerload_all
from galaxy.exceptions import ObjectInvalid
@@ -342,7 +342,7 @@ def create_paramfile( trans, uploaded_datasets ):
# user cannot remove it unless the parent directory is writable.
if link_data_only == 'copy_files' and trans.app.config.external_chown_script:
_chown( uploaded_dataset.path )
json_file.write( to_json_string( json ) + '\n' )
json_file.write( dumps( json ) + '\n' )
json_file.close()
if trans.app.config.external_chown_script:
_chown( json_file_path )
@@ -375,7 +375,7 @@ def create_job( trans, params, tool, json_file_path, data_list, folder=None, his
for name, value in tool.params_to_strings( params, trans.app ).iteritems():
job.add_parameter( name, value )
job.add_parameter( 'paramfile', to_json_string( json_file_path ) )
job.add_parameter( 'paramfile', dumps( json_file_path ) )
object_store_id = None
for i, dataset in enumerate( data_list ):
if folder:
+16 -16
View File
@@ -8,7 +8,7 @@ from galaxy import model
from galaxy.tools.parameters.basic import UnvalidatedValue
from galaxy.web.framework.helpers import to_unicode
from galaxy.model.item_attrs import UsesAnnotations
from galaxy.util.json import from_json_string, to_json_string
from galaxy.util.json import loads, dumps
from galaxy.web.base.controller import UsesHistoryMixin
log = logging.getLogger(__name__)
@@ -108,7 +108,7 @@ class JobImportHistoryArchiveWrapper( object, UsesHistoryMixin, UsesAnnotations
#
history_attr_file_name = os.path.join( archive_dir, 'history_attrs.txt')
history_attr_str = read_file_contents( history_attr_file_name )
history_attrs = from_json_string( history_attr_str )
history_attrs = loads( history_attr_str )
# Create history.
new_history = model.History( name='imported from archive: %s' % history_attrs['name'].encode( 'utf-8' ), \
@@ -134,12 +134,12 @@ class JobImportHistoryArchiveWrapper( object, UsesHistoryMixin, UsesAnnotations
#
datasets_attrs_file_name = os.path.join( archive_dir, 'datasets_attrs.txt')
datasets_attr_str = read_file_contents( datasets_attrs_file_name )
datasets_attrs = from_json_string( datasets_attr_str )
datasets_attrs = loads( datasets_attr_str )
if os.path.exists( datasets_attrs_file_name + ".provenance" ):
provenance_attr_str = read_file_contents( datasets_attrs_file_name + ".provenance" )
provenance_attrs = from_json_string( provenance_attr_str )
datasets_attrs += provenance_attrs
provenance_attrs = loads( provenance_attr_str )
datasets_attrs += provenance_attrs
# Get counts of how often each dataset file is used; a file can
# be linked to multiple dataset objects (HDAs).
@@ -230,7 +230,7 @@ class JobImportHistoryArchiveWrapper( object, UsesHistoryMixin, UsesAnnotations
return self.sa_session.query( model.HistoryDatasetAssociation ) \
.filter_by( history=new_history, hid=obj_dct['hid'] ).first()
return obj_dct
jobs_attrs = from_json_string( jobs_attr_str, object_hook=as_hda )
jobs_attrs = loads( jobs_attr_str, object_hook=as_hda )
# Create each job.
for job_attrs in jobs_attrs:
@@ -279,7 +279,7 @@ class JobImportHistoryArchiveWrapper( object, UsesHistoryMixin, UsesAnnotations
.filter_by( history=new_history, hid=value.hid ).first()
value = input_hda.id
#print "added parameter %s-->%s to job %i" % ( name, value, imported_job.id )
imported_job.add_parameter( name, to_json_string( value, cls=HistoryDatasetAssociationIDEncoder ) )
imported_job.add_parameter( name, dumps( value, cls=HistoryDatasetAssociationIDEncoder ) )
# TODO: Connect jobs to input datasets.
@@ -292,14 +292,14 @@ class JobImportHistoryArchiveWrapper( object, UsesHistoryMixin, UsesAnnotations
imported_job.add_output_dataset( output_hda.name, output_hda )
# Connect jobs to input datasets.
if 'input_mapping' in job_attrs:
if 'input_mapping' in job_attrs:
for input_name, input_hid in job_attrs[ 'input_mapping' ].items():
#print "%s job has input dataset %i" % (imported_job.id, input_hid)
input_hda = self.sa_session.query( model.HistoryDatasetAssociation ) \
.filter_by( history=new_history, hid=input_hid ).first()
if input_hda:
imported_job.add_input_dataset( input_name, input_hda )
self.sa_session.flush()
@@ -409,7 +409,7 @@ class JobExportHistoryArchiveWrapper( object, UsesHistoryMixin, UsesAnnotations
}
history_attrs_filename = tempfile.NamedTemporaryFile( dir=temp_output_dir ).name
history_attrs_out = open( history_attrs_filename, 'w' )
history_attrs_out.write( to_json_string( history_attrs ) )
history_attrs_out.write( dumps( history_attrs ) )
history_attrs_out.close()
jeha.history_attrs_filename = history_attrs_filename
@@ -427,12 +427,12 @@ class JobExportHistoryArchiveWrapper( object, UsesHistoryMixin, UsesAnnotations
included_datasets.append( dataset )
datasets_attrs_filename = tempfile.NamedTemporaryFile( dir=temp_output_dir ).name
datasets_attrs_out = open( datasets_attrs_filename, 'w' )
datasets_attrs_out.write( to_json_string( datasets_attrs, cls=HistoryDatasetAssociationEncoder ) )
datasets_attrs_out.write( dumps( datasets_attrs, cls=HistoryDatasetAssociationEncoder ) )
datasets_attrs_out.close()
jeha.datasets_attrs_filename = datasets_attrs_filename
provenance_attrs_out = open( datasets_attrs_filename + ".provenance", 'w' )
provenance_attrs_out.write( to_json_string( provenance_attrs, cls=HistoryDatasetAssociationEncoder ) )
provenance_attrs_out.write( dumps( provenance_attrs, cls=HistoryDatasetAssociationEncoder ) )
provenance_attrs_out.close()
#
@@ -477,7 +477,7 @@ class JobExportHistoryArchiveWrapper( object, UsesHistoryMixin, UsesAnnotations
job_attrs[ 'exit_code' ] = job.exit_code
job_attrs[ 'create_time' ] = job.create_time.isoformat()
job_attrs[ 'update_time' ] = job.update_time.isoformat()
# Get the job's parameters
try:
@@ -509,7 +509,7 @@ class JobExportHistoryArchiveWrapper( object, UsesHistoryMixin, UsesAnnotations
jobs_attrs_filename = tempfile.NamedTemporaryFile( dir=temp_output_dir ).name
jobs_attrs_out = open( jobs_attrs_filename, 'w' )
jobs_attrs_out.write( to_json_string( jobs_attrs, cls=HistoryDatasetAssociationEncoder ) )
jobs_attrs_out.write( dumps( jobs_attrs, cls=HistoryDatasetAssociationEncoder ) )
jobs_attrs_out.close()
jeha.jobs_attrs_filename = jobs_attrs_filename
+3 -3
View File
@@ -39,7 +39,7 @@ def create_archive( history_attrs_file, datasets_attrs_file, jobs_attrs_file, ou
except OverflowError:
pass
datasets_attr_in.close()
datasets_attrs = from_json_string( datasets_attr_str )
datasets_attrs = loads( datasets_attr_str )
# Add datasets to archive and update dataset attributes.
# TODO: security check to ensure that files added are in Galaxy dataset directory?
@@ -54,7 +54,7 @@ def create_archive( history_attrs_file, datasets_attrs_file, jobs_attrs_file, ou
# Rewrite dataset attributes file.
datasets_attrs_out = open( datasets_attrs_file, 'w' )
datasets_attrs_out.write( to_json_string( datasets_attrs ) )
datasets_attrs_out.write( dumps( datasets_attrs ) )
datasets_attrs_out.close()
# Finish archive.
@@ -80,4 +80,4 @@ if __name__ == "__main__":
# Create archive.
status = create_archive( history_attrs, dataset_attrs, job_attrs, out_file, gzip )
print status
print status
+2 -2
View File
@@ -85,7 +85,7 @@ def params_to_strings( params, param_values, app ):
for key, value in param_values.iteritems():
if key in params:
value = params[ key ].value_to_basic( value, app )
rval[ key ] = str( to_json_string( value ) )
rval[ key ] = str( dumps( value ) )
return rval
@@ -98,7 +98,7 @@ def params_from_strings( params, param_values, app, ignore_errors=False ):
"""
rval = dict()
for key, value in param_values.iteritems():
value = json_fix( from_json_string( value ) )
value = json_fix( loads( value ) )
if key in params:
value = params[key].value_from_basic( value, app, ignore_errors )
rval[ key ] = value
+1 -1
View File
@@ -3,4 +3,4 @@ Utilities used by various Galaxy tools
FIXME: These are used by tool scripts, not the framework, and should not live
in this package.
"""
"""
+2 -2
View File
@@ -338,8 +338,8 @@ def shrink_string_by_size( value, size, join_by="..", left_larger=True, beginnin
def pretty_print_json(json_data, is_json_string=False):
if is_json_string:
json_data = json.from_json_string(json_data)
return json.to_json_string(json_data, sort_keys=True, indent=4)
json_data = json.loads(json_data)
return json.dumps(json_data, sort_keys=True, indent=4)
# characters that are valid
valid_chars = set(string.letters + string.digits + " -=_.()/+*^,:?!")
+1 -1
View File
@@ -1,3 +1,3 @@
"""
Modules for providing backward compatibility with future versions of Python
"""
"""
@@ -39,4 +39,4 @@ def import_module(name, package=None):
## Note: this was copied from
## http://svn.python.org/projects/python/trunk/Lib/importlib/__init__.py
## on 24 September 2012
## on 24 September 2012
+4 -4
View File
@@ -3,7 +3,7 @@ Functionality for dealing with dbkeys.
"""
#dbkeys read from disk using builds.txt
from galaxy.util import read_dbnames
from galaxy.util.json import from_json_string
from galaxy.util.json import loads
import os.path
@@ -38,7 +38,7 @@ class GenomeBuilds( object ):
rval.append( ( dataset.dbkey, "%s (%s) [History]" % ( dataset.name, dataset.dbkey ) ) )
user = trans.user
if user and 'dbkeys' in user.preferences:
user_keys = from_json_string( user.preferences['dbkeys'] )
user_keys = loads( user.preferences['dbkeys'] )
for key, chrom_dict in user_keys.iteritems():
rval.append( ( key, "%s (%s) [Custom]" % ( chrom_dict['name'], key ) ) )
# Load old builds.txt static keys
@@ -61,8 +61,8 @@ class GenomeBuilds( object ):
chrom_info = db_dataset.file_name
else:
# Do Custom Build handling
if trans.user and ( 'dbkeys' in trans.user.preferences ) and ( dbkey in from_json_string( trans.user.preferences[ 'dbkeys' ] ) ):
custom_build_dict = from_json_string( trans.user.preferences[ 'dbkeys' ] )[ dbkey ]
if trans.user and ( 'dbkeys' in trans.user.preferences ) and ( dbkey in loads( trans.user.preferences[ 'dbkeys' ] ) ):
custom_build_dict = loads( trans.user.preferences[ 'dbkeys' ] )[ dbkey ]
# HACK: the attempt to get chrom_info below will trigger the
# fasta-to-len converter if the dataset is not available or,
# which will in turn create a recursive loop when
+5 -3
View File
@@ -1,6 +1,6 @@
from __future__ import absolute_import
__all__ = [ "to_json_string", "from_json_string", "json_fix", "validate_jsonrpc_request", "validate_jsonrpc_response", "jsonrpc_request", "jsonrpc_response" ]
__all__ = [ "dumps", "loads", "json_fix", "validate_jsonrpc_request", "validate_jsonrpc_response", "jsonrpc_request", "jsonrpc_response" ]
import json
import logging
@@ -9,6 +9,8 @@ import string
to_json_string = json.dumps
from_json_string = json.loads
dumps = json.dumps
loads = json.loads
log = logging.getLogger( __name__ )
@@ -28,7 +30,7 @@ def json_fix( val ):
def validate_jsonrpc_request( request, regular_methods, notification_methods ):
try:
request = from_json_string( request )
request = loads( request )
except Exception, e:
return False, request, jsonrpc_response( id=None,
error=dict( code=-32700,
@@ -65,7 +67,7 @@ def validate_jsonrpc_request( request, regular_methods, notification_methods ):
def validate_jsonrpc_response( response, id=None ):
try:
response = from_json_string( response )
response = loads( response )
except Exception, e:
log.error( 'Response was not valid JSON: %s' % str( e ) )
log.debug( 'Response was: %s' % response )
+1 -1
View File
@@ -2,4 +2,4 @@ class TraceLogger( object ):
def __init__( self, name ):
self.name = name
def log( **kwargs ):
raise TypeError( "Abstract Method" )
raise TypeError( "Abstract Method" )
+1 -1
View File
@@ -1056,4 +1056,4 @@ def invoke(command, command_name, options, args):
except BadCommand, e:
print e.message
exit_code = e.exit_code
sys.exit(exit_code)
sys.exit(exit_code)
@@ -1,3 +1,3 @@
"""
Galaxy visualization/visual analysis data providers.
"""
"""
@@ -1,6 +1,6 @@
import sys
from galaxy.datatypes.tabular import Tabular
from galaxy.util.json import from_json_string
from galaxy.util.json import loads
class BaseDataProvider( object ):
"""
@@ -96,7 +96,7 @@ class ColumnDataProvider( BaseDataProvider ):
start_val = int( self.original_dataset.metadata.comment_lines )
# columns is an array of ints for now (should handle column names later)
columns = from_json_string( columns )
columns = loads( columns )
for column in columns:
assert( ( column < self.original_dataset.metadata.columns )
and ( column >= 0 ) ),(
@@ -17,7 +17,7 @@ from bx.bbi.bigbed_file import BigBedFile
from pysam import csamtools, ctabix
from galaxy.datatypes.util.gff_util import convert_gff_coords_to_bed, GFFFeature, GFFInterval, GFFReaderWrapper, parse_gff_attributes
from galaxy.util.json import from_json_string
from galaxy.util.json import loads
from galaxy.visualization.data_providers.basic import BaseDataProvider
from galaxy.visualization.data_providers.cigar import get_ref_based_read_seq_and_cigar
from galaxy.datatypes.interval import Bed, Gff, Gtf
@@ -409,7 +409,7 @@ class IntervalDataProvider( GenomeDataProvider ):
#
# First three entries are mandatory, others are optional.
#
filter_cols = from_json_string( kwargs.get( "filter_cols", "[]" ) )
filter_cols = loads( kwargs.get( "filter_cols", "[]" ) )
no_detail = ( "no_detail" in kwargs )
rval = []
message = None
@@ -490,7 +490,7 @@ class BedDataProvider( GenomeDataProvider ):
#
# First three entries are mandatory, others are optional.
#
filter_cols = from_json_string( kwargs.get( "filter_cols", "[]" ) )
filter_cols = loads( kwargs.get( "filter_cols", "[]" ) )
no_detail = ( "no_detail" in kwargs )
rval = []
message = None
@@ -1336,7 +1336,7 @@ class IntervalIndexDataProvider( FilterableMixin, GenomeDataProvider ):
#
# First three entries are mandatory, others are optional.
#
filter_cols = from_json_string( kwargs.get( "filter_cols", "[]" ) )
filter_cols = loads( kwargs.get( "filter_cols", "[]" ) )
no_detail = ( "no_detail" in kwargs )
for count, val in enumerate( iterator ):
start, end, offset = val[0], val[1], val[2]
@@ -1404,7 +1404,7 @@ class RawGFFDataProvider( GenomeDataProvider ):
"""
Process data from an iterator to a format that can be provided to client.
"""
filter_cols = from_json_string( kwargs.get( "filter_cols", "[]" ) )
filter_cols = loads( kwargs.get( "filter_cols", "[]" ) )
no_detail = ( "no_detail" in kwargs )
results = []
message = None
@@ -1446,7 +1446,7 @@ class GtfTabixDataProvider( TabixDataProvider ):
feature.append( GFFInterval( None, line.split( '\t') ) )
# Process data.
filter_cols = from_json_string( kwargs.get( "filter_cols", "[]" ) )
filter_cols = loads( kwargs.get( "filter_cols", "[]" ) )
no_detail = ( "no_detail" in kwargs )
results = []
message = None
@@ -105,4 +105,4 @@ class Nexus_Parser(Newick_Parser):
else:
self.inCommentBlock = False
return "Nextline" # need to move on to the nextline after getting out of comment
return ""
return ""
+1 -1
View File
@@ -1,3 +1,3 @@
"""
Code for Galaxy genome visualizations.
"""
"""
+5 -5
View File
@@ -1,6 +1,6 @@
import os, re, sys, glob, logging
from bx.seq.twobit import TwoBitFile
from galaxy.util.json import from_json_string
from galaxy.util.json import loads
from galaxy import model, util
from galaxy.util.bunch import Bunch
@@ -221,7 +221,7 @@ class Genomes( object ):
user = trans.get_user()
if user:
if 'dbkeys' in user.preferences:
user_keys_dict = from_json_string( user.preferences[ 'dbkeys' ] )
user_keys_dict = loads( user.preferences[ 'dbkeys' ] )
dbkeys.extend( [ (attributes[ 'name' ], key ) for key, attributes in user_keys_dict.items() ] )
# Add app keys to dbkeys.
@@ -257,7 +257,7 @@ class Genomes( object ):
# Look first in user's custom builds.
if dbkey_user and 'dbkeys' in dbkey_user.preferences:
user_keys = from_json_string( dbkey_user.preferences['dbkeys'] )
user_keys = loads( dbkey_user.preferences['dbkeys'] )
if dbkey in user_keys:
dbkey_attributes = user_keys[ dbkey ]
dbkey_name = dbkey_attributes[ 'name' ]
@@ -310,7 +310,7 @@ class Genomes( object ):
# Look for key in owner's custom builds.
if dbkey_owner and 'dbkeys' in dbkey_owner.preferences:
user_keys = from_json_string( dbkey_owner.preferences[ 'dbkeys' ] )
user_keys = loads( dbkey_owner.preferences[ 'dbkeys' ] )
if dbkey in user_keys:
dbkey_attributes = user_keys[ dbkey ]
if 'fasta' in dbkey_attributes:
@@ -342,7 +342,7 @@ class Genomes( object ):
# Built-in twobit.
twobit_file_name = self.genomes[dbkey].twobit_file
else:
user_keys = from_json_string( dbkey_user.preferences['dbkeys'] )
user_keys = loads( dbkey_user.preferences['dbkeys'] )
dbkey_attributes = user_keys[ dbkey ]
fasta_dataset = trans.sa_session.query( trans.app.model.HistoryDatasetAssociation ).get( dbkey_attributes[ 'fasta' ] )
msg = fasta_dataset.convert_dataset( trans, 'twobit' )
+1 -1
View File
@@ -791,7 +791,7 @@ class ResourceParser( object ):
'int' : lambda param: int( param ),
'float' : lambda param: float( param ),
#'date' : lambda param: ,
'json' : ( lambda param: galaxy.util.json.from_json_string(
'json' : ( lambda param: galaxy.util.json.loads(
galaxy.util.sanitize_html.sanitize_html( param ) ) ),
}
+1 -1
View File
@@ -1 +1 @@
""" Summary.py required to be in this module due to pickling. """
""" Summary.py required to be in this module due to pickling. """
+2 -2
View File
@@ -42,7 +42,7 @@ from galaxy.datatypes.metadata import FileParameter
from galaxy.tools.parameters import RuntimeValue, visit_input_values
from galaxy.tools.parameters.basic import DataToolParameter
from galaxy.tools.parameters.basic import DataCollectionToolParameter
from galaxy.util.json import to_json_string
from galaxy.util.json import dumps
from galaxy.workflow.modules import ToolModule
from galaxy.workflow.steps import attach_ordered_steps
from galaxy.util import validation
@@ -1706,7 +1706,7 @@ class UsesStoredWorkflowMixin( SharableItemSecurityMixin, UsesAnnotations ):
missing_tool_tups.append( missing_tool_tup )
# Save the entire step_dict in the unused config field, be parsed later
# when we do have the tool
step.config = to_json_string(step_dict)
step.config = dumps(step_dict)
if step.tool_errors:
workflow.has_errors = True
# Stick this in the step temporarily
+2 -2
View File
@@ -7,7 +7,7 @@ import logging, sys, os, time
from operator import itemgetter
from cgi import escape
from galaxy.util import restore_text, relpath, nice_size, unicodify
from galaxy.util.json import to_json_string
from galaxy.util.json import dumps
from galaxy.web import url_for
from binascii import hexlify
@@ -563,7 +563,7 @@ class SwitchingSelectField(BaseField):
html += '<input name="__switch_default__" type="hidden" value="%s" />' % self.default_field
options = []
for name, delegate_field in self.delegate_fields.items():
field = to_json_string( delegate_field.to_dict() )
field = dumps( delegate_field.to_dict() )
option = " '%s': %s" % ( name, field )
options.append( option )
html += '<script>$(document).ready( function() {\nvar switchOptions = {\n'
+9 -9
View File
@@ -10,7 +10,7 @@ from galaxy.web.framework import url_for
from galaxy import util
from galaxy.exceptions import error_codes
from galaxy.exceptions import MessageException
from galaxy.util.json import from_json_string, to_json_string
from galaxy.util.json import loads, dumps
import logging
log = logging.getLogger( __name__ )
@@ -44,7 +44,7 @@ def json( func, **json_kwargs ):
@wraps(func)
def call_and_format( self, trans, *args, **kwargs ):
trans.response.set_content_type( JSON_CONTENT_TYPE )
return to_json_string( func( self, trans, *args, **kwargs ), **json_kwargs )
return dumps( func( self, trans, *args, **kwargs ), **json_kwargs )
if not hasattr( func, '_orig' ):
call_and_format._orig = func
return expose( _save_orig_fn( call_and_format, func ) )
@@ -133,9 +133,9 @@ def expose_api( func, to_json=True, user_required=True ):
try:
rval = func( self, trans, *args, **kwargs)
if to_json and trans.debug:
rval = to_json_string( rval, indent=4, sort_keys=True )
rval = dumps( rval, indent=4, sort_keys=True )
elif to_json:
rval = to_json_string( rval )
rval = dumps( rval )
return rval
except paste.httpexceptions.HTTPException:
raise # handled
@@ -160,7 +160,7 @@ def __extract_payload_from_request(trans, func, kwargs):
for k, v in payload.iteritems():
if isinstance(v, (str, unicode)):
try:
payload[k] = from_json_string(v)
payload[k] = loads(v)
except:
# may not actually be json, just continue
pass
@@ -169,7 +169,7 @@ def __extract_payload_from_request(trans, func, kwargs):
# Assume application/json content type and parse request body manually, since wsgi won't do it. However, the order of this check
# should ideally be in reverse, with the if clause being a check for application/json and the else clause assuming a standard encoding
# such as multipart/form-data. Leaving it as is for backward compatibility, just in case.
payload = util.recursively_stringify_dictionary_keys( from_json_string( trans.request.body ) )
payload = util.recursively_stringify_dictionary_keys( loads( trans.request.body ) )
return payload
def expose_api_raw( func ):
@@ -242,9 +242,9 @@ def _future_expose_api( func, to_json=True, user_required=True ):
try:
rval = func( self, trans, *args, **kwargs)
if to_json and trans.debug:
rval = to_json_string( rval, indent=4, sort_keys=True )
rval = dumps( rval, indent=4, sort_keys=True )
elif to_json:
rval = to_json_string( rval )
rval = dumps( rval )
return rval
except MessageException as e:
traceback_string = format_exc()
@@ -316,7 +316,7 @@ def __api_error_response( trans, **kwds ):
# non-success (i.e. not 200 or 201) has been set, do not override
# underlying controller.
response.status = status_code
return to_json_string( error_dict )
return dumps( error_dict )
# TODO: rename as expose_api and make default.
+1 -1
View File
@@ -7,7 +7,7 @@ from cgi import escape
from datetime import datetime, timedelta
from galaxy import eggs
from galaxy.util import hash_util
from galaxy.util.json import to_json_string
from galaxy.util.json import dumps
eggs.require( "MarkupSafe" ) #required by WebHelpers
eggs.require( "WebHelpers" )
from webhelpers import date
+11 -11
View File
@@ -3,7 +3,7 @@ import math
from galaxy.model.item_attrs import RuntimeException, UsesAnnotations, UsesItemRatings
from galaxy.util import sanitize_text
from galaxy.util.json import from_json_string, to_json_string
from galaxy.util.json import loads, dumps
from galaxy.util.odict import odict
from galaxy.web.framework import decorators
from galaxy.web.framework import url_for
@@ -72,11 +72,11 @@ class Grid( object ):
if self.preserve_state:
pref_name = unicode( self.__class__.__name__ + self.cur_filter_pref_name )
if pref_name in trans.get_user().preferences:
saved_filter = from_json_string( trans.get_user().preferences[pref_name] )
saved_filter = loads( trans.get_user().preferences[pref_name] )
base_filter.update( saved_filter )
pref_name = unicode( self.__class__.__name__ + self.cur_sort_key_pref_name )
if pref_name in trans.get_user().preferences:
base_sort_key = from_json_string( trans.get_user().preferences[pref_name] )
base_sort_key = loads( trans.get_user().preferences[pref_name] )
# Build initial query
query = self.build_initial_query( trans, **kwargs )
query = self.apply_query_filter( trans, query, **kwargs )
@@ -108,28 +108,28 @@ class Grid( object ):
column_filter = base_filter.get( column.key )
# Method (1) combines a mix of strings and lists of strings into a single string and (2) attempts to de-jsonify all strings.
def from_json_string_recurse(item):
def loads_recurse(item):
decoded_list = []
if isinstance( item, basestring):
try:
# Not clear what we're decoding, so recurse to ensure that we catch everything.
decoded_item = from_json_string( item )
decoded_item = loads( item )
if isinstance( decoded_item, list):
decoded_list = from_json_string_recurse( decoded_item )
decoded_list = loads_recurse( decoded_item )
else:
decoded_list = [ unicode( decoded_item ) ]
except ValueError:
decoded_list = [ unicode ( item ) ]
elif isinstance( item, list):
for element in item:
a_list = from_json_string_recurse( element )
a_list = loads_recurse( element )
decoded_list = decoded_list + a_list
return decoded_list
# If column filter found, apply it.
if column_filter is not None:
# TextColumns may have a mix of json and strings.
if isinstance( column, TextColumn ):
column_filter = from_json_string_recurse( column_filter )
column_filter = loads_recurse( column_filter )
if len( column_filter ) == 1:
column_filter = column_filter[0]
# Interpret ',' as a separator for multiple terms.
@@ -159,7 +159,7 @@ class Grid( object ):
for filter in column_filter:
if not isinstance( filter, basestring ):
filter = unicode( filter ).encode("utf-8")
extra_url_args[ "f-" + column.key ] = to_json_string( column_filter )
extra_url_args[ "f-" + column.key ] = dumps( column_filter )
else:
# Process singleton filter.
if not isinstance( column_filter, basestring ):
@@ -229,10 +229,10 @@ class Grid( object ):
# Preserve grid state: save current filter and sort key.
if self.preserve_state:
pref_name = unicode( self.__class__.__name__ + self.cur_filter_pref_name )
trans.get_user().preferences[pref_name] = unicode( to_json_string( cur_filter_dict ) )
trans.get_user().preferences[pref_name] = unicode( dumps( cur_filter_dict ) )
if sort_key:
pref_name = unicode( self.__class__.__name__ + self.cur_sort_key_pref_name )
trans.get_user().preferences[pref_name] = unicode( to_json_string( sort_key ) )
trans.get_user().preferences[pref_name] = unicode( dumps( sort_key ) )
trans.sa_session.flush()
# Log grid view.
context = unicode( self.__class__.__name__ )
@@ -1,3 +1,3 @@
"""
WSGI Middleware.
"""
"""
+1 -1
View File
@@ -483,4 +483,4 @@ for i in range(len(doc_lines)):
if doc_lines[i].strip().startswith('Settings'):
make_error_middleware.__doc__ = ''.join(doc_lines[i:])
break
del i, doc_lines
del i, doc_lines
@@ -180,4 +180,4 @@ def func_std_string( func_name ):
else:
return name
else:
return "%s:%d(%s)" % func_name
return "%s:%d(%s)" % func_name
@@ -64,4 +64,4 @@ class Sentry(object):
# Galaxy: store event_id in environment so we can show it to the user
environ['sentry_event_id'] = event_id[0]
return event_id
return event_id
+1 -1
View File
@@ -1,3 +1,3 @@
"""Galaxy webapps root package -- this is a namespace package."""
__import__( "pkg_resources" ).declare_namespace( __name__ )
__import__( "pkg_resources" ).declare_namespace( __name__ )
@@ -1 +1 @@
"""Galaxy demo sequencer emulator controllers."""
"""Galaxy demo sequencer emulator controllers."""
@@ -29,7 +29,7 @@ class CommonController( BaseUIController ):
response = self.handle_request( trans, url, http_method, **request_params )
# Handle response, currently only handles json
if response_type == 'json':
response = from_json_string( response )
response = loads( response )
# Handle response that is an error, for example:
# { "Success":false, "Message":"some error string" }
if 'Success' in response and response[ 'Success' ] == 'false':
@@ -121,7 +121,7 @@ class CommonController( BaseUIController ):
response = self.handle_request( trans, url, http_method, **request_params )
# Handle response, currently only handles json
if response_type == 'json':
response = from_json_string( response )
response = loads( response )
# Handle response that is an error, for example:
# { "Success":false, "Message":"some error string" }
if 'Success' in response and response[ 'Success' ] == 'false':
@@ -211,12 +211,12 @@ class CommonController( BaseUIController ):
**params ) )
def put( self, url, **kwd ):
opener = urllib2.build_opener( urllib2.HTTPHandler )
request = urllib2.Request( url, data=to_json_string( kwd ) )
request = urllib2.Request( url, data=dumps( kwd ) )
request.add_header( 'Content-Type', 'application/json' )
request.get_method = lambda: 'PUT'
url = opener.open( request )
output = url.read()
return from_json_string( output )
return loads( output )
@web.expose
def login( self, trans, **kwd ):
trans.app.sequencer_actions_registry.authenticated = True
@@ -17,8 +17,8 @@ from Cheetah.Template import Template
from galaxy.web.framework import helpers
from galaxy import util
from galaxy.util.json import to_json_string
from galaxy.util.json import from_json_string
from galaxy.util.json import dumps
from galaxy.util.json import loads
from galaxy.web.framework import url_for
from galaxy.web.framework.decorators import expose
from galaxy.web.framework.decorators import json
@@ -113,7 +113,7 @@ class ToolShedRepositoriesController( BaseAPIController ):
if raw_text:
# If successful, the response from get_ordered_installable_revisions will be a list of
# changeset_revision hash strings.
changeset_revisions = json.from_json_string( raw_text )
changeset_revisions = json.loads( raw_text )
if len( changeset_revisions ) >= 1:
return changeset_revisions[ -1 ]
return hg_util.INITIAL_CHANGELOG_HASH
@@ -146,7 +146,7 @@ class ToolShedRepositoriesController( BaseAPIController ):
if index is None:
raise HTTPBadRequest( detail="Missing required parameter 'index'." )
repository = suc.get_tool_shed_repository_by_id( trans.app, tool_shed_repository_id )
exported_workflows = json.from_json_string( self.exported_workflows( trans, tool_shed_repository_id ) )
exported_workflows = json.loads( self.exported_workflows( trans, tool_shed_repository_id ) )
# Since we don't have an in-memory object with an id, we'll identify the exported workflow via its location (i.e., index) in the list.
exported_workflow = exported_workflows[ int( index ) ]
workflow_name = exported_workflow[ 'workflow_name' ]
@@ -173,7 +173,7 @@ class ToolShedRepositoriesController( BaseAPIController ):
if not tool_shed_repository_id:
raise HTTPBadRequest( detail="Missing required parameter 'id'." )
repository = suc.get_tool_shed_repository_by_id( trans.app, tool_shed_repository_id )
exported_workflows = json.from_json_string( self.exported_workflows( trans, tool_shed_repository_id ) )
exported_workflows = json.loads( self.exported_workflows( trans, tool_shed_repository_id ) )
imported_workflow_dicts = []
for exported_workflow_dict in exported_workflows:
workflow_name = exported_workflow_dict[ 'workflow_name' ]
@@ -438,7 +438,7 @@ class ToolShedRepositoriesController( BaseAPIController ):
results[ 'repository_status' ].append( message )
stop_time = strftime( "%Y-%m-%d %H:%M:%S" )
results[ 'stop_time' ] = stop_time
return json.to_json_string( results, sort_keys=True, indent=4 )
return json.dumps( results, sort_keys=True, indent=4 )
@expose_api
def show( self, trans, id, **kwd ):
+2 -2
View File
@@ -7,7 +7,7 @@ from galaxy.web.base.controller import BaseAPIController
from galaxy.web.base.controller import UsesVisualizationMixin
from galaxy.web.base.controller import UsesHistoryMixin
from galaxy.visualization.genomes import GenomeRegion
from galaxy.util.json import to_json_string
from galaxy.util.json import dumps
from galaxy.visualization.data_providers.genome import *
from galaxy.managers.collections_util import dictify_dataset_collection_instance
@@ -248,7 +248,7 @@ class ToolsController( BaseAPIController, UsesVisualizationMixin, UsesHistoryMix
# TODO: need to handle updates to conditional parameters; conditional
# params are stored in dicts (and dicts within dicts).
new_inputs = payload[ 'inputs' ]
tool_params.update( dict( [ ( key, to_json_string( value ) ) for key, value in new_inputs.items() if key in tool.inputs and new_inputs[ key ] is not None ] ) )
tool_params.update( dict( [ ( key, dumps( value ) ) for key, value in new_inputs.items() if key in tool.inputs and new_inputs[ key ] is not None ] ) )
tool_params = tool.params_from_strings( tool_params, self.app )
#

Some files were not shown because too many files have changed in this diff Show More