diff mbox

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

Message ID 20170125090150.2548-1-lionel@svkt.org
State Accepted
Headers show

Commit Message

Lionel Flandrin Jan. 25, 2017, 9:01 a.m. UTC
Signed-off-by: Lionel Flandrin <lionel@svkt.org>
---
 package/python-flask/python-flask.hash | 4 ++--
 package/python-flask/python-flask.mk   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

Comments

Yegor Yefremov Jan. 25, 2017, 9:09 a.m. UTC | #1
On Wed, Jan 25, 2017 at 10:01 AM, Lionel Flandrin <lionel@svkt.org> wrote:
> Signed-off-by: Lionel Flandrin <lionel@svkt.org>

Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com>

Care to update jinja as well https://github.com/pallets/jinja/releases

Yegor

> ---
>  package/python-flask/python-flask.hash | 4 ++--
>  package/python-flask/python-flask.mk   | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/package/python-flask/python-flask.hash b/package/python-flask/python-flask.hash
> index 01ccc6e29..919b07598 100644
> --- a/package/python-flask/python-flask.hash
> +++ b/package/python-flask/python-flask.hash
> @@ -1,3 +1,3 @@
>  # md5 from https://pypi.python.org/pypi/flask/json, sha256 locally computed
> -md5    d2af95d8fe79cf7da099f062dd122a08  Flask-0.11.1.tar.gz
> -sha256 b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e  Flask-0.11.1.tar.gz
> +md5    c1d30f51cff4a38f9454b23328a15c5a  Flask-0.12.tar.gz
> +sha256 93e803cdbe326a61ebd5c5d353959397c85f829bec610d59cb635c9f97d7ca8b  Flask-0.12.tar.gz
> diff --git a/package/python-flask/python-flask.mk b/package/python-flask/python-flask.mk
> index 204eba0af..6c25a6d14 100644
> --- a/package/python-flask/python-flask.mk
> +++ b/package/python-flask/python-flask.mk
> @@ -4,9 +4,9 @@
>  #
>  ################################################################################
>
> -PYTHON_FLASK_VERSION = 0.11.1
> +PYTHON_FLASK_VERSION = 0.12
>  PYTHON_FLASK_SOURCE = Flask-$(PYTHON_FLASK_VERSION).tar.gz
> -PYTHON_FLASK_SITE = https://pypi.python.org/packages/55/8a/78e165d30f0c8bb5d57c429a30ee5749825ed461ad6c959688872643ffb3
> +PYTHON_FLASK_SITE = https://pypi.python.org/packages/4b/3a/4c20183df155dd2e39168e35d53a388efb384a512ca6c73001d8292c094a
>  PYTHON_FLASK_SETUP_TYPE = setuptools
>  PYTHON_FLASK_LICENSE = BSD-3c
>  PYTHON_FLASK_LICENSE_FILES = LICENSE
> --
> 2.11.0
>
Lionel Flandrin Jan. 25, 2017, 9:18 a.m. UTC | #2
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@svkt.org> wrote:
> > Signed-off-by: Lionel Flandrin <lionel@svkt.org>
>
> Reviewed-by: Yegor Yefremov <yegorslists@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.

> > ---
> >  package/python-flask/python-flask.hash | 4 ++--
> >  package/python-flask/python-flask.mk   | 4 ++--
> >  2 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/package/python-flask/python-flask.hash b/package/python-flask/python-flask.hash
> > index 01ccc6e29..919b07598 100644
> > --- a/package/python-flask/python-flask.hash
> > +++ b/package/python-flask/python-flask.hash
> > @@ -1,3 +1,3 @@
> >  # md5 from https://pypi.python.org/pypi/flask/json, sha256 locally computed
> > -md5    d2af95d8fe79cf7da099f062dd122a08  Flask-0.11.1.tar.gz
> > -sha256 b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e  Flask-0.11.1.tar.gz
> > +md5    c1d30f51cff4a38f9454b23328a15c5a  Flask-0.12.tar.gz
> > +sha256 93e803cdbe326a61ebd5c5d353959397c85f829bec610d59cb635c9f97d7ca8b  Flask-0.12.tar.gz
> > diff --git a/package/python-flask/python-flask.mk b/package/python-flask/python-flask.mk
> > index 204eba0af..6c25a6d14 100644
> > --- a/package/python-flask/python-flask.mk
> > +++ b/package/python-flask/python-flask.mk
> > @@ -4,9 +4,9 @@
> >  #
> >  ################################################################################
> >
> > -PYTHON_FLASK_VERSION = 0.11.1
> > +PYTHON_FLASK_VERSION = 0.12
> >  PYTHON_FLASK_SOURCE = Flask-$(PYTHON_FLASK_VERSION).tar.gz
> > -PYTHON_FLASK_SITE = https://pypi.python.org/packages/55/8a/78e165d30f0c8bb5d57c429a30ee5749825ed461ad6c959688872643ffb3
> > +PYTHON_FLASK_SITE = https://pypi.python.org/packages/4b/3a/4c20183df155dd2e39168e35d53a388efb384a512ca6c73001d8292c094a
> >  PYTHON_FLASK_SETUP_TYPE = setuptools
> >  PYTHON_FLASK_LICENSE = BSD-3c
> >  PYTHON_FLASK_LICENSE_FILES = LICENSE
> > --
> > 2.11.0
> >

--
Lionel Flandrin
Yegor Yefremov Jan. 25, 2017, 9:46 a.m. UTC | #3
On Wed, Jan 25, 2017 at 10:18 AM, Lionel Flandrin <lionel@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@svkt.org> wrote:
>> > Signed-off-by: Lionel Flandrin <lionel@svkt.org>
>>
>> Reviewed-by: Yegor Yefremov <yegorslists@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

Yegor
Yegor Yefremov Jan. 25, 2017, 10:11 a.m. UTC | #4
On Wed, Jan 25, 2017 at 10:58 AM, Lionel Flandrin <lflandrin@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@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@svkt.org> wrote:
>> >> > Signed-off-by: Lionel Flandrin <lionel@svkt.org>
>> >>
>> >> Reviewed-by: Yegor Yefremov <yegorslists@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@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.
Lionel Flandrin Jan. 25, 2017, 10:22 a.m. UTC | #5
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@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@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@svkt.org> wrote:
> >> >> > Signed-off-by: Lionel Flandrin <lionel@svkt.org>
> >> >>
> >> >> Reviewed-by: Yegor Yefremov <yegorslists@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@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.
Yegor Yefremov Jan. 25, 2017, 10:24 a.m. UTC | #6
On Wed, Jan 25, 2017 at 11:22 AM, Lionel Flandrin <lionel@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@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@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@svkt.org> wrote:
>> >> >> > Signed-off-by: Lionel Flandrin <lionel@svkt.org>
>> >> >>
>> >> >> Reviewed-by: Yegor Yefremov <yegorslists@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@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
Lionel Flandrin Jan. 25, 2017, 12:16 p.m. UTC | #7
On Wed, Jan 25, 2017 at 11:24:44AM +0100, Yegor Yefremov wrote:
> On Wed, Jan 25, 2017 at 11:22 AM, Lionel Flandrin <lionel@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@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@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@svkt.org> wrote:
> >> >> >> > Signed-off-by: Lionel Flandrin <lionel@svkt.org>
> >> >> >>
> >> >> >> Reviewed-by: Yegor Yefremov <yegorslists@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@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

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".
Yegor Yefremov Jan. 25, 2017, 12:52 p.m. UTC | #8
On Wed, Jan 25, 2017 at 1:16 PM, Lionel Flandrin <lionel@svkt.org> wrote:
> On Wed, Jan 25, 2017 at 11:24:44AM +0100, Yegor Yefremov wrote:
>> On Wed, Jan 25, 2017 at 11:22 AM, Lionel Flandrin <lionel@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@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@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@svkt.org> wrote:
>> >> >> >> > Signed-off-by: Lionel Flandrin <lionel@svkt.org>
>> >> >> >>
>> >> >> >> Reviewed-by: Yegor Yefremov <yegorslists@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@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
>
> 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".

I'll open an issue on their github and post the link here. Then we
will see what happens and make brainstorming.

Yegor
Lionel Flandrin Jan. 25, 2017, 1:02 p.m. UTC | #9
On Wed, Jan 25, 2017 at 01:52:38PM +0100, Yegor Yefremov wrote:
> On Wed, Jan 25, 2017 at 1:16 PM, Lionel Flandrin <lionel@svkt.org> wrote:
> > On Wed, Jan 25, 2017 at 11:24:44AM +0100, Yegor Yefremov wrote:
> >> On Wed, Jan 25, 2017 at 11:22 AM, Lionel Flandrin <lionel@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@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@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@svkt.org> wrote:
> >> >> >> >> > Signed-off-by: Lionel Flandrin <lionel@svkt.org>
> >> >> >> >>
> >> >> >> >> Reviewed-by: Yegor Yefremov <yegorslists@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@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
> >
> > 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".
> 
> I'll open an issue on their github and post the link here. Then we
> will see what happens and make brainstorming.

Great! Thank you for taking the lead on that.
Yegor Yefremov Jan. 25, 2017, 2:19 p.m. UTC | #10
On Wed, Jan 25, 2017 at 2:02 PM, Lionel Flandrin <lionel@svkt.org> wrote:
> On Wed, Jan 25, 2017 at 01:52:38PM +0100, Yegor Yefremov wrote:
>> On Wed, Jan 25, 2017 at 1:16 PM, Lionel Flandrin <lionel@svkt.org> wrote:
>> > On Wed, Jan 25, 2017 at 11:24:44AM +0100, Yegor Yefremov wrote:
>> >> On Wed, Jan 25, 2017 at 11:22 AM, Lionel Flandrin <lionel@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@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@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@svkt.org> wrote:
>> >> >> >> >> > Signed-off-by: Lionel Flandrin <lionel@svkt.org>
>> >> >> >> >>
>> >> >> >> >> Reviewed-by: Yegor Yefremov <yegorslists@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@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
>> >
>> > 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".
>>
>> I'll open an issue on their github and post the link here. Then we
>> will see what happens and make brainstorming.
>
> Great! Thank you for taking the lead on that.

I don't think this will be fixed upstream [1]. So I just made the same
fix we've made for python-serial. Please test my patch.

[1] https://github.com/pallets/jinja/issues/662

Yegor
Lionel Flandrin Jan. 25, 2017, 2:50 p.m. UTC | #11
On Wed, Jan 25, 2017 at 03:19:25PM +0100, Yegor Yefremov wrote:
[snip]
> I don't think this will be fixed upstream [1]. So I just made the same
> fix we've made for python-serial. Please test my patch.
> 
> [1] https://github.com/pallets/jinja/issues/662
> 

I'll test your patch ASAP but regarding mitsuhiko's comment in the
github issue:

  @thmo these files are not imported so that is not an
  issue. Bytecompilation is supposed to skip over files it cannot byte
  compile as a result of this. pip does this correctly.

Doesn't this mean that it'd be better to patch buildroot's bytecompile
code to gracefully handle this situation by mimicking pip's behaviour
in this situation?
Thomas Petazzoni Jan. 25, 2017, 11:59 p.m. UTC | #12
Hello,

On Wed, 25 Jan 2017 15:50:21 +0100, Lionel Flandrin wrote:

> I'll test your patch ASAP but regarding mitsuhiko's comment in the
> github issue:
> 
>   @thmo these files are not imported so that is not an
>   issue. Bytecompilation is supposed to skip over files it cannot byte
>   compile as a result of this. pip does this correctly.
> 
> Doesn't this mean that it'd be better to patch buildroot's bytecompile
> code to gracefully handle this situation by mimicking pip's behaviour
> in this situation?

I think it was on purpose that our byte compilation process actually
aborts when there is a failure. Otherwise real issues remain unnoticed.
I believe this pip behavior is actually pretty terrible.

Thomas
Lionel Flandrin Jan. 26, 2017, 12:18 p.m. UTC | #13
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@svkt.org> wrote:
> > Signed-off-by: Lionel Flandrin <lionel@svkt.org>
> 
> Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com>
> 
> Care to update jinja as well https://github.com/pallets/jinja/releases

Politely bumping this patch now that Jinja has been updated.

> Yegor
> 
> > ---
> >  package/python-flask/python-flask.hash | 4 ++--
> >  package/python-flask/python-flask.mk   | 4 ++--
> >  2 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/package/python-flask/python-flask.hash b/package/python-flask/python-flask.hash
> > index 01ccc6e29..919b07598 100644
> > --- a/package/python-flask/python-flask.hash
> > +++ b/package/python-flask/python-flask.hash
> > @@ -1,3 +1,3 @@
> >  # md5 from https://pypi.python.org/pypi/flask/json, sha256 locally computed
> > -md5    d2af95d8fe79cf7da099f062dd122a08  Flask-0.11.1.tar.gz
> > -sha256 b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e  Flask-0.11.1.tar.gz
> > +md5    c1d30f51cff4a38f9454b23328a15c5a  Flask-0.12.tar.gz
> > +sha256 93e803cdbe326a61ebd5c5d353959397c85f829bec610d59cb635c9f97d7ca8b  Flask-0.12.tar.gz
> > diff --git a/package/python-flask/python-flask.mk b/package/python-flask/python-flask.mk
> > index 204eba0af..6c25a6d14 100644
> > --- a/package/python-flask/python-flask.mk
> > +++ b/package/python-flask/python-flask.mk
> > @@ -4,9 +4,9 @@
> >  #
> >  ################################################################################
> >
> > -PYTHON_FLASK_VERSION = 0.11.1
> > +PYTHON_FLASK_VERSION = 0.12
> >  PYTHON_FLASK_SOURCE = Flask-$(PYTHON_FLASK_VERSION).tar.gz
> > -PYTHON_FLASK_SITE = https://pypi.python.org/packages/55/8a/78e165d30f0c8bb5d57c429a30ee5749825ed461ad6c959688872643ffb3
> > +PYTHON_FLASK_SITE = https://pypi.python.org/packages/4b/3a/4c20183df155dd2e39168e35d53a388efb384a512ca6c73001d8292c094a
> >  PYTHON_FLASK_SETUP_TYPE = setuptools
> >  PYTHON_FLASK_LICENSE = BSD-3c
> >  PYTHON_FLASK_LICENSE_FILES = LICENSE
> > --
> > 2.11.0
> >
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Thomas Petazzoni Jan. 27, 2017, 8:01 a.m. UTC | #14
Hello,

On Wed, 25 Jan 2017 10:01:49 +0100, Lionel Flandrin wrote:
> Signed-off-by: Lionel Flandrin <lionel@svkt.org>
> ---
>  package/python-flask/python-flask.hash | 4 ++--
>  package/python-flask/python-flask.mk   | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)

Applied to master, thanks.

Thomas
diff mbox

Patch

diff --git a/package/python-flask/python-flask.hash b/package/python-flask/python-flask.hash
index 01ccc6e29..919b07598 100644
--- a/package/python-flask/python-flask.hash
+++ b/package/python-flask/python-flask.hash
@@ -1,3 +1,3 @@ 
 # md5 from https://pypi.python.org/pypi/flask/json, sha256 locally computed
-md5	d2af95d8fe79cf7da099f062dd122a08  Flask-0.11.1.tar.gz
-sha256	b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e  Flask-0.11.1.tar.gz
+md5	c1d30f51cff4a38f9454b23328a15c5a  Flask-0.12.tar.gz
+sha256	93e803cdbe326a61ebd5c5d353959397c85f829bec610d59cb635c9f97d7ca8b  Flask-0.12.tar.gz
diff --git a/package/python-flask/python-flask.mk b/package/python-flask/python-flask.mk
index 204eba0af..6c25a6d14 100644
--- a/package/python-flask/python-flask.mk
+++ b/package/python-flask/python-flask.mk
@@ -4,9 +4,9 @@ 
 #
 ################################################################################
 
-PYTHON_FLASK_VERSION = 0.11.1
+PYTHON_FLASK_VERSION = 0.12
 PYTHON_FLASK_SOURCE = Flask-$(PYTHON_FLASK_VERSION).tar.gz
-PYTHON_FLASK_SITE = https://pypi.python.org/packages/55/8a/78e165d30f0c8bb5d57c429a30ee5749825ed461ad6c959688872643ffb3
+PYTHON_FLASK_SITE = https://pypi.python.org/packages/4b/3a/4c20183df155dd2e39168e35d53a388efb384a512ca6c73001d8292c094a
 PYTHON_FLASK_SETUP_TYPE = setuptools
 PYTHON_FLASK_LICENSE = BSD-3c
 PYTHON_FLASK_LICENSE_FILES = LICENSE