mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
PBS Upload Tool w/ set_metadata_externally = True fixes
This commit is contained in:
+14
-1
@@ -25,6 +25,7 @@ import galaxy.model.mapping #need to load this before we unpickle, in order to s
|
||||
galaxy.model.Job() #this looks REAL stupid, but it is REQUIRED in order for SA to insert parameters into the classes defined by the mappers --> it appears that instantiating ANY mapper'ed class would suffice here
|
||||
galaxy.datatypes.metadata.DATABASE_CONNECTION_AVAILABLE = False #Let metadata know that there is no database connection, and to just assume object ids are valid
|
||||
from galaxy.util import stringify_dictionary_keys
|
||||
from galaxy.util.json import from_json_string
|
||||
from sqlalchemy.orm import clear_mappers
|
||||
|
||||
def __main__():
|
||||
@@ -37,13 +38,25 @@ def __main__():
|
||||
config_root = sys.argv.pop( 1 )
|
||||
datatypes_config = sys.argv.pop( 1 )
|
||||
galaxy.model.set_datatypes_registry( galaxy.datatypes.registry.Registry( config_root, datatypes_config ) )
|
||||
|
||||
|
||||
job_metadata = sys.argv.pop( 1 )
|
||||
ext_override = dict()
|
||||
if job_metadata != "None" and os.path.exists( job_metadata ):
|
||||
for line in open( job_metadata, 'r' ):
|
||||
try:
|
||||
line = stringify_dictionary_keys( from_json_string( line ) )
|
||||
assert line['type'] == 'dataset'
|
||||
ext_override[line['dataset_id']] = line['ext']
|
||||
except:
|
||||
continue
|
||||
for filenames in sys.argv[1:]:
|
||||
filename_in, filename_kwds, filename_out, filename_results_code, dataset_filename_override = filenames.split( ',' )
|
||||
try:
|
||||
dataset = cPickle.load( open( filename_in ) ) #load DatasetInstance
|
||||
if dataset_filename_override:
|
||||
dataset.dataset.external_filename = dataset_filename_override
|
||||
if ext_override.get( dataset.dataset.id, None ):
|
||||
dataset.extension = ext_override[ dataset.dataset.id ]
|
||||
kwds = stringify_dictionary_keys( simplejson.load( open( filename_kwds ) ) )#load kwds; need to ensure our keywords are not unicode
|
||||
dataset.datatype.set_meta( dataset, **kwds )
|
||||
dataset.metadata.to_JSON_dict( filename_out ) # write out results of set_meta
|
||||
|
||||
Reference in New Issue
Block a user