Xqt has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1082733?usp=email )
Change subject: [IMPR] Rename DataSite.getPropertyType to get_property_type ...................................................................... [IMPR] Rename DataSite.getPropertyType to get_property_type Also, make it throw NoWikibaseEntityError instead of KeyError. Change-Id: Iad31755e6672fd642c88b2323706b3b7a9bdbb9d --- M pywikibot/page/_wikibase.py M pywikibot/site/_datasite.py 2 files changed, 22 insertions(+), 15 deletions(-) Approvals: Xqt: Verified; Looks good to me, approved diff --git a/pywikibot/page/_wikibase.py b/pywikibot/page/_wikibase.py index 6b0ad93..4a8a9db 100644 --- a/pywikibot/page/_wikibase.py +++ b/pywikibot/page/_wikibase.py @@ -1440,8 +1440,8 @@ .. versionadded:: 9.4 """ try: - self._type = self.repo.getPropertyType(self) - except KeyError: + self._type = self.repo.get_property_type(self) + except NoWikibaseEntityError: return False return True @@ -1456,15 +1456,7 @@ :raises NoWikibaseEntityError: property does not exist """ - try: - prop_type = self.repo.getPropertyType(self) - except KeyError: - raise NoWikibaseEntityError( - self if isinstance(self, WikibaseEntity) - else WikibaseEntity(self.repo, self.id) - ) from None - - return prop_type + return self.repo.get_property_type(self) def getID(self, numeric: bool = False): """ diff --git a/pywikibot/site/_datasite.py b/pywikibot/site/_datasite.py index a5f8a31..b8c1066 100644 --- a/pywikibot/site/_datasite.py +++ b/pywikibot/site/_datasite.py @@ -25,7 +25,7 @@ ) from pywikibot.site._apisite import APISite from pywikibot.site._decorators import need_extension, need_right, need_version -from pywikibot.tools import merge_unique_dicts, remove_last_args +from pywikibot.tools import deprecated, merge_unique_dicts, remove_last_args __all__ = ('DataSite', ) @@ -252,13 +252,13 @@ page.get() # cannot provide get_redirect=True (T145971) yield page - def getPropertyType(self, prop): + def get_property_type(self, prop: pywikibot.page.Property) -> str: """Obtain the type of a property. This is used specifically because we can cache the value for a much longer time (near infinite). - :raises KeyError: *prop* does not exist + :raises NoWikibaseEntityError: *prop* does not exist """ params = {'action': 'wbgetentities', 'ids': prop.getID(), 'props': 'datatype'} @@ -275,10 +275,25 @@ entity = data['entities'][prop.getID().lower()] if 'missing' in entity: - raise KeyError(f'{prop} does not exist') + raise NoWikibaseEntityError( + prop if isinstance(prop, pywikibot.page.WikibaseEntity) + else pywikibot.page.WikibaseEntity(self, prop.getID()) + ) return entity['datatype'] + @deprecated('get_property_type', since='9.5.0') + def getPropertyType(self, prop): + """Obtain the type of a property. + + .. deprecated:: 9.5 + Use :meth:`get_property_type` instead. + """ + try: + return self.get_property_type(prop) + except NoWikibaseEntityError as exc: + raise KeyError(f'{exc.entity.id} does not exist') from None + @need_right('edit') def editEntity(self, entity: pywikibot.page.WikibaseEntity | dict, -- To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1082733?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: pywikibot/core Gerrit-Branch: master Gerrit-Change-Id: Iad31755e6672fd642c88b2323706b3b7a9bdbb9d Gerrit-Change-Number: 1082733 Gerrit-PatchSet: 6 Gerrit-Owner: Matěj Suchánek <matejsuchane...@gmail.com> Gerrit-Reviewer: Xqt <i...@gno.de> Gerrit-Reviewer: jenkins-bot
_______________________________________________ Pywikibot-commits mailing list -- pywikibot-commits@lists.wikimedia.org To unsubscribe send an email to pywikibot-commits-le...@lists.wikimedia.org