summaryrefslogtreecommitdiff
path: root/git/remote.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/remote.py')
-rw-r--r--git/remote.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/git/remote.py b/git/remote.py
index d73da7d4..0071b923 100644
--- a/git/remote.py
+++ b/git/remote.py
@@ -36,7 +36,7 @@ from .refs import (
# typing-------------------------------------------------------
-from typing import Any, Callable, Optional, TYPE_CHECKING, Union
+from typing import Any, Callable, Optional, TYPE_CHECKING, Union, overload
from git.types import PathLike, Literal
@@ -71,7 +71,23 @@ def add_progress(kwargs: Any, git: Git, progress: Optional[Callable[..., Any]])
#} END utilities
-def to_progress_instance(progress: Callable[..., Any]) -> Union[RemoteProgress, CallableRemoteProgress]:
+@overload
+def to_progress_instance(progress: None) -> RemoteProgress:
+ ...
+
+
+@overload
+def to_progress_instance(progress: Callable[..., Any]) -> CallableRemoteProgress:
+ ...
+
+
+@overload
+def to_progress_instance(progress: RemoteProgress) -> RemoteProgress:
+ ...
+
+
+def to_progress_instance(progress: Union[Callable[..., Any], RemoteProgress, None]
+ ) -> Union[RemoteProgress, CallableRemoteProgress]:
"""Given the 'progress' return a suitable object derived from
RemoteProgress().
"""