summaryrefslogtreecommitdiff
path: root/git/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/util.py')
-rw-r--r--git/util.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/git/util.py b/git/util.py
index 220901a4..76aaee49 100644
--- a/git/util.py
+++ b/git/util.py
@@ -24,6 +24,7 @@ from urllib.parse import urlsplit, urlunsplit
from typing import (Any, AnyStr, BinaryIO, Callable, Dict, Generator, IO, Iterator, List,
Optional, Pattern, Sequence, Tuple, Union, cast, TYPE_CHECKING, overload)
+import pathlib
if TYPE_CHECKING:
from git.remote import Remote
@@ -376,10 +377,13 @@ def expand_path(p: None, expand_vars: bool = ...) -> None:
@overload
def expand_path(p: PathLike, expand_vars: bool = ...) -> str:
+ # improve these overloads when 3.5 dropped
...
-def expand_path(p: Union[None, PathLike], expand_vars: bool = True) -> Optional[str]:
+def expand_path(p: Union[None, PathLike], expand_vars: bool = True) -> Optional[PathLike]:
+ if isinstance(p, pathlib.Path):
+ return p.resolve()
try:
p = osp.expanduser(p) # type: ignore
if expand_vars: