Minijinja

Latest version: v2.0.1

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

Scan your dependencies

Page 1 of 13

2.0.1

- Fixed an issue that caused custom delimiters to not work in the Python
binding. 506

2.0.0

This is a major update to MiniJinja that changes a lot of core internals and
cleans up some APIs. In particular it resolves somes limitations in the engine
in relation to working with dynamic objects, unlocks potentials for future
performance improvments and enhancements.

It's very likely that you will need to do changes to your code when upgrading,
particular when implementing dynamic objects. In short:

- `StructObject` and `SeqObject` are gone. They have been replaced by improved
APIs directly on `Object`. Please refer to the updated documentation to see
how these objects behave now. For the most part code should become quite a bit
clearer during the upgrade.
- `ObjectKind` has been replaced by `ObjectRepr`. Rather than holding a reference
to a `StructObject` or `SeqObject` this now is a simple enum that just indicates
how that object serializes, renders and behaves.
- `Object` no longer uses `fmt::Display` for rendering. Instead the new
`Object::render` method is used which has a default implementation.
- The `Object` trait has been completely transformed and the new type-erased type
`DynObject` has been added to work with unknown objects. This trait has an
improved user experience and more flexibility. It's now possible to implement
any non-primitive value type including maps with non string keys which was previously
not possible.
- `ValueKind` is now non exhaustive and got a log of new value types. This resolves
various issues in particular in relationship with iterators. As a result of this
functions will no longer accidentally serialize into empty objects for example.
- `Value::from_iterator` has been replaced by the new `Value::make_iterable`,
`Value::make_object_iterable` and `Value::make_one_shot_iterator`. The direct
replacement is `Value::make_one_shot_iterator` but for most uses it's strongly
recommended to use one of the other APIs instead. This results in a much improved
user experience as it's possible to iterate over such values more than once.
- The `Syntax` type has been replaced by the `SyntaxConfig` type. It uses a builder
pattern to reconfigure the delimiters.

For upgrade instructions read the [UPDATING](UPDATING.md) guide.

**Other Changes:**

- Added a new `Environment::templates` method that iterates over loaded templates. 471
- Reverse iteration and slicing now return iterables instead of real sequences.
- The engine no longer reports iterable as sequences.
- The value iterator returned by `Value::try_iter` now holds a reference
to the `Value` internally via reference counting.
- `DynObject` now replaces `Arc<Object>`.
- The debug printing of some objects was simplified.
- Added the `iterable` test. 475
- The parser no longer panics when using dotted assignments in unexpected places. 479
- The CLI now enables unicode support by default.
- `Value::from_serializable` is now `Value::from_serialize`.
- Ranges are now iterables and no longer sequences and their maximum number of iterations
was raised to 100000. 493
- `Value::from` is now implemented for `Error` as public API to create invalid values.
Previously this behavior was hidden internally in the serde support. 495
- `UndefinedBehavior::Strict` now acts more delayed. This means that now `value.key is defined`
- Added support for line statements and comments. 503
- The CLI now accepts `--syntax` to reconfigure syntax flags such as delimiters. 504

1.0.21

- Fixed an issue where `lstrip_blocks` unintentionally also applied to
variable expression blocks. 502

1.0.20

- Added support for implicit string concatenation for Jinja2 compatibility. 489
- Added support for sequence concatenation with the plus operator for Jinja2 compatibility. 491

1.0.19

- Deprecated `Value::from_iterator` and introduced replacement
`Value::make_one_shot_iterator` API which also exists in 2.x. 487

1.0.18

- Fixed an endless loop in `undeclared_variables`. 486

Page 1 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.