diff options
| author | Ronny Pfannschmidt <opensource@ronnypfannschmidt.de> | 2022-04-15 13:36:16 +0200 |
|---|---|---|
| committer | Ronny Pfannschmidt <opensource@ronnypfannschmidt.de> | 2022-05-29 12:26:55 +0200 |
| commit | 76db4637e707d4bae2306932d6a4e4f3264f3587 (patch) | |
| tree | 95fb86d229f816ac8a16f6d8d7758da009a6a4dc /src | |
| parent | 0fa8bee903b0f3f8f797a2101771d41698f61968 (diff) | |
| download | setuptools-scm-76db4637e707d4bae2306932d6a4e4f3264f3587.tar.gz | |
typing fixed in face of ongoing python 3.6 support
Diffstat (limited to 'src')
| -rw-r--r-- | src/setuptools_scm/__init__.py | 2 | ||||
| -rw-r--r-- | src/setuptools_scm/config.py | 4 | ||||
| -rw-r--r-- | src/setuptools_scm/utils.py | 23 |
3 files changed, 16 insertions, 13 deletions
diff --git a/src/setuptools_scm/__init__.py b/src/setuptools_scm/__init__.py index 10134b6..aa4931a 100644 --- a/src/setuptools_scm/__init__.py +++ b/src/setuptools_scm/__init__.py @@ -85,7 +85,7 @@ def _do_parse(config: Configuration) -> "ScmVersion|None": parse_result = _call_entrypoint_fn(config.absolute_root, config, config.parse) if isinstance(parse_result, str): raise TypeError( - "version parse result was a string\nplease return a parsed version" + f"version parse result was {str!r}\nplease return a parsed version" ) version: Optional[ScmVersion] if parse_result: diff --git a/src/setuptools_scm/config.py b/src/setuptools_scm/config.py index 4ad32ac..850635a 100644 --- a/src/setuptools_scm/config.py +++ b/src/setuptools_scm/config.py @@ -30,7 +30,7 @@ def _check_tag_regex(value): return regex -def _check_absolute_root(root: _t.PathT, relative_to: _t.PathT): +def _check_absolute_root(root: _t.PathT, relative_to: "_t.PathT | None"): trace("abs root", repr(locals())) if relative_to: if ( @@ -85,7 +85,7 @@ class Configuration: fallback_root: _t.PathT = ".", parse=None, git_describe_command=None, - dist_name: str = None, + dist_name: "str|None" = None, version_cls: "Type[Version]|Type[NonNormalizedVersion]|str|None" = None, normalize: bool = True, search_parent_directories: bool = False, diff --git a/src/setuptools_scm/utils.py b/src/setuptools_scm/utils.py index 3c80fe0..744cade 100644 --- a/src/setuptools_scm/utils.py +++ b/src/setuptools_scm/utils.py @@ -8,9 +8,12 @@ import shlex import subprocess import sys import warnings +from typing import cast +from typing import Dict from typing import List -from typing import Optional +from typing import Tuple +from . import _types as _t DEBUG = bool(os.environ.get("SETUPTOOLS_SCM_DEBUG")) IS_WINDOWS = platform.system() == "Windows" @@ -42,24 +45,24 @@ def trace(*k) -> None: print(*k, file=sys.stderr, flush=True) -def ensure_stripped_str(str_or_bytes): +def ensure_stripped_str(str_or_bytes: "str | bytes") -> str: if isinstance(str_or_bytes, str): return str_or_bytes.strip() else: return str_or_bytes.decode("utf-8", "surrogateescape").strip() -def _always_strings(env_dict): +def _always_strings(env_dict: dict) -> Dict[str, str]: """ On Windows and Python 2, environment dictionaries must be strings and not unicode. """ if IS_WINDOWS: env_dict.update((key, str(value)) for (key, value) in env_dict.items()) - return env_dict + return cast(Dict[str, str], env_dict) -def _popen_pipes(cmd, cwd): +def _popen_pipes(cmd, cwd: "str | _t.PathT"): return subprocess.Popen( cmd, stdout=subprocess.PIPE, @@ -78,7 +81,7 @@ def _popen_pipes(cmd, cwd): ) -def do_ex(cmd, cwd="."): +def do_ex(cmd, cwd: "str | _t.PathT" = ".") -> Tuple[str, str, int]: trace("cmd", repr(cmd)) trace(" in", cwd) if os.name == "posix" and not isinstance(cmd, (list, tuple)): @@ -95,14 +98,14 @@ def do_ex(cmd, cwd="."): return ensure_stripped_str(out), ensure_stripped_str(err), p.returncode -def do(cmd, cwd="."): +def do(cmd: "List[str] | str", cwd: "str | _t.PathT" = "."): out, err, ret = do_ex(cmd, cwd) if ret: print(err) return out -def data_from_mime(path): +def data_from_mime(path: _t.PathT) -> Dict[str, str]: with open(path, encoding="utf-8") as fp: content = fp.read() trace("content", repr(content)) @@ -112,7 +115,7 @@ def data_from_mime(path): return data -def function_has_arg(fn, argname): +def function_has_arg(fn: object, argname: str) -> bool: assert inspect.isfunction(fn) argspec = inspect.signature(fn).parameters @@ -120,7 +123,7 @@ def function_has_arg(fn, argname): return argname in argspec -def has_command(name: str, args: Optional[List[str]] = None, warn: bool = True) -> bool: +def has_command(name: str, args: "List[str] | None" = None, warn: bool = True) -> bool: try: cmd = [name, "help"] if args is None else [name, *args] p = _popen_pipes(cmd, ".") |
