Jinja: "invalid escape sequence" DeprecationWarnings with Python 3.6

Created on 8 Jan 2017  ·  4Comments  ·  Source: pallets/jinja

I get these while running my project's testsuite with all warnings turned on and Python 3.6:

.../jinja2/nodes.py:716: DeprecationWarning: invalid escape sequence \s
         """

.../jinja2/runtime.py:111: DeprecationWarning: invalid escape sequence \s
         """

.../jinja2/lexer.py:294: DeprecationWarning: invalid escape sequence \s
         """

.../jinja2/lexer.py:503: DeprecationWarning: invalid escape sequence \-
         (c('(?:\-%s\s*|%s)%s' % (

.../jinja2/lexer.py:511: DeprecationWarning: invalid escape sequence \-
         (c('\-%s\s*|%s' % (

.../jinja2/lexer.py:518: DeprecationWarning: invalid escape sequence \s
         (c('(.*?)((?:\s*%s\-|%s)\s*endraw\s*(?:\-%s\s*|%s%s))' % (

It looks like it's mostly \s in (non-raw) docstrings and \- in regexes. For some odd reason I can't reproduce this when running pylint's testsuite with pytest-warnings though, so I don't know if there's more.

Most helpful comment

I think those strings should be r'...' raw strings to avoid exactly such warnings

All 4 comments

I think those strings should be r'...' raw strings to avoid exactly such warnings

FWIW, I don't think any \ is needed for the - - outside [] the dash has no special meaning.

pip3 install jinja --user --upgrade solved it for me.

raw string conversion ftw! I came here looking for a solution to my linting problems :) thanks for the tip!

r"awk -F\my_string '{print $1}'"

not

"awk -F\my_string '{print $1}'"
Was this page helpful?
0 / 5 - 0 ratings