docs: def configuration_option(*param_decls, **attrs):
      """
      Adds configuration file support to a click application.
  
      This will create an option of type `click.File` expecting the path to a
      configuration file. When specified, it overwrites the default values for
      all other click arguments or options with the corresponding value from the
      configuration file.
  
      The default name of the option is `--config`.
  
      By default, the configuration will be read from a configuration directory
      as determined by `click.get_app_dir`.
  
      This decorator accepts the same arguments as `click.option` and
      `click.Path`. In addition, the following keyword arguments are available:
  
      cmd_name : str
          The command name. This is used to determine the configuration
          directory. Default: `ctx.info_name`
      config_file_name : str
          The name of the configuration file. Default: `'config'``
      implicit: bool
          If 'True' then implicitly create a value for the configuration option
          using the above parameters. If a configuration file exists in this
          path it will be applied even if no configuration option was suppplied
          as a CLI argument or environment variable.
          If 'False` only apply a configuration file that has been explicitely
          specified.
          Default: `False`
      provider : callable
          A callable that parses the configuration file and returns a dictionary
          of the configuration parameters. Will be called as
          `provider(file_path, cmd_name)`. Default: `configobj_provider()`
          """
      param_decls = param_decls or ('--config', )
      option_name = param_decls[0]
  
      def decorator(f):
  
          attrs.setdefault('is_eager', True)
          attrs.setdefault('help', 'Read configuration from FILE.')
          attrs.setdefault('expose_value', False)
          implicit = attrs.pop('implicit', True)
          cmd_name = attrs.pop('cmd_name', None)
          config_file_name = attrs.pop('config_file_name', 'config')
          provider = attrs.pop('provider', configobj_provider())
          path_default_params = {
              'exists': False,
              'file_okay': True,
              'dir_okay': False,
              'writable': False,
              'readable': True,
          'resolve_path': False
          }
          path_params = {
              k: attrs.pop(k, v)
              for k, v in path_default_params.items()
          }
          attrs['type'] = click.Path(**path_params)
          saved_callback = attrs.pop('callback', None)
          partial_callback = functools.partial(
              configuration_callback, cmd_name, option_name, config_file_name, saved_callback, provider, implicit)
          attrs['callback'] = partial_callback
          return click.option(*param_decls, **attrs)(f)
  
      return decorator