Source code for pyzeal.cli.parser_facade

"""
Class PyZEALParserInterface from the package pyzeal_cli.
This module provides a facade for `argparser.ArgumentParser` class from the
standard library `argparse` module. Any access to (CLI-)parsers in this project
should happen only through this interface.

Authors:\n
- Philipp Schuette\n
"""

from typing import Protocol, Tuple, runtime_checkable

from pyzeal.cli.parse_results import (
    InstallTestingParseResults,
    PluginParseResults,
    SettingsParseResults,
)


[docs] @runtime_checkable class PyZEALParserInterface(Protocol): """ Acts as a facade for the standard library `ArgumentParser`. """
[docs] def parseArgs( self, ) -> Tuple[ SettingsParseResults, PluginParseResults, InstallTestingParseResults ]: """ Read command line arguments, parse the read arguments and return them wrapped according to the `pyzeal_cli` data contract for parsed command line arguments. :return: the wrapped parsing results """ ...