/usr/lib/python3/dist-packages/argh/helpers.py is in python3-argh 0.26.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | # coding: utf-8
#
# Copyright © 2010—2014 Andrey Mikhaylenko and contributors
#
# This file is part of Argh.
#
# Argh is free software under terms of the GNU Lesser
# General Public License version 3 (LGPLv3) as published by the Free
# Software Foundation. See the file README.rst for copying conditions.
#
"""
Helpers
~~~~~~~
"""
import argparse
from argh.completion import autocomplete
from argh.assembling import add_commands, set_default_command
from argh.dispatching import PARSER_FORMATTER, ArghNamespace, dispatch
__all__ = ['ArghParser']
class ArghParser(argparse.ArgumentParser):
"""
A subclass of :class:`ArgumentParser` with support for and a couple
of convenience methods.
All methods are but wrappers for stand-alone functions
:func:`~argh.assembling.add_commands`,
:func:`~argh.completion.autocomplete` and
:func:`~argh.dispatching.dispatch`.
Uses :attr:`~argh.dispatching.PARSER_FORMATTER`.
"""
def __init__(self, *args, **kwargs):
kwargs.setdefault('formatter_class', PARSER_FORMATTER)
super(ArghParser, self).__init__(*args, **kwargs)
def set_default_command(self, *args, **kwargs):
"Wrapper for :func:`~argh.assembling.set_default_command`."
return set_default_command(self, *args, **kwargs)
def add_commands(self, *args, **kwargs):
"Wrapper for :func:`~argh.assembling.add_commands`."
return add_commands(self, *args, **kwargs)
def autocomplete(self):
"Wrapper for :func:`~argh.completion.autocomplete`."
return autocomplete(self)
def dispatch(self, *args, **kwargs):
"Wrapper for :func:`~argh.dispatching.dispatch`."
return dispatch(self, *args, **kwargs)
def parse_args(self, args=None, namespace=None):
"""
Wrapper for :meth:`argparse.ArgumentParser.parse_args`. If `namespace`
is not defined, :class:`argh.dispatching.ArghNamespace` is used.
This is required for functions to be properly used as commands.
"""
namespace = namespace or ArghNamespace()
return super(ArghParser, self).parse_args(args, namespace)
|