- Python 3.7 is now supported.
- The template for the output filename has been generalized to work
sensibly in the case where overlays are nested more than two deep.
Templating
- Added new attributes to layers:
`layer.is_overlay`
Boolean. True if layer is an overlay.
`layer.lineage`
Sequence starting with layer and including each parent layer in
turn.
`layer.overlay`
Returns the nearest overlay layer. If the layer is an overlay,
`layer.overlay` returns `layer`, otherwise it returns the
nearest parent layer which is an overlay. If the layer is not
contained within an overlay, returns `None`.
- Added new values to context when expanding text in SVG:
`overlays`
A list of all overlay layers in the lineage of the text
element, in order from outermost to innermost.
`course`
The outermost overlay layer. (Equivalent to `overlays[0]`.)
This value already existed in the context used for filename expansion.
`overlay`
If the element is at least two overlays deep, this is the
innermost overlay. Otherwise it is unset. This value already
existed in the context used for filename expansion.
- Added new values to context when expanding output filenames:
`overlays`
A list of all overlay layers in the lineage of the overlay
being expanded.
Bugs
- Templating: the `safepath` filter would fail with a `TypeError`
if applied to anything but a string. Now it coerces its argument to
text.
- Templating: (New style) layer flags in parent layers were not being
removed from the layer labels. (E.g. `"{{ layer.parent.label }}"`
was expanding to `"[o] Some Overlay"`, when it should expand to
`"Some Overlay"`.)
- Pexpect==4.4.0 appears to have a subtle brokenness when
`searchwindowsize` is set to something other than `None`. The
problem seems to be in [pexpect.expect.py][], and is triggered when
multiple chunks of output are read before a match is found.
[pexpect.expect.py]: <https://github.com/pexpect/pexpect/blob/606f368b4a0dc442e2523d439d722a389b6e54c6/pexpect/expect.py#L22>
Bit-Rot
- Use `log.warning`, rather than the deprecated `log.warn`.