From a85790ee6f4dbe738119f012767bd57ec843cf4d Mon Sep 17 00:00:00 2001 From: Ronny Pfannschmidt Date: Sat, 7 Aug 2021 22:22:13 +0200 Subject: [PATCH] begin mypy usage - addresses part of #501 --- .pre-commit-config.yaml | 9 ++++++++- mypy.ini | 9 +++++++++ src/setuptools_scm/__main__.py | 2 +- src/setuptools_scm/config.py | 2 +- src/setuptools_scm/utils.py | 13 +++++++------ 5 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 mypy.ini diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 60466c99..c847bb27 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -21,7 +21,7 @@ repos: hooks: - id: flake8 - repo: https://github.com/asottile/pyupgrade - rev: v2.23.1 + rev: v2.23.3 hooks: - id: pyupgrade args: [--py36-plus] @@ -29,3 +29,10 @@ repos: rev: v1.17.0 hooks: - id: setup-cfg-fmt +- repo: https://github.com/pre-commit/mirrors-mypy + rev: 'v0.910' + hooks: + - id: mypy + additional_dependencies: + - types-setuptools + - tokenize-rt==3.2.0 diff --git a/mypy.ini b/mypy.ini new file mode 100644 index 00000000..66723288 --- /dev/null +++ b/mypy.ini @@ -0,0 +1,9 @@ +[mypy] +python_version = 3.6 +warn_return_any = True +warn_unused_configs = True +mypy_path = $MYPY_CONFIG_FILE_DIR/src + +[mypy-setuptools_scm.*] +# disabled as it will take a bit +# disallow_untyped_defs = True diff --git a/src/setuptools_scm/__main__.py b/src/setuptools_scm/__main__.py index ead0bc1e..f3377b05 100644 --- a/src/setuptools_scm/__main__.py +++ b/src/setuptools_scm/__main__.py @@ -4,7 +4,7 @@ from setuptools_scm.integration import find_files -def main(): +def main() -> None: print("Guessed Version", get_version()) if "ls" in sys.argv: for fname in find_files("."): diff --git a/src/setuptools_scm/config.py b/src/setuptools_scm/config.py index 7ecb1c6d..473402e8 100644 --- a/src/setuptools_scm/config.py +++ b/src/setuptools_scm/config.py @@ -8,7 +8,7 @@ except ImportError: import pkg_resources - Version = pkg_resources.packaging.version.Version + Version = pkg_resources.packaging.version.Version # type: ignore from .utils import trace diff --git a/src/setuptools_scm/utils.py b/src/setuptools_scm/utils.py index c033dc33..7ea540d8 100644 --- a/src/setuptools_scm/utils.py +++ b/src/setuptools_scm/utils.py @@ -9,7 +9,7 @@ import sys import traceback import warnings - +from typing import Optional DEBUG = bool(os.environ.get("SETUPTOOLS_SCM_DEBUG")) IS_WINDOWS = platform.system() == "Windows" @@ -36,14 +36,15 @@ def no_git_env(env): } -def trace(*k): +def trace(*k) -> None: if DEBUG: print(*k) sys.stdout.flush() -def trace_exception(): - DEBUG and traceback.print_exc() +def trace_exception() -> None: + if DEBUG: + traceback.print_exc() def ensure_stripped_str(str_or_bytes): @@ -144,12 +145,12 @@ def require_command(name): try: - from importlib.metadata import entry_points + from importlib.metadata import entry_points # type: ignore except ImportError: from pkg_resources import iter_entry_points else: - def iter_entry_points(group, name=None): + def iter_entry_points(group: str, name: Optional[str] = None): eps = entry_points()[group] if name is None: return iter(eps)