code: def import_submodules(package_name: str) -> None:
      
      importlib.invalidate_caches()
  
      # For some reason, python doesn't always add this by default to your path, but you pretty much
      # always want it when using `--include-package`.  And if it's already there, adding it again at
      # the end won't hurt anything.
      sys.path.append('.')
  
      # Import at top level
      module = importlib.import_module(package_name)
      path = getattr(module, '__path__', [])
      path_string = '' if not path else path[0]
  
      # walk_packages only finds immediate children, so need to recurse.
      for module_finder, name, _ in pkgutil.walk_packages(path):
          # Sometimes when you import third-party libraries that are on your path,
          # `pkgutil.walk_packages` returns those too, so we need to skip them.
          if path_string and module_finder.path != path_string:
              continue
          subpackage = f"{package_name}.{name}"
          import_submodules(subpackage)
docs: Import all submodules under the given package.
      Primarily useful so that people using AllenNLP as a library
      can specify their own custom packages and have their custom
      classes get loaded and registered.