Upgrade to Mypy 0.501 and fix issues. Add requirements.txt.

This commit is contained in:
Andris Raugulis 2017-03-23 23:17:35 +02:00
parent 94a74e9cfd
commit 65ef250aae
6 changed files with 40 additions and 12 deletions

View File

@ -39,7 +39,7 @@ else: # pragma: nocover
binary_type = str binary_type = str
try: # pragma: nocover try: # pragma: nocover
# pylint: disable=unused-import # pylint: disable=unused-import
from typing import List, Set, Sequence, Tuple, Iterable from typing import Dict, List, Set, Sequence, Tuple, Iterable
from typing import Callable, Optional, Union, Any from typing import Callable, Optional, Union, Any
except ImportError: # pragma: nocover except ImportError: # pragma: nocover
pass pass
@ -713,7 +713,8 @@ class ReadBuf(object):
def read_byte(self): def read_byte(self):
# type: () -> int # type: () -> int
return struct.unpack('B', self.read(1))[0] v = struct.unpack('B', self.read(1))[0] # type: int
return v
def read_bool(self): def read_bool(self):
# type: () -> bool # type: () -> bool
@ -721,7 +722,8 @@ class ReadBuf(object):
def read_int(self): def read_int(self):
# type: () -> int # type: () -> int
return struct.unpack('>I', self.read(4))[0] v = struct.unpack('>I', self.read(4))[0] # type: int
return v
def read_list(self): def read_list(self):
# type: () -> List[text_type] # type: () -> List[text_type]
@ -1268,8 +1270,10 @@ class SSH(object): # pylint: disable=too-few-public-methods
@property @property
def maxlen(self): def maxlen(self):
# type: () -> int # type: () -> int
ml, maxlen = lambda l: max(len(i) for i in l), 0 maxlen = 0
# type: Callable[[Sequence[text_type]], int], int def ml(items):
# type: (Sequence[text_type]) -> int
return max(len(i) for i in items)
if self.ssh1kex is not None: if self.ssh1kex is not None:
maxlen = max(ml(self.ssh1kex.supported_ciphers), maxlen = max(ml(self.ssh1kex.supported_ciphers),
ml(self.ssh1kex.supported_authentications), ml(self.ssh1kex.supported_authentications),
@ -1536,8 +1540,8 @@ class SSH(object): # pylint: disable=too-few-public-methods
ipvo_len = len(ipvo) ipvo_len = len(ipvo)
prefer_ipvo = ipvo_len > 0 prefer_ipvo = ipvo_len > 0
prefer_ipv4 = prefer_ipvo and ipvo[0] == 4 prefer_ipv4 = prefer_ipvo and ipvo[0] == 4
if len(ipvo) == 1: if ipvo_len == 1:
family = {4: socket.AF_INET, 6: socket.AF_INET6}.get(ipvo[0]) family = socket.AF_INET if ipvo[0] == 4 else socket.AF_INET6
else: else:
family = socket.AF_UNSPEC family = socket.AF_UNSPEC
try: try:

View File

@ -7,4 +7,9 @@ if [ $? -ne 0 ]; then
fi fi
_htmldir="${_cdir}/../html/mypy-py2" _htmldir="${_cdir}/../html/mypy-py2"
mkdir -p "${_htmldir}" mkdir -p "${_htmldir}"
env MYPYPATH="${_cdir}/stubs/" mypy --python-version 2.7 --strict-optional --config-file "${_cdir}/mypy.ini" --html-report "${_htmldir}" "${_cdir}/../ssh-audit.py" env MYPYPATH="${_cdir}/stubs/" mypy \
--python-version 2.7 \
--no-warn-incomplete-stub \
--show-error-context \
--config-file "${_cdir}/mypy.ini" \
--html-report "${_htmldir}" "${_cdir}/../ssh-audit.py"

View File

@ -7,4 +7,8 @@ if [ $? -ne 0 ]; then
fi fi
_htmldir="${_cdir}/../html/mypy-py3" _htmldir="${_cdir}/../html/mypy-py3"
mkdir -p "${_htmldir}" mkdir -p "${_htmldir}"
env MYPYPATH="${_cdir}/stubs/" mypy --python-version 3.5 --strict-optional --config-file "${_cdir}/mypy.ini" --html-report "${_htmldir}" "${_cdir}/../ssh-audit.py" env MYPYPATH="${_cdir}/stubs/" mypy \
--python-version 3.5 \
--show-error-context \
--config-file "${_cdir}/mypy.ini" \
--html-report "${_htmldir}" "${_cdir}/../ssh-audit.py"

View File

@ -4,6 +4,10 @@ follow_imports = error
disallow_untyped_calls = True disallow_untyped_calls = True
disallow_untyped_defs = True disallow_untyped_defs = True
check_untyped_defs = True check_untyped_defs = True
disallow-subclassing-any = True disallow_subclassing_any = True
warn-incomplete-stub = True warn_incomplete_stub = True
warn-redundant-casts = True warn_redundant_casts = True
warn_return_any = True
warn_unused_ignores = True
strict_optional = True
#strict_boolean = False

View File

@ -0,0 +1,5 @@
pytest==3.0.7
pytest-cov==2.4.0
lxml==3.7.3
colorama==0.3.7
prospector==0.12.4

View File

@ -0,0 +1,6 @@
pytest==3.0.7
pytest-cov==2.4.0
mypy==0.501
lxml==3.7.3
colorama==0.3.7
prospector==0.12.4