"""A Circuit object in a Model. Circuit is comprised of two Interface objects"""
[docs]class Circuit(object):
"""A circuit is an object consisting of 2 connected interfaces"""
def __init__(self, interface_a, interface_b):
self.interface_a = interface_a
self.interface_b = interface_b
def __repr__(self):
return "Circuit(%r, %r)" % (
self.interface_a,
self.interface_b,
)
def _key(self):
return (self.interface_a._key, self.interface_b._key)
[docs] def get_circuit_interfaces(self, model):
"""
Return the Circuit's component Interface objects in model object
:param model: model object containing Circuit
:return: Component Interfaces in Circuit
"""
return (self.interface_a, self.interface_b)
[docs] def failed(self, model):
"""
Is Circuit failed?
:param model: Model containing circuit
:return: Boolean
"""
int_a, int_b = self.get_circuit_interfaces(model)
if int_a.failed or int_b.failed:
return True
else:
return False
[docs] def circuit_id(self): # TODO - unit test this
"""
Returns the circuit_id, which bonds the two component Interfaces to the Circuit
"""
return self.interface_a.circuit_id