MCPcopy
hub / github.com/mitmproxy/mitmproxy / run

Function run

mitmproxy/tools/main.py:45–143  ·  view source on GitHub ↗

extra: Extra argument processing callable which returns a dict of options.

(
    master_cls: type[T],
    make_parser: Callable[[options.Options], argparse.ArgumentParser],
    arguments: Sequence[str],
    extra: Callable[[Any], dict] | None = None,
)

Source from the content-addressed store, hash-verified

43
44
45def run(
46 master_cls: type[T],
47 make_parser: Callable[[options.Options], argparse.ArgumentParser],
48 arguments: Sequence[str],
49 extra: Callable[[Any], dict] | None = None,
50) -> T: # pragma: no cover
51 """
52 extra: Extra argument processing callable which returns a dict of
53 options.
54 """
55
56 async def main() -> T:
57 logging.getLogger().setLevel(logging.DEBUG)
58 logging.getLogger("tornado").setLevel(logging.WARNING)
59 logging.getLogger("asyncio").setLevel(logging.WARNING)
60 logging.getLogger("hpack").setLevel(logging.WARNING)
61 logging.getLogger("urwid").setLevel(logging.INFO)
62 logging.getLogger("quic").setLevel(
63 logging.WARNING
64 ) # aioquic uses a different prefix...
65 debug.register_info_dumpers()
66
67 opts = options.Options()
68 master = master_cls(opts)
69
70 parser = make_parser(opts)
71
72 # To make migration from 2.x to 3.0 bearable.
73 if "-R" in sys.argv and sys.argv[sys.argv.index("-R") + 1].startswith("http"):
74 print(
75 "To use mitmproxy in reverse mode please use --mode reverse:SPEC instead"
76 )
77
78 try:
79 args = parser.parse_args(arguments)
80 except SystemExit:
81 arg_check.check()
82 sys.exit(1)
83
84 try:
85 opts.set(*args.setoptions, defer=True)
86 optmanager.load_paths(
87 opts,
88 os.path.join(opts.confdir, "config.yaml"),
89 os.path.join(opts.confdir, "config.yml"),
90 )
91 process_options(parser, opts, args)
92
93 if args.options:
94 # Load custom addons so that their options are registered
95 if sl := master.addons.get("scriptloader"):
96 for s in sl.addons:
97 if s.ns is None:
98 s.loadscript()
99 optmanager.dump_defaults(opts, sys.stdout)
100 sys.exit(0)
101 if args.commands:
102 master.commands.dump()

Callers 3

mitmproxyFunction · 0.70
mitmdumpFunction · 0.70
mitmwebFunction · 0.70

Calls 2

mainFunction · 0.70
runMethod · 0.45

Tested by

no test coverage detected