On Thu, Jan 29, 2015 at 1:59 PM, Mark Lawrence <breamore...@yahoo.co.uk> wrote:
> On 29/01/2015 21:32, alb wrote:
>>
>> Hi MRAB,
>>
>> MRAB <pyt...@mrabarnett.plus.com> wrote:
>> []
>>>>>
>>>>> SyntaxError: invalid syntax
>>>>> debian@debian:example$ python3 export_latex.py doctree.csv
>>>>>    File "export_latex.py", line 36
>>>>>      yield from child.show2()
>>>>>               ^
>>>>> SyntaxError: invalid syntax
>>>>
>>>>
>>>> and I've tried with both python and python3 (see below versions).
>>>>
>>>> debian@debian:example$ python
>>>> Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
>>>> [GCC 4.4.5] on linux2
>>>> Type "help", "copyright", "credits" or "license" for more information.
>>>>>>>
>>>>>>>
>>>> debian@debian:example$ python3
>>>> Python 3.1.3 (r313:86834, Nov 28 2010, 11:28:10)
>>>> [GCC 4.4.5] on linux2
>>>> Type "help", "copyright", "credits" or "license" for more information.
>>>>>>>
>>>>>>>
>>>>
>>>> Is it an issue related to my installation? Shall I upgrade and/or
>>>> downgrade?
>>>>
>>> "yield from" was introduced in Python 3.3.
>>>
>>
>> Ok, that either means I need to upgrade to 3.3 or need to modify the
>> snippet to a suitable syntax that would work with other versions.
>>
>> Considering that upgrading is something that I'm not keen to do on my
>> production system I believe I've only have one available choice.
>>
>> It seems I could use the generator and iterate with .next() in python
>> 2.6, at least from what I found here:
>>
>> http://stackoverflow.com/questions/1756096/understanding-generators-in-python
>>
>> Al
>>
>
> I'd be inclined to upgrade, see here
> https://www.python.org/dev/peps/pep-0380/#formal-semantics for why :)

While that is true, most of that code is needed to handle the odd
corner cases and exceptions that could happen, as well as supporting
generator.throw and generator.send, while also ensuring proper and
quick clean-up of the objects.

>From what I could see at a quick glance, none of that is really needed
in the simple case in the posted code, and as such, it is LIKELY safe
to just replace "yield from ..." with "for item in ...: yield item".

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

Reply via email to