aboutsummaryrefslogtreecommitdiffstats
path: root/examples/simple
diff options
context:
space:
mode:
authorharsh vijay <iharsh234@gmail.com>2017-04-29 03:26:14 +0530
committerGitHub <noreply@github.com>2017-04-29 03:26:14 +0530
commit36118973d98f1afa81e79a846f595a7c4782ff9a (patch)
tree36649bb0b9737548b9b33fd7eac2c359ce1d2d83 /examples/simple
parentb537997f4f5d7c33562414a414913b6cd89f99c3 (diff)
downloadmitmproxy-36118973d98f1afa81e79a846f595a7c4782ff9a.tar.gz
mitmproxy-36118973d98f1afa81e79a846f595a7c4782ff9a.tar.bz2
mitmproxy-36118973d98f1afa81e79a846f595a7c4782ff9a.zip
extend mypy example/simple
Diffstat (limited to 'examples/simple')
-rw-r--r--examples/simple/add_header.py5
-rw-r--r--examples/simple/add_header_class.py5
-rw-r--r--examples/simple/custom_contentview.py3
-rw-r--r--examples/simple/filter_flows.py6
-rw-r--r--examples/simple/io_read_dumpfile.py1
-rw-r--r--examples/simple/io_write_dumpfile.py8
-rw-r--r--examples/simple/modify_body_inject_iframe.py4
-rw-r--r--examples/simple/modify_form.py5
-rw-r--r--examples/simple/modify_querystring.py5
-rw-r--r--examples/simple/redirect_requests.py3
-rw-r--r--examples/simple/send_reply_from_proxy.py2
-rw-r--r--examples/simple/upsidedownternet.py4
-rw-r--r--examples/simple/wsgi_flask_app.py2
13 files changed, 34 insertions, 19 deletions
diff --git a/examples/simple/add_header.py b/examples/simple/add_header.py
index 3e0b5f1e..64fc6267 100644
--- a/examples/simple/add_header.py
+++ b/examples/simple/add_header.py
@@ -1,2 +1,5 @@
-def response(flow):
+from mitmproxy import http
+
+
+def response(flow: http.HTTPFlow) -> None:
flow.response.headers["newheader"] = "foo"
diff --git a/examples/simple/add_header_class.py b/examples/simple/add_header_class.py
index 5d5c7902..419c99ac 100644
--- a/examples/simple/add_header_class.py
+++ b/examples/simple/add_header_class.py
@@ -1,5 +1,8 @@
+from mitmproxy import http
+
+
class AddHeader:
- def response(self, flow):
+ def response(self, flow: http.HTTPFlow) -> None:
flow.response.headers["newheader"] = "foo"
diff --git a/examples/simple/custom_contentview.py b/examples/simple/custom_contentview.py
index 34fa5541..6fb51aaa 100644
--- a/examples/simple/custom_contentview.py
+++ b/examples/simple/custom_contentview.py
@@ -3,6 +3,7 @@ This example shows how one can add a custom contentview to mitmproxy.
The content view API is explained in the mitmproxy.contentviews module.
"""
from mitmproxy import contentviews
+from typing import Tuple, Iterable, AnyStr, List
class ViewSwapCase(contentviews.View):
@@ -13,7 +14,7 @@ class ViewSwapCase(contentviews.View):
prompt = ("swap case text", "z")
content_types = ["text/plain"]
- def __call__(self, data: bytes, **metadata):
+ def __call__(self, data: bytes, **metadata) -> Tuple[str,Iterable[List[Tuple[str, AnyStr]]]]:
return "case-swapped text", contentviews.format_text(data.swapcase())
diff --git a/examples/simple/filter_flows.py b/examples/simple/filter_flows.py
index fd49425a..70979591 100644
--- a/examples/simple/filter_flows.py
+++ b/examples/simple/filter_flows.py
@@ -2,12 +2,12 @@
This scripts demonstrates how to use mitmproxy's filter pattern in scripts.
"""
from mitmproxy import flowfilter
-from mitmproxy import ctx
+from mitmproxy import ctx, http
class Filter:
def __init__(self):
- self.filter = None
+ self.filter = None # type: flowfilter.TFilter
def configure(self, updated):
self.filter = flowfilter.parse(ctx.options.flowfilter)
@@ -17,7 +17,7 @@ class Filter:
"flowfilter", str, "", "Check that flow matches filter."
)
- def response(self, flow):
+ def response(self, flow: http.HTTPFlow) -> None:
if flowfilter.match(self.filter, flow):
print("Flow matches filter:")
print(flow)
diff --git a/examples/simple/io_read_dumpfile.py b/examples/simple/io_read_dumpfile.py
index edbbe2dd..87d37c0f 100644
--- a/examples/simple/io_read_dumpfile.py
+++ b/examples/simple/io_read_dumpfile.py
@@ -8,6 +8,7 @@ from mitmproxy.exceptions import FlowReadException
import pprint
import sys
+
with open(sys.argv[1], "rb") as logfile:
freader = io.FlowReader(logfile)
pp = pprint.PrettyPrinter(indent=4)
diff --git a/examples/simple/io_write_dumpfile.py b/examples/simple/io_write_dumpfile.py
index a0956e33..04d943c0 100644
--- a/examples/simple/io_write_dumpfile.py
+++ b/examples/simple/io_write_dumpfile.py
@@ -7,18 +7,18 @@ to multiple files in parallel.
"""
import random
import sys
-from mitmproxy import io
+from mitmproxy import io, http
class Writer:
- def __init__(self, path):
+ def __init__(self, path: str) -> None:
if path == "-":
- f = sys.stdout
+ f = sys.stdout # type: io.TextIO
else:
f = open(path, "wb")
self.w = io.FlowWriter(f)
- def response(self, flow):
+ def response(self, flow: http.HTTPFlow) -> None:
if random.choice([True, False]):
self.w.add(flow)
diff --git a/examples/simple/modify_body_inject_iframe.py b/examples/simple/modify_body_inject_iframe.py
index dff72afa..595bd9f2 100644
--- a/examples/simple/modify_body_inject_iframe.py
+++ b/examples/simple/modify_body_inject_iframe.py
@@ -1,6 +1,6 @@
# (this script works best with --anticache)
from bs4 import BeautifulSoup
-from mitmproxy import ctx
+from mitmproxy import ctx, http
class Injector:
@@ -9,7 +9,7 @@ class Injector:
"iframe", str, "", "IFrame to inject"
)
- def response(self, flow):
+ def response(self, flow: http.HTTPFlow) -> None:
if ctx.options.iframe:
html = BeautifulSoup(flow.response.content, "html.parser")
if html.body:
diff --git a/examples/simple/modify_form.py b/examples/simple/modify_form.py
index b425efb0..8742a976 100644
--- a/examples/simple/modify_form.py
+++ b/examples/simple/modify_form.py
@@ -1,4 +1,7 @@
-def request(flow):
+from mitmproxy import http
+
+
+def request(flow: http.HTTPFlow) -> None:
if flow.request.urlencoded_form:
# If there's already a form, one can just add items to the dict:
flow.request.urlencoded_form["mitmproxy"] = "rocks"
diff --git a/examples/simple/modify_querystring.py b/examples/simple/modify_querystring.py
index ee8a89ad..12b16fda 100644
--- a/examples/simple/modify_querystring.py
+++ b/examples/simple/modify_querystring.py
@@ -1,2 +1,5 @@
-def request(flow):
+from mitmproxy import http
+
+
+def request(flow: http.HTTPFlow) -> None:
flow.request.query["mitmproxy"] = "rocks"
diff --git a/examples/simple/redirect_requests.py b/examples/simple/redirect_requests.py
index 51876df7..ddb89961 100644
--- a/examples/simple/redirect_requests.py
+++ b/examples/simple/redirect_requests.py
@@ -1,9 +1,10 @@
"""
This example shows two ways to redirect flows to another server.
"""
+from mitmproxy import http
-def request(flow):
+def request(flow: http.HTTPFlow) -> None:
# pretty_host takes the "Host" header of the request into account,
# which is useful in transparent mode where we usually only have the IP
# otherwise.
diff --git a/examples/simple/send_reply_from_proxy.py b/examples/simple/send_reply_from_proxy.py
index bef2e7e7..5011fd2e 100644
--- a/examples/simple/send_reply_from_proxy.py
+++ b/examples/simple/send_reply_from_proxy.py
@@ -5,7 +5,7 @@ without sending any data to the remote server.
from mitmproxy import http
-def request(flow):
+def request(flow: http.HTTPFlow) -> None:
# pretty_url takes the "Host" header of the request into account, which
# is useful in transparent mode where we usually only have the IP otherwise.
diff --git a/examples/simple/upsidedownternet.py b/examples/simple/upsidedownternet.py
index 8ba450ab..f150a5c3 100644
--- a/examples/simple/upsidedownternet.py
+++ b/examples/simple/upsidedownternet.py
@@ -2,11 +2,11 @@
This script rotates all images passing through the proxy by 180 degrees.
"""
import io
-
from PIL import Image
+from mitmproxy import http
-def response(flow):
+def response(flow: http.HTTPFlow) -> None:
if flow.response.headers.get("content-type", "").startswith("image"):
s = io.BytesIO(flow.response.content)
img = Image.open(s).rotate(180)
diff --git a/examples/simple/wsgi_flask_app.py b/examples/simple/wsgi_flask_app.py
index a03ad4c5..4be38000 100644
--- a/examples/simple/wsgi_flask_app.py
+++ b/examples/simple/wsgi_flask_app.py
@@ -10,7 +10,7 @@ app = Flask("proxapp")
@app.route('/')
-def hello_world():
+def hello_world() -> str:
return 'Hello World!'