code: def publish(self, event_type: str, event_data: dict = None):
          
          import inspect
          import os.path
          _stack = inspect.stack()
          _origin = os.path.basename(_stack[3][1]) + '::' + \
              _stack[3][3]+'::L{}'.format(_stack[3][2])
  
          publish(event_type=event_type,
                  event_data=event_data,
                  object_type=self._type,
                  object_id=self._id,
                  object_key=self._key,
                  origin=_origin)
docs: Publish an event associated with the scheduling object.
  
          Note:
              Ideally publish should not be used directly but by other methods
              which perform actions on the object.
  
          Args:
              event_type (str): Type of event.
              event_data (dict, optional): Event data.