code: def types_compatible(new_config_value, base_config_value):
      """
      Checks that config value types are compatible.
      """
      # Allow to overwrite None values (explicit or just missing)
      if base_config_value is None:
          return True
      # Allow overwrite all None and False values.
      # TODO: reconsider this.
      if new_config_value is None or new_config_value is False:
          return True
  
      # Checking strings is different because in Python2 we could get different
      # types str vs unicode.
      if is_basestring(new_config_value) and is_basestring(
          base_config_value
      ):
          return True
  
      return isinstance(new_config_value, type(base_config_value))
  
file_path: luminoth/luminoth/utils/config.py
imports: import inspect
  import os.path
  import tensorflow
  import yaml
  from easydict import EasyDict
  from luminoth.models import get_model
label_desc: Use image node_id 7 for calling a global function with example usage: types_compatible(new_config_value, base_config_value) and returns: isinstance, True, True, True