def CFUNCTYPE(restype, *argtypes, **kw):
 flags = _FUNCFLAG_CDECL
 if kw.pop('use_errno', False):
  flags |= _FUNCFLAG_USE_ERRNO
 if kw.pop('use_last_error', False):
  flags |= _FUNCFLAG_USE_LASTERROR
 if kw:
  raise ValueError(('unexpected keyword argument(s) %s' % kw.keys()))
 try:
  return _c_functype_cache[(restype, argtypes, flags)]
 except KeyError:
  class CFunctionType(_CFuncPtr, ):
   _argtypes_ = argtypes
   _restype_ = restype
   _flags_ = flags
  _c_functype_cache[(restype, argtypes, flags)] = CFunctionType
  return CFunctionType

def CFUNCTYPE ( restype , * argtypes , ** kw ) : flags = _FUNCFLAG_CDECL if kw . pop ( 'use_errno' , False ) : flags |= _FUNCFLAG_USE_ERRNO if kw . pop ( 'use_last_error' , False ) : flags |= _FUNCFLAG_USE_LASTERROR if kw : raise ValueError ( ( 'unexpected keyword argument(s) %s' % kw . keys ( ) ) ) try : return _c_functype_cache [ ( restype , argtypes , flags ) ] except KeyError : class CFunctionType ( _CFuncPtr , ) : _argtypes_ = argtypes _restype_ = restype _flags_ = flags _c_functype_cache [ ( restype , argtypes , flags ) ] = CFunctionType return CFunctionType
cfunctype -> function prototype .