Skip to content

Releases: dymmond/ravyn

Version 3.8.1

02 Jun 14:32
385fc3f

Choose a tag to compare

Changed

  • Update to latest mypy and removed old code.
  • Updated the internals to support the latest Lilya version.
  • Make sure the str types when annotations are passed and parsed are discovered by get_type_hints when the create signature is triggered.

Fixed

  • Documentation references.

Version 3.8.0

28 May 13:45
69366cd

Choose a tag to compare

Important notes

Due to advanced changes in the internals of Esmerald, this release is a major one and it will be under the version 3.8
and it will follow Lilya's integration which means, we will be dropping the support for Python 3.9 and focus solely on 3.10+
for syntaxes and tooling.

Added

  • Integration with the newest client, Sayer. This brings a whole new experience to the Esmerald
    cli and allows to have a more interactive experience with the framework.

Changed

  • Drop support for Python 3.9 due technology advancements

Version 3.7.8

12 May 10:18
3.7.8
9520430

Choose a tag to compare

Fixed

  • Bump Lilya version
  • Removed constraints for rich.
  • Fixed runserver extra display message.
  • Fix for new click versions.
  • Fix redis cache.
  • Fix memory cache (it was much slower as it had to be).

Version 3.7.7

27 Apr 08:14
4d8dc5d

Choose a tag to compare

Changed

  • Added warning message to runserver explaining the usage in development mode only.
  • Lazy evaluate the environment variable for the settings import. This relaxes the restraints on the import order.
    You can e.g. import lilya settings before adjusting ESMERALD_SETTINGS_MODULE as long as you don't access the settings object.

Fixed

  • Typing for the handlers (@get, @post...) that was causing mypy to give false positives.
  • Documentation examples.
  • Documentation references.
  • encoders ENCODER_TYPES was a static snapshot of a ContextVar. Leverage a TransparentCage instead.

Version 3.7.6

23 Apr 10:10
d479f2d

Choose a tag to compare

Note

This was supposed to go on the previous version 3.7.5 and it was missed and since it is now available, at least we add some improvements on the logging.

Changed

  • esmerald createproject <PROJECT-NAME> --edgy Now generates the settings also plugged with DatabaseSettings automatically.
  • Bump internal Lilya version to 0.13.0 minimum.
  • esmerald.logging is now delegated to the thread-safe version of lilya.logging. Nothing changes in the Esmerald
    interface.

Version 3.7.5

22 Apr 14:01
4aa4ca2

Choose a tag to compare

Added

  • New LoggingConfig for the logging configuration. This now allows you to setup
    your own logging system and plug it with anything you want and then use the global logger from Esmerald to log your
    messages by simply using:
from esmerald.logging import logger

logger.info("My message in my logger.")
  • StandardLogging as the new default logging system of Esmerald, removing the dependency of loguru and make this one
    optional.

!!! Warning
If you use loguru and this might now "break" your code, simple run pip install loguru and add it into your dependencies.

  • New esmerald createproject --edgy <PROJECT-NAME> directive to create a new project with the scaffold for Edgy ORM.

Changed

  • As part the continuous effort to make Esmerald cleaner, the esmerald.protocols now lives inside esmerald.core.protocols.
    The only thing that needs changing its just that small import. The rest remains the same.

Fixed

  • Typing for handler on Gateway/WebSocketGateway.
  • Partial imports on handlers.

Version 3.7.4

15 Apr 13:52
e19d5fb

Choose a tag to compare

Fixed

  • Partial imports on CSRF typing was causing the app to sometimes crash.
  • Partial imports in types was causing the asyncz tests to crash.

Changed

  • Move router methods in a mixin, so we have it in only two places.

Version 3.7.3

13 Apr 13:15
1d5b927

Choose a tag to compare

Changed

  • Bump Lilya version.
  • Update settings loading module with Monkay.
  • Change base of Esmerald to BaseLilya.
  • whead renamed to whhead for naming consistency.
  • Monkay lazy loading now its at the __init__ of Esmerald.

Deprecated

  • Saffier was the beginning of a big journey to what it later on became Edgy
    and for that reason, it makes no longer sense of keeping the support where Saffier is not growing as the same as Edgy.

Note

Saffier is under the name of its creator and he is more than happy to donate the ORM and the pypi
package to anyone who would like to continue maintaining it.

Breaking Change

  • This is not 100% sure but since passlib stopped maintenance a long time ago, since python 3.13 some other issues will
    arise and therefore the decision to move away from it to bcrypt. Unfortunately this means that the password hashing will not be compatible with the previous versions of Esmerald and
    we know this might not be ideal but this is the best way to move forward due to security constraints.

Version 3.7.2

07 Apr 08:26
1915667

Choose a tag to compare

Changed

  • esmerald shell now also imports the reverse function from Lilya to make it simpler to test in the command-line.
  • esmerald.routing.views to import the APIView must now be done via esmerald.routing.apis. The reason for this change
    it was to keep the consistency in the codebase. Previously it was just an alias.

Fixed

  • esmerald show_urls was displaying an extra parameter in the reverse lookup.

Removed

  • memory_cache as this is not documented and should not be used. This is a leftover from internal testing.

Version 3.7.1

04 Apr 17:15
340a97a

Choose a tag to compare

!!! Warning
This release introduces some import changes as part of the ongoing internal restructure of Esmerald.
This will be done in different phases during different releasing but you can already see the Changed
section to understand where the new imports must be done. Very likely that you won't need to do this but
those serve as a reference.

Added

  • When using Requires and a callable is not passed, Esmerald will generate a lambda callable automatically.

  • New [experimental](https://esmerald.dev/experimental/ documentation section with the new features that are being tested.

  • New gRPC documentation section with the new gRPC functionality.

  • New wrap_middleware from esmerald.utils.middleware. This serves as alternative when setting up a middleware
    which also allows the fully module naming to be passed.

  • New [Learning and Examples](https://esmerald.dev/guides/ section. This section will be growing in time and will help newcomers
    to understand a bit more about Esmerald.

    from esmerald.utils.middleware import wrap_middleware

Experimental

  • GRPC - Support for GRPC endpoints and introduction to the newly GrpcGateway wrapper. This functionality
    is experimental to test in the next releases. If successful, it will be marked as final.

Fixed

  • Bump Pydantic internal version to 2.11+.

Changed

The following must be updated if you are using any of these.

This is now part of the phase migration of modules to make them more consistent and easier to use.

  • esmerald.datastructures is now esmerald.core.datastructures.
  • esmerald.caches is now esmerald.core.caches.
  • esmerald.config is now esmerald.core.config.
  • esmerald.interceptors is now esmerald.core.interceptors.
  • esmerald.transformers is now esmerald.core.transformers.