esmerald

Esmerald framework - Highly scalable, performant, easy to learn, easy to code and for every sizeable and complex application

MIT License

Downloads
14.8K
Stars
297
Committers
14

Bot releases are visible (Hide)

esmerald - Version 2.2.0

Published by tarsil about 1 year ago

Changed

  • Updated OpenAPIConfig documentation.
  • Deprecate v1. Esmerald prior to version 2.0 is no longer supported.

Added

  • Allow importing from from string into Factory. #179 by @tarsil.
  • New security objects for OpenAPI documentation.
  • New [OpenAPI][https://esmerald.dev/ openapi.md] documentation describing the ways of using it and what is available with examples.
  • New [SimpleAPIView](https://esmerald.dev/ routing/apiview.md#simpleapiview) supported.
  • New CreateAPIView supported.
  • New ReadAPIView supported.
  • New [DeleteAPIView](https://esmerald.dev/ routing/apiview.md#deleteapiview) supported.
  • New [ListAPIView](https://esmerald.dev/ routing/apiview.md#listapiview) supported.

Fixed

  • OpenAPI security was not working as intended.
esmerald - Version 2.1.0

Published by tarsil about 1 year ago

Changed

  • Update base requirements and pydantic to 2.4.

Added

  • New Factory added for dependency injection allowing to pass any time via Factory instantiation. PR #163 by @ShahriyarR.
  • Support for Mongoz showcasing how to integrate Esmerald with an ODM (MongoDB).
  • Documentation about how to use Esmerald contrib with Mongoz.

Fixed

  • Typos in the documentation.
  • Pydantic 2.4 compatibility and updating to new names for the functions.
esmerald - Version 2.0.6

Published by tarsil about 1 year ago

Changed

  • Updated requirements for Pydantic and Starlette.
  • Removed unnecessary dependencies.

Added

  • Support for async has_permission on Permissions.
  • Add new landing page.

Fixed

  • email-validator error being thrown from openapi-schemas-pydantic requirement.
esmerald - Version 2.0.5

Published by tarsil about 1 year ago

Changed

  • Updated the way esmerald client operates internally.
  • Updated internal minimum requirements.

Fix

  • Regression in OpenAPI when adding middleware to Gateway or HTTPHandler. When a middleware
    was added, the OpenAPI would not generate the docs for it. The API would still work but not OpenAPI
    docs.
esmerald - Version 2.0.4

Published by tarsil about 1 year ago

Changed

  • Updated functional internal crypto to only use the system random.
  • Cleaner codebase for the application settings.
  • Updated version of Asyncz to be at least 0.5.0.

Added

  • Custom exception handlers, from esmerald.exception_handlers import value_error_handler.
  • New native exception handler for pydantic v2 Validation errors in general.
  • Dataclasses (normal and Pydantic dataclases) are now supported as Esmerald Responses.
  • Support for OpenAPI Webhooks.
  • Improved Responses documentation with examples using Pydantic BaseModel and dataclasses.
  • OpenAPI Spotlight Elements documentation. When starting the application, accesing the default /docs/elements.
  • Support for Edgy ORM. Docs here.

Fixed

  • Removed old pydantic v1 syntax from tests and applications.
  • add_include() that wasn't generating signature models upon import.
  • OpenAPI query params with defaults weren't loading properly.
esmerald - Version 2.0.3

Published by tarsil over 1 year ago

This addition was supposed to go in the release 2.0.2 but somehow it was missed in the merge of
the pull requests. It is not a bug fix but instead is a simple new
directive that can be useful for those who like using the command-line.
It is important to understand that this support won't be available on releases of Esmerald
1.X.

Added

esmerald - Version 2.0.2

Published by tarsil over 1 year ago

Changed

  • Updated Field, Form and Body from esmerald.params with current defaults.
  • Removed redundant cast from File to Body as it is a subclass.

Added

  • Added strict and max_digits esmerald params esmerald.params.
  • Deprecate example as OpenAPI 3.10 supports examples. Use examples instead of example.

Fixed

  • UploadFile sending as a list and as normal.
    This got broken when the migration to pydantic 2.0 happened.
  • File and Form from esmerald.params now accept annotation.
  • OpenAPI for UploadFile as single and list now being parsed as a model.
esmerald - Version 2.0.1

Published by tarsil over 1 year ago

2.0.1

This is a small fix into the parser of lists for the OpenAPI specification.

Fixed

esmerald - Version 2.0.0

Published by tarsil over 1 year ago

!!! Warning
When upgrading Esmerald to version 2, this also means the use of Pydantic 2.0 at its core as well as corresponsing technologies
already updated to version 2 of Pydantic (Saffier, Asyncz...).
If you still wish to continue to use Pydantic 1 with Esmerald, it is recommended to use Esmerald prior to version 2.0 which it will
be maintained for a shor period but we strongly recommend to always use the latest version.

Changed

  • Major update of the core of Esmerald from Pydantic v1 to Pydantic v2.
  • Changed deprecated functions such as validator and root_validator to field_validator and model_validator.
  • Transformers no longer support custom fields. Pydantic natively handles that.
  • EsmeraldSignature updated for the new version of the FieldInfo.
  • params reflect the new Pydantic FieldInfo.
  • Deprecated OpenAPIView in favour of the new OpenAPI documentation generator.
  • Changed OpenAPI config to reflect the new generation of OpenAPI documentation.
  • Internal data field is now returning Body type parameter making it easier to integrate with Pydantic 2.0.
  • General codebase cleanup.
  • Removed old OpenAPI document generator in favour to the newest, fastest, simplest and more effective approach in v2.
  • Remove the support of pydantic 1.0. Esmerald 2+ will only support pydantic 2+.

Added

  • OpenAPI support for OAuth2.
esmerald - Version 1.3.0

Published by tarsil over 1 year ago

Changed

  • OpenAPI imports and removed unused dependencies.
  • Deprecate pydantic_factories in favour of pyfactories.
  • Dropped support for Tortoise ORM natively.

Fixed

  • Rename scripts/format to scripts/lint for consistency.
  • get_hasher from contrib fixed with the return value of the algorithm.
  • Typing of the codebase updated.
esmerald - Version 1.2.5

Published by tarsil over 1 year ago

Fixed

  • Removed deprecated functions allowing the mount and host
  • Fixed show_urls for openapi specification
esmerald - Version 1.2.4

Published by tarsil over 1 year ago

Changed

  • Updated pyproject.toml keywords.
  • Updated to the latest Starlette 0.28.0.
  • Exception handler logic refactored.
esmerald - Version 1.2.3

Published by tarsil over 1 year ago

Fixed

esmerald - Version 1.2.2

Published by tarsil over 1 year ago

Fixed

  • Exception handler message when run directive does not find custom directive properly.
esmerald - Version 1.2.1

Published by tarsil over 1 year ago

Fixed

  • Lifespan generator for the run directive.
esmerald - Version 1.2.0

Published by tarsil over 1 year ago

Changed

  • Updated native requirements of the project.
  • Removed old core management in favour of click.
  • Deprecated management package in favour of directives. #83.
  • Deprecate esmerald-admin. Now you can simply call esmerald with the same directives
    as before. Simplification via command line #86.
    • Example:
      • esmerald createproject <NAME>
      • esmerald createpapp <NAME>

Added

  • Support for Ruff.
  • New esmerald core admin management directives #83.
  • New directives client.
  • Added rich for command line colours, tables.
  • New native directives:
esmerald - Version 1.1.0

Published by tarsil over 1 year ago

Changed

  • Updated support for Starlette 0.26.1
  • Updated support for Lifespan [./lifespan.md] events
  • Requests url_for parsing the URL type to return string on parsing #69.
  • Esmerald official documentation also available on https://esmerald.dev #70.
  • Updated Github CI to deploy also to https://esmerald.dev #73

Added

  • Internal implementation of on_startup and on_shutdown. #74.
  • Added new internal implementation of on_event and add_event_handler functions. #74.
  • Missing documentation about the background tasks #71
  • Documentation for lifespan events #72
  • Added condition to allow cached_properties from the EsmeraldAPISettings and in the settings without raising an Exception.
  • New handlers. OPTIONS, HEAD and TRACE. Check out the handlers for more details.

Fixed

  • New Starlette Lifespan #75. This is now also available to be done in the same way Starlette does. Internally Esmerald also implements the on_startup and on_shutdown but that is an unique implementation. This implementation follows the same pattern as the official Starlette Bridge
esmerald - Version 1.0.0

Published by tarsil over 1 year ago

Changed

  • ChildEsmerald now supports the parent which means it can share middlewares and interceptors
    across main application and children.

    !!! Note
    Prior to version 0.16.0, sharing resources between Esmerald and ChildEsmerald was not allowed
    and it needed to be treated as completely isolated application. In the version 0.16.0 you can
    still isolate them but you can also share resources.

esmerald - 0.15.0

Published by tarsil over 1 year ago

Added

  • Esmerald Pluggables #60.

    This is the feature for the esmerald ecosystem that allows you to create plugins and extensions for any application
    as well as distribute them as installable packages.

  • New add_child_esmerald allowing adding via function, ChildEsmerald #61.

    Add child esmeralds via functions once the application is created and dynamically.

esmerald - Version 0.14.0

Published by tarsil over 1 year ago

Added

  • Brand new support for Saffier. A brand new ORM running
    on the top of SQLAlchemy in an async fashion.
  • New base_user and middleware support for Saffier with Esmerald.
  • New docs regarding the Saffier integration.
    Those include also an example how to use it.

Changed

  • Breaking change - Removed support for python 3.7. This was blocking the technology from
    evolving at a normal pace and blocking security patches from being properly applied.

Fixed

  • Old package versioning conflicts.