diff options
author | Maximilian Hils <git@maximilianhils.com> | 2019-11-12 05:04:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-12 05:04:05 +0100 |
commit | dac0bfe786a8d1dfdd97f29d6bb262ed258153fa (patch) | |
tree | 6a21ead3cbaab6f996c931d91fb071dc3c6b00ac /mitmproxy/utils | |
parent | e7c3975bfca8f0c1d48cef6a1263d579269157be (diff) | |
parent | bdc15cbe0c0cd5175af1b58078d65d400cca71d1 (diff) | |
download | mitmproxy-dac0bfe786a8d1dfdd97f29d6bb262ed258153fa.tar.gz mitmproxy-dac0bfe786a8d1dfdd97f29d6bb262ed258153fa.tar.bz2 mitmproxy-dac0bfe786a8d1dfdd97f29d6bb262ed258153fa.zip |
Merge pull request #3691 from mhils/sans-io-adjustments
Update mypy, sans-io adjustments
Diffstat (limited to 'mitmproxy/utils')
-rw-r--r-- | mitmproxy/utils/sliding_window.py | 4 | ||||
-rw-r--r-- | mitmproxy/utils/strutils.py | 15 |
2 files changed, 10 insertions, 9 deletions
diff --git a/mitmproxy/utils/sliding_window.py b/mitmproxy/utils/sliding_window.py index 0a65f5e4..cb31756d 100644 --- a/mitmproxy/utils/sliding_window.py +++ b/mitmproxy/utils/sliding_window.py @@ -1,5 +1,5 @@ import itertools -from typing import TypeVar, Iterable, Iterator, Tuple, Optional +from typing import TypeVar, Iterable, Iterator, Tuple, Optional, List T = TypeVar('T') @@ -18,7 +18,7 @@ def window(iterator: Iterable[T], behind: int = 0, ahead: int = 0) -> Iterator[T 2 3 None """ # TODO: move into utils - iters = list(itertools.tee(iterator, behind + 1 + ahead)) + iters: List[Iterator[Optional[T]]] = list(itertools.tee(iterator, behind + 1 + ahead)) for i in range(behind): iters[i] = itertools.chain((behind - i) * [None], iters[i]) for i in range(ahead): diff --git a/mitmproxy/utils/strutils.py b/mitmproxy/utils/strutils.py index 388c765f..6e399d8f 100644 --- a/mitmproxy/utils/strutils.py +++ b/mitmproxy/utils/strutils.py @@ -1,10 +1,10 @@ +import codecs import io import re -import codecs -from typing import AnyStr, Optional, cast, Iterable +from typing import Iterable, Optional, Union, cast -def always_bytes(str_or_bytes: Optional[AnyStr], *encode_args) -> Optional[bytes]: +def always_bytes(str_or_bytes: Union[str, bytes, None], *encode_args) -> Optional[bytes]: if isinstance(str_or_bytes, bytes) or str_or_bytes is None: return cast(Optional[bytes], str_or_bytes) elif isinstance(str_or_bytes, str): @@ -13,13 +13,15 @@ def always_bytes(str_or_bytes: Optional[AnyStr], *encode_args) -> Optional[bytes raise TypeError("Expected str or bytes, but got {}.".format(type(str_or_bytes).__name__)) -def always_str(str_or_bytes: Optional[AnyStr], *decode_args) -> Optional[str]: +def always_str(str_or_bytes: Union[str, bytes, None], *decode_args) -> Optional[str]: """ Returns, str_or_bytes unmodified, if """ - if isinstance(str_or_bytes, str) or str_or_bytes is None: - return cast(Optional[str], str_or_bytes) + if str_or_bytes is None: + return None + if isinstance(str_or_bytes, str): + return cast(str, str_or_bytes) elif isinstance(str_or_bytes, bytes): return str_or_bytes.decode(*decode_args) else: @@ -39,7 +41,6 @@ _control_char_trans_newline = _control_char_trans.copy() for x in ("\r", "\n", "\t"): del _control_char_trans_newline[ord(x)] - _control_char_trans = str.maketrans(_control_char_trans) _control_char_trans_newline = str.maketrans(_control_char_trans_newline) |