summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRonny Pfannschmidt <opensource@ronnypfannschmidt.de>2022-04-15 13:36:16 +0200
committerRonny Pfannschmidt <opensource@ronnypfannschmidt.de>2022-05-29 12:26:55 +0200
commit76db4637e707d4bae2306932d6a4e4f3264f3587 (patch)
tree95fb86d229f816ac8a16f6d8d7758da009a6a4dc /src
parent0fa8bee903b0f3f8f797a2101771d41698f61968 (diff)
downloadsetuptools-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__.py2
-rw-r--r--src/setuptools_scm/config.py4
-rw-r--r--src/setuptools_scm/utils.py23
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, ".")