Releases: dymmond/lilya
Releases · dymmond/lilya
Version 0.6.0
Fixed
add_arguments
from BaseDirective to not raiseNotImplementedError
exception.
Version 0.5.0
Added
settings_module
also supports import as string
Example
from lilya.apps import Lilya
from lilya.requests import Request
from lilya.routing import Path
async def home(): ...
app = Lilya(
routes=[Path("/", handler=home)],
settings_module="myapp.configs.settings.AppSettings",
)
Version 0.4.0
Added
encoders
directly embed in any response. Theencoders
is a list oflilya.encoder.Encoder
type
of objects that can be passed directly into the response. SInce the responses can be independent ASGI applications,
the encoders can be passed directly there.
Version 0.3.5
Changed
- Documentation improvements.
Fixed
- Typo in the create project directive urls file descripton.
Version 0.3.4
Added
- Extra validations to handle the events.
Version 0.3.3
Added
settings_module
when passed in the instance of Esmerald will take precedence
over the global settings, removing the need of using constantly theESMERALD_SETTINGS_MODULE
.ApplicationSettingsMiddleware
as internal that handles with thesettings_module
provided and maps
the context of the settings.
Example of the way the settings are evaluated
from dataclasses import dataclass
from lilya.apps import Lilya
from lilya.conf import settings
from lilya.conf.global_settings import Settings
from lilya.responses import Ok
from lilya.routing import Include, Path
async def home():
title = getattr(settings, "title", "Lilya")
return Ok({"title": title, "debug": settings.debug})
@dataclass
class NewSettings(Settings):
title: str = "Settings being parsed by the middleware and make it app global"
debug: bool = False
@dataclass
class NestedAppSettings(Settings):
title: str = "Nested app title"
debug: bool = True
app = Lilya(
settings_module=NewSettings,
routes=[
Path("/home", handler=home),
Include(
"/child",
app=Lilya(
settings_module=NestedAppSettings,
routes=[
Path("/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
directiveviews.py
file generated renamed tocontrollers.py
.
Version 0.3.2
Fixed
- Missing requirements needed for the
pip install lilya[cli]
Version 0.3.1
Added
- New
await request.data()
andawait request.text()
. media
toRequest
object returning a dict containing the content type media definitions in a dictionary
like format.
Version 0.3.0
Added
- Allow
Encoder
andTransformer
to be registered without forcing to be
instances.
Changed
- Add
__slots__
toRequest
.
Version 0.2.3
Added
- Alias
Middleware
to be imported fromlilya.middleware
.
Fixed
message
in responses was not passing the proper headers.