code: def __call__(self, object_folder: str):
      self.logger.debug(f'pipeline running on "{object_folder}"')
      object_folder = Path(object_folder)
  
      stages = self.stages
      logger = self.logger
      properties = None
  
      try:
          if 0 in stages:
              stage0(object_folder, logger)
          if 1 in stages:
              stage1(object_folder, logger)
          if 2 in stages:
              stage2(object_folder, logger)
          if 3 in stages:
              stage3(object_folder, logger)
          if 4 in stages:
              properties = stage4(object_folder, logger)
          if 5 in stages:
              stage5(object_folder, logger)
          if 6 in stages:
              stage6(object_folder, logger)
          return properties
  
      except Exception as e:
          import traceback
  
          logger.error(f'Pipeline exception on "{object_folder}"')
          logger.error(
              f"Exception details: {str(e)} {traceback.format_tb(e.__traceback__)}"
          )
  
imports: import argparse
  from pathlib import Path
  import multiprocessing
  import logging
  import sys
  import tqdm
  import json
  from datetime import datetime
  from shapenet_denylist import invalid_model
  from shapenet_denylist import __shapenet_set__
  from convert import stage0
  from convert import stage1
  from convert import stage2
  from convert import stage3
  from convert import stage4
  from convert import stage5
  from convert import stage6
label_desc: Use image node_id 2 for calling the Functor obj's underlying member method code with example usage: obj.__call__(object_folder) and returns: properties