class BaseSchema(object):
def __init__(self):
self.name = 'default'
self.ins = []
self.outs = []
self.io_params = self.io_params or {}
self.io_params['count'] = self.io_params.get('count') or [0, 0] # required!
self.io_params['digital'] = self.io_params.get('digital') or [True, True]
self.ins = [0 for i in range(self.io_params['count'][0])]
self.outs = [0 for i in range(self.io_params['count'][1])]
def f(self, _in):
pass
class Decryptor(BaseSchema):
def __init__(self):
self.name = 'Decryptor'
self.outs = [0]
self.io_params = {
'count': [3, 8]
}
super().__init__()
def f(self):
self.outs[0] = not self.ins[0] and not self.ins[1] and not self.ins[2]
self.outs[1] = not self.ins[0] and not self.ins[1] and self.ins[2]
self.outs[2] = not self.ins[0] and self.ins[1] and not self.ins[2]
self.outs[3] = not self.ins[0] and self.ins[1] and self.ins[2]
self.outs[4] = self.ins[0] and not self.ins[1] and not self.ins[2]
self.outs[5] = self.ins[0] and not self.ins[1] and self.ins[2]
self.outs[6] = self.ins[0] and self.ins[1] and not self.ins[2]
self.outs[7] = self.ins[0] and self.ins[1] and self.ins[2]
def main():
d = [Decryptor(), Decryptor()]
d[0].ins = [1, 1, 1]
d[0].f()
print(d[0].outs)
d[1].ins = d[0].outs[:3]
d[1].f()
print(d[1].outs)
main()