diff options
Diffstat (limited to 'git/refs/remote.py')
-rw-r--r-- | git/refs/remote.py | 31 |
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") |