code: def step_end(self):
      from metaflow.exception import ExternalCommandFailed
  
      # make sure we see the latest attempt version of the artifact
      assert_equals(3, self.test_attempt)
      # the test uses a non-trivial derived exception on purpose
      # which is non-trivial to pickle correctly
      self.here = True
      raise ExternalCommandFailed("catch me!")
  
file_path: metaflow/test/core/tests/catch_retry.py
imports: from metaflow_test import MetaflowTest, ExpectationFailed, steps, tag
  from metaflow import current
label_desc: Use image node_id 4 for calling the CatchRetryTest obj's underlying member method code with example usage: obj.step_end() without return types