code: def test_irrelevant_bases(self):
      class NotADataclass:
          # Like torch.nn.Module, this class contains annotations
          # but is not designed to be dataclass'd.
          # This test ensures that such classes, when inherited fron,
          # are not accidentally affected by expand_args_fields.
          a: int = 9
          b: int
  
      class LeftConfigured(Configurable, NotADataclass):
          left: int = 1
  
      class RightConfigured(NotADataclass, Configurable):
          right: int = 2
  
      class Outer(Configurable):
          left: LeftConfigured
          right: RightConfigured
  
          def __post_init__(self):
              run_auto_creation(self)
  
      outer = Outer(**get_default_args(Outer))
      self.assertEqual(outer.left.left, 1)
      self.assertEqual(outer.right.right, 2)
      with self.assertRaisesRegex(TypeError, "non-default argument"):
          dataclass(NotADataclass)
  
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 14 for calling the TestConfig obj's underlying member method code with example usage: obj.test_irrelevant_bases() without return types