title: argparse: some mutually exclusive arguments in required group
body: <p>I have a set of arguments that can logically be separated in 2 groups:</p>
  
  <ul>
  <li>Actions: <code>A1</code>, <code>A2</code>, <code>A3</code>, etc.</li>
  <li>Informations: <code>I1</code>, <code>I2</code>, <code>I3</code>, etc.</li>
  </ul>
  
  <p>At least one of these arguments is required for the program to start, but "information" args can be used with "action" args. So</p>
  
  <ul>
  <li>At least one in Actions or Informations is required</li>
  <li>All Actions are mutually exclusive</li>
  </ul>
  
  <p>I can't find how to do it using argparse. I know about <code>add_mutually_exclusive_group</code> and its <code>required</code> argument, but I can't use it on "Actions" because it's not actually required. Of course, I could add a condition after argparse to manually check my rules, but it seems like an hack. Can argparse do this?</p>
  
  <p>Edit: Sorry, here are some examples.</p>
  
  <pre><code># Should pass
  --A1
  --I1
  --A1 --I2
  --A2 --I1 --I2
  
  # Shouldn't pass
  --A1 --A2
  --A1 --A2 --I1
  </code></pre>