[2] | 1 | # runs after the job (and after the default post-filter) |
---|
| 2 | |
---|
| 3 | import pkg_resources |
---|
| 4 | pkg_resources.require( "bx-python" ) |
---|
| 5 | |
---|
| 6 | from galaxy import datatypes, jobs, util |
---|
| 7 | # needed to reference ParseError types, is this bad? |
---|
| 8 | from bx.tabular.io import * |
---|
| 9 | from bx.intervals.io import * |
---|
| 10 | import sys, tempfile, os |
---|
| 11 | |
---|
| 12 | def validate(incoming): |
---|
| 13 | """Validator""" |
---|
| 14 | #raise Exception, 'not quite right' |
---|
| 15 | pass |
---|
| 16 | |
---|
| 17 | def exec_before_job( app, inp_data, out_data, param_dict, tool=None): |
---|
| 18 | """Build a temp file with errors in it""" |
---|
| 19 | errors = [] |
---|
| 20 | for name, data in inp_data.items(): |
---|
| 21 | validation_errors = data.validation_errors |
---|
| 22 | for error in validation_errors: |
---|
| 23 | # build dummy class |
---|
| 24 | try: |
---|
| 25 | temp = eval(error.err_type)() |
---|
| 26 | except: |
---|
| 27 | temp = object() |
---|
| 28 | # stuff attributes |
---|
| 29 | temp.__dict__ = util.string_to_object( error.attributes ) |
---|
| 30 | errors.append(temp) |
---|
| 31 | # There *should* only be 1 input, so we assume there is and continue |
---|
| 32 | # base64 pickel |
---|
| 33 | errors_str = util.object_to_string( errors ) |
---|
| 34 | # write |
---|
| 35 | database_tmp = "./database/tmp" # globaly visible path |
---|
| 36 | error_file = tempfile.NamedTemporaryFile(mode="w", dir=database_tmp, suffix=".b64") |
---|
| 37 | error_file_name = error_file.name |
---|
| 38 | error_file.close() |
---|
| 39 | error_file = open(error_file_name, "w") |
---|
| 40 | error_file.write(errors_str) |
---|
| 41 | error_file.close() |
---|
| 42 | param_dict["errorsfile"] = error_file_name |
---|
| 43 | |
---|
| 44 | |
---|
| 45 | def exec_after_process( app, inp_data, out_data, param_dict, tool=None, stdout=None, stderr=None): |
---|
| 46 | # in a perfect world, changes to param_dict would persist |
---|
| 47 | # for now, unlink from tool |
---|
| 48 | # os.unlink(param_dict["errorsfile"]) |
---|
| 49 | pass |
---|