How to use the skypy.current_task.persistent_state function in skypy

To help you get started, we’ve selected a few skypy examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github mrry / ciel / src / python / skywriting / runtime / worker / skypy / stub.py View on Github external
out_message = ("error", {"report": report})
        else:
            if skypy.current_task.halt_reason == skypy.HALT_REFERENCE_UNAVAILABLE:
                coro_ref = skypy.save_state(resume_state)
                out_message = ("tail_spawn", 
                                {"executor_name": "skypy",
                                 "pyfile_ref": skypy.current_task.persistent_state.py_ref,
                                 "coro_ref": coro_ref,
                                 "extra_dependencies": [SW2_FutureReference(x) for x in skypy.current_task.persistent_state.ref_dependencies.keys()]
                                 }
                               )
                write_framed_json(out_message, write_fp)
            elif skypy.current_task.halt_reason == skypy.HALT_DONE:
                out_fp = MaybeFile(open_callback=lambda: skypy.open_output(0))
                with out_fp:
                    if skypy.current_task.persistent_state.export_json:
                        simplejson.dump(skypy.current_task.script_return_val, out_fp)
                    else:
                        pickle.dump(skypy.current_task.script_return_val, out_fp)
                skypy.ref_from_maybe_file(out_fp, 0)
            out_message = ("exit", {"keep_process": "may_keep", "soft_cache_keys": soft_cache.get_cache_keys()})
        write_framed_json(out_message, write_fp)
        if skypy.current_task.halt_reason == skypy.HALT_RUNTIME_EXCEPTION:
            sys.exit(0)
        skypy.current_task = None
    except ShutdownException, e:
        print >>sys.stderr, "SkyPy: killed by Ciel (reason: '%s')" % e.reason
        sys.exit(0)
    except Exception, e:
        print >>sys.stderr, "SkyPy: exception reached top level!"
        report = "Top-level exception %s\n%s" % (repr(e), traceback.format_exc())
        out_message = ("error", {"report": report})
github mrry / ciel / src / python / skywriting / runtime / worker / skypy / stub.py View on Github external
message_helper,
                                             file_outputs)

        user_coro.switch()
        # We're back -- either the user script is done, or else it's stuck waiting on a reference.
        if skypy.current_task.halt_reason == skypy.HALT_RUNTIME_EXCEPTION:
            report = "User script exception %s\n%s" % (str(skypy.current_task.script_return_val), skypy.current_task.script_backtrace)
            out_message = ("error", {"report": report})
        else:
            if skypy.current_task.halt_reason == skypy.HALT_REFERENCE_UNAVAILABLE:
                coro_ref = skypy.save_state(resume_state)
                out_message = ("tail_spawn", 
                                {"executor_name": "skypy",
                                 "pyfile_ref": skypy.current_task.persistent_state.py_ref,
                                 "coro_ref": coro_ref,
                                 "extra_dependencies": [SW2_FutureReference(x) for x in skypy.current_task.persistent_state.ref_dependencies.keys()]
                                 }
                               )
                write_framed_json(out_message, write_fp)
            elif skypy.current_task.halt_reason == skypy.HALT_DONE:
                out_fp = MaybeFile(open_callback=lambda: skypy.open_output(0))
                with out_fp:
                    if skypy.current_task.persistent_state.export_json:
                        simplejson.dump(skypy.current_task.script_return_val, out_fp)
                    else:
                        pickle.dump(skypy.current_task.script_return_val, out_fp)
                skypy.ref_from_maybe_file(out_fp, 0)
            out_message = ("exit", {"keep_process": "may_keep", "soft_cache_keys": soft_cache.get_cache_keys()})
        write_framed_json(out_message, write_fp)
        if skypy.current_task.halt_reason == skypy.HALT_RUNTIME_EXCEPTION:
            sys.exit(0)
        skypy.current_task = None
github mrry / ciel / src / python / skywriting / runtime / worker / skypy / stub.py View on Github external
skypy.current_task = skypy.SkyPyTask(main_coro, 
                                             resume_state.persistent_state,
                                             message_helper,
                                             file_outputs)

        user_coro.switch()
        # We're back -- either the user script is done, or else it's stuck waiting on a reference.
        if skypy.current_task.halt_reason == skypy.HALT_RUNTIME_EXCEPTION:
            report = "User script exception %s\n%s" % (str(skypy.current_task.script_return_val), skypy.current_task.script_backtrace)
            out_message = ("error", {"report": report})
        else:
            if skypy.current_task.halt_reason == skypy.HALT_REFERENCE_UNAVAILABLE:
                coro_ref = skypy.save_state(resume_state)
                out_message = ("tail_spawn", 
                                {"executor_name": "skypy",
                                 "pyfile_ref": skypy.current_task.persistent_state.py_ref,
                                 "coro_ref": coro_ref,
                                 "extra_dependencies": [SW2_FutureReference(x) for x in skypy.current_task.persistent_state.ref_dependencies.keys()]
                                 }
                               )
                write_framed_json(out_message, write_fp)
            elif skypy.current_task.halt_reason == skypy.HALT_DONE:
                out_fp = MaybeFile(open_callback=lambda: skypy.open_output(0))
                with out_fp:
                    if skypy.current_task.persistent_state.export_json:
                        simplejson.dump(skypy.current_task.script_return_val, out_fp)
                    else:
                        pickle.dump(skypy.current_task.script_return_val, out_fp)
                skypy.ref_from_maybe_file(out_fp, 0)
            out_message = ("exit", {"keep_process": "may_keep", "soft_cache_keys": soft_cache.get_cache_keys()})
        write_framed_json(out_message, write_fp)
        if skypy.current_task.halt_reason == skypy.HALT_RUNTIME_EXCEPTION: