jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/812560 )
Change subject: [IMPR] Show additional parser error messages with DataSite.parsevalue() ......................................................................
[IMPR] Show additional parser error messages with DataSite.parsevalue()
Change-Id: I3c5897d16670fad62bfdc6711cbb1be3b1ce217b --- M pywikibot/site/_datasite.py 1 file changed, 12 insertions(+), 5 deletions(-)
Approvals: Matěj Suchánek: Looks good to me, approved jenkins-bot: Verified
diff --git a/pywikibot/site/_datasite.py b/pywikibot/site/_datasite.py index 62b9307..3b16ac1 100644 --- a/pywikibot/site/_datasite.py +++ b/pywikibot/site/_datasite.py @@ -745,18 +745,25 @@ try: data = req.submit() except APIError as e: - if e.code == 'wikibase-parse-error-quantity': + if e.code.startswith('wikibase-parse-error'): + for err in e.other['results']: + if 'error' in err: + pywikibot.error('{error-info} for value {raw!r}, ' + '{expected-format!r} format expected' + .format_map(err)) raise ValueError(e) from None raise + if 'results' not in data: - raise ValueError('Parsing via wikibase wbparsevalue failed.') + raise RuntimeError("Unexpected missing 'results' in query data\n{}" + .format(data))
results = [] for result_hash in data['results']: if 'value' not in result_hash: - raise ValueError( - 'Parsing via wikibase wbparsevalue failed: {}' - .format(result_hash['error-info'])) + # There should be an APIError occurred already + raise RuntimeError("Unexpected missing 'value' in query data:" + '\n{}'.format(result_hash)) results.append(result_hash['value']) return results
pywikibot-commits@lists.wikimedia.org