docs: def refresh(
          *modules: typing.Union[str, types.ModuleType],
          recursive: bool = False,
          force: bool = False
  ) -> bool:
      """
      Checks the specified module or modules for changes and reloads them if
      they have been changed since the module was first imported or last
      refreshed.
  
      :param modules:
          One or more module objects that should be refreshed if they the
          currently loaded versions are out of date. The package name for
          modules can also be used.
      :param recursive:
          When true, any imported sub-modules of this module will also be
          refreshed if they have been updated.
      :param force:
          When true, all modules will be refreshed even if it doesn't appear
          that they have been updated.
      :return:
          True or False depending on whether any modules were refreshed by this
          call.
      """
  
      out = []
      for module in modules:
          out.append(reload_module(module, recursive, force))
  
      return any(out)