sshmitm.moduleparser module

BaseModule parsing library

This module is an extension to the standard Argparse module, which offers the possibility to load to load classes as BaseModule.

This module contains the following public classes:

  • ModuleParser – entry point to parse command line parameters.

    This class provides the same functionality as the ArgumentParser from the argparse module. However, it is possible to specify BaseModules and Plugins, which extend the functionality of the parser and the application respectively.

  • BaseModule – base class for BaseModules that can be used in the application.

    All BaseModules must be derived from this class. If a module does not originate from this class, a ModuleError occurs.

  • ModuleError – Exception thrown when errors occur when initializing modules or plugins.

    This exception is thrown when an error has occurred. Details can be found in the exception.

All other classes and functions in this module are either legacy or are implementation specific and should not be used in production applications.

class sshmitm.moduleparser.AddArgumentMethod(parser, container=None, config_section=None)

Bases: object

Parameters:
  • parser (_ModuleArgumentParser) –

  • container (Optional[_ActionsContainer], default: None) –

  • config_section (Optional[str], default: None) –

class sshmitm.moduleparser.BaseModule(args=None, namespace=None, **kwargs)

Bases: ABC

Parameters:
  • args (Optional[Sequence[str]], default: None) –

  • namespace (Optional[Namespace], default: None) –

  • kwargs (Any) –

classmethod add_module(*args, **kwargs)
Parameters:
  • args (Any) –

  • kwargs (Any) –

Return type:

None

classmethod argument_group(title=None, *, description=None)
Parameters:
  • title (Optional[str], default: None) –

  • description (Optional[str], default: None) –

Return type:

_ArgumentGroup

classmethod modules()
Return type:

List[Tuple[Action, Any]]

classmethod parser()
Return type:

_ModuleArgumentParser

classmethod parser_arguments()
Return type:

None

exception sshmitm.moduleparser.BaseModuleError

Bases: Exception

exception sshmitm.moduleparser.InvalidModuleArguments

Bases: BaseModuleError

exception sshmitm.moduleparser.ModuleError(moduleclass=None, baseclass=None, message=None)

Bases: BaseModuleError

Parameters:
  • moduleclass (Union[Type[BaseModule], Tuple[Type[BaseModule], ...], None], default: None) –

  • baseclass (Union[Type[BaseModule], Tuple[Type[BaseModule], ...], None], default: None) –

  • message (Optional[str], default: None) –

class sshmitm.moduleparser.ModuleFormatter(prog, indent_increment=2, max_help_position=24, width=None)

Bases: HelpFormatter

Help message formatter which retains formatting of all help text. Only the name of this class is considered a public API. All the methods provided by the class are considered an implementation detail.

class sshmitm.moduleparser.ModuleParser(**kwargs)

Bases: _ModuleArgumentParser

Parameters:

kwargs (Any) –

add_module(*args, **kwargs)
Parameters:
  • args (Any) –

  • kwargs (Any) –

Return type:

None

execute_subcommand(name, args)
Parameters:
  • name (str) –

  • args (Namespace) –

Return type:

None

load_subcommands()
Return type:

None

parse_args(args=None, namespace=None)
Parameters:
  • args (Optional[Sequence[str]], default: None) –

  • namespace (Optional[Namespace], default: None) –

Return type:

Namespace

parse_known_args(args=None, namespace=None)
Parameters:
  • args (Optional[Sequence[str]], default: None) –

  • namespace (Optional[Namespace], default: None) –

Return type:

Tuple[Namespace, List[str]]

class sshmitm.moduleparser.SubCommand(name, subcommand)

Bases: ABC

classmethod config_section()
Return type:

Optional[str]

classmethod docs()
Return type:

Optional[str]

abstract execute(args)
Parameters:

args (Namespace) –

Return type:

None

register_arguments()
Return type:

None

sshmitm.moduleparser.load_module(entry_point_class)

Action to be able to define BaseModule with the “add_module” method of the ModuleParser as command line parameter

Parameters:

entry_point_class (Type[BaseModule]) –

Return type:

Type[Action]

sshmitm.moduleparser.load_module_from_entrypoint(name, entry_point_class)
Parameters:
  • name (str) –

  • entry_point_class (Type[BaseModule]) –

Return type:

Optional[Type[BaseModule]]

sshmitm.moduleparser.set_module_kwargs(entry_point_class, **kwargs)
Parameters:
  • entry_point_class (Type[BaseModule]) –

  • kwargs (Any) –

Return type:

Dict[str, Any]