title: python check if function accepts **kwargs
body: <p>is there a way to check if a function accepts **kwargs before calling it e.g.</p>
  
  <pre><code>def FuncA(**kwargs):
      print 'ok'
  
  def FuncB(id = None):
      print 'ok'
  
  def FuncC():
      print 'ok'
  
  args = {'id': '1'}
  
  FuncA(**args)
  FuncB(**args)
  FuncC(**args)
  </code></pre>
  
  <p>When I run this FuncA and FuncB would be okay but FuncC errors with <code>got an unexpected keyword argument 'id'</code> as it doesn't accept any arguments</p>