[MediaWiki-commits] [Gerrit] pywikibot/core[master]: Make Wikibase Property provide labels data

2017-02-02 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/332384 )

Change subject: Make Wikibase Property provide labels data
..


Make Wikibase Property provide labels data

Change-Id: I139ef7e263343e965a9de12acc8c531b774ce63c
---
M pywikibot/page.py
M pywikibot/site.py
M tests/wikibase_tests.py
3 files changed, 51 insertions(+), 4 deletions(-)

Approvals:
  jenkins-bot: Verified
  Sn1per: Looks good to me, approved



diff --git a/pywikibot/page.py b/pywikibot/page.py
index f015e45..c83e1bd 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -12,7 +12,7 @@
 
 """
 #
-# (C) Pywikibot team, 2008-2016
+# (C) Pywikibot team, 2008-2017
 #
 # Distributed under the terms of the MIT license.
 #
@@ -4275,6 +4275,17 @@
 self._type = self.repo.getPropertyType(self)
 return self._type
 
+@property
+def labels(self):
+"""
+Return labels of this property.
+
+@rtype: dict
+"""
+if not hasattr(self, '_labels'):
+self._labels = self.repo.get_property_labels(self)
+return self._labels
+
 @deprecated("Property.type")
 def getType(self):
 """
diff --git a/pywikibot/site.py b/pywikibot/site.py
index f2724d9..f8b59e4 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -6,7 +6,7 @@
 groups of wikis on the same topic in different languages.
 """
 #
-# (C) Pywikibot team, 2008-2016
+# (C) Pywikibot team, 2008-2017
 #
 # Distributed under the terms of the MIT license.
 #
@@ -7246,6 +7246,30 @@
 
 return dtype
 
+def get_property_labels(self, prop):
+"""
+Obtain labels of a property.
+
+Results are cached for 1 day.
+"""
+params = dict(
+action='wbgetentities',
+ids=prop.getID(),
+props='labels',
+)
+expiry = datetime.timedelta(days=1)
+req = self._request(expiry=expiry, parameters=params)
+data = req.submit()
+
+# the IDs returned from the API can be upper or lowercase, depending
+# on the version. See bug T55894 for more information.
+try:
+dtype = data['entities'][prop.getID()]['labels']
+except KeyError:
+dtype = data['entities'][prop.getID().lower()]['labels']
+
+return dtype
+
 @must_be(group='user')
 def editEntity(self, identification, data, bot=True, **kwargs):
 """
diff --git a/tests/wikibase_tests.py b/tests/wikibase_tests.py
index 0aaad45..70aaa22 100644
--- a/tests/wikibase_tests.py
+++ b/tests/wikibase_tests.py
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 """Tests for the Wikidata parts of the page module."""
 #
-# (C) Pywikibot team, 2008-2016
+# (C) Pywikibot team, 2008-2017
 #
 # Distributed under the terms of the MIT license.
 #
@@ -18,7 +18,7 @@
 import pywikibot
 
 from pywikibot import pagegenerators
-from pywikibot.page import WikibasePage, ItemPage, PropertyPage
+from pywikibot.page import WikibasePage, ItemPage, Property, PropertyPage
 from pywikibot.site import Namespace, NamespacesDict
 from pywikibot.tools import MediaWikiVersion
 
@@ -718,6 +718,18 @@
 self.assertEqual(item.getRedirectTarget(), target)
 
 
+class TestProperty(WikidataTestCase):
+
+"""Test Property."""
+
+def test_labels(self):
+"""Test retrieving Property labels."""
+wikidata = self.get_repo()
+property = Property(wikidata, 'P625')
+expected = {'language': 'en', 'value': 'coordinate location'}
+self.assertDictEqual(property.labels['en'], expected)
+
+
 class TestPropertyPage(WikidataTestCase):
 
 """Test PropertyPage."""

-- 
To view, visit https://gerrit.wikimedia.org/r/332384
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I139ef7e263343e965a9de12acc8c531b774ce63c
Gerrit-PatchSet: 7
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Phantom42 
Gerrit-Reviewer: John Vandenberg 
Gerrit-Reviewer: Matěj Suchánek 
Gerrit-Reviewer: Phantom42 
Gerrit-Reviewer: Sn1per 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] pywikibot/core[master]: Make Wikibase Property provide labels data

2017-01-16 Thread Phantom42 (Code Review)
Phantom42 has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/332384 )

Change subject: Make Wikibase Property provide labels data
..

Make Wikibase Property provide labels data

Change-Id: I139ef7e263343e965a9de12acc8c531b774ce63c
---
M pywikibot/page.py
M pywikibot/site.py
2 files changed, 37 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core 
refs/changes/84/332384/1

diff --git a/pywikibot/page.py b/pywikibot/page.py
index 586e907..cb9947a 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -12,7 +12,7 @@
 
 """
 #
-# (C) Pywikibot team, 2008-2016
+# (C) Pywikibot team, 2008-2017
 #
 # Distributed under the terms of the MIT license.
 #
@@ -4275,6 +4275,17 @@
 self._type = self.repo.getPropertyType(self)
 return self._type
 
+@property
+def labels(self):
+"""
+Return labels of this property.
+
+@rtype dict
+"""
+if not hasattr(self, '_labels'):
+self._labels = self.repo.get_property_labels(self)
+return self._labels
+
 @deprecated("Property.type")
 def getType(self):
 """
diff --git a/pywikibot/site.py b/pywikibot/site.py
index f2724d9..d03cd37 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -6,7 +6,7 @@
 groups of wikis on the same topic in different languages.
 """
 #
-# (C) Pywikibot team, 2008-2016
+# (C) Pywikibot team, 2008-2017
 #
 # Distributed under the terms of the MIT license.
 #
@@ -7246,6 +7246,30 @@
 
 return dtype
 
+def get_property_labels(self, prop):
+"""
+Obtain labels of a property.
+
+Results are cached for 1 day
+"""
+params = dict(
+action='wbgetentities',
+ids=prop.getID(),
+props='labels',
+)
+expiry = datetime.timedelta(days=1)
+req = self._request(expiry=expiry, parameters=params)
+data = req.submit()
+
+# the IDs returned from the API can be upper or lowercase, depending
+# on the version. See bug T55894 for more information.
+try:
+dtype = data['entities'][prop.getID()]['labels']
+except KeyError:
+dtype = data['entities'][prop.getID().lower()]['labels']
+
+return dtype
+
 @must_be(group='user')
 def editEntity(self, identification, data, bot=True, **kwargs):
 """

-- 
To view, visit https://gerrit.wikimedia.org/r/332384
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I139ef7e263343e965a9de12acc8c531b774ce63c
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Phantom42 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits