Releases: dymmond/ravyn
Version 3.8.1
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_hintswhen the create signature is triggered.
Fixed
- Documentation references.
Version 3.8.0
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
Fixed
- Bump Lilya version
- Removed constraints for rich.
- Fixed
runserverextra 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
Changed
- Added warning message to
runserverexplaining 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 adjustingESMERALD_SETTINGS_MODULEas long as you don't access the settings object.
Fixed
Version 3.7.6
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> --edgyNow generates the settings also plugged withDatabaseSettingsautomatically.- Bump internal Lilya version to 0.13.0 minimum.
esmerald.loggingis now delegated to the thread-safe version oflilya.logging. Nothing changes in the Esmerald
interface.
Version 3.7.5
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.")StandardLoggingas the new default logging system of Esmerald, removing the dependency ofloguruand 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.protocolsnow lives insideesmerald.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
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
Changed
- Bump Lilya version.
- Update settings loading module with Monkay.
- Change base of Esmerald to BaseLilya.
wheadrenamed towhheadfor 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 thepasswordhashing 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
Changed
esmerald shellnow also imports thereversefunction from Lilya to make it simpler to test in the command-line.esmerald.routing.viewsto import the APIView must now be done viaesmerald.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_urlswas displaying an extra parameter in the reverse lookup.
Removed
memory_cacheas this is not documented and should not be used. This is a leftover from internal testing.
Version 3.7.1
!!! 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
Requiresand 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_middlewarefromesmerald.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
GrpcGatewaywrapper. 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.datastructuresis nowesmerald.core.datastructures.esmerald.cachesis nowesmerald.core.caches.esmerald.configis nowesmerald.core.config.esmerald.interceptorsis nowesmerald.core.interceptors.esmerald.transformersis nowesmerald.core.transformers.