#parsed from pymoult.highlevel.updates import SafeRedefineUpdate, Update, isApplied from pymoult.highlevel.listener import log import sys main = sys.modules["__main__"] def func_v2(): log(0, "v2") class FailedAlterability(Update): def check_alterability(self): return main.func_v1 == func_v2 def apply(self): pass update1 = FailedAlterability(name="alterability") update1.set_max_tries(3) update2 = SafeRedefineUpdate(main, main.func_v1, func_v2, name="func") main.manager.add_update(update1) main.manager.add_update(update2)
#parsed from pymoult.highlevel.updates import SafeRedefineUpdate from pymoult.highlevel.managers import ThreadedManager import sys main = sys.modules["__main__"] def hello_v2(): print("Hello Dave") manager = ThreadedManager() manager.start() update = SafeRedefineUpdate(main, main.hello, hello_v2) manager.add_update(update)
def func_v2(): staticUpdatePoint() log(0, "v2") class FailedAlterability(Update): def preupdate_setup(self): setupWaitStaticPoints([main.thread]) def wait_alterability(self): return waitStaticPoints([main.thread]) def clean_failed_alterability(self): cleanFailedStaticPoints([main.thread]) def apply(self): pass update1 = FailedAlterability(name="alterability") update2 = SafeRedefineUpdate(main, main.func_v1, func_v2, name="func", threads=[main.thread]) update1.set_max_tries(10) update1.set_sleep_time(0.2) main.manager.add_update(update1) main.manager.add_update(update2)
#parsed from pymoult.highlevel.updates import SafeRedefineUpdate import sys main = sys.modules["__main__"] def tic_v2(): print("tic2") def tac_v2(): print("tac2") update_tic = SafeRedefineUpdate(main, main.tic, tic_v2) update_tac = SafeRedefineUpdate(main, main.tac, tac_v2) main.manager.add_update(update_tic) main.manager.add_update(update_tac)
from pymoult.highlevel.managers import ThreadedManager import sys main = sys.modules["__main__"] class Data_v2(object): def __init__(self, value, origin="localhost"): self.value = value self.origin = origin def __str__(self): return str(self.value) + " from " + str(self.origin) def transformer(d): d.origin = "localhost" def sum_v2(d1, d2): return Data_v2(d1.value + d2.value, d1.origin) manager = ThreadedManager() manager.start() update1 = EagerConversionUpdate(main.Data, Data_v2, transformer, module=main) update2 = SafeRedefineUpdate(main, main.sum, sum_v2) manager.add_update(update1) manager.add_update(update2)
main.shared_lock.release() def interm_writer(): main.shared_lock.acquire() if update: #code of write_shared2 main.shared = [time.strftime("%H:%M:%S"), random.randint(0, 10)] else: #code of write_shared1 main.shared = random.randint(0, 10) main.shared_lock.release() update_reader1 = SafeRedefineUpdate(main, main.read_shared, interm_reader, name="update_reader1") update_reader1.set_sleep_time(0.1) update_writer1 = SafeRedefineUpdate(main, main.write_shared, interm_writer, name="update_writer1") update_writer1.set_sleep_time(0.1) main.manager.add_update(update_reader1) main.manager.add_update(update_writer1) class DataUpdate(Update): def check_requirements(self): if isApplied("update_reader1") and isApplied("update_writer1"):
site_update = LazyConversionUpdate(main.Site,SiteV2,transformer_site,None) account_update = LazyConversionUpdate(main.Account,AccountV2,transformer_account,None) account_manager.add_update(account_update) site_manager.add_update(site_update) class ClassUpdate(Update): def wait_alterability(self): return True def apply(self): redefineClass(main,main.Site,SiteV2) redefineClass(main,main.Account,AccountV2) clsupdate = ClassUpdate() functions_manager.add_update(clsupdate) do_command_update = SafeRedefineUpdate(main,main.do_command,do_commandV2) functions_manager.add_update(do_command_update) do_create_update = SafeRedefineUpdate(main,main.do_create,do_createV2) functions_manager.add_update(do_create_update) do_delete_update = SafeRedefineUpdate(main,main.do_delete,do_deleteV2) functions_manager.add_update(do_delete_update) do_show_update = SafeRedefineUpdate(main,main.do_show,do_showV2) functions_manager.add_update(do_show_update) class EmptyUpdate(Update): def wait_alterability(self): return True def apply(self): pass def cleanup(self): print("Update finished")