code: def append_step(self, title, description, timestamp=None, data=None):
          
          step = ProvenanceStep(title, description, timestamp, data)
          self._steps.append(step)
          return step.time
docs: Append a new provenance step.
  
          :param title: the title of the ProvenanceStep
          :type title: str
  
          :param description: the description of the ProvenanceStep
          :type description: str
  
          :param timestamp: the time of the ProvenanceStep
          :type timestamp: datetime, None, str
  
          :param data: The data of the ProvenanceStep
          :type data: dict
  
          :returns: the time of the ProvenanceStep
          :rtype: datetime