From f933cd0d32abb19d1512fc32805252e025472a5e Mon Sep 17 00:00:00 2001 From: scito Date: Thu, 29 Dec 2022 16:30:18 +0100 Subject: [PATCH] initial mypy type checking --- .github/workflows/ci.yml | 1 + extract_otp_secret_keys.py | 13 ++++++++----- upgrade_deps.sh | 5 +++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9962340..580a262 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,5 +48,6 @@ jobs: - name: Type checking with mypy run: | mypy *.py + if: matrix.python-version == "3.x" - name: Test with pytest run: pytest diff --git a/extract_otp_secret_keys.py b/extract_otp_secret_keys.py index 9ae628e..c1adbf5 100644 --- a/extract_otp_secret_keys.py +++ b/extract_otp_secret_keys.py @@ -75,17 +75,19 @@ Exception: {e}""") except ImportError: qreader_available = False +verbose: int +quiet: bool -def sys_main(): + +def sys_main() -> None: main(sys.argv[1:]) -def main(sys_args): +def main(sys_args: list[str]) -> None: # allow to use sys.stdout with with (avoid closing) - sys.stdout.close = lambda: None + sys.stdout.close = lambda: None # type: ignore args = parse_args(sys_args) - if verbose: print(f"QReader installed: {qreader_available}") otps = extract_otps(args) write_csv(args, otps) @@ -93,7 +95,7 @@ def main(sys_args): write_json(args, otps) -def parse_args(sys_args): +def parse_args(sys_args: list[str]) -> argparse.Namespace: global verbose, quiet description_text = "Extracts one time password (OTP) secret keys from QR codes, e.g. from Google Authenticator app." if qreader_available: @@ -126,6 +128,7 @@ b) image file containing a QR code or = for stdin for an image containing a QR c verbose = args.verbose if args.verbose else 0 quiet = True if args.quiet else False + if verbose: print(f"QReader installed: {qreader_available}") return args diff --git a/upgrade_deps.sh b/upgrade_deps.sh index d09229b..2f36e72 100755 --- a/upgrade_deps.sh +++ b/upgrade_deps.sh @@ -112,6 +112,7 @@ PYTHON="python3.11" PIP="pip3.11" PIPENV="$PYTHON -m pipenv" FLAKE8="$PYTHON -m flake8" +MYPY="$PYTHON -m mypy" # Upgrade protoc @@ -215,11 +216,11 @@ eval "$cmd" # Type checking -cmd="mypy --install-types --non-interactive" +cmd="$MYPY --install-types --non-interactive" if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi eval "$cmd" -cmd="mypy *.py" +cmd="$MYPY *.py" if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi eval "$cmd"