Mercurial > repos > xuebing > sharplabtool
diff tools/validation/fix_errors_code.py @ 0:9071e359b9a3
Uploaded
author | xuebing |
---|---|
date | Fri, 09 Mar 2012 19:37:19 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/validation/fix_errors_code.py Fri Mar 09 19:37:19 2012 -0500 @@ -0,0 +1,49 @@ +# runs after the job (and after the default post-filter) + +import pkg_resources +pkg_resources.require( "bx-python" ) + +from galaxy import datatypes, jobs, util +# needed to reference ParseError types, is this bad? +from bx.tabular.io import * +from bx.intervals.io import * +import sys, tempfile, os + +def validate(incoming): + """Validator""" + #raise Exception, 'not quite right' + pass + +def exec_before_job( app, inp_data, out_data, param_dict, tool=None): + """Build a temp file with errors in it""" + errors = [] + for name, data in inp_data.items(): + validation_errors = data.validation_errors + for error in validation_errors: + # build dummy class + try: + temp = eval(error.err_type)() + except: + temp = object() + # stuff attributes + temp.__dict__ = util.string_to_object( error.attributes ) + errors.append(temp) + # There *should* only be 1 input, so we assume there is and continue + # base64 pickel + errors_str = util.object_to_string( errors ) + # write + database_tmp = "./database/tmp" # globaly visible path + error_file = tempfile.NamedTemporaryFile(mode="w", dir=database_tmp, suffix=".b64") + error_file_name = error_file.name + error_file.close() + error_file = open(error_file_name, "w") + error_file.write(errors_str) + error_file.close() + param_dict["errorsfile"] = error_file_name + + +def exec_after_process( app, inp_data, out_data, param_dict, tool=None, stdout=None, stderr=None): + # in a perfect world, changes to param_dict would persist + # for now, unlink from tool + # os.unlink(param_dict["errorsfile"]) + pass