'Implement the action.
Emits the deprecation warning message (only once for any given
option string), then calls the real action (if any).
:param parser: The ``argparse.ArgumentParser`` instance.
:param namespace: The ``argparse.Namespace`` object which
should have an attribute set.
:param values: Any arguments provided to the option.
:param option_string: The option string that was used.'

def __call__(self, parser, namespace, values, option_string):

    action = self._get_action(parser)
    if (option_string not in self.emitted):
        if self.use:
            print((_('WARNING:    Option    "%(option)s"    is    deprecated;    %(use)s') % {'option': option_string, 'use': self.use}), file=sys.stderr)
        else:
            print((_('WARNING:    Option    "%(option)s"    is    deprecated') % {'option': option_string}), file=sys.stderr)
        self.emitted.add(option_string)
    if action:
        action(parser, namespace, values, option_string)
