Releases: dymmond/esmerald
Releases · dymmond/esmerald
Version 3.6.7
Added
before_request
andafter_request
WebSocketGateway handler added.before_request
andafter_request
added as default to the settings. This was not required
as the settings loading system of Esmerald defaults values but this should be added to the settings
for consistency reasons of the framework.
Changed
- Reverse order on Gateway
after_request
.
Fixed
override_settings
was not taking into account async functions.
Version 3.6.6
Added
Esmerald
,Include
,Host
,Gateway
,HTTPHandler
andRouter
now supportbefore_request
andafter_request
life cycles. This can be particularly useful to those who want to perform actions before and after
a request is performed. E.g.: Telemetry.- Missing before and after request in the handler helpers.
BaseController
alias for theView
. This serves a preparation for the internal renaming.
Fixed
- Internal permission checking for Lilya and Esmerald was not extended to
View
base of Controllers. - Inheritance extending previous permissions on Controllers.
Version 3.6.5
Added
- Esmerald now also supports Pure ASGI Permissions. That means you can pass the same
style of permissions as the ones used in Lilya as alternative to the native Esmerald permission
system. - New Lilya permissions documentation section.
Changed
- Permissions section moved and renamed to Esmerald Permissions.
Fixed
set_cookie
was causing an issue when multiple were being generated.
Version 3.6.4
Added
- Support for
async
jinja templates. - Missing
esmerald --version
command to the cli.
Changed
- Removed hard dependency of
nest_asyncio
. - Use ORJSON as parsing json.
Fixed
- Internal pattern for OAuth2 form password.
- Fixed internal typings of passthrough in Response and TemplateResponse.
- Esmerald permissions on Include were being overriten by Lilya too early.
Version 3.6.3
Added
- Requires() as a new independent way to manage dependencies.
- A more thorough explanation about the Security(), how to use it and examples.
Changed
- Expose
Controller
inesmerald
as alternative toAPIView
. This was already available to use but not directly
accessible viafrom esmerald import Controller
.
Fixed
- Fix escaped " in TemplateResponse.
- Fix TemplateResponse's auto-detection of the media-type when used directly.
- Don't mangle strings by default for other media-types than json.
- Don't mangle returned responses.
- Reverse lookup or Class based views and nested naming using
path_for
.
Version 3.6.2
Added
name
parameter to StaticFiles config allowing to reverse lookup internally.- Support for Python 3.13
- Support for
redirect_slashes
in the Include. status_code
to ResponseContainer to be parameter detectable.
Changed
- Cleanup Response.
- Move
transform
method to lilya but provide speedup in a mixin. - Esmerald
Response
behaves likemake_response
in lilya with a plainResponse
. - Special handle None (nothing is returned) in
Response
. It shouldn't map tonull
so not all handlers have to return a value.
Fixed
data
andpayload
special kwargs are now allowed when a not-bodyless method is available for the handler. They default to None.bytes
won't be encoded as json when returned from a handler. This would unexpectly lead to a base64 encoding.- SessionConfig has a unneccessarily heavily restricted secret_key parameter.
- Gracefully handle situations where cookies are None in
get_cookies
. - Fix validation of parameters requiring a body.
Version 3.6.1
Added
- Allow passing extensions as string.
Changed
- Change
media_type
parameter ofResponse
fromMediaType.JSON
toNone
to match the default of the underlying lilya Response.
Fixed
- OpenAPI responses.
- Enum definitions.
Version 3.6.0
Added
- New
Security
section with all the explanations how to use the internals of Esmerald. - Added new
Security
object used for security dependencies using Esmeraldesmerald.security
package.
Changed
- Updates from python-jose to PyJWT as dependency contrib library.
- Remove OpenAPI security as they where redundant and not 100% compliant with OpenAPI security.
- Allow the new Lilya StaticFiles allowing to provide multiple directories with fallthrough behaviour.
- Deprecate support for Mako.
- Internal code organisation and cleaning.
Fixed
- Fix cli detection of wrapped esmerald instances or different ASGI servers.
- Allow passing multiple
StaticFilesConfig
configurations in a tuple. - Allow passing multiple directories to
StaticFiles
by removing the stringification inStaticFilesConfig
so a fallthrough behavior can be established.
Note: this requires a newer lilya version.
Version 3.5.1
Changed
- Use assigned encoders at requests for json_encoder.
- Allow overwriting the
LILYA_ENCODER_TYPES
for different encoder sets or tests. - Use more orjson for encoding requests.
Version 3.5.0
Added
- Allow passing HTTP/WebSocket handlers directly to routes. They are automatically wrapped in Gateways-
- Allow passing HTTP/WebSocket handlers directly to routes as alternative to defining a Gateway/WebsocketGateway.
Changed
- Esmerald is now under the License BSD-3. This aims to protect the maintainers and contributors and
the license will be now the final. - Pluggables can now receive plain Extensions and Extension classes.
- Rename of Pluggables to Extensions:
- Breaking: The
pluggables
attribute and parameter are now renamed toextensions
. The old name is still available but deprecated. - Breaking: The
add_pluggable
method is now renamed toadd_extension
. The old name is still available but deprecated. - The documentation will refer now to extensions with
Pluggable
as a setup wrapper.
- Breaking: The
Fixed
- Directive
runserver
now allows the use of ASGI middlewares. - Remove the dependency of an app being an
esmerald
instance forrunserver
. - Check the environment variables instead of settings variable for esmerald settings in the runserver.