code: def merge_things(self, inputs):
      from metaflow.current import current
      from metaflow.exception import MissingInMergeArtifactsException
  
      self.manual_merge_required = current.task_id
      # Test to see if we raise an exception if include specifies non-merged things
      assert_exception(
          lambda: self.merge_artifacts(
              inputs, include=["manual_merge_required", "foobar"]
          ),
          MissingInMergeArtifactsException,
      )
  
      # Test to make sure nothing is set if failed merge_artifacts
      assert not hasattr(self, "non_modified_passdown")
  
      # Merge include non_modified_passdown
      self.merge_artifacts(inputs, include=["non_modified_passdown"])
  
      # Ensure that everything we expect is passed down
      assert_equals(self.non_modified_passdown, "a")
      assert_equals(self.manual_merge_required, current.task_id)
      assert not hasattr(self, "ignore_me")
      assert not hasattr(self, "modified_to_same_value")
  
file_path: metaflow/test/core/tests/merge_artifacts_include.py
imports: from metaflow_test import MetaflowTest, ExpectationFailed, steps
label_desc: Use image node_id 3 for calling the MergeArtifactsIncludeTest obj's underlying member method code with example usage: obj.merge_things(inputs) without return types