Xqt has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/965060
)
Change subject: Clarify typing for Wikibase write methods
......................................................................
Clarify typing for Wikibase write methods
The type for WikibaseEntity.editEntity(data) was incorrect.
Data is either None, or always dict with strings as keys.
The values can be a union of the other types.
Change-Id: I09e7206222b9f89afc24fe74905bb81c0e52d0d7
---
M pywikibot/page/_wikibase.py
1 file changed, 22 insertions(+), 6 deletions(-)
Approvals:
jenkins-bot: Verified
Xqt: Looks good to me, approved
diff --git a/pywikibot/page/_wikibase.py b/pywikibot/page/_wikibase.py
index 5141e00..c0530eb 100644
--- a/pywikibot/page/_wikibase.py
+++ b/pywikibot/page/_wikibase.py
@@ -64,10 +64,12 @@
)
-ALIASES_TYPE = Dict[Union[str, pywikibot.APISite], List[str]]
-LANGUAGE_TYPE = Dict[Union[str, pywikibot.APISite], str]
+LANGUAGE_IDENTIFIER = Union[str, pywikibot.APISite]
+ALIASES_TYPE = Dict[LANGUAGE_IDENTIFIER, List[str]]
+LANGUAGE_TYPE = Dict[LANGUAGE_IDENTIFIER, str]
SITELINK_TYPE = Union['pywikibot.page.BasePage',
'pywikibot.page.BaseLink',
Dict[str, str]]
+ENTITY_DATA_TYPE = Dict[str, Union[LANGUAGE_TYPE, ALIASES_TYPE, SITELINK_TYPE]]
class WikibaseEntity:
@@ -283,7 +285,7 @@
def editEntity(
self,
- data: Union[LANGUAGE_TYPE, ALIASES_TYPE, SITELINK_TYPE, None] = None,
+ data: Union[ENTITY_DATA_TYPE, None] = None,
**kwargs
) -> None:
"""Edit an entity using Wikibase ``wbeditentity`` API.
@@ -648,7 +650,7 @@
@allow_asynchronous
def editEntity(
self,
- data: Union[LANGUAGE_TYPE, ALIASES_TYPE, SITELINK_TYPE, None] = None,
+ data: Union[ENTITY_DATA_TYPE, None] = None,
**kwargs: Any
) -> None:
"""Edit an entity using Wikibase ``wbeditentity`` API.
@@ -1114,7 +1116,7 @@
"""
self.setSitelinks([sitelink], **kwargs)
- def removeSitelink(self, site, **kwargs) -> None:
+ def removeSitelink(self, site: LANGUAGE_IDENTIFIER, **kwargs) -> None:
"""
Remove a sitelink.
@@ -1122,7 +1124,8 @@
"""
self.removeSitelinks([site], **kwargs)
- def removeSitelinks(self, sites, **kwargs) -> None:
+ def removeSitelinks(self, sites: List[LANGUAGE_IDENTIFIER], **kwargs
+ ) -> None:
"""
Remove sitelinks.
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/965060
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I09e7206222b9f89afc24fe74905bb81c0e52d0d7
Gerrit-Change-Number: 965060
Gerrit-PatchSet: 1
Gerrit-Owner: Matěj Suchánek <matejsuchanek97(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged