[Buildroot] [PATCH 1/2] python-flask: bump to version 0.12

Yegor Yefremov yegorslists at googlemail.com
Wed Jan 25 10:24:44 UTC 2017


On Wed, Jan 25, 2017 at 11:22 AM, Lionel Flandrin <lionel at svkt.org> wrote:
> On Wed, Jan 25, 2017 at 11:11:43AM +0100, Yegor Yefremov wrote:
>> On Wed, Jan 25, 2017 at 10:58 AM, Lionel Flandrin <lflandrin at ereca.fr> wrote:
>> > On Wed, Jan 25, 2017 at 10:46:03AM +0100, Yegor Yefremov wrote:
>> >> On Wed, Jan 25, 2017 at 10:18 AM, Lionel Flandrin <lionel at svkt.org> wrote:
>> >> > On Wed, Jan 25, 2017 at 10:09:42AM +0100, Yegor Yefremov wrote:
>> >> >> On Wed, Jan 25, 2017 at 10:01 AM, Lionel Flandrin <lionel at svkt.org> wrote:
>> >> >> > Signed-off-by: Lionel Flandrin <lionel at svkt.org>
>> >> >>
>> >> >> Reviewed-by: Yegor Yefremov <yegorslists at googlemail.com>
>> >> >>
>> >> >> Care to update jinja as well https://github.com/pallets/jinja/releases
>> >> >>
>> >> >> Yegor
>> >> >
>> >> > I tried to do so but I got a nasty error:
>> >> >
>> >> >   Traceback (most recent call last):
>> >> >     File "/home/lionel/src/ambix/buildroot/output/host/usr/lib/python3.5/py_compile.py", line 125, in compile
>> >> >       _optimize=optimize)
>> >> >     File "<frozen importlib._bootstrap_external>", line 700, in source_to_code
>> >> >     File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
>> >> >     File "/home/lionel/src/ambix/buildroot/output/target/usr/lib/python3.5/site-packages/jinja2/asyncfilters.py", line 24
>> >> >   SyntaxError: 'yield' inside async function
>> >> >
>> >> > I asked on IRC and I've been told that:
>> >> >
>> >> > < mitsuhiko> simias: this is not a problem with jinja
>> >> > < mitsuhiko> it's a limitation in whatever build tool you use
>> >> > < mitsuhiko> pip deals with that
>> >> > < mitsuhiko> you can ignore it. it's a warning basically
>> >> >
>> >> > So I'll have to dig a bit deeper to understand what's going wrong here.
>> >>
>> >> It seems like this will be working for Python 3.6 only [1]. And I
>> >> doubt it will be working in Python 2 at all.
>> >>
>> >> So let's wait for an official release and take a look at this then.
>> >>
>> >> [1] http://stackoverflow.com/questions/37549846/how-to-use-yield-inside-async-function
>> >
>> > It's my understanding that jinja2 should work with Python 2 and 3
>> > though. I just did a quick test with pip in a python 2 environment:
>> >
>> > (test-venv) $ pip --version
>> >   pip 9.0.1 from /tmp/test-venv/local/lib/python2.7/site-packages (python 2.7)
>> >
>> > (test-venv) {lionel at ed}% pip install jinja2
>> >   Collecting jinja2
>> >     Using cached Jinja2-2.9.4-py2.py3-none-any.whl
>> >   Collecting MarkupSafe>=0.23 (from jinja2)
>> >     Using cached MarkupSafe-0.23.tar.gz
>> >   Building wheels for collected packages: MarkupSafe
>> >     Running setup.py bdist_wheel for MarkupSafe ... done
>> >     Stored in directory: /home/lionel/.cache/pip/wheels/a3/fa/dc/0198eed9ad95489b8a4f45d14dd5d2aee3f8984e46862c5748
>> >   Successfully built MarkupSafe
>> >   Installing collected packages: MarkupSafe, jinja2
>> >   Successfully installed MarkupSafe-0.23 jinja2-2.9.4
>> >
>> > (test-venv) $ python
>> >   Python 2.7.13 (default, Dec 18 2016, 20:19:42)
>> >   [GCC 6.2.1 20161215] on linux2
>> >   Type "help", "copyright", "credits" or "license" for more information.
>> >   >>> import pkg_resources
>> >   >>> pkg_resources.get_distribution("jinja2")
>> >   Jinja2 2.9.4 (/tmp/test-venv/lib/python2.7/site-packages)
>> >   >>> import jinja2
>> >   >>> jinja2.Environment()
>> >   <jinja2.environment.Environment object at 0x7f2ba06d3590>
>> >
>> > I'm a newbie in python though, sorry if I'm missing something obvious.
>>
>> Python in BR is "very" different from your pip environment . In BR, if
>> you tell BR to compile *.py files, it will compile them all and also
>> break, if an error occurs. During this compilation all syntax error
>> will trigger compilation abort. But in normal case, where you make
>> this manually such errors will be just warnings.
>>
>> So as long as you don't invoke these async filters, you most likely
>> won't trigger this syntax error.
>
> I see. Do you think it would be worth adding a BR patch to disable
> this portion of the code? When python 3.6 is integrated we could make
> it optional. We'll need something like that if we want to keep python2
> compat anyway.

This is something, we must talk about with jinja devs first. As I said
it is more broken for Python 2, i.e. first occurrence of async leads
to syntax error:

PYTHONPATH="/home/user/Documents/versioned/buildroot/bsp/target/usr/lib/python2.7/sysconfigdata/:/home/user/Documents/versioned/buildroot/bsp/target/usr/lib/python2.7/site-packages/"
/home/user/Documents/versioned/buildroot/bsp/host/usr/bin/python2.7
support/scripts/pycompile.py
/home/user/Documents/versioned/buildroot/bsp/target/usr/lib/python2.7
Cannot compile /home/user/Documents/versioned/buildroot/bsp/target/usr/lib/python2.7/site-packages/jinja2/asyncfilters.py
Traceback (most recent call last):
  File "support/scripts/pycompile.py", line 24, in <module>
    compileall.compile_dir(sys.argv[1], quiet=report_problem)
  File "/home/user/Documents/versioned/buildroot/bsp/host/usr/lib/python2.7/compileall.py",
line 57, in compile_dir
    quiet):
  File "/home/user/Documents/versioned/buildroot/bsp/host/usr/lib/python2.7/compileall.py",
line 57, in compile_dir
    quiet):
  File "/home/user/Documents/versioned/buildroot/bsp/host/usr/lib/python2.7/compileall.py",
line 50, in compile_dir
    if not compile_file(fullname, ddir, force, rx, quiet):
  File "/home/user/Documents/versioned/buildroot/bsp/host/usr/lib/python2.7/compileall.py",
line 101, in compile_file
    if quiet:
  File "support/scripts/pycompile.py", line 19, in __nonzero__
    raise value
py_compile.PyCompileError:   File
"/home/user/Documents/versioned/buildroot/bsp/target/usr/lib/python2.7/site-packages/jinja2/asyncfilters.py",
line 7
    async def auto_to_seq(value):
            ^
SyntaxError: invalid syntax

Makefile:651: recipe for target 'target-finalize' failed
make[1]: *** [target-finalize] Error 1
Makefile:79: recipe for target '_all' failed
make: *** [_all] Error 2



More information about the buildroot mailing list