summaryrefslogtreecommitdiff
path: root/git/refs/remote.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/refs/remote.py')
-rw-r--r--git/refs/remote.py31
1 files changed, 22 insertions, 9 deletions
diff --git a/git/refs/remote.py b/git/refs/remote.py
index 0164e110..8a680a4a 100644
--- a/git/refs/remote.py
+++ b/git/refs/remote.py
@@ -2,13 +2,23 @@ import os
from git.util import join_path
-import os.path as osp
-
from .head import Head
__all__ = ["RemoteReference"]
+# typing ------------------------------------------------------------------
+
+from typing import Any, NoReturn, Union, TYPE_CHECKING
+from git.types import PathLike
+
+
+if TYPE_CHECKING:
+ from git.repo import Repo
+ from git import Remote
+
+# ------------------------------------------------------------------------------
+
class RemoteReference(Head):
@@ -16,16 +26,19 @@ class RemoteReference(Head):
_common_path_default = Head._remote_common_path_default
@classmethod
- def iter_items(cls, repo, common_path=None, remote=None):
+ def iter_items(cls, repo: 'Repo', common_path: Union[PathLike, None] = None,
+ remote: Union['Remote', None] = None, *args: Any, **kwargs: Any
+ ) -> 'RemoteReference':
"""Iterate remote references, and if given, constrain them to the given remote"""
common_path = common_path or cls._common_path_default
if remote is not None:
common_path = join_path(common_path, str(remote))
# END handle remote constraint
+ # super is Reference
return super(RemoteReference, cls).iter_items(repo, common_path)
- @classmethod
- def delete(cls, repo, *refs, **kwargs):
+ @ classmethod
+ def delete(cls, repo: 'Repo', *refs: 'RemoteReference', **kwargs: Any) -> None:
"""Delete the given remote references
:note:
@@ -37,16 +50,16 @@ class RemoteReference(Head):
# and delete remainders manually
for ref in refs:
try:
- os.remove(osp.join(repo.common_dir, ref.path))
+ os.remove(os.path.join(repo.common_dir, ref.path))
except OSError:
pass
try:
- os.remove(osp.join(repo.git_dir, ref.path))
+ os.remove(os.path.join(repo.git_dir, ref.path))
except OSError:
pass
# END for each ref
- @classmethod
- def create(cls, *args, **kwargs):
+ @ classmethod
+ def create(cls, *args: Any, **kwargs: Any) -> NoReturn:
"""Used to disable this method"""
raise TypeError("Cannot explicitly create remote references")