code: def entity(self, entity_type, identifier=None):
          
          entity = _ACLEntity(entity_type=entity_type, identifier=identifier)
          if self.has_entity(entity):
              entity = self.get_entity(entity)
          else:
              self.add_entity(entity)
          return entity
docs: Factory method for creating an Entity.
  
          If an entity with the same type and identifier already exists,
          this will return a reference to that entity.  If not, it will
          create a new one and add it to the list of known entities for
          this ACL.
  
          :type entity_type: str
          :param entity_type: The type of entity to create
                              (ie, ``user``, ``group``, etc)
  
          :type identifier: str
          :param identifier: The ID of the entity (if applicable).
                             This can be either an ID or an e-mail address.
  
          :rtype: :class:`_ACLEntity`
          :returns: A new Entity or a reference to an existing identical entity.