Python-liquid

Latest version: v1.13.0

Safety actively analyzes 715081 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 9 of 23

1.9.4

**Fixes**

- Fixed async loading of templates with the `{% extends %}` tag. Previously templates were being loaded synchronously, even when using `render_async()`. See [124](https://github.com/jg-rp/liquid/issues/124).
- Fixed handling of recursive `{% extends %}` tags during async static analysis. See [125](https://github.com/jg-rp/liquid/issues/125).

1.9.3

**Fixes**

- Removed `is_up_to_date` from `liquid.BoundTemplate.__repr__`. It was causing `RuntimeWarning`s with Python 3.11 when using an async template loader. Specifically warnings about coroutines that were never awaited.
- Fixed the `map` filter. If given a nested array-like input, it now flattens it automatically. See [119](https://github.com/jg-rp/liquid/issues/119).
- Fixed the behavior of the `liquid` tag when other liquid tags appear within it. See [123](https://github.com/jg-rp/liquid/issues/123).

**Features**

- Added the `sum` filter, which will return the sum of all numeric values in its input sequence. ([docs](https://jg-rp.github.io/liquid/language/filters#sum), [source](https://github.com/jg-rp/liquid/blob/14ab1117705db04597d81b613ed6c4a92db10f37/liquid/builtin/filters/array.py#L222)).
- Added `Environment.setup_tags_and_filters()` for easier tag and filter registration when subclassing `Environment`. See [122](https://github.com/jg-rp/liquid/issues/122).

1.9.2

**Fixes**

- Fixed a bug where a class-based filter defining `filter_async` and setting `with_context` or `with_environment` to `True` would not be awaited. See [117](https://github.com/jg-rp/liquid/issues/117).

**Build**

- Fixed some package build issues since moving to [hatch](https://hatch.pypa.io/latest/). Both version 1.9.0 and 1.9.1 inadvertently included `.mypy_cache` folders, making the distribution files significantly larger.

1.9.1

**Fixes**

- Force the "wheel" build target to include `py.typed`.
- Restore `liquid.__version__`.

1.9.0

* Added If with or / and expressions
* Implemented .to_liquid for all objects which can be passed to liquid like Strings Arrays Hashes Numerics and Booleans. To export new objects to liquid just implement .to_liquid on them and return objects which themselves have .to_liquid methods.
* Added more tags to standard library
* Added include tag ( like partials in rails )
* [...] Gazillion of detail improvements
* Added strainers as filter hosts for better security [Tobias Luetke]
* Fixed that rails integration would call filter with the wrong "self" [Michael Geary]
* Fixed bad error reporting when a filter called a method which doesn't exist. Liquid told you that it couldn't find the filter which was obviously misleading [Tobias Luetke]
* Removed count helper from standard lib. use size [Tobias Luetke]
* Fixed bug with string filter parameters failing to tolerate commas in strings. [Paul Hammond]
* Improved filter parameters. Filter parameters are now context sensitive; Types are resolved according to the rules of the context. Multiple parameters are now separated by the Liquid::ArgumentSeparator: , by default [Paul Hammond]
{{ 'Typo' | link_to: 'http://typo.leetsoft.com', 'Typo - a modern weblog engine' }}
* Added Liquid::Drop. A base class which you can use for exporting proxy objects to liquid which can acquire more data when used in liquid. [Tobias Luetke]

class ProductDrop < Liquid::Drop
def top_sales
Shop.current.products.find(:all, :order => 'sales', :limit => 10 )
end
end
t = Liquid::Template.parse( ' {% for product in product.top_sales %} {{ product.name }} {% endfor %} ' )
t.render('product' => ProductDrop.new )
* Added filter parameters support. Example: {{ date | format_date: "%Y" }} [Paul Hammond]


Django Liquid Change Log

1.8.2

**Fixes**

- Fixed comparison of strings in logical expressions. Previously we only supported comparing strings for equality with `==` and `!=`, now we support `<`, `>`, `<=` and `>=` too.
- Fixed handling of superfluous expressions in `{% else %}` tags. We now silently ignore anything between `else` and `%}`, matching the behavior of Shopify/Liquid.
- Fixed handling of extra `{% else %}` and `{% elsif %}` blocks after the first `{% else %}` block. We now silently ignore extraneous blocks, matching the behavior of Shopify/Liquid.

Page 9 of 23

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.