#NEWLINE# def getargspec_no_self( func ) : #NEWLINE# #INDENT# 'inspect.getargspec replacement using inspect.signature.\n\n        inspect.getargspec is deprecated in python 3. This is a replacement\n        based on the (new in python 3.3) `inspect.signature`.\n\n        Parameters\n        ----------\n        func : callable\n            A callable to inspect\n\n        Returns\n        -------\n        argspec : ArgSpec(args, varargs, varkw, defaults)\n            This is similar to the result of inspect.getargspec(func) under\n            python 2.x.\n            NOTE: if the first argument of `func` is self, it is *not*, I repeat\n            *not* included in argspec.args.\n            This is done for consistency between inspect.getargspec() under\n            python 2.x, and inspect.signature() under python 3.x.\n        ' #NEWLINE# sig = inspect . signature ( func ) #NEWLINE# args = [ p . name for p in sig . parameters . values ( ) if ( p . kind == inspect . Parameter . POSITIONAL_OR_KEYWORD ) ] #NEWLINE# varargs = [ p . name for p in sig . parameters . values ( ) if ( p . kind == inspect . Parameter . VAR_POSITIONAL ) ] #NEWLINE# varargs = ( varargs [ 0 ] if varargs else None ) #NEWLINE# varkw = [ p . name for p in sig . parameters . values ( ) if ( p . kind == inspect . Parameter . VAR_KEYWORD ) ] #NEWLINE# varkw = ( varkw [ 0 ] if varkw else None ) #NEWLINE# defaults = ( [ p . default for p in sig . parameters . values ( ) if ( ( p . kind == inspect . Parameter . POSITIONAL_OR_KEYWORD ) and ( p . default is not p . empty ) ) ] or None ) #NEWLINE# return ArgSpec ( args , varargs , varkw , defaults )