def analyse_action(func):
 _deprecated()
 description = (inspect.getdoc(func) or 'undocumented action')
 arguments = []
 (args, varargs, kwargs, defaults) = inspect.getargspec(func)
 if (varargs or kwargs):
  raise TypeError('variable length arguments for action not allowed.')
 if (len(args) != len((defaults or ()))):
  raise TypeError('not all arguments have proper definitions')
 for (idx, (arg, definition)) in enumerate(zip(args, (defaults or ()))):
  if arg.startswith('_'):
   raise TypeError('arguments may not start with an underscore')
  if (not isinstance(definition, tuple)):
   shortcut = None
   default = definition
  else:
   (shortcut, default) = definition
  argument_type = argument_types[type(default)]
  if (isinstance(default, bool) and (default is True)):
   arg = ('no-' + arg)
  arguments.append((arg.replace('_', '-'), shortcut, default, argument_type))
 return (func, description, arguments)

def analyse_action ( func ) : _deprecated ( ) description = ( inspect . getdoc ( func ) or 'undocumented action' ) arguments = [ ] ( args , varargs , kwargs , defaults ) = inspect . getargspec ( func ) if ( varargs or kwargs ) : raise TypeError ( 'variable length arguments for action not allowed.' ) if ( len ( args ) != len ( ( defaults or ( ) ) ) ) : raise TypeError ( 'not all arguments have proper definitions' ) for ( idx , ( arg , definition ) ) in enumerate ( zip ( args , ( defaults or ( ) ) ) ) : if arg . startswith ( '_' ) : raise TypeError ( 'arguments may not start with an underscore' ) if ( not isinstance ( definition , tuple ) ) : shortcut = None default = definition else : ( shortcut , default ) = definition argument_type = argument_types [ type ( default ) ] if ( isinstance ( default , bool ) and ( default is True ) ) : arg = ( 'no-' + arg ) arguments . append ( ( arg . replace ( '_' , '-' ) , shortcut , default , argument_type ) ) return ( func , description , arguments )
analyse a function .