/usr/share/pyshared/tryton/signal_event.py is in tryton-client 3.0.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
"Signal event"
class SignalEvent(object):
"Signal event"
def __init__(self):
self.__connects = {}
def signal(self, signal, signal_data=None):
for fnct, data, key in self.__connects.get(signal, []):
fnct(self, signal_data, *data)
return True
def signal_connected(self, signal):
return bool(self.__connects.get(signal))
def signal_connect(self, key, signal, fnct, *data):
self.__connects.setdefault(signal, [])
if (fnct, data, key) not in self.__connects[signal]:
self.__connects[signal].append((fnct, data, key))
return True
def signal_unconnect(self, key, signal=None):
if signal is None:
signal = self.__connects.keys()
else:
signal = [signal]
for sig in signal:
i = 0
while i < len(self.__connects[sig]):
if self.__connects[sig][i][2] is key:
del self.__connects[sig][i]
else:
i += 1
return True
def destroy(self):
self.__connects = {}
|