docs: def set_list_attribute(self, other, trigger_klass, property_name):
          """Used to set guard the setting of a list attribute, ensuring the same element is not added twice."""
          # Check property exists
          if isinstance(other, trigger_klass):
  
              if not hasattr(self, property_name):
                  raise AttributeError("%s has no property %s" % (self.__class__.__name__, property_name))
  
              val = getattr(self, property_name, [])
              if other in val:
                  raise ValueError("%s already exists in %s" % (other.__class__.__name__, self.__class__.__name__))
              else:
                  val.append(other)
                  setattr(self, property_name, val)