Skip to content

Releases: dymmond/esmerald

Version 3.1.1

10 Apr 19:02
40f93a8
Compare
Choose a tag to compare

Added

  • --with-basic-controller flag in createapp directive. #PR 284 by @tarsil.

Changed

  • Documentation improvements.

Fixed

  • Typo in the create project directive urls file descripton.
  • operation_id being generated to include the class based view name when coming from class based views handlers. #PR 289 by @tarsil.

Version 3.1.0

04 Apr 15:15
f028d62
Compare
Choose a tag to compare

Added

  • settings_module when passed in the instance of Esmerald will take precedence
    over the global settings, removing the need of using constantly the ESMERALD_SETTINGS_MODULE.
  • ApplicationSettingsMiddleware as internal that handles with the settings_module provided and maps
    the context of the settings.

Example of the way the settings are evaluated

from esmerald import Esmerald, EsmeraldAPISettings, Gateway, Include, JSONResponse, get, settings


@get()
async def home() -> JSONResponse:
    return JSONResponse({"title": settings.title})


class NewSettings(EsmeraldAPISettings):
    title: str = "Main app"


class NestedAppSettings(EsmeraldAPISettings):
    title: str = "Nested app"


app = Esmerald(
    settings_module=NewSettings,
    routes=[
        Gateway("/home", handler=home),
        Include(
            "/child",
            app=Esmerald(
                settings_module=NestedAppSettings,
                routes=[
                    Gateway("/home", handler=home),
                ],
            ),
        ),
    ],
)

In the context of the controller home, based on the path being called, it should return the
corresponding value of the title according to the settings of the app that is included.

Changed

  • createapp directive views.py file generated renamed to controllers.py.
  • Make the EsmeraldAPISettings hashable.
  • Remove settings_config in favor of the settings_module.
  • Bump Lilya version to 0.3.3.

Fixed

Version 3.0.0

25 Mar 10:25
be3e27e
Compare
Choose a tag to compare

Changed

  • Moved from beta v3 version to the official v3 of Esmerald fully supporting Lilya.

Version 3.0.0b2

12 Mar 17:11
d18e321
Compare
Choose a tag to compare

Added

  • Allow the use from lilya.middleware import Middleware as alternative to DefineMiddleware,

Changed

  • Cleaned the ServerErrorMiddleware from the lilya import.

Version 3.0.0b1

12 Mar 14:02
11f8976
Compare
Choose a tag to compare

!!! Warning
This is a major release and it will be under the the version 3 of Esmerald.
You should not be affected but in case you are, please report any issues
so we can correct it.

Added

  • Support for Lilya and drop Starlette.

Changed

  • CSRFConfig cookie_secure renamed to secure.
  • CSRFConfig httponly renamed to httponly.
  • CSRFConfig cookie_samesite renamed to samesite.
  • CSRFConfig cookie_domain renamed to domain.
  • CSRFConfig cookie_secure renamed to secure.
  • Removed support for the BasicMiddleware as this can be imported from any other ASGI application.

Internal

In the past, Middleware was being used but with the introduction of Lilya, now is DefineMiddleware that
is applied.

from lilya.middleware import DefineMiddleware
  • The PlainTextResponse was renamed to PlainText.

Version 2.7.4

07 Mar 19:05
7b2e9d6
Compare
Choose a tag to compare

Fixed

  • WSGIMiddleware optional was being called in the core middlewares.

Version 2.7.3

06 Mar 10:28
0483272
Compare
Choose a tag to compare

Added

  • Allowing app to load as a string as alternative to an object inside the Include

Changed

  • Internal code for lazy objects.
  • Make a2wsgi optional for WSGIMiddleware.
  • httpx is now only a depedency for testing.
  • Cleared some core dependencies.

Version 2.7.2

04 Feb 23:23
e023a6c
Compare
Choose a tag to compare

Changed

  • Security update for python multipart.
  • Update minimum Starlette requirement.

Version 2.7.1

23 Jan 19:20
38e8fb6
Compare
Choose a tag to compare

Added

  • settings_module as replacement for settings_config.
  • Deprecation warning for settings_config in favour of settings_module parameter.

Changed

  • Added improvements to the scaffold generated by esmerald createproject in the tests.
  • Added extra origin type for when a MsgSpec Struct is passed in the payload of a handler.

Fixed

  • OpenAPI Tags not loading from top down if handler had tags=None.
  • TestClient to allow passing pluggables inside create_client.

Version 2.7.0

19 Jan 11:03
d3afc06
Compare
Choose a tag to compare

Changed

  • Token.decode() is now a classmethod. This allows to subclass the Token and add extra fields into the model
    allowing operations like encode() with extra claims. This can be useful for situations like claiming a refresh or access token.
  • Internal handlers decorators are now wrapped in a function decorator. This does not affect anything but allows more control over the middleware
    calls to async ASGI applications.

Fixed

  • OpenAPI when overriding the response for the default status codes of the handlers.