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

Reply via email to