Skip to content

Releases: volfpeter/fasthx

v1.1.0

31 Jul 14:01
593d75a
Compare
Choose a tag to compare

What's Changed

  • Added JinjaContext.wrap_as() utility and tests by @volfpeter in #24

v1.0.0

16 Jul 15:02
1dd33f6
Compare
Choose a tag to compare

What's Changed

  • Added TemplateHeader (and some utility types) for multi-template support on a single route. By @volfpeter in #23
  • Added a prefix argument to Jinja.hx() and Jinja.page(). By @volfpeter in #23
  • Renamed most template_name arguments to template ("keyword or positional" arguments are affected, potentially breaking change). By @volfpeter in #23
  • Added more tests. By @volfpeter in #23
  • Refactored and extended the documentation. By @volfpeter in #23
  • Bumped version to 1.0.0, the project will be sem-ver from now. By @volfpeter in #23

Upgrade from older releases

The upgrade shouldn't require code changes unless you assigned Jinja template names as keyword arguments in Jinja.hx() and Jinja.page(). In that case, all you need to do is rename template_name="..." to template="...".

v0.2407.0

14 Jul 15:51
a367c9b
Compare
Choose a tag to compare

Removed deprecated code (breaking changes):

  • HTMXRenderer: use HTMLRenderer instead.
  • Jinja.__call__(): use Jinja.hx instead.
  • Jinja.template(): use Jinja.hx instead.

Other changes:

  • Tooling upgrade.

v0.2403.1

26 Mar 19:56
4d1e77c
Compare
Choose a tag to compare

Changes:

  • Added Response header support to Jinja decorators as well by @volfpeter in #20
  • Examples, docs, and tests for response headers for Jinja by @volfpeter in #20

v0.2403.0

26 Mar 13:45
cd54f96
Compare
Choose a tag to compare

This is most likely the last release before the project goes sem-ver (1.0).

Changes:

v0.2402.2

20 Feb 20:42
f5496a3
Compare
Choose a tag to compare

Changes

  • Added a page() decorator for unconditionally rendering HTML (useful when a route needs to serve HTML for non-HTMX requests).
  • Added a Jinja.page() decorator, the Jinja2 implementation of the generic page() decorator.
  • Sync routes are now executed in a threadpool to avoid blocking the asyncio event loop.
  • Added Jinja.hx() as the primary decorator for HTMX-serving routes for overall consistency in the library. At the same time, Jinja.__call__() and Jinja.template() are now deprecated and will be removed in the future.
  • JinjaContext.unpack_result() can now handle None as well by converting it into an empty Jinja rendering context.
  • Typing improvements.
  • Renamed HTMXRenderer to HTMLRenderer. HTMXRenderer is still importable as a deprecated alias of HTMLRenderer.
  • Updated the existing Jinja example to showcase the updated Jinja class.
  • Added a fully-working (although rather basic) custom rendering example.
  • Updated the documentation.

Internals

A lot of internal code has been moved. If, for some reason you imported something directly from a module instead of the package, you will unfortunately need to update your imports. New package layout:

  • fasthx.core_decorators: the hx() and page() decorators can now be found here.
  • Jinja-related code has been moved from fasthx.main to fasthx.jinja.
  • get_hx_request() and DependsHXRequest are now in fasthx.dependencies.
  • All utility types have been moved from fasthx.main to fasthx.typing.
  • The internal _append_to_signature() method was moved from fasthx.main to fasthx.utils and renamed to append_to_signature. This method is still for internal use only.

v0.2402.1

16 Feb 23:08
f401fbe
Compare
Choose a tag to compare

PyPI upload fix for v0.2402.0

v0.2402.0

16 Feb 22:06
e782d6a
Compare
Choose a tag to compare

Changes:

  • Jinja now supports non-dict route return values by default. The conversion from such values to valid Jinja contexts (dict) is done by JinjaContextFactory methods with default implementations in JinjaContext.
  • It's possible to set the default Jinja context factory through the Jinja.make_context property.
  • It's possible to override the Jinja instance's context factory on a per-route basis using the make_context argument of the decorator.
  • Jinja got a new hook method _make_response() for response customization.
  • Updated the documentation to highlight these features.

v0.2401.3

24 Jan 19:37
18962f5
Compare
Choose a tag to compare

Features:

  • Show the HX-Request header in the OpenAPI docs of decorated routes, see #5
  • Updated custom rendering example.

v0.2401.2

24 Jan 12:06
2003d8c
Compare
Choose a tag to compare

README and documentation fix.