Skip to content
This repository has been archived by the owner on May 31, 2019. It is now read-only.

Initial Update #70

Closed
wants to merge 21 commits into from
Closed

Initial Update #70

wants to merge 21 commits into from

Conversation

pyup-bot
Copy link
Contributor

This is my first visit to this fine repo so I have bundled all updates in a single pull request to make things easier for you to merge.

Close this pull request and delete the branch if you want me to start with single pull requests right away

Here's the executive summary:

Updates

Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.

wsgicli 0.4.0 » 0.4.0 PyPI | Repo
jinja2 2.9.5 » 2.9.5 PyPI | Changelog | Homepage
jinja2 2.9.5 » 2.9.5 PyPI | Changelog | Homepage
twine 1.8.1 » 1.8.1 PyPI | Repo
wheel 0.29.0 » 0.29.0 PyPI | Changelog | Repo
ipython 5.3.0 » 5.3.0 PyPI | Homepage
ipdb 0.10.2 » 0.10.2 PyPI | Changelog | Repo
sphinx 1.5.3 » 1.5.3 PyPI | Changelog | Homepage
sphinx 1.5.3 » 1.5.3 PyPI | Changelog | Homepage
sphinx-intl 0.9.9 » 0.9.9 PyPI | Changelog | Repo
solar-theme 1.3.2 » 1.3.2 PyPI | Changelog | Repo
solar-theme 1.3.2 » 1.3.2 PyPI | Changelog | Repo
flake8 3.3.0 » 3.3.0 PyPI | Repo
mypy 0.501 » 0.501 PyPI | Homepage
pytest 3.0.7 » 3.0.7 PyPI | Changelog | Homepage
pytest 3.0.7 » 3.0.7 PyPI | Changelog | Homepage
tox 2.6.0 » 2.6.0 PyPI | Changelog | Docs
freezegun 0.3.8 » 0.3.8 PyPI | Changelog | Repo
freezegun 0.3.8 » 0.3.8 PyPI | Changelog | Repo
kobin 0.1.10 » 0.1.10 PyPI | Changelog | Repo
coveralls 1.1 » 1.1 PyPI | Changelog | Repo

Changelogs

jinja2 -> 2.9.5

2.9.5


(bugfix release, released on January 28th 2017)

  • Restored the original repr of the internal _GroupTuple because this
    caused issues with ansible and it was an unintended change. (654)
  • Added back support for custom contexts that override the old resolve
    method since it was hard for people to spot that this could cause a
    regression.
  • Correctly use the buffer for the else block of for loops. This caused
    invalid syntax errors to be caused on 2.x and completely wrong behavior
    on Python 3 (669)
  • Resolve an issue where the {% extends %} tag could not be used with
    async environments. (668)
  • Reduce memory footprint slightly by reducing our unicode database dump
    we use for identifier matching on Python 3 (666)
  • Fixed autoescaping not working for macros in async compilation mode. (671)

2.9.4


(bugfix release, released on January 10th 2017)

  • Solved some warnings for string literals. (646)
  • Increment the bytecode cache version which was not done due to an
    oversight before.
  • Corrected bad code generation and scoping for filtered loops. (649)
  • Resolved an issue where top-level output silencing after known extend
    blocks could generate invalid code when blocks where contained in if
    statements. (651)
  • Made the truncate.leeway default configurable to improve compatibility
    with older templates.

2.9.3


(bugfix release, released on January 8th 2017)

  • Restored the use of blocks in macros to the extend that was possible
    before. On Python 3 it would render a generator repr instead of
    the block contents. (645)
  • Set a consistent behavior for assigning of variables in inner scopes
    when the variable is also read from an outer scope. This now sets the
    intended behavior in all situations however it does not restore the
    old behavior where limited assignments to outer scopes was possible.
    For more information and a discussion see 641
  • Resolved an issue where block scoped would not take advantage of the
    new scoping rules. In some more exotic cases a variable overriden in a
    local scope would not make it into a block.
  • Change the code generation of the with statement to be in line with the
    new scoping rules. This resolves some unlikely bugs in edge cases. This
    also introduces a new internal With node that can be used by extensions.

2.9.2


(bugfix release, released on January 8th 2017)

  • Fixed a regression that caused for loops to not be able to use the same
    variable for the target as well as source iterator. (640)
  • Add support for a previously unknown behavior of macros. It used to be
    possible in some circumstances to explicitly provide a caller argument
    to macros. While badly buggy and unintended it turns out that this is a
    common case that gets copy pasted around. To not completely break backwards
    compatibility with the most common cases it's now possible to provide an
    explicit keyword argument for caller if it's given an explicit default.
    (642)

2.9.1


(bugfix release, released on January 7th 2017)

  • Resolved a regression with call block scoping for macros. Nested caller
    blocks that used the same identifiers as outer macros could refer to the
    wrong variable incorrectly.

2.9


(codename Derivation, released on January 7th 2017)

  • Change cache key definition in environment. This fixes a performance
    regression introduced in 2.8.
  • Added support for generator_stop on supported Python versions
    (Python 3.5 and later)
  • Corrected a long standing issue with operator precedence of math operations
    not being what was expected.
  • Added support for Python 3.6 async iterators through a new async mode.
  • Added policies for filter defaults and similar things.
  • urlize now sets "rel noopener" by default.
  • Support attribute fallback for old-style classes in 2.x.
  • Support toplevel set statements in extend situations.
  • Restored behavior of Cycler for Python 3 users.
  • Subtraction now follows the same behavior as other operators on undefined
    values.
  • map and friends will now give better error messages if you forgot to
    quote the parameter.
  • Depend on MarkupSafe 0.23 or higher.
  • Improved the truncate filter to support better truncation in case
    the string is barely truncated at all.
  • Change the logic for macro autoescaping to be based on the runtime
    autoescaping information at call time instead of macro define time.
  • Ported a modified version of the tojson filter from Flask to Jinja2
    and hooked it up with the new policy framework.
  • Block sets are now marked safe by default.
  • On Python 2 the asciification of ASCII strings can now be disabled with
    the compiler.ascii_str policy.
  • Tests now no longer accept an arbitrary expression as first argument but
    a restricted one. This means that you can now properly use multiple
    tests in one expression without extra parentheses. In particular you can
    now write foo is divisibleby 2 or foo is divisibleby 3
    as you would expect.
  • Greatly changed the scoping system to be more consistent with what template
    designers and developers expect. There is now no more magic difference
    between the different include and import constructs. Context is now always
    propagated the same way. The only remaining differences is the defaults
    for with context and without context.
  • The with and autoescape tags are now built-in.
  • Added the new select_autoescape function which helps configuring better
    autoescaping easier.

2.8.2


(bugfix release, unreleased)

  • Fixed a runtime error in the sandbox when attributes of async generators
    were accessed.

2.8.1


(bugfix release, released on December 29th 2016)

  • Fixed the for_qs flag for urlencode.
  • Fixed regression when applying int to non-string values.
  • SECURITY: if the sandbox mode is used format expressions are now sandboxed
    with the same rules as in Jinja. This solves various information leakage
    problems that can occur with format strings.

2.8


(codename Replacement, released on July 26th 2015)

  • Added target parameter to urlize function.
  • Added support for followsymlinks to the file system loader.
  • The truncate filter now counts the length.
  • Added equalto filter that helps with select filters.
  • Changed cache keys to use absolute file names if available
    instead of load names.
  • Fixed loop length calculation for some iterators.
  • Changed how Jinja2 enforces strings to be native strings in
    Python 2 to work when people break their default encoding.
  • Added :func:make_logging_undefined which returns an undefined
    object that logs failures into a logger.
  • If unmarshalling of cached data fails the template will be
    reloaded now.
  • Implemented a block set tag.
  • Default cache size was increased to 400 from a low 50.
  • Fixed is number test to accept long integers in all Python versions.
  • Changed is number to accept Decimal as a number.
  • Added a check for default arguments followed by non-default arguments. This
    change makes {% macro m(x, y=1, z) %}...{% endmacro %} a syntax error. The
    previous behavior for this code was broken anyway (resulting in the default
    value being applied to y).
  • Add ability to use custom subclasses of jinja2.compiler.CodeGenerator and
    jinja2.runtime.Context by adding two new attributes to the environment
    (code_generator_class and context_class) (pull request 404).
  • added support for context/environment/evalctx decorator functions on
    the finalize callback of the environment.
  • escape query strings for urlencode properly. Previously slashes were not
    escaped in that place.
  • Add 'base' parameter to 'int' filter.

2.7.3


(bugfix release, released on June 6th 2014)

  • Security issue: Corrected the security fix for the cache folder. This
    fix was provided by RedHat.

2.7.2


(bugfix release, released on January 10th 2014)

  • Prefix loader was not forwarding the locals properly to
    inner loaders. This is now fixed.
  • Security issue: Changed the default folder for the filesystem cache to be
    user specific and read and write protected on UNIX systems. See Debian bug 734747_ for more information.

.. _Debian bug 734747: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=734747

2.7.1


(bugfix release, released on August 7th 2013)

  • Fixed a bug with call_filter not working properly on environment
    and context filters.
  • Fixed lack of Python 3 support for bytecode caches.
  • Reverted support for defining blocks in included templates as this
    broke existing templates for users.
  • Fixed some warnings with hashing of undefineds and nodes if Python
    is run with warnings for Python 3.
  • Added support for properly hashing undefined objects.
  • Fixed a bug with the title filter not working on already uppercase
    strings.

2.7


(codename Translation, released on May 20th 2013)

  • Choice and prefix loaders now dispatch source and template lookup
    separately in order to work in combination with module loaders as
    advertised.
  • Fixed filesizeformat.
  • Added a non-silent option for babel extraction.
  • Added urlencode filter that automatically quotes values for
    URL safe usage with utf-8 as only supported encoding. If applications
    want to change this encoding they can override the filter.
  • Added keep-trailing-newline configuration to environments and
    templates to optionally preserve the final trailing newline.
  • Accessing last on the loop context no longer causes the iterator
    to be consumed into a list.
  • Python requirement changed: 2.6, 2.7 or >= 3.3 are required now,
    supported by same source code, using the "six" compatibility library.
  • Allow contextfunction and other decorators to be applied to __call__.
  • Added support for changing from newline to different signs in the wordwrap
    filter.
  • Added support for ignoring memcache errors silently.
  • Added support for keeping the trailing newline in templates.
  • Added finer grained support for stripping whitespace on the left side
    of blocks.
  • Added map, select, reject, selectattr and rejectattr
    filters.
  • Added support for loop.depth to figure out how deep inside a recursive
    loop the code is.
  • Disabled py_compile for pypy and python 3.

2.6


(codename Convolution, released on July 24th 2011)

  • internal attributes now raise an internal attribute error now instead
    of returning an undefined. This fixes problems when passing undefined
    objects to Python semantics expecting APIs.
  • traceback support now works properly for PyPy. (Tested with 1.4)
  • implemented operator intercepting for sandboxed environments. This
    allows application developers to disable builtin operators for better
    security. (For instance limit the mathematical operators to actual
    integers instead of longs)
  • groupby filter now supports dotted notation for grouping by attributes
    of attributes.
  • scoped blocks now properly treat toplevel assignments and imports.
    Previously an import suddenly "disappeared" in a scoped block.
  • automatically detect newer Python interpreter versions before loading code
    from bytecode caches to prevent segfaults on invalid opcodes. The segfault
    in earlier Jinja2 versions here was not a Jinja2 bug but a limitation in
    the underlying Python interpreter. If you notice Jinja2 segfaulting in
    earlier versions after an upgrade of the Python interpreter you don't have
    to upgrade, it's enough to flush the bytecode cache. This just no longer
    makes this necessary, Jinja2 will automatically detect these cases now.
  • the sum filter can now sum up values by attribute. This is a backwards
    incompatible change. The argument to the filter previously was the
    optional starting index which defaults to zero. This now became the
    second argument to the function because it's rarely used.
  • like sum, sort now also makes it possible to order items by attribute.
  • like sum and sort, join now also is able to join attributes of objects
    as string.
  • the internal eval context now has a reference to the environment.
  • added a mapping test to see if an object is a dict or an object with
    a similar interface.

2.5.5


(re-release of 2.5.4 with built documentation removed for filesize.
Released on October 18th 2010)

  • built documentation is no longer part of release.

2.5.4


(bugfix release, released on October 17th 2010)

  • Fixed extensions not loading properly with overlays.
  • Work around a bug in cpython for the debugger that causes segfaults
    on 64bit big-endian architectures.

2.5.3


(bugfix release, released on October 17th 2010)

  • fixed an operator precedence error introduced in 2.5.2. Statements
    like "-foo.bar" had their implicit parentheses applied around the
    first part of the expression ("(-foo).bar") instead of the more
    correct "-(foo.bar)".

2.5.2


(bugfix release, released on August 18th 2010)

  • improved setup.py script to better work with assumptions people
    might still have from it (--with-speedups).
  • fixed a packaging error that excluded the new debug support.

2.5.1


(bugfix release, released on August 17th 2010)

  • StopIteration exceptions raised by functions called from templates
    are now intercepted and converted to undefineds. This solves a
    lot of debugging grief. (StopIteration is used internally to
    abort template execution)
  • improved performance of macro calls slightly.
  • babel extraction can now properly extract newstyle gettext calls.
  • using the variable num in newstyle gettext for something else
    than the pluralize count will no longer raise a :exc:KeyError.
  • removed builtin markup class and switched to markupsafe. For backwards
    compatibility the pure Python implementation still exists but is
    pulled from markupsafe by the Jinja2 developers. The debug support
    went into a separate feature called "debugsupport" and is disabled
    by default because it is only relevant for Python 2.4
  • fixed an issue with unary operators having the wrong precedence.

2.5


(codename Incoherence, released on May 29th 2010)

  • improved the sort filter (should have worked like this for a
    long time) by adding support for case insensitive searches.
  • fixed a bug for getattribute constant folding.
  • support for newstyle gettext translations which result in a
    nicer in-template user interface and more consistent
    catalogs. (:ref:newstyle-gettext)
  • it's now possible to register extensions after an environment
    was created.

2.4.1


(bugfix release, released on April 20th 2010)

  • fixed an error reporting bug for undefineds.

2.4


(codename Correlation, released on April 13th 2010)

  • the environment template loading functions now transparently
    pass through a template object if it was passed to it. This
    makes it possible to import or extend from a template object
    that was passed to the template.
  • added a :class:ModuleLoader that can load templates from
    precompiled sources. The environment now features a method
    to compile the templates from a configured loader into a zip
    file or folder.
  • the _speedups C extension now supports Python 3.
  • added support for autoescaping toggling sections and support
    for evaluation contexts (:ref:eval-context).
  • extensions have a priority now.

2.3.1


(bugfix release, released on February 19th 2010)

  • fixed an error reporting bug on all python versions
  • fixed an error reporting bug on Python 2.4

2.3


(3000 Pythons, released on February 10th 2010)

  • fixes issue with code generator that causes unbound variables
    to be generated if set was used in if-blocks and other small
    identifier problems.
  • include tags are now able to select between multiple templates
    and take the first that exists, if a list of templates is
    given.
  • fixed a problem with having call blocks in outer scopes that
    have an argument that is also used as local variable in an
    inner frame (360).
  • greatly improved error message reporting (339)
  • implicit tuple expressions can no longer be totally empty.
    This change makes {% if %}...{% endif %} a syntax error
    now. (364)
  • added support for translator comments if extracted via babel.
  • added with-statement extension.
  • experimental Python 3 support.

2.2.1


(bugfix release, released on September 14th 2009)

  • fixes some smaller problems for Jinja2 on Jython.

2.2


(codename Kong, released on September 13th 2009)

  • Include statements can now be marked with ignore missing to skip
    non existing templates.
  • Priority of not raised. It's now possible to write not foo in bar
    as an alias to foo not in bar like in python. Previously the grammar
    required parentheses (not (foo in bar)) which was odd.
  • Fixed a bug that caused syntax errors when defining macros or using the
    {% call %} tag inside loops.
  • Fixed a bug in the parser that made {{ foo[1, 2] }} impossible.
  • Made it possible to refer to names from outer scopes in included templates
    that were unused in the callers frame (327)
  • Fixed a bug that caused internal errors if names where used as iteration
    variable and regular variable after the loop if that variable was unused
    before the loop. (331)
  • Added support for optional scoped modifier to blocks.
  • Added support for line-comments.
  • Added the meta module.
  • Renamed (undocumented) attribute "overlay" to "overlayed" on the
    environment because it was clashing with a method of the same name.
  • speedup extension is now disabled by default.

2.1.1


(Bugfix release)

  • Fixed a translation error caused by looping over empty recursive loops.

2.1


(codename Yasuzō, released on November 23rd 2008)

  • fixed a bug with nested loops and the special loop variable. Before the
    change an inner loop overwrote the loop variable from the outer one after
    iteration.
  • fixed a bug with the i18n extension that caused the explicit pluralization
    block to look up the wrong variable.
  • fixed a limitation in the lexer that made {{ foo.0.0 }} impossible.
  • index based subscribing of variables with a constant value returns an
    undefined object now instead of raising an index error. This was a bug
    caused by eager optimizing.
  • the i18n extension looks up foo.ugettext now followed by foo.gettext
    if an translations object is installed. This makes dealing with custom
    translations classes easier.
  • fixed a confusing behavior with conditional extending. loops were partially
    executed under some conditions even though they were not part of a visible
    area.
  • added sort filter that works like dictsort but for arbitrary sequences.
  • fixed a bug with empty statements in macros.
  • implemented a bytecode cache system. (:ref:bytecode-cache)
  • the template context is now weakref-able
  • inclusions and imports "with context" forward all variables now, not only
    the initial context.
  • added a cycle helper called cycler.
  • added a joining helper called joiner.
  • added a compile_expression method to the environment that allows compiling
    of Jinja expressions into callable Python objects.
  • fixed an escaping bug in urlize

2.0


(codename jinjavitus, released on July 17th 2008)

  • the subscribing of objects (looking up attributes and items) changed from
    slightly. It's now possible to give attributes or items a higher priority
    by either using dot-notation lookup or the bracket syntax. This also
    changed the AST slightly. Subscript is gone and was replaced with
    :class:~jinja2.nodes.Getitem and :class:~jinja2.nodes.Getattr.

For more information see :ref:the implementation details <notes-on-subscriptions>.

  • added support for preprocessing and token stream filtering for extensions.
    This would allow extensions to allow simplified gettext calls in template
    data and something similar.
  • added :meth:jinja2.environment.TemplateStream.dump.
  • added missing support for implicit string literal concatenation.
    {{ "foo" "bar" }} is equivalent to {{ "foobar" }}
  • else is optional for conditional expressions. If not given it evaluates
    to false.
  • improved error reporting for undefined values by providing a position.
  • filesizeformat filter uses decimal prefixes now per default and can be
    set to binary mode with the second parameter.
  • fixed bug in finalizer

2.0rc1


(no codename, released on June 9th 2008)

  • first release of Jinja2

jinja2 -> 2.9.5

2.9.5


(bugfix release, released on January 28th 2017)

  • Restored the original repr of the internal _GroupTuple because this
    caused issues with ansible and it was an unintended change. (654)
  • Added back support for custom contexts that override the old resolve
    method since it was hard for people to spot that this could cause a
    regression.
  • Correctly use the buffer for the else block of for loops. This caused
    invalid syntax errors to be caused on 2.x and completely wrong behavior
    on Python 3 (669)
  • Resolve an issue where the {% extends %} tag could not be used with
    async environments. (668)
  • Reduce memory footprint slightly by reducing our unicode database dump
    we use for identifier matching on Python 3 (666)
  • Fixed autoescaping not working for macros in async compilation mode. (671)

2.9.4


(bugfix release, released on January 10th 2017)

  • Solved some warnings for string literals. (646)
  • Increment the bytecode cache version which was not done due to an
    oversight before.
  • Corrected bad code generation and scoping for filtered loops. (649)
  • Resolved an issue where top-level output silencing after known extend
    blocks could generate invalid code when blocks where contained in if
    statements. (651)
  • Made the truncate.leeway default configurable to improve compatibility
    with older templates.

2.9.3


(bugfix release, released on January 8th 2017)

  • Restored the use of blocks in macros to the extend that was possible
    before. On Python 3 it would render a generator repr instead of
    the block contents. (645)
  • Set a consistent behavior for assigning of variables in inner scopes
    when the variable is also read from an outer scope. This now sets the
    intended behavior in all situations however it does not restore the
    old behavior where limited assignments to outer scopes was possible.
    For more information and a discussion see 641
  • Resolved an issue where block scoped would not take advantage of the
    new scoping rules. In some more exotic cases a variable overriden in a
    local scope would not make it into a block.
  • Change the code generation of the with statement to be in line with the
    new scoping rules. This resolves some unlikely bugs in edge cases. This
    also introduces a new internal With node that can be used by extensions.

2.9.2


(bugfix release, released on January 8th 2017)

  • Fixed a regression that caused for loops to not be able to use the same
    variable for the target as well as source iterator. (640)
  • Add support for a previously unknown behavior of macros. It used to be
    possible in some circumstances to explicitly provide a caller argument
    to macros. While badly buggy and unintended it turns out that this is a
    common case that gets copy pasted around. To not completely break backwards
    compatibility with the most common cases it's now possible to provide an
    explicit keyword argument for caller if it's given an explicit default.
    (642)

2.9.1


(bugfix release, released on January 7th 2017)

  • Resolved a regression with call block scoping for macros. Nested caller
    blocks that used the same identifiers as outer macros could refer to the
    wrong variable incorrectly.

2.9


(codename Derivation, released on January 7th 2017)

  • Change cache key definition in environment. This fixes a performance
    regression introduced in 2.8.
  • Added support for generator_stop on supported Python versions
    (Python 3.5 and later)
  • Corrected a long standing issue with operator precedence of math operations
    not being what was expected.
  • Added support for Python 3.6 async iterators through a new async mode.
  • Added policies for filter defaults and similar things.
  • urlize now sets "rel noopener" by default.
  • Support attribute fallback for old-style classes in 2.x.
  • Support toplevel set statements in extend situations.
  • Restored behavior of Cycler for Python 3 users.
  • Subtraction now follows the same behavior as other operators on undefined
    values.
  • map and friends will now give better error messages if you forgot to
    quote the parameter.
  • Depend on MarkupSafe 0.23 or higher.
  • Improved the truncate filter to support better truncation in case
    the string is barely truncated at all.
  • Change the logic for macro autoescaping to be based on the runtime
    autoescaping information at call time instead of macro define time.
  • Ported a modified version of the tojson filter from Flask to Jinja2
    and hooked it up with the new policy framework.
  • Block sets are now marked safe by default.
  • On Python 2 the asciification of ASCII strings can now be disabled with
    the compiler.ascii_str policy.
  • Tests now no longer accept an arbitrary expression as first argument but
    a restricted one. This means that you can now properly use multiple
    tests in one expression without extra parentheses. In particular you can
    now write foo is divisibleby 2 or foo is divisibleby 3
    as you would expect.
  • Greatly changed the scoping system to be more consistent with what template
    designers and developers expect. There is now no more magic difference
    between the different include and import constructs. Context is now always
    propagated the same way. The only remaining differences is the defaults
    for with context and without context.
  • The with and autoescape tags are now built-in.
  • Added the new select_autoescape function which helps configuring better
    autoescaping easier.

2.8.2


(bugfix release, unreleased)

  • Fixed a runtime error in the sandbox when attributes of async generators
    were accessed.

2.8.1


(bugfix release, released on December 29th 2016)

  • Fixed the for_qs flag for urlencode.
  • Fixed regression when applying int to non-string values.
  • SECURITY: if the sandbox mode is used format expressions are now sandboxed
    with the same rules as in Jinja. This solves various information leakage
    problems that can occur with format strings.

2.8


(codename Replacement, released on July 26th 2015)

  • Added target parameter to urlize function.
  • Added support for followsymlinks to the file system loader.
  • The truncate filter now counts the length.
  • Added equalto filter that helps with select filters.
  • Changed cache keys to use absolute file names if available
    instead of load names.
  • Fixed loop length calculation for some iterators.
  • Changed how Jinja2 enforces strings to be native strings in
    Python 2 to work when people break their default encoding.
  • Added :func:make_logging_undefined which returns an undefined
    object that logs failures into a logger.
  • If unmarshalling of cached data fails the template will be
    reloaded now.
  • Implemented a block set tag.
  • Default cache size was increased to 400 from a low 50.
  • Fixed is number test to accept long integers in all Python versions.
  • Changed is number to accept Decimal as a number.
  • Added a check for default arguments followed by non-default arguments. This
    change makes {% macro m(x, y=1, z) %}...{% endmacro %} a syntax error. The
    previous behavior for this code was broken anyway (resulting in the default
    value being applied to y).
  • Add ability to use custom subclasses of jinja2.compiler.CodeGenerator and
    jinja2.runtime.Context by adding two new attributes to the environment
    (code_generator_class and context_class) (pull request 404).
  • added support for context/environment/evalctx decorator functions on
    the finalize callback of the environment.
  • escape query strings for urlencode properly. Previously slashes were not
    escaped in that place.
  • Add 'base' parameter to 'int' filter.

2.7.3


(bugfix release, released on June 6th 2014)

  • Security issue: Corrected the security fix for the cache folder. This
    fix was provided by RedHat.

2.7.2


(bugfix release, released on January 10th 2014)

  • Prefix loader was not forwarding the locals properly to
    inner loaders. This is now fixed.
  • Security issue: Changed the default folder for the filesystem cache to be
    user specific and read and write protected on UNIX systems. See Debian bug 734747_ for more information.

.. _Debian bug 734747: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=734747

2.7.1


(bugfix release, released on August 7th 2013)

  • Fixed a bug with call_filter not working properly on environment
    and context filters.
  • Fixed lack of Python 3 support for bytecode caches.
  • Reverted support for defining blocks in included templates as this
    broke existing templates for users.
  • Fixed some warnings with hashing of undefineds and nodes if Python
    is run with warnings for Python 3.
  • Added support for properly hashing undefined objects.
  • Fixed a bug with the title filter not working on already uppercase
    strings.

2.7


(codename Translation, released on May 20th 2013)

  • Choice and prefix loaders now dispatch source and template lookup
    separately in order to work in combination with module loaders as
    advertised.
  • Fixed filesizeformat.
  • Added a non-silent option for babel extraction.
  • Added urlencode filter that automatically quotes values for
    URL safe usage with utf-8 as only supported encoding. If applications
    want to change this encoding they can override the filter.
  • Added keep-trailing-newline configuration to environments and
    templates to optionally preserve the final trailing newline.
  • Accessing last on the loop context no longer causes the iterator
    to be consumed into a list.
  • Python requirement changed: 2.6, 2.7 or >= 3.3 are required now,
    supported by same source code, using the "six" compatibility library.
  • Allow contextfunction and other decorators to be applied to __call__.
  • Added support for changing from newline to different signs in the wordwrap
    filter.
  • Added support for ignoring memcache errors silently.
  • Added support for keeping the trailing newline in templates.
  • Added finer grained support for stripping whitespace on the left side
    of blocks.
  • Added map, select, reject, selectattr and rejectattr
    filters.
  • Added support for loop.depth to figure out how deep inside a recursive
    loop the code is.
  • Disabled py_compile for pypy and python 3.

2.6


(codename Convolution, released on July 24th 2011)

  • internal attributes now raise an internal attribute error now instead
    of returning an undefined. This fixes problems when passing undefined
    objects to Python semantics expecting APIs.
  • traceback support now works properly for PyPy. (Tested with 1.4)
  • implemented operator intercepting for sandboxed environments. This
    allows application developers to disable builtin operators for better
    security. (For instance limit the mathematical operators to actual
    integers instead of longs)
  • groupby filter now supports dotted notation for grouping by attributes
    of attributes.
  • scoped blocks now properly treat toplevel assignments and imports.
    Previously an import suddenly "disappeared" in a scoped block.
  • automatically detect newer Python interpreter versions before loading code
    from bytecode caches to prevent segfaults on invalid opcodes. The segfault
    in earlier Jinja2 versions here was not a Jinja2 bug but a limitation in
    the underlying Python interpreter. If you notice Jinja2 segfaulting in
    earlier versions after an upgrade of the Python interpreter you don't have
    to upgrade, it's enough to flush the bytecode cache. This just no longer
    makes this necessary, Jinja2 will automatically detect these cases now.
  • the sum filter can now sum up values by attribute. This is a backwards
    incompatible change. The argument to the filter previously was the
    optional starting index which defaults to zero. This now became the
    second argument to the function because it's rarely used.
  • like sum, sort now also makes it possible to order items by attribute.
  • like sum and sort, join now also is able to join attributes of objects
    as string.
  • the internal eval context now has a reference to the environment.
  • added a mapping test to see if an object is a dict or an object with
    a similar interface.

2.5.5


(re-release of 2.5.4 with built documentation removed for filesize.
Released on October 18th 2010)

  • built documentation is no longer part of release.

2.5.4


(bugfix release, released on October 17th 2010)

  • Fixed extensions not loading properly with overlays.
  • Work around a bug in cpython for the debugger that causes segfaults
    on 64bit big-endian architectures.

2.5.3


(bugfix release, released on October 17th 2010)

  • fixed an operator precedence error introduced in 2.5.2. Statements
    like "-foo.bar" had their implicit parentheses applied around the
    first part of the expression ("(-foo).bar") instead of the more
    correct "-(foo.bar)".

2.5.2


(bugfix release, released on August 18th 2010)

  • improved setup.py script to better work with assumptions people
    might still have from it (--with-speedups).
  • fixed a packaging error that excluded the new debug support.

2.5.1


(bugfix release, released on August 17th 2010)

  • StopIteration exceptions raised by functions called from templates
    are now intercepted and converted to undefineds. This solves a
    lot of debugging grief. (StopIteration is used internally to
    abort template execution)
  • improved performance of macro calls slightly.
  • babel extraction can now properly extract newstyle gettext calls.
  • using the variable num in newstyle gettext for something else
    than the pluralize count will no longer raise a :exc:KeyError.
  • removed builtin markup class and switched to markupsafe. For backwards
    compatibility the pure Python implementation still exists but is
    pulled from markupsafe by the Jinja2 developers. The debug support
    went into a separate feature called "debugsupport" and is disabled
    by default because it is only relevant for Python 2.4
  • fixed an issue with unary operators having the wrong precedence.

2.5


(codename Incoherence, released on May 29th 2010)

  • improved the sort filter (should have worked like this for a
    long time) by adding support for case insensitive searches.
  • fixed a bug for getattribute constant folding.
  • support for newstyle gettext translations which result in a
    nicer in-template user interface and more consistent
    catalogs. (:ref:newstyle-gettext)
  • it's now possible to register extensions after an environment
    was created.

2.4.1


(bugfix release, released on April 20th 2010)

  • fixed an error reporting bug for undefineds.

2.4


(codename Correlation, released on April 13th 2010)

  • the environment template loading functions now transparently
    pass through a template object if it was passed to it. This
    makes it possible to import or extend from a template object
    that was passed to the template.
  • added a :class:ModuleLoader that can load templates from
    precompiled sources. The environment now features a method
    to compile the templates from a configured loader into a zip
    file or folder.
  • the _speedups C extension now supports Python 3.
  • added support for autoescaping toggling sections and support
    for evaluation contexts (:ref:eval-context).
  • extensions have a priority now.

2.3.1


(bugfix release, released on February 19th 2010)

  • fixed an error reporting bug on all python versions
  • fixed an error reporting bug on Python 2.4

2.3


(3000 Pythons, released on February 10th 2010)

  • fixes issue with code generator that causes unbound variables
    to be generated if set was used in if-blocks and other small
    identifier problems.
  • include tags are now able to select between multiple templates
    and take the first that exists, if a list of templates is
    given.
  • fixed a problem with having call blocks in outer scopes that
    have an argument that is also used as local variable in an
    inner frame (360).
  • greatly improved error message reporting (339)
  • implicit tuple expressions can no longer be totally empty.
    This change makes {% if %}...{% endif %} a syntax error
    now. (364)
  • added support for translator comments if extracted via babel.
  • added with-statement extension.
  • experimental Python 3 support.

2.2.1


(bugfix release, released on September 14th 2009)

  • fixes some smaller problems for Jinja2 on Jython.

2.2


(codename Kong, released on September 13th 2009)

  • Include statements can now be marked with ignore missing to skip
    non existing templates.
  • Priority of not raised. It's now possible to write not foo in bar
    as an alias to foo not in bar like in python. Previously the grammar
    required parentheses (not (foo in bar)) which was odd.
  • Fixed a bug that caused syntax errors when defining macros or using the
    {% call %} tag inside loops.
  • Fixed a bug in the parser that made {{ foo[1, 2] }} impossible.
  • Made it possible to refer to names from outer scopes in included templates
    that were unused in the callers frame (327)
  • Fixed a bug that caused internal errors if names where used as iteration
    variable and regular variable after the loop if that variable was unused
    before the loop. (331)
  • Added support for optional scoped modifier to blocks.
  • Added support for line-comments.
  • Added the meta module.
  • Renamed (undocumented) attribute "overlay" to "overlayed" on the
    environment because it was clashing with a method of the same name.
  • speedup extension is now disabled by default.

2.1.1


(Bugfix release)

  • Fixed a translation error caused by looping over empty recursive loops.

2.1


(codename Yasuzō, released on November 23rd 2008)

  • fixed a bug with nested loops and the special loop variable. Before the
    change an inner loop overwrote the loop variable from the outer one after
    iteration.
  • fixed a bug with the i18n extension that caused the explicit pluralization
    block to look up the wrong variable.
  • fixed a limitation in the lexer that made {{ foo.0.0 }} impossible.
  • index based subscribing of variables with a constant value returns an
    undefined object now instead of raising an index error. This was a bug
    caused by eager optimizing.
  • the i18n extension looks up foo.ugettext now followed by foo.gettext
    if an translations object is installed. This makes dealing with custom
    translations classes easier.
  • fixed a confusing behavior with conditional extending. loops were partially
    executed under some conditions even though they were not part of a visible
    area.
  • added sort filter that works like dictsort but for arbitrary sequences.
  • fixed a bug with empty statements in macros.
  • implemented a bytecode cache system. (:ref:bytecode-cache)
  • the template context is now weakref-able
  • inclusions and imports "with context" forward all variables now, not only
    the initial context.
  • added a cycle helper called cycler.
  • added a joining helper called joiner.
  • added a compile_expression method to the environment that allows compiling
    of Jinja expressions into callable Python objects.
  • fixed an escaping bug in urlize

2.0


(codename jinjavitus, released on July 17th 2008)

  • the subscribing of objects (looking up attributes and items) changed from
    slightly. It's now possible to give attributes or items a higher priority
    by either using dot-notation lookup or the bracket syntax. This also
    changed the AST slightly. Subscript is gone and was replaced with
    :class:~jinja2.nodes.Getitem and :class:~jinja2.nodes.Getattr.

For more information see :ref:the implementation details <notes-on-subscriptions>.

  • added support for preprocessing and token stream filtering for extensions.
    This would allow extensions to allow simplified gettext calls in template
    data and something similar.
  • added :meth:jinja2.environment.TemplateStream.dump.
  • added missing support for implicit string literal concatenation.
    {{ "foo" "bar" }} is equivalent to {{ "foobar" }}
  • else is optional for conditional expressions. If not given it evaluates
    to false.
  • improved error reporting for undefined values by providing a position.
  • filesizeformat filter uses decimal prefixes now per default and can be
    set to binary mode with the second parameter.
  • fixed bug in finalizer

2.0rc1


(no codename, released on June 9th 2008)

  • first release of Jinja2

wheel -> 0.29.0

0.29.0

======

  • Fix compression type of files in archive (Issue 155, Pull Request 62,
    thanks Xavier Fernandez)

0.28.0

======

  • Fix file modes in archive (Issue 154)

0.27.0

======

  • Support forcing a platform tag using --plat-name on pure-Python wheels, as
    well as nonstandard platform tags on non-pure wheels (Pull Request 60, Issue
    144, thanks Andrés Díaz)
  • Add SOABI tags to platform-specific wheels built for Python 2.X (Pull Request
    55, Issue 63, Issue 101)
  • Support reproducible wheel files, wheels that can be rebuilt and will hash to
    the same values as previous builds (Pull Request 52, Issue 143, thanks
    Barry Warsaw)
  • Support for changes in keyring >= 8.0 (Pull Request 61, thanks Jason R.
    Coombs)
  • Use the file context manager when checking if dependency_links.txt is empty,
    fixes problems building wheels under PyPy on Windows (Issue 150, thanks
    Cosimo Lupo)
  • Don't attempt to (recursively) create a build directory ending with ..
    (invalid on all platforms, but code was only executed on Windows) (Issue 91)
  • Added the PyPA Code of Conduct (Pull Request 56)

0.26.0

======

  • Fix multiple entrypoint comparison failure on Python 3 (Issue 148)

0.25.0

======

  • Add Python 3.5 to tox configuration
  • Deterministic (sorted) metadata
  • Fix tagging for Python 3.5 compatibility
  • Support py2-none-'arch' and py3-none-'arch' tags
  • Treat data-only wheels as pure
  • Write to temporary file and rename when using wheel install --force

0.24.0

======

  • The python tag used for pure-python packages is now .pyN (major version
    only). This change actually occurred in 0.23.0 when the --python-tag
    option was added, but was not explicitly mentioned in the changelog then.
  • wininst2wheel and egg2wheel removed. Use "wheel convert [archive]"
    instead.
  • Wheel now supports setuptools style conditional requirements via the
    extras_require={} syntax. Separate 'extra' names from conditions using
    the : character. Wheel's own setup.py does this. (The empty-string
    extra is the same as install_requires.) These conditional requirements
    should work the same whether the package is installed by wheel or
    by setup.py.

0.23.0

======

  • Compatibility tag flags added to the bdist_wheel command
  • sdist should include files necessary for tests
  • 'wheel convert' can now also convert unpacked eggs to wheel
  • Rename pydist.json to metadata.json to avoid stepping on the PEP
  • The --skip-scripts option has been removed, and not generating scripts is now
    the default. The option was a temporary approach until installers could
    generate scripts themselves. That is now the case with pip 1.5 and later.
    Note that using pip 1.4 to install a wheel without scripts will leave the
    installation without entry-point wrappers. The "wheel install-scripts"
    command can be used to generate the scripts in such cases.
  • Thank you contributors

0.22.0

======

  • Include entry_points.txt, scripts a.k.a. commands, in experimental
    pydist.json
  • Improved test_requires parsing
  • Python 2.6 fixes, "wheel version" command courtesy pombredanne

0.21.0

======

  • Pregenerated scripts are the default again.
  • "setup.py bdist_wheel --skip-scripts" turns them off.
  • setuptools is no longer a listed requirement for the 'wheel'
    package. It is of course still required in order for bdist_wheel
    to work.
  • "python -m wheel" avoids importing pkg_resources until it's necessary.

0.20.0

======

  • No longer include console_scripts in wheels. Ordinary scripts (shell files,
    standalone Python files) are included as usual.
  • Include new command "python -m wheel install-scripts [distribution
    [distribution ...]]" to install the console_scripts (setuptools-style
    scripts using pkg_resources) for a distribution.

0.19.0

======

  • pymeta.json becomes pydist.json

0.18.0

======

  • Python 3 Unicode improvements

0.17.0

======

  • Support latest PEP-426 "pymeta.json" (json-format metadata)

0.16.0

======

  • Python 2.6 compatibility bugfix (thanks John McFarlane)
  • Non-prerelease version number

0.15.0

======

  • Various improvements

0.14.0

======

  • Changed the signature format to better comply with the current JWS spec.
    Breaks all existing signatures.
  • Include wheel unsign command to remove RECORD.jws from an archive.
  • Put the description in the newly allowed payload section of PKG-INFO
    (METADATA) files.

0.13.0

======

  • Use distutils instead of sysconfig to get installation paths; can install
    headers.
  • Improve WheelFile() sort.
  • Allow bootstrap installs without any pkg_resources.

0.12.0

======

  • Unit test for wheel.tool.install

0.11.0

======

  • API cleanup

0.10.3

======

  • Scripts fixer fix

0.10.2

======

  • Fix keygen

0.10.1

======

  • Preserve attributes on install.

0.10.0

======

  • Include a copy of pkg_resources. Wheel can now install into a virtualenv
    that does not have distribute (though most packages still require
    pkg_resources to actually work; wheel install distribute)
  • Define a new setup.cfg section [wheel]. universal=1 will
    apply the py2.py3-none-any tag for pure python wheels.

0.9.7

=====

  • Only import dirspec when needed. dirspec is only needed to find the
    configuration for keygen/signing operations.

0.9.6

=====

  • requires-dist from setup.cfg overwrites any requirements from setup.py
    Care must be taken that the requirements are the same in both cases,
    or just always install from wheel.
  • drop dirspec requirement on win32
  • improved command line utility, adds 'wheel convert [egg or wininst]' to
    convert legacy binary formats to wheel

0.9.5

=====

  • Wheel's own wheel file can be executed by Python, and can install itself:
    python wheel-0.9.5-py27-none-any/wheel install ...
  • Use argparse; basic wheel install command should run with only stdlib
    dependencies.
  • Allow requires_dist in setup.cfg's [metadata] section. In addition to
    dependencies in setup.py, but will only be interpreted when installing
    from wheel, not from sdist. Can be qualified with environment markers.

0.9.4

=====

  • Fix wheel.signatures in sdist

0.9.3

=====

  • Integrated digital signatures support without C extensions.
  • Integrated "wheel install" command (single package, no dependency
    resolution) including compatibility check.
  • Support Python 3.3
  • Use Metadata 1.3 (PEP 426)

0.9.2

=====

  • Automatic signing if WHEEL_TOOL points to the wheel binary
  • Even more Python 3 fixes

0.9.1

=====

  • 'wheel sign' uses the keys generated by 'wheel keygen' (instead of generating
    a new key at random each time)
  • Python 2/3 encoding/decoding fixes
  • Run tests on Python 2.6 (without signature verification)

0.9

===

  • Updated digital signatures scheme
  • Python 3 support for digital signatures
  • Always verify RECORD hashes on extract
  • "wheel" command line tool to sign, verify, unpack wheel files

0.8

===

  • none/any draft pep tags update
  • improved wininst2wheel script
  • doc changes and other improvements

0.7

===

  • sort .dist-info at end of wheel archive
  • Windows & Python 3 fixes from Paul Moore
  • pep8
  • scripts to convert wininst & egg to wheel

0.6

===

  • require distribute >= 0.6.28
  • stop using verlib

0.5

===

  • working pretty well

0.4.2

=====

  • hyphenated name fix

0.4

===

  • improve test coverage
  • improve Windows compatibility
  • include tox.ini courtesy of Marc Abramowitz
  • draft hmac sha-256 signing function

0.3

===

  • prototype egg2wheel conversion script

0.2

===

  • Python 3 compatibility

0.1

===

  • Initial version

ipdb -> 0.10.2

0.10.2


0.10.1


  • Support IPython 5.0.
    [ngoldbaum]

0.10.0


  • Stop trying to magically guess when stdout needs to be captured.
    Like needed by nose.
    Rather, provide a set of function that can be called explicitely when needed.
    [gotcha]
  • drop support of IPython before 0.10.2

0.9.4


0.9.3


  • Don't require users to pass a traceback to post_mortem.
    [Wilfred]

0.9.2


0.9.1


  • Fix support of IPython versions 0.x
    [asivokon]

0.9.0


0.8.3


  • Don't pass sys.argv to IPython for configuration.
    [emulbreh]

0.8.2


  • Fix lexical comparison for version numbers.
    [sas23]
  • Allow configuring how many lines of code context are displayed
    by set_trace
    [JamshedVesuna]
  • If an instance of IPython is already running its configuration will be
    loaded.
    [IxDay]

0.8.1


0.8


0.7.1


  • Index into version_info in setup.py for Python 2.6 compatibility.
    [kynan]
  • Add Travis CI configuration.
    [kynan]

0.7


  • Add launch_ipdb_on_exception context manager. Implies dropping Python 2.4 support.
    [Psycojoker]
  • Wrap sys.excepthook only once.
    [marciomazza]
  • Add GPL file and refer in headers.
    [stan3]
  • Python 3 support.
    [Piet Delport]
  • Basic tests.
    [msabramo]
  • Added the functions runcall, runeval and run.
    [dimasad]

0.6.1


  • State dependency on IPython later or equal to 0.10.
    [gotcha]

0.6


  • Add setuptools console_scripts entry point.
    [akrito, gotcha]

0.5


  • IPython 0.11 support.
    [lebedov]

0.4


  • Fixed errors when exiting with "q".
    [gotcha]
  • Fixed post_mortem when the traceback is None.
    [maurits]

0.3


  • Add post_mortem() for Products.PDBDebugMode support.
    [Jean Jordaan]
  • Moved to github.com.

0.2


  • Added pm().
    [Paulo Benedict Ang]

0.1


  • First "non dev" release.

sphinx -> 1.5.3

1.5.3

=====================================

Features added

  • Support requests-2.0.0 (experimental) (refs: 3367)
  • (latex) PDF page margin dimensions may be customized (refs: 3387)
  • literalinclude directive allows combination of :pyobject: and
    :lines: options (refs: 3416)
  • 3400: make-mode doesn't use subprocess on building docs

Bugs fixed

  • 3370: the caption of code-block is not picked up for translation
  • LaTeX: :confval:release is not escaped (refs: 3362)
  • 3364: sphinx-quickstart prompts overflow on Console with 80 chars width
  • since 1.5, PDF's TOC and bookmarks lack an entry for general Index
    (refs: 3383)
  • 3392: 'releasename' in :confval:latex_elements is not working
  • 3356: Page layout for Japanese 'manual' docclass has a shorter text area
  • 3394: When 'pointsize' is not 10pt, Japanese 'manual' document
    gets wrong PDF page dimensions
  • 3399: quickstart: conf.py was not overwritten by template
  • 3366: option directive does not allow punctuations
  • 3410: return code in :confval:release breaks html search
  • 3427: autodoc: memory addresses are not stripped on Windows
  • 3428: xetex build tests fail due to fontspec v2.6 defining \strong
  • 3349: Result of IndexBuilder.load() is broken
  • 3450: &nbsp is appeared in EPUB docs
  • 3418: Search button is misaligned in nature and pyramid theme
  • 3421: Could not translate a caption of tables

1.5.2

=====================================

Incompatible changes

  • Dependency requirement updates: requests 2.4.0 or above (refs: 3268, 3310)

Features added

  • 3241: emit latex warning if buggy titlesec (ref 3210)
  • 3194: Refer the $MAKE environment variable to determine make command
  • Emit warning for nested numbered toctrees (refs: 3142)
  • 978: intersphinx_mapping also allows a list as a parameter
  • 3340: (LaTeX) long lines in :dudir:parsed-literal are wrapped like in
    :rst:dir:code-block, inline math and footnotes are fully functional.

Bugs fixed

  • 3246: xapian search adapter crashes
  • 3253: In Py2 environment, building another locale with a non-captioned
    toctree produces None captions
  • 185: References to section title including raw node has broken
  • 3255: In Py3.4 environment, autodoc doesn't support documentation for
    attributes of Enum class correctly.
  • 3261: latex_use_parts makes sphinx crash
  • The warning type misc.highlighting_failure does not work
  • 3294: add_latex_package() make crashes non-LaTeX builders
  • The caption of table are rendered as invalid HTML (refs: 3287)
  • 3268: Sphinx crashes with requests package from Debian jessie
  • 3284: Sphinx crashes on parallel build with an extension which raises
    unserializable exception
  • 3315: Bibliography crashes on latex build with docclass 'memoir'
  • 3328: Could not refer rubric implicitly
  • 3329: emit warnings if po file is invalid and can't read it. Also writing mo too
  • 3337: Ugly rendering of definition list term's classifier
  • 3335: gettext does not extract field_name of a field in a field_list
  • 2952: C++, fix refs to operator() functions.
  • Fix Unicode super- and subscript digits in :rst:dir:code-block and
    parsed-literal LaTeX output (ref 3342)
  • LaTeX writer: leave " character inside parsed-literal as is (ref 3341)
  • 3234: intersphinx failed for encoded inventories
  • 3158: too much space after captions in PDF output
  • 3317: An URL in parsed-literal contents gets wrongly rendered in PDF if
    w

@coveralls
Copy link

Coverage Status

Coverage remained the same at 92.788% when pulling 71f2d96 on pyup-initial-update into f399347 on master.

@c-bata c-bata closed this Mar 21, 2017
@c-bata c-bata deleted the pyup-initial-update branch March 21, 2017 03:34
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.