Index: leahi_dialin/utils/abstract_classes.py =================================================================== diff -u -r6c90336ac2cd8cf34ac620cff431a847d9ddf557 -r775f2d7ca9a4d1c86c02bc27130f8765dc4156ad --- leahi_dialin/utils/abstract_classes.py (.../abstract_classes.py) (revision 6c90336ac2cd8cf34ac620cff431a847d9ddf557) +++ leahi_dialin/utils/abstract_classes.py (.../abstract_classes.py) (revision 775f2d7ca9a4d1c86c02bc27130f8765dc4156ad) @@ -100,11 +100,11 @@ # If it's a instance variable (self.) then set it's value if variable_name.startswith('self'): - attr_name = variable_name[5:] - if not attr_name.isidentifier(): - print(f'Invalid attribute name: "{attr_name}"!') - raise ValueError('Invalid attribute name') - setattr(self, attr_name, value) + attr_path = variable_name[5:].split('.') + obj = self + for attr in attr_path[:-1]: + obj = getattr(obj, attr) + setattr(obj, attr_path[-1], value) start_pos = end_pos if debug: print('Finished cycle\n')