0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-05 14:06:27 -05:00

Merge bitcoin/bitcoin#23212: lint: enable mypy import checking

a46f71bb70 lint: enable mypy checking for missing imports (josibake)
22e652662b lint mypy 0.910 (fanquake)
6ae9c2ef23 lint: install pyzmq (22.3.0) into linter environment (josibake)
b93e2299da doc: remove pointlessly duplicated linter version / install info (fanquake)

Pull request description:

  This is #22844 with issues addressed, and two additional commits. One to move to the latest mypy version in the CI, and another to remove what is just pointless duplication from the test README. There's no need to relist package versions and install instructions (meaning 2x the work when changing anything), when you can just link to `04_install.sh` which has the versions used and pip invocations to install them.

ACKs for top commit:
  practicalswift:
    cr ACK a46f71bb70

Tree-SHA512: 2900dea3901d03a846dc1ea912f217d152e803845516c7d941745ec1291d145590cd4bf2ddc497f7cf628119ba9905d7b1531836062aa85b384e39cf436f62c6
This commit is contained in:
MarcoFalke 2021-10-17 10:55:09 +02:00
commit 3bf40d06a2
No known key found for this signature in database
GPG key ID: CE2B75697E69A548
8 changed files with 16 additions and 12 deletions

View file

@ -13,7 +13,8 @@ update-alternatives --install /usr/bin/clang-format-diff clang-format-diff $(whi
${CI_RETRY_EXE} pip3 install codespell==2.0.0 ${CI_RETRY_EXE} pip3 install codespell==2.0.0
${CI_RETRY_EXE} pip3 install flake8==3.8.3 ${CI_RETRY_EXE} pip3 install flake8==3.8.3
${CI_RETRY_EXE} pip3 install mypy==0.781 ${CI_RETRY_EXE} pip3 install mypy==0.910
${CI_RETRY_EXE} pip3 install pyzmq==22.3.0
${CI_RETRY_EXE} pip3 install vulture==2.3 ${CI_RETRY_EXE} pip3 install vulture==2.3
SHELLCHECK_VERSION=v0.7.2 SHELLCHECK_VERSION=v0.7.2

View file

@ -10,7 +10,7 @@ Otherwise the exit status will be 1 and it will log which executables failed whi
import sys import sys
from typing import List from typing import List
import lief import lief #type:ignore
def check_ELF_RELRO(binary) -> bool: def check_ELF_RELRO(binary) -> bool:
''' '''

View file

@ -13,7 +13,7 @@ Example usage:
import sys import sys
from typing import List, Dict from typing import List, Dict
import lief import lief #type:ignore
# temporary constant, to be replaced with lief.ELF.ARCH.RISCV # temporary constant, to be replaced with lief.ELF.ARCH.RISCV
# https://github.com/lief-project/LIEF/pull/562 # https://github.com/lief-project/LIEF/pull/562

View file

@ -275,12 +275,15 @@ Use the `-v` option for verbose output.
#### Dependencies #### Dependencies
| Lint test | Dependency | Version [used by CI](../ci/lint/04_install.sh) | Installation | Lint test | Dependency |
|-----------|:----------:|:-------------------------------------------:|-------------- |-----------|:----------:|
| [`lint-python.sh`](lint/lint-python.sh) | [flake8](https://gitlab.com/pycqa/flake8) | [3.8.3](https://github.com/bitcoin/bitcoin/pull/19348) | `pip3 install flake8==3.8.3` | [`lint-python.sh`](lint/lint-python.sh) | [flake8](https://gitlab.com/pycqa/flake8)
| [`lint-python.sh`](lint/lint-python.sh) | [mypy](https://github.com/python/mypy) | [0.781](https://github.com/bitcoin/bitcoin/pull/19348) | `pip3 install mypy==0.781` | [`lint-python.sh`](lint/lint-python.sh) | [mypy](https://github.com/python/mypy)
| [`lint-shell.sh`](lint/lint-shell.sh) | [ShellCheck](https://github.com/koalaman/shellcheck) | [0.7.2](https://github.com/bitcoin/bitcoin/pull/21749) | [details...](https://github.com/koalaman/shellcheck#installing) | [`lint-python.sh`](lint/lint-python.sh) | [pyzmq](https://github.com/zeromq/pyzmq)
| [`lint-spelling.sh`](lint/lint-spelling.sh) | [codespell](https://github.com/codespell-project/codespell) | [2.0.0](https://github.com/bitcoin/bitcoin/pull/20817) | `pip3 install codespell==2.0.0` | [`lint-shell.sh`](lint/lint-shell.sh) | [ShellCheck](https://github.com/koalaman/shellcheck)
| [`lint-spelling.sh`](lint/lint-spelling.sh) | [codespell](https://github.com/codespell-project/codespell)
In use versions and install instructions are available in the [CI setup](../ci/lint/04_install.sh).
Please be aware that on Linux distributions all dependencies are usually available as packages, but could be outdated. Please be aware that on Linux distributions all dependencies are usually available as packages, but could be outdated.

View file

@ -188,7 +188,7 @@ def print_logs_plain(log_events, colors):
def print_logs_html(log_events): def print_logs_html(log_events):
"""Renders the iterator of log events into html.""" """Renders the iterator of log events into html."""
try: try:
import jinja2 import jinja2 #type:ignore
except ImportError: except ImportError:
print("jinja2 not found. Try `pip install jinja2`") print("jinja2 not found. Try `pip install jinja2`")
sys.exit(1) sys.exit(1)

View file

View file

@ -40,7 +40,7 @@ except UnicodeDecodeError:
CROSS = "x " CROSS = "x "
CIRCLE = "o " CIRCLE = "o "
if os.name != 'nt' or sys.getwindowsversion() >= (10, 0, 14393): if os.name != 'nt' or sys.getwindowsversion() >= (10, 0, 14393): #type:ignore
if os.name == 'nt': if os.name == 'nt':
import ctypes import ctypes
kernel32 = ctypes.windll.kernel32 # type: ignore kernel32 = ctypes.windll.kernel32 # type: ignore

View file

@ -102,7 +102,7 @@ if ! PYTHONWARNINGS="ignore" flake8 --ignore=B,C,E,F,I,N,W --select=$(IFS=","; e
EXIT_CODE=1 EXIT_CODE=1
fi fi
if ! mypy --ignore-missing-imports --show-error-codes $(git ls-files "test/functional/*.py" "contrib/devtools/*.py"); then if ! mypy --show-error-codes $(git ls-files "test/functional/*.py" "contrib/devtools/*.py"); then
EXIT_CODE=1 EXIT_CODE=1
fi fi