code: def import_directory(module_basename: str, directory: str, sort_key = None) -> None:
      '''Load all python modules in directory and directory's children.
      Parameters
      ----------
      :``module_basename``: module name prefix for loaded modules
      :``directory``:       directory to load python modules from
      :``sort_key``:        function to sort module names with before loading
      '''
      logger.info('loading submodules of %s', module_basename)
      logger.info('loading modules from %s', directory)
      filenames = itertools.chain(*[ [ os.path.join(_[0], filename) for filename in _[2] ] for _ in os.walk(directory) if len(_[2]) ])
      modulenames = _filenames_to_modulenames(filenames, module_basename, directory)
      for modulename in sorted(modulenames, key = sort_key):
          try:
              importlib.import_module(modulename)
          except ImportError:
              logger.warning('failed loading %s', modulename)
              logger.exception('module loading failure')
          else:
              logger.info('successfully loaded %s', modulename)