Again me. 

The breaking change was made unintentionally in 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/498727/
but solved a lot of problems of mixed used with Python 2 and 3. Refer the 
comments on bottom of that patch for further information.

Sorry for this. I would be glad if I could help you.

xqt 


> Am 23.08.2020 um 10:07 schrieb [email protected]:
> 
> 
> I meant:
> 
> from __future__ import unicode_literals
> 
> xqt
> 
>>> Am 23.08.2020 um 10:05 schrieb [email protected]:
>>> 
>> 
>> Digging a bit more. I guess you are still using Python 2. There was a change 
>> made in 3.0.30190430 due to T219095 which expects unicode strings for 
>> categoryFormat but 'B' is a str in Python 2. Either you have to use the u 
>> prefix like u'B' or you have to add this line on top of your scripts:
>> 
>> from __future__ Import unicode_literals
>> 
>> By the way the last release supporting Python 2 is 3.0.20200703.
>> 
>> Best
>> xqt
>> 
>>>> Am 23.08.2020 um 08:38 schrieb [email protected]:
>>>> 
>>> Hi Jean-Frederic,
>>> 
>>> strings are allowed for the textlib.categoryFormat. But are you trying to 
>>> run pywikibot 4.0+ with Python 2? The related code line is
>>> xqt e4115af 2020-07-24 11:31:05 +0200       [diff] [blame]  1539            
>>> if isinstance(category, str)
>>> Obviously this check fails for your given 'B'.
>>> 
>>> Best
>>> xqt
>>> 
>>>>> Am 22.08.2020 um 14:32 schrieb Maarten Dammers <[email protected]>:
>>>>> 
>>>> 
>>>> Hi Jean-Frédéric,
>>>> 
>>>> I see new_categories = ["B"] in your code. I believe this should be a list 
>>>> of Category objects, not a list of strings.
>>>> 
>>>> Maarten
>>>> 
>>>> On 19-08-2020 21:48, Jean-Frédéric wrote:
>>>>> Hi,
>>>>> 
>>>>> In the heritage repo [1], I have pywikibot pinned to 3.0.20180823.
>>>>> 
>>>>> Upgrading to latest version leads to two of my unit tests to fail [2]
>>>>> (I’m not 100% sure, but I do believe the same errors popped up last time 
>>>>> I tried upgrading in August 2019.)
>>>>> 
>>>>> The unit tests are at [3], the method tested at [4], and the stack trace 
>>>>> at [5].
>>>>> 
>>>>> I have been digging a bit in the git history to understand what happened 
>>>>> between August 2018 and August 2019 / August 2020 in textlib but nothing 
>>>>> jumped.
>>>>> 
>>>>> Would anyone know what the change is caused by, and how I should update 
>>>>> my code?
>>>>> 
>>>>> Thanks!
>>>>> 
>>>>> [1] https://phabricator.wikimedia.org/diffusion/THER/
>>>>> [2] 
>>>>> https://integration.wikimedia.org/ci/job/labs-tools-heritage-tox-docker/509/console
>>>>> [3] 
>>>>> https://phabricator.wikimedia.org/diffusion/THER/browse/master/tests/test_categorization.py$87-103
>>>>> [4] 
>>>>> https://phabricator.wikimedia.org/diffusion/THER/browse/master/erfgoedbot/categorize_images.py$252-264
>>>>> [5] Stack trace:
>>>>> ```
>>>>>   File "/src/erfgoedbot/categorize_images.py", line 263, in 
>>>>> replace_default_cat_with_new_categories_in_image_text
>>>>>     page_text_without_base_category, new_categories, addOnly=True)
>>>>>   File "/src/.tox/py27/lib/python2.7/site-packages/pywikibot/textlib.py", 
>>>>> line 1459, in replaceCategoryLinks
>>>>>     new_cats = categoryFormat(new, insite=site)
>>>>>   File "/src/.tox/py27/lib/python2.7/site-packages/pywikibot/textlib.py", 
>>>>> line 1552, in categoryFormat
>>>>>     category = pywikibot.Category(category)
>>>>>   File 
>>>>> "/src/.tox/py27/lib/python2.7/site-packages/pywikibot/tools/__init__.py", 
>>>>> line 1819, in wrapper
>>>>>     return obj(*__args, **__kw)
>>>>>   File 
>>>>> "/src/.tox/py27/lib/python2.7/site-packages/pywikibot/page/__init__.py", 
>>>>> line 2879, in __init__
>>>>>     Page.__init__(self, source, title, ns=14)
>>>>>   File 
>>>>> "/src/.tox/py27/lib/python2.7/site-packages/pywikibot/tools/__init__.py", 
>>>>> line 1819, in wrapper
>>>>>     return obj(*__args, **__kw)
>>>>>   File 
>>>>> "/src/.tox/py27/lib/python2.7/site-packages/pywikibot/page/__init__.py", 
>>>>> line 2392, in __init__
>>>>>     super(Page, self).__init__(source, title, ns)
>>>>>   File 
>>>>> "/src/.tox/py27/lib/python2.7/site-packages/pywikibot/page/__init__.py", 
>>>>> line 221, in __init__
>>>>>     .format(type(source), source))
>>>>> Error: Invalid argument type '<type 'str'>' in Page initializer: B
>>>>> ```
>>>>> --
>>>>> Jean-Frédéric
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> pywikibot mailing list
>>>>> [email protected]
>>>>> https://lists.wikimedia.org/mailman/listinfo/pywikibot
>>>> _______________________________________________
>>>> pywikibot mailing list
>>>> [email protected]
>>>> https://lists.wikimedia.org/mailman/listinfo/pywikibot
_______________________________________________
pywikibot mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot

Reply via email to