Skip to content

Latest commit

 

History

History
100 lines (54 loc) · 5.67 KB

File metadata and controls

100 lines (54 loc) · 5.67 KB
graph LR
    argcomplete_finders__patch_argument_parser["argcomplete.finders._patch_argument_parser"]
    argcomplete_packages__argparse__parse_known_args["argcomplete.packages._argparse._parse_known_args"]
    argcomplete_packages__argparse_consume_positionals["argcomplete.packages._argparse.consume_positionals"]
    argcomplete_packages__argparse_consume_optional["argcomplete.packages._argparse.consume_optional"]
    argcomplete_packages__argparse_take_action["argcomplete.packages._argparse.take_action"]
    argcomplete_packages__argparse_action_is_open["argcomplete.packages._argparse.action_is_open"]
    argcomplete_packages__argparse_action_is_greedy["argcomplete.packages._argparse.action_is_greedy"]
    argcomplete_packages__argparse_action_is_satisfied["argcomplete.packages._argparse.action_is_satisfied"]
    argcomplete_finders__patch_argument_parser -- "enables" --> argcomplete_packages__argparse__parse_known_args
    argcomplete_packages__argparse__parse_known_args -- "delegates to" --> argcomplete_packages__argparse_consume_positionals
    argcomplete_packages__argparse__parse_known_args -- "delegates to" --> argcomplete_packages__argparse_consume_optional
    argcomplete_packages__argparse_consume_positionals -- "calls" --> argcomplete_packages__argparse_take_action
    argcomplete_packages__argparse_consume_optional -- "calls" --> argcomplete_packages__argparse_take_action
    argcomplete_packages__argparse_consume_optional -- "uses" --> argcomplete_packages__argparse_action_is_open
    argcomplete_packages__argparse_action_is_greedy -- "calls" --> argcomplete_packages__argparse_action_is_satisfied
Loading

CodeBoardingDemoContact

Details

The ArgumentParser Adaptation subsystem is responsible for intercepting and modifying the standard argparse module's behavior to enable argcomplete to introspect argument parsers and simulate parsing without executing the full application logic. This allows for safe and efficient completion generation.

argcomplete.finders._patch_argument_parser

This is the orchestrator of the adaptation, responsible for dynamically modifying the argparse.ArgumentParser class and its related action classes. It embodies the "Interception Pattern" by replacing or wrapping original argparse methods.

Related Classes/Methods:

argcomplete.packages._argparse._parse_known_args

The simulated core parsing method. It acts as the entry point for argcomplete's "dry run" parsing, allowing introspection of the parser's state without side effects.

Related Classes/Methods:

argcomplete.packages._argparse.consume_positionals

Handles the simulated consumption of positional arguments during the dry run.

Related Classes/Methods:

argcomplete.packages._argparse.consume_optional

Handles the simulated consumption of optional arguments during the dry run.

Related Classes/Methods:

argcomplete.packages._argparse.take_action

Simulates the effect of an argparse action being "taken" by updating internal state, crucially without executing the user-defined action code.

Related Classes/Methods:

argcomplete.packages._argparse.action_is_open

An introspection method to determine if an argparse action is still expecting arguments.

Related Classes/Methods:

argcomplete.packages._argparse.action_is_greedy

An introspection method to check if an argparse action consumes multiple arguments.

Related Classes/Methods:

argcomplete.packages._argparse.action_is_satisfied

An introspection method to determine if an argparse action has received all its required arguments.

Related Classes/Methods: