inverse relation shadow variable NameError: name XXX is not defined
MinamiHuang opened this issue · comments
MinamiHuang commented
@planning_entity
class Device:
def __init__(self, id, node, controller):
self.id = id
self.node = node
self.controller = controller
@planning_id
def get_id(self):
return self.id
def get_node():
return node
@planning_variable(Controller, ["controller_range"])
def get_controller():
return controller
def set_controller(new_ctr):
self.controller = new_ctr
@planning_entity
class Controller:
def __init__(self, id, node, dev_list=None):
self.id = id
self.node = node
if dev_list is None:
self.dev_list = []
else:
self.dev_list = dev_list
@planning_id
def get_id(self):
return self.id
def get_node():
return node
@inverse_relation_shadow_variable(Controller, source_variable_name = "controller")
def get_dev_list():
return dev_list
def set_dev_list(new_list):
self.dev_list = new_list
If I pass the 'Controller', I get the NameError. If I put the class Controller before Device and omit the param source_type, I receive the message "missing 1 required positional argument: 'source_type' "
Please help me construct the Bi-directional variable, thanks very much.
Christopher Chianelli commented
I recommend you look at the inverse relation test:
optapy/tests/test_inverse_relation.py
Lines 7 to 35 in ac3119c
In particular, you would use
object
for get_controller
, and Device
for get_dev_list
.