>     norm=lambda m: m+(m and(m[-1]!= '\n'and'\n'or'  ')or'\n')
Parentheses                       1          2                                  
      1         0                       
quotes                                                             1  0     1   
0   1 0    1  0  

OK I don't see any violation of quoting or parentheses matching.   Still trying 
to figure out what this lambda does.

--- Joseph S.
 
-----Original Message-----
From: Robin Becker <ro...@reportlab.com> 
Sent: Wednesday, April 29, 2020 10:52 AM
To: Łukasz Langa <luk...@langa.pl>; python-list@python.org; 
python-annou...@python.org
Subject: Re: [RELEASE] Python 3.9.0a6 is now available for testing

On 28/04/2020 16:52, Łukasz Langa wrote:
> On behalf of the entire Python development community, and the currently 
> serving Python release team in particular, I’m pleased to announce the 
> release of Python 3.9.0a6. Get it here:
> 
....
thanks for the release; I tried to reply in the dev list, but failed miserably. 
Sorry for any noise.

I see this simple difference which broke some ancient code which works in 
Python 3.8.2



> $ python
> Python 3.8.2 (default, Apr  8 2020, 14:31:25) [GCC 9.3.0] on linux 
> Type "help", "copyright", "credits" or "license" for more information.
>>>> norm=lambda m: m+(m and(m[-1]!='\n'and'\n'or'')or'\n')
>>>> 
> robin@minikat:~/devel/reportlab/REPOS/reportlab/tests
> $ python39
> Python 3.9.0a6 (default, Apr 29 2020, 07:46:29) [GCC 9.3.0] on linux 
> Type "help", "copyright", "credits" or "license" for more information.
>>>> norm=lambda m: m+(m and(m[-1]!='\n'and'\n'or'')or'\n')
>   File "<stdin>", line 1
>     norm=lambda m: m+(m and(m[-1]!='\n'and'\n'or'')or'\n')
>                                          ^
> SyntaxError: invalid string prefix
>>>> 
> robin@minikat:~/devel/reportlab/REPOS/reportlab/tests
> $ python39 -X oldparser
> Python 3.9.0a6 (default, Apr 29 2020, 07:46:29) [GCC 9.3.0] on linux 
> Type "help", "copyright", "credits" or "license" for more information.
>>>> norm=lambda m: m+(m and(m[-1]!='\n'and'\n'or'')or'\n')
>   File "<stdin>", line 1
>     norm=lambda m: m+(m and(m[-1]!='\n'and'\n'or'')or'\n')
>                                        ^
> SyntaxError: invalid string prefix
>>>> 


so presumably there has been some parser / language change which renders 
and'\n' illegal. Is this a real syntax error or an alpha issue? It looks like 
the tokenization has changed. Putting in the obvious spaces removes the syntax 
error.
--
Robin Becker

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to