Skip to content

Releases: dymmond/lilya

Version 0.19.1

Choose a tag to compare

@tarsil tarsil released this 21 Aug 18:52
3021cb5

Changed

  • Root path for auto detection behind reverse proxies.

Fixed

  • Typo in the error for the security.
  • Servers for openapi were not being detected automatically.

Version 0.19.0

Choose a tag to compare

@tarsil tarsil released this 21 Aug 15:11
aab9444

Added

  • Contrib security. This contrib is entirely optional and you don't need to use it but is served as an alternative
    to allow you to use Lilya security out of the box.

Fixed

  • Nested dependencies that require internal parameters.
  • Internals and refactor the OpenAPI spec to match the missing internals.

Changed

  • Refactor the @openapi generator for security and authorization.

Version 0.18.3

Choose a tag to compare

@tarsil tarsil released this 12 Aug 11:59
aa5b158

Added

  • Lilya being agnostic to everything still has a contrib to integrate with the whole ecosystem so a native AsyncZ
    was added to support that same integration in a clean fashion.
  • New Contrib section in the documentation to make it clear the separation of concerns.

Version 0.18.2

Choose a tag to compare

@tarsil tarsil released this 29 Jul 11:11
f6f987a

Added

  • Added support for Query parameter markers.

    • Implemented alias support for query parameters to map custom keys.
    • Introduced cast field in Query for runtime type coercion with validation.
    • Improved error handling for missing and invalid query parameter types.
  • Introduced Header and Cookie parameter markers with value, required, and cast support.

  • Expanded documentation into a comprehensive “Request Parameters” guide covering declaration, options, and real-world examples for all three types.

Version 0.18.1

Choose a tag to compare

@tarsil tarsil released this 25 Jul 10:41
c5080bf

Changed

  • Update directives to reflect the new settings.

Fixed

  • Cache dependency on json native library.

Version 0.18.0

Choose a tag to compare

@tarsil tarsil released this 21 Jul 16:25
ee1ad41

Added

  • Support for native cache with default to InMemory.
  • Add support for relative urls from the URL datastructure.
  • Support for OpenAPI on Controllers by applying internal identity descriptors.

Changed

In the past, Lilya was using dataclass to manage all the settings but we found out that can be a bit combersome for a lot
of people that are more used to slighly cleaner interfaces and therefore, the internal API was updated to stop using @dataclass and
use directly a typed Settings object.

  • Replace Settings to stop using @dataclass and start using direct objects instead.

Example before

from dataclasses import dataclass, field
from lilya.conf.global_settings import Settings


@dataclass
class MyCustomSettings(Settings):
    hosts: list[str] = field(default_factory=lambda: ["example.com"])

Example after

from lilya.conf.global_settings import Settings


class MyCustomSettings(Settings):
    hosts: list[str] = ["example.com"]

This makes the code cleaner and readable.

  • Apply AnyIO to DataUpload instead of using BinaryIO.

Version 0.17.1

Choose a tag to compare

@tarsil tarsil released this 18 Jul 22:07
9c8b32f

Changed

  • Dual‑mode support in run_sync: Now accepts either an async function with args or a standalone coroutine object.
  • Input normalization: Uses inspect to detect and wrap calls into a zero‑argument coroutine factory.
  • Seamless execution: Drives work on the main thread via anyio.run,
    with a clean fallback to ThreadPoolExecutor if an event loop is active.
  • Error clarity: Raises a precise TypeError when the argument is neither a coroutine function nor object.
  • Simplified API: Eliminates nested lambdas by centralizing logic into a single wrapper_fn
    passed to anyio.run.

Version 0.17.0

Choose a tag to compare

@tarsil tarsil released this 18 Jul 10:20
6416f26

Added

  • Missing validation that was supposed to go on the version 0.16.10 and it was not pushed.

Changed

  • Mark http_exception in the Exception as async to avoid thread creation.
  • Replace asyncio.iscoroutinefunction with inspect.iscoroutinefunction.
  • Replace asyncio in run_sync with anyio.
  • Refactor run_sync from lilya.compat.

Version 0.16.10

Choose a tag to compare

@tarsil tarsil released this 17 Jul 13:52
97b5a20

Fixed

  • infer_body with complex dependencies and path params evaluation when infer_body=True

Version 0.16.9

Choose a tag to compare

@tarsil tarsil released this 13 Jul 15:02
501a7ec

Changed

  • Unify dependency injection logic for both Controller and handlers.
  • Unify logic for body inferring for Controller and handlers.