Version 3.1.0
Added
settings_modulewhen passed in the instance of Esmerald will take precedence
over the global settings, removing the need of using constantly theESMERALD_SETTINGS_MODULE.ApplicationSettingsMiddlewareas internal that handles with thesettings_moduleprovided 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
createappdirectiveviews.pyfile generated renamed tocontrollers.py.- Make the
EsmeraldAPISettingshashable. - Remove
settings_configin favor of thesettings_module. - Bump Lilya version to 0.3.3.