docs: def argspec_args(argspec, constructor, *args, **kwargs):
      """
      Return (args, kwargs) matching the argspec object
  
      :param argspec: argspec to use
      :type argspec: argspec
      :param constructor: is it a constructor ?
      :type constructor: bool
      :param args:
      :type args:
      :param kwargs:
      :type kwargs:
      :return: (args, kwargs) matching the function signature
      :rtype: tuple
      """
      if argspec.varkw:
          call_kwarg = kwargs
      else:
          call_kwarg = dict((k, kwargs[k]) for k in kwargs if k in argspec.args)  # Python 2.6 dict comprehension
      if argspec.varargs:
          call_args = args
      else:
          call_args = args[:len(argspec.args) - (1 if constructor else 0)]
      return call_args, call_kwarg