jenkins-bot has submitted this change and it was merged.
Change subject: initialize Property directly with datatype
......................................................................
initialize Property directly with datatype
the datatype is requested to the API only if the serialized snak
doesn't contain one, to speed things up.
since Claim.fromJSON() tries to detect the datatype from the snak,
snaks that reference deleted properties can be serialized correctly
bug: 54235
Change-Id: I9a36503d165f66fbb6f47985db9798dc1bb9a9a7
---
M pywikibot/page.py
1 file changed, 14 insertions(+), 5 deletions(-)
Approvals:
John Vandenberg: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/page.py b/pywikibot/page.py
index c45d5b4..eb6de8c 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -3021,10 +3021,18 @@
'quantity': pywikibot.WbQuantity,
}
- def __init__(self, site, id=None):
- """Constructor."""
+ def __init__(self, site, id=None, datatype=None):
+ """
+ Constructor.
+
+ @param datatype: datatype of the property;
+ if not given, it will be queried via the API
+ @type datatype: basestring
+ """
self.repo = site
self.id = id.upper()
+ if datatype:
+ self._type = datatype
@property
def type(self):
@@ -3132,7 +3140,7 @@
"""
def __init__(self, site, pid, snak=None, hash=None, isReference=False,
- isQualifier=False):
+ isQualifier=False, **kwargs):
"""
Constructor.
@@ -3146,7 +3154,7 @@
@param isReference: whether specified claim is a reference
@param isQualifier: whether specified claim is a qualifier
"""
- Property.__init__(self, site, pid)
+ Property.__init__(self, site, pid, **kwargs)
self.snak = snak
self.hash = hash
self.isReference = isReference
@@ -3170,7 +3178,8 @@
@return: Claim
"""
- claim = Claim(site, data['mainsnak']['property'])
+ claim = Claim(site, data['mainsnak']['property'],
+ datatype=data['mainsnak'].get('datatype', None))
if 'id' in data:
claim.snak = data['id']
elif 'hash' in data:
--
To view, visit
https://gerrit.wikimedia.org/r/137737
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I9a36503d165f66fbb6f47985db9798dc1bb9a9a7
Gerrit-PatchSet: 6
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Ricordisamoa <ricordisamoa(a)openmailbox.org>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Legoktm <legoktm.wikipedia(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Multichill <maarten(a)mdammers.nl>
Gerrit-Reviewer: Ricordisamoa <ricordisamoa(a)openmailbox.org>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>