mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-22 15:37:45 +00:00
add option type hints
This commit is contained in:
parent
c29c5dbee8
commit
52da46640b
@ -48,6 +48,85 @@ LISTEN_PORT = 8080
|
||||
|
||||
|
||||
class Options(optmanager.OptManager):
|
||||
|
||||
if False:
|
||||
# This provides type hints for IDEs (e.g. PyCharm) and mypy.
|
||||
# Autogenerated using test/helper_tools/typehints_for_options.py
|
||||
add_upstream_certs_to_client_chain = None # type: bool
|
||||
allow_remote = None # type: bool
|
||||
anticache = None # type: bool
|
||||
anticomp = None # type: bool
|
||||
body_size_limit = None # type: Optional[str]
|
||||
cadir = None # type: str
|
||||
certs = None # type: Sequence[str]
|
||||
ciphers_client = None # type: Optional[str]
|
||||
ciphers_server = None # type: Optional[str]
|
||||
client_certs = None # type: Optional[str]
|
||||
client_replay = None # type: Sequence[str]
|
||||
console_focus_follow = None # type: bool
|
||||
console_layout = None # type: str
|
||||
console_layout_headers = None # type: bool
|
||||
console_mouse = None # type: bool
|
||||
console_order = None # type: str
|
||||
console_order_reversed = None # type: bool
|
||||
console_palette = None # type: str
|
||||
console_palette_transparent = None # type: bool
|
||||
default_contentview = None # type: str
|
||||
flow_detail = None # type: int
|
||||
http2 = None # type: bool
|
||||
http2_priority = None # type: bool
|
||||
ignore_hosts = None # type: Sequence[str]
|
||||
intercept = None # type: Optional[str]
|
||||
intercept_active = None # type: bool
|
||||
keep_host_header = None # type: bool
|
||||
keepserving = None # type: bool
|
||||
listen_host = None # type: str
|
||||
listen_port = None # type: int
|
||||
mode = None # type: str
|
||||
onboarding = None # type: bool
|
||||
onboarding_host = None # type: str
|
||||
onboarding_port = None # type: int
|
||||
proxyauth = None # type: Optional[str]
|
||||
rawtcp = None # type: bool
|
||||
refresh_server_playback = None # type: bool
|
||||
replacements = None # type: Sequence[str]
|
||||
replay_kill_extra = None # type: bool
|
||||
rfile = None # type: Optional[str]
|
||||
save_stream_file = None # type: Optional[str]
|
||||
save_stream_filter = None # type: Optional[str]
|
||||
scripts = None # type: Sequence[str]
|
||||
server = None # type: bool
|
||||
server_replay = None # type: Sequence[str]
|
||||
server_replay_ignore_content = None # type: bool
|
||||
server_replay_ignore_host = None # type: bool
|
||||
server_replay_ignore_params = None # type: Sequence[str]
|
||||
server_replay_ignore_payload_params = None # type: Sequence[str]
|
||||
server_replay_nopop = None # type: bool
|
||||
server_replay_use_headers = None # type: Sequence[str]
|
||||
setheaders = None # type: Sequence[str]
|
||||
showhost = None # type: bool
|
||||
spoof_source_address = None # type: bool
|
||||
ssl_insecure = None # type: bool
|
||||
ssl_verify_upstream_trusted_ca = None # type: Optional[str]
|
||||
ssl_verify_upstream_trusted_cadir = None # type: Optional[str]
|
||||
ssl_version_client = None # type: str
|
||||
ssl_version_server = None # type: str
|
||||
stickyauth = None # type: Optional[str]
|
||||
stickycookie = None # type: Optional[str]
|
||||
stream_large_bodies = None # type: Optional[str]
|
||||
stream_websockets = None # type: bool
|
||||
tcp_hosts = None # type: Sequence[str]
|
||||
upstream_auth = None # type: Optional[str]
|
||||
upstream_bind_address = None # type: str
|
||||
upstream_cert = None # type: bool
|
||||
verbosity = None # type: str
|
||||
view_filter = None # type: Optional[str]
|
||||
web_debug = None # type: bool
|
||||
web_iface = None # type: str
|
||||
web_open_browser = None # type: bool
|
||||
web_port = None # type: int
|
||||
websocket = None # type: bool
|
||||
|
||||
def __init__(self, **kwargs) -> None:
|
||||
super().__init__()
|
||||
self.add_option(
|
||||
|
34
test/helper_tools/typehints_for_options.py
Normal file
34
test/helper_tools/typehints_for_options.py
Normal file
@ -0,0 +1,34 @@
|
||||
import typing
|
||||
from unittest import mock
|
||||
|
||||
from mitmproxy import proxy, options
|
||||
from mitmproxy.tools import dump, console, web
|
||||
|
||||
|
||||
def print_typehints(opts):
|
||||
for name, option in sorted(opts.items()):
|
||||
print(
|
||||
# For Python 3.6, we can just use "{}: {}".
|
||||
"{} = None # type: {}".format(
|
||||
name,
|
||||
{
|
||||
int: "int",
|
||||
str: "str",
|
||||
bool: "bool",
|
||||
typing.Optional[str]: "Optional[str]",
|
||||
typing.Sequence[str]: "Sequence[str]"
|
||||
}[option.typespec]
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
opts = options.Options()
|
||||
server = proxy.server.DummyServer(None)
|
||||
|
||||
# initialize with all three tools here to capture tool-specific options defined in addons.
|
||||
dump.DumpMaster(opts, server)
|
||||
with mock.patch("sys.stdout.isatty", lambda: True):
|
||||
console.master.ConsoleMaster(opts, server)
|
||||
web.master.WebMaster(opts, server)
|
||||
print_typehints(opts)
|
Loading…
Reference in New Issue
Block a user