title: Parsing Python function calls to get argument positions
body: <p>I want code that can analyze a function call like this:</p>
  
  <pre><code>whatever(foo, baz(), 'puppet', 24+2, meow=3, *meowargs, **meowargs)
  </code></pre>
  
  <p>And return the positions of each and every argument, in this case <code>foo</code>, <code>baz()</code>, <code>'puppet'</code>, <code>24+2</code>, <code>meow=3</code>, <code>*meowargs</code>, <code>**meowargs</code>.</p>
  
  <p>I tried using the <code>_ast</code> module, and it seems to be just the thing for the job, but unfortunately there were problems. For example, in an argument like <code>baz()</code> which is a function call itself, I couldn't find  a simple way to get its length. (And even if I found one, I don't want a bunch of special cases for every different kind of argument.)</p>
  
  <p>I also looked at the <code>tokenize</code> module but couldn't see how to use it to get the arguments.</p>
  
  <p>Any idea how to solve this?</p>