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 <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]