code: def test_tweak_hook(self):
      class A(Configurable):
          n: int = 9
  
      class Wrapper(Configurable):
          fruit: Fruit
          fruit_class_type: str = "Pear"
          fruit2: Fruit
          fruit2_class_type: str = "Pear"
          a: A
          a2: A
          a3: A
  
          @classmethod
          def a_tweak_args(cls, type, args):
              assert type == A
              args.n = 993
  
          @classmethod
          def a3_tweak_args(cls, type, args):
              del args["n"]
  
          @classmethod
          def fruit_tweak_args(cls, type, args):
              assert issubclass(type, Fruit)
              if type == Pear:
                  assert args.n_pips == 13
                  args.n_pips = 19
  
      args = get_default_args(Wrapper)
      self.assertEqual(args.a_args.n, 993)
      self.assertEqual(args.a2_args.n, 9)
      self.assertEqual(args.a3_args, {})
      self.assertEqual(args.fruit_Pear_args.n_pips, 19)
      self.assertEqual(args.fruit2_Pear_args.n_pips, 13)
  
imports: import pickle
  import textwrap
  import unittest
  from dataclasses import dataclass, field, is_dataclass
  from enum import Enum
  from typing import Any, Dict, List, Optional, Tuple
  from unittest.mock import Mock
  from omegaconf import DictConfig, ListConfig, OmegaConf, ValidationError
  from pytorch3d.implicitron.tools.config import _get_type_to_process, _is_actually_dataclass, _ProcessType, _Registry, Configurable, enable_get_default_args, expand_args_fields, get_default_args, get_default_args_field, registry, remove_unused_components, ReplaceableBase, run_auto_creation
label_desc: Use image node_id 21 for calling the TestConfig obj's underlying member method code with example usage: obj.test_tweak_hook() without return types