def get_args_and_values(parser, an_action):
    """this rountine attempts to reconstruct the kwargs that were used in the
    creation of an action object"""
    args = inspect.getargspec(an_action.__class__.__init__).args
    kwargs = dict(
        (an_attr, getattr(an_action, an_attr))
        for an_attr in args
        if (
            an_attr not in ('self', 'required')
            and getattr(an_action, an_attr) is not None
        )
    )
    action_name = find_action_name_by_value(
        parser._optionals._registries,
        an_action
    )
    if 'required' in kwargs:
        del kwargs['required']
    kwargs['action'] = action_name
    if 'option_strings' in kwargs:
        args = tuple(kwargs['option_strings'])
        del kwargs['option_strings']
    else:
        args = ()
    return args, kwargs
def get_args_and_values ( parser , an_action ) : args = inspect . getargspec ( an_action . __class__ . __init__ ) . args kwargs = dict ( ( an_attr , getattr ( an_action , an_attr ) ) for an_attr in args if ( an_attr not in ( 'self' , 'required' ) and getattr ( an_action , an_attr ) is not None ) ) action_name = find_action_name_by_value ( parser . _optionals . _registries , an_action ) if 'required' in kwargs : del kwargs [ 'required' ] kwargs [ 'action' ] = action_name if 'option_strings' in kwargs : args = tuple ( kwargs [ 'option_strings' ] ) del kwargs [ 'option_strings' ] else : args = ( ) return args , kwargs
this rountine attempts to reconstruct the kwargs that were used in the
    creation of an action object