Hi Huji,

It does look like the difference in Python versions is the problem. The Python
3 docs <https://docs.python.org/3/reference/lexical_analysis.html> say:

Both string and bytes literals may optionally be prefixed with a letter 'r'
> or 'R'; such strings are called *raw strings* and treat backslashes as
> literal characters. As a result, in string literals, '\U' and '\u'
> escapes in raw strings are not treated specially. *Given that Python
> 2.x’s raw unicode literals behave differently than Python 3.x’s the 'ur'
> syntax is not supported.*
>

So the syntax you tried to use is indeed invalid. I don't really know what
the exact difference is between Python 2 and Python 3 raw Unicode literals,
but since in Python 3 literal strings are always taken as Unicode, you can
probably just use *r'...'* for your regular expression and settle on Python
3 for both local development and on Toolforge.

Hope this helps!

2018-08-19 21:57 GMT+01:00 Huji Lee <huji.h...@gmail.com>:

> Excellent question. On my own computer, I am using 2.7.12 but on labs it
> is 3.4.3
>
> Of note, when I changed my code such that all cases of *ur'...'* now read 
> *u'...'
> *the script worked in both environments. So it has to do with how
> escaping works in python, I guess. But I am not sure.
>
> On Sun, Aug 19, 2018 at 4:48 PM Alex Monk <kren...@gmail.com> wrote:
>
>> What are the versions of Python involved?
>>
>> On Sun, 19 Aug 2018 at 21:34, Huji Lee <huji.h...@gmail.com> wrote:
>>
>>> Hello,
>>>
>>> When I run this script[1] on my own machine it runs without any problem.
>>> When I run it on Labs, I get an invalid syntax error, pasted below. Can you
>>> please help me figure out why?
>>>
>>> Thanks!
>>>
>>> (venv)tools.huji@tools-bastion-03:~$ python core/pwb.py webcite
>>> -page:"SOME PAGE"
>>> Traceback (most recent call last):
>>>   File "core/pwb.py", line 253, in <module>
>>>     if not main():
>>>   File "core/pwb.py", line 246, in main
>>>     run_python_file(filename, [filename] + args, argvu, file_package)
>>>   File "core/pwb.py", line 114, in run_python_file
>>>     exec(compile(source, filename, "exec", dont_inherit=True),
>>>   File "core/scripts/userscripts/webcite.py", line 125
>>>     faCitationPattern = ur'\{\{\s*یادکرد(?:\{\{.*?\}\}|.)*?\}\}'
>>>
>>>   [1] https://github.com/PersianWikipedia/fawikibot/
>>> blob/master/webcite.py
>>> _______________________________________________
>>> Wikimedia Cloud Services mailing list
>>> Cloud@lists.wikimedia.org (formerly lab...@lists.wikimedia.org)
>>> https://lists.wikimedia.org/mailman/listinfo/cloud
>>
>> _______________________________________________
>> Wikimedia Cloud Services mailing list
>> Cloud@lists.wikimedia.org (formerly lab...@lists.wikimedia.org)
>> https://lists.wikimedia.org/mailman/listinfo/cloud
>
>
> _______________________________________________
> Wikimedia Cloud Services mailing list
> Cloud@lists.wikimedia.org (formerly lab...@lists.wikimedia.org)
> https://lists.wikimedia.org/mailman/listinfo/cloud
>



-- 
Guilherme P. Gonçalves
_______________________________________________
Wikimedia Cloud Services mailing list
Cloud@lists.wikimedia.org (formerly lab...@lists.wikimedia.org)
https://lists.wikimedia.org/mailman/listinfo/cloud

Reply via email to