From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Flandrin Date: Wed, 25 Jan 2017 13:16:59 +0100 Subject: [Buildroot] [PATCH 1/2] python-flask: bump to version 0.12 In-Reply-To: References: <20170125090150.2548-1-lionel@svkt.org> <20170125091854.2kwm43d3ncxbfdhp@ed> <20170125095858.x6lh5xjwby5lav3m@ed> <20170125102228.ykcq4xsa5xnp7yar@ed> Message-ID: <20170125121659.5eaex6iynmrbrxb4@ed> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net On Wed, Jan 25, 2017 at 11:24:44AM +0100, Yegor Yefremov wrote: > On Wed, Jan 25, 2017 at 11:22 AM, Lionel Flandrin 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 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 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 wrote: > >> >> >> > Signed-off-by: Lionel Flandrin > >> >> >> > >> >> >> Reviewed-by: Yegor Yefremov > >> >> >> > >> >> >> 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 "", line 700, in source_to_code > >> >> > File "", 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() > >> > > >> > > >> > 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 > 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 Understood. Thank you for your explanations (and your work on BR in general). What do you think I should do with that then? In your previous email you mention "let's wait for an official release and take a look at this then". Which release are you talking about exactly since the currently released jinja version (2.9.4) already exhibits the issue? They have a mailing list but I'm not sure I understand the root of the issue and how to fix it well enough to make a good case for it there, especially since the answer I got on IRC was basically "not a problem on our side". -- Lionel Flandrin -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: