  from typing import Dict, List, Optional, Tuple, Union
  
  from lib.utils import full_path_split
  
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  ConfigValueType = Union[bool, int, float, List[str], str, None]
  
  
  @dataclass
  class ConfigItem:
 
</s> remove         self.defaults: OrderedDict[str, ConfigSection] = OrderedDict()
 </s> add         self.defaults: OrderedDictSectionType = OrderedDict() </s> remove     items: OrderedDict[str, ConfigItem]
 </s> add     items: OrderedDictItemType
# Can't type OrderedDict fully on Python 3.8 or lower
if sys.version_info < (3, 9):
    OrderedDictSectionType = OrderedDict
    OrderedDictItemType = OrderedDict
else:
    OrderedDictSectionType = OrderedDict[str, "ConfigSection"]
    OrderedDictItemType = OrderedDict[str, "ConfigItem"]

  from typing import Dict, List, Optional, Tuple, Union
  
  from lib.utils import full_path_split
  
# Can't type OrderedDict fully on Python 3.8 or lower
if sys.version_info < (3, 9):
    OrderedDictSectionType = OrderedDict
    OrderedDictItemType = OrderedDict
else:
    OrderedDictSectionType = OrderedDict[str, "ConfigSection"]
    OrderedDictItemType = OrderedDict[str, "ConfigItem"]

  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  ConfigValueType = Union[bool, int, float, List[str], str, None]
  
  
  @dataclass
  class ConfigItem:
keep keep keep add keep keep keep keep keep keep
 bugfix: OrderedDict type for python<3.9 
lib/config.py