summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--git/compat.py11
-rw-r--r--git/util.py3
2 files changed, 10 insertions, 4 deletions
diff --git a/git/compat.py b/git/compat.py
index cbb39fa6..187618a2 100644
--- a/git/compat.py
+++ b/git/compat.py
@@ -43,9 +43,11 @@ defenc = sys.getfilesystemencoding()
@overload
def safe_decode(s: None) -> None: ...
+
@overload
def safe_decode(s: AnyStr) -> str: ...
+
def safe_decode(s: Union[AnyStr, None]) -> Optional[str]:
"""Safely decodes a binary string to unicode"""
if isinstance(s, str):
@@ -61,9 +63,11 @@ def safe_decode(s: Union[AnyStr, None]) -> Optional[str]:
@overload
def safe_encode(s: None) -> None: ...
+
@overload
def safe_encode(s: AnyStr) -> bytes: ...
+
def safe_encode(s: Optional[AnyStr]) -> Optional[bytes]:
"""Safely encodes a binary string to unicode"""
if isinstance(s, str):
@@ -79,9 +83,11 @@ def safe_encode(s: Optional[AnyStr]) -> Optional[bytes]:
@overload
def win_encode(s: None) -> None: ...
+
@overload
def win_encode(s: AnyStr) -> bytes: ...
+
def win_encode(s: Optional[AnyStr]) -> Optional[bytes]:
"""Encode unicodes for process arguments on Windows."""
if isinstance(s, str):
@@ -93,7 +99,8 @@ def win_encode(s: Optional[AnyStr]) -> Optional[bytes]:
return None
-def with_metaclass(meta: Type[Any], *bases: Any) -> TBD: # type: ignore ## mypy cannot understand dynamic class creation
+# type: ignore ## mypy cannot understand dynamic class creation
+def with_metaclass(meta: Type[Any], *bases: Any) -> TBD:
"""copied from https://github.com/Byron/bcore/blob/master/src/python/butility/future.py#L15"""
class metaclass(meta): # type: ignore
@@ -105,4 +112,4 @@ def with_metaclass(meta: Type[Any], *bases: Any) -> TBD: # type: ignore ## mypy
return type.__new__(cls, name, (), d)
return meta(name, bases, d)
- return metaclass(meta.__name__ + 'Helper', None, {}) # type: ignore
+ return metaclass(meta.__name__ + 'Helper', None, {}) # type: ignore
diff --git a/git/util.py b/git/util.py
index 30018310..403e66a6 100644
--- a/git/util.py
+++ b/git/util.py
@@ -332,9 +332,8 @@ def is_cygwin_git(git_executable: Union[None, PathLike]) -> bool:
return False
if git_executable is None:
- return False # or raise error?
+ return False
- #from subprocess import check_output
git_executable = str(git_executable)
is_cygwin = _is_cygwin_cache.get(git_executable) # type: Optional[bool]
if is_cygwin is None: