title: argparse: how to configure multiple choice, multiple value, optional argument?
body: <p>I'm trying to set up an argument that accepts one or more values from a given list of choices, but is not obligatory. I'm trying this (with a couple of variants that also don't work as expected):</p>
  <pre><code>parser.add_argument(&quot;FLAGS&quot;, nargs='*', choices=[&quot;X&quot;,&quot;Y&quot;,&quot;Z&quot;,&quot;ALL&quot;])
  </code></pre>
  <p>I expect to get a list of values from the list of choices, or an empty list if nothing was given (that, I think, should be enforced by <code>nargs='*'</code>). But regardless of whether I add <code>default=&quot;&quot;</code> or not, when I don't pass any argument it fails with:</p>
  <pre><code>error: argument FLAGS: invalid choice: []
  </code></pre>
  <p>How to achieve what I need?</p>