summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominic <yobmod@gmail.com>2021-09-24 03:52:16 +0100
committerGitHub <noreply@github.com>2021-09-24 03:52:16 +0100
commit1746b971387eccfc6fb4e34d3c334079bbb14b2e (patch)
treecd6d4a755c41c203b6d1c14996d0025318579efc
parent2d15c5a601e698e8f7859e821950cad0701b756d (diff)
parent5f4b4dbff46fae4c899f5573aea5a7266a41eeeb (diff)
downloadgitpython-1746b971387eccfc6fb4e34d3c334079bbb14b2e.tar.gz
Merge pull request #1346 from rra/type-fixes
Fix typing issues with delete_head and Remote.add
-rw-r--r--git/refs/head.py2
-rw-r--r--git/refs/remote.py7
-rw-r--r--git/remote.py4
-rw-r--r--git/repo/base.py2
4 files changed, 11 insertions, 4 deletions
diff --git a/git/refs/head.py b/git/refs/head.py
index 56a87182..d1d72c7b 100644
--- a/git/refs/head.py
+++ b/git/refs/head.py
@@ -129,7 +129,7 @@ class Head(Reference):
k_config_remote_ref = "merge" # branch to merge from remote
@classmethod
- def delete(cls, repo: 'Repo', *heads: 'Head', force: bool = False, **kwargs: Any) -> None:
+ def delete(cls, repo: 'Repo', *heads: 'Union[Head, str]', force: bool = False, **kwargs: Any) -> None:
"""Delete the given heads
:param force:
diff --git a/git/refs/remote.py b/git/refs/remote.py
index 9b74d87f..1b416bd0 100644
--- a/git/refs/remote.py
+++ b/git/refs/remote.py
@@ -37,8 +37,13 @@ class RemoteReference(Head):
# super is Reference
return super(RemoteReference, cls).iter_items(repo, common_path)
+ # The Head implementation of delete also accepts strs, but this
+ # implementation does not. mypy doesn't have a way of representing
+ # tightening the types of arguments in subclasses and recommends Any or
+ # "type: ignore". (See https://github.com/python/typing/issues/241)
@ classmethod
- def delete(cls, repo: 'Repo', *refs: 'RemoteReference', **kwargs: Any) -> None:
+ def delete(cls, repo: 'Repo', *refs: 'RemoteReference', # type: ignore
+ **kwargs: Any) -> None:
"""Delete the given remote references
:note:
diff --git a/git/remote.py b/git/remote.py
index 9917c431..2cf5678b 100644
--- a/git/remote.py
+++ b/git/remote.py
@@ -665,7 +665,9 @@ class Remote(LazyMixin, IterableObj):
return cls(repo, name)
# add is an alias
- add = create
+ @ classmethod
+ def add(cls, repo: 'Repo', name: str, url: str, **kwargs: Any) -> 'Remote':
+ return cls.create(repo, name, url, **kwargs)
@ classmethod
def remove(cls, repo: 'Repo', name: str) -> str:
diff --git a/git/repo/base.py b/git/repo/base.py
index e308fd8a..7713c915 100644
--- a/git/repo/base.py
+++ b/git/repo/base.py
@@ -429,7 +429,7 @@ class Repo(object):
:return: newly created Head Reference"""
return Head.create(self, path, commit, logmsg, force)
- def delete_head(self, *heads: 'Head', **kwargs: Any) -> None:
+ def delete_head(self, *heads: 'Union[str, Head]', **kwargs: Any) -> None:
"""Delete the given heads
:param kwargs: Additional keyword arguments to be passed to git-branch"""