code: def stop_pipeline(self, status=COMPLETE_FLAG):
          
          self._set_status_flag(status)
          self._cleanup()
          self.report_result("Time", str(datetime.timedelta(seconds=self.time_elapsed(self.starttime))))
          self.report_result("Success", time.strftime("%m-%d-%H:%M:%S"))
          print("\n##### [Epilogue:]")
          print("* " + "Total elapsed time".rjust(20) + ":  " + str(datetime.timedelta(seconds=self.time_elapsed(self.starttime))))
          # print("Peak memory used: " + str(memory_usage()["peak"]) + "kb")
          print("* " + "Peak memory used".rjust(20) + ":  " + str(round(self.peak_memory, 2)) + " GB")
          if self.halted:
              return
          self.timestamp("* Pipeline completed at: ".rjust(20))
docs: Terminate the pipeline.
  
          This is the "healthy" pipeline completion function.
          The normal pipeline completion function, to be run by the pipeline
          at the end of the script. It sets status flag to completed and records 
          some time and memory statistics to the log file.