code: def get_init_argspec(klass):
      
      if hasattr(klass, '_init_argspec'):
          return _shim_argspec(klass._init_argspec())
      elif PY2:
          return _shim_argspec(inspect.getargspec(klass.__init__))
      else:
          return inspect.signature(klass.__init__)
docs: Wrapper around inspect.getargspec(klass.__init__) which, for cython
      classes uses an auxiliary '_init_argspec' method, since they don't play
      nice with the inspect module.
  
      By convention, a cython class should define the classmethod _init_argspec
      that, when called, returns what ``inspect.getargspec`` would be expected
      to return when called on that class's __init__ method.