title: Python Click - Supply arguments and options from a configuration file
body: <p>Given the following program:</p>
  
  <pre><code>#!/usr/bin/env python
  import click
  
  @click.command()
  @click.argument("arg")
  @click.option("--opt")
  @click.option("--config_file", type=click.Path())
  def main(arg, opt, config_file):
      print("arg: {}".format(arg))
      print("opt: {}".format(opt))
      print("config_file: {}".format(config_file))
      return
  
  if __name__ == "__main__":
      main()
  </code></pre>
  
  <p>I can run it with the arguments and options provided through command line.</p>
  
  <pre><code>$ ./click_test.py my_arg --config_file my_config_file
  arg: my_arg
  opt: None
  config_file: my_config_file
  </code></pre>
  
  <p>How do I provide a configuration file (in <code>ini</code>? <code>yaml</code>? <code>py</code>? <code>json</code>?) to <code>--config_file</code> and accept the content as the value for the arguments and options?</p>
  
  <p>For instance, I want <code>my_config_file</code> to contain</p>
  
  <pre><code>opt: my_opt
  </code></pre>
  
  <p>and have the output of the program show:</p>
  
  <pre><code>$ ./click_test.py my_arg --config_file my_config_file
  arg: my_arg
  opt: my_opt
  config_file: my_config_file
  </code></pre>
  
  <p>I've found the <code>callback</code> function which looked to be useful but I couldn't find a way to modify the sibling arguments/options to the same function.</p>