class Example(object): def __init__(self): self.simple_attribute = 12 self._private_value = 42 self.dict_attribute = {1: 2} self._rw_prop = 42 self._ro_prop = 42 self._wo_prop = 42 self.rw_prop_changed = Signal() self.wo_prop_changed = Signal() @property def rw_prop(self): return self._rw_prop @rw_prop.setter def rw_prop(self, value): if self._rw_prop == value: return self.rw_prop_changed.emit(value) self._rw_prop = value @property def ro_prop(self): return self._ro_prop def wo_prop(self, value): if self._wo_prop == value: return self.wo_prop_changed.emit(value) self._wo_prop = value wo_prop = property(None, wo_prop) def fun_simple(self): return 46 def fun_arg1(self, x): return x + 2 def fun_arg2(self, x=2, y=3): return x ** y def fun_raise(self): raise ValueError('Bla') def fut(self): def fun(): time.sleep(1) return 10 return executor.submit(fun) def fut_raise(self): def fun(): time.sleep(1) raise ValueError return executor.submit(fun)
class Example(object): def __init__(self): self.simple_attribute = 12 self._private_value = 42 self.dict_attribute = {1: 2} self._rw_prop = 42 self._ro_prop = 42 self._wo_prop = 42 self.rw_prop_changed = Signal() self.wo_prop_changed = Signal() @property def rw_prop(self): return self._rw_prop @rw_prop.setter def rw_prop(self, value): if self._rw_prop == value: return self.rw_prop_changed.emit(value) self._rw_prop = value @property def ro_prop(self): return self._ro_prop def wo_prop(self, value): if self._wo_prop == value: return self.wo_prop_changed.emit(value) self._wo_prop = value wo_prop = property(None, wo_prop) def fun_simple(self): return 46 def fun_arg1(self, x): return x + 2 def fun_arg2(self, x=2, y=3): return x**y def fun_raise(self): raise ValueError('Bla') def fut(self): def fun(): time.sleep(1) return 10 return executor.submit(fun) def fut_raise(self): def fun(): time.sleep(1) raise ValueError return executor.submit(fun)
def __init__(self): self.simple_attribute = 12 self._private_value = 42 self.dict_attribute = {1: 2} self._rw_prop = 42 self._ro_prop = 42 self._wo_prop = 42 self.rw_prop_changed = Signal() self.wo_prop_changed = Signal()
def test_thread(): std_signal = Signal(1) test_built_in = Signal(2) std_signal.connect(pg.setValue) test_built_in.connect(pg.setRange) v_int = 0 while True: v_int += 1 std_signal.emit(v_int) test_built_in.emit(0,10) time.sleep(0.5) if v_int == 5: break pg.close()
class RemotePizcoEmitter(object): std_signal = Signal.Auto() def __init__(self): self._nframe = 0 def emission(self): self._nframe += 1 self.std_signal.emit(self._nframe)
class House(object): def __init__(self): logger.info('Welcome to your new house') self._door_open = False self._lights_on = False self.door_open_changed = Signal() self.lights_on_changed = Signal() self.color_changed = Signal() self._pool = futures.ThreadPoolExecutor(max_workers=1) @property def door_open(self): logger.info('Getting door_open') return self._door_open @door_open.setter def door_open(self, value): if value not in (True, False): raise ValueError("'{}' is not a valid value for door_open".format(value)) logger.info('Setting door_open to {}'.format(value)) if self._door_open == value: logger.info('No need to change door_open') return self.door_open_changed.emit(value, self._door_open) self._door_open = value @property def lights_on(self): return self._lights_on @lights_on.setter def lights_on(self, value): if value not in (True, False): raise ValueError("'{}' is not a valid value for lights_on".format(value)) logger.info('Setting lights_on to {}'.format(value)) if self._lights_on == value: logger.info('No need to change lights_on') return self.lights_on_changed.emit(value, self._lights_on) self._lights_on = value def paint(self, color): if color not in COLORS: raise ValueError("'{}' is not a valid color ({})".format(color, COLORS)) logger.info('Painting: {}'.format(color)) time.sleep(.5) self.color_changed.emit(color) logger.info('Painted: {}'.format(color)) def _changing_roof(self): time.sleep(1) return 'You have a new roof' def change_roof(self): return self._pool.submit(self._changing_roof)
def __init__(self): logger.info('Welcome to your new house') self._door_open = False self._lights_on = False self.door_open_changed = Signal() self.lights_on_changed = Signal() self.color_changed = Signal() self._pool = futures.ThreadPoolExecutor(max_workers=1)
def test_thread(): std_signal = Signal(1) test_built_in = Signal(2) std_signal.connect(pg.setValue) test_built_in.connect(pg.setRange) v_int = 0 while True: v_int += 1 std_signal.emit(v_int) test_built_in.emit(0, 10) time.sleep(0.5) if v_int == 5: break pg.close()