Metadata-Version: 2.1
Name: esmerald_sessions
Version: 0.2.0
Summary: An alternative SessionMiddleware for Esmerald with Pydantic.
Project-URL: Homepage, https://github.com/dymmond/esmerald-sessions
Project-URL: Documentation, https://esmerald-sessions.dymmond.com/
Project-URL: Changelog, https://esmerald-sessions.dymmond.com/release-notes/
Project-URL: Funding, https://github.com/sponsors/tarsil
Project-URL: Source, https://github.com/dymmond/esmerald-sessions
Author-email: Tiago Silva <tiago.silva@dymmond.com>
License-Expression: MIT
License-File: LICENSE
Keywords: api,asgi,esmerald,fastapi,framework,http,machine learning,ml,openapi,pydantic,rest,starlette,websocket
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: AnyIO
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Internet
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.7
Requires-Dist: aiomcache>=0.7.0
Requires-Dist: aioredis<3.0.0,>=2.0.1
Requires-Dist: asyncio<4.0.0,>=3.4.3
Requires-Dist: esmerald>=0.2.10
Requires-Dist: pydantic<2.0.0,>=1.10.2
Requires-Dist: pymemcache<5.0.0,>=4.0.0
Requires-Dist: redis<5.0.0,>=4.3.4
Provides-Extra: all
Requires-Dist: aiomcache>=0.7.0; extra == 'all'
Requires-Dist: aioredis<3.0.0,>=2.0.1; extra == 'all'
Requires-Dist: asyncio<4.0.0,>=3.4.3; extra == 'all'
Requires-Dist: esmerald>=0.5.1; extra == 'all'
Requires-Dist: pydantic<2.0.0,>=1.10.2; extra == 'all'
Requires-Dist: pymemcache<5.0.0,>=4.0.0; extra == 'all'
Requires-Dist: pytz>=2022.6; extra == 'all'
Requires-Dist: redis<5.0.0,>=4.3.4; extra == 'all'
Requires-Dist: tzlocal<5.0,>=4.2; extra == 'all'
Provides-Extra: dev
Requires-Dist: autoflake<3.0.0,>=1.4.0; extra == 'dev'
Requires-Dist: black<23.0.0,>=22.10.0; extra == 'dev'
Requires-Dist: flake8<7.0.0,>=3.8.3; extra == 'dev'
Requires-Dist: isort<6.0.0,>=5.0.6; extra == 'dev'
Requires-Dist: loguru<0.7.0,>=0.6.0; extra == 'dev'
Requires-Dist: mypy==0.991; extra == 'dev'
Requires-Dist: pre-commit<3.0.0,>=2.17.0; extra == 'dev'
Requires-Dist: watchfiles<0.20.0,>=0.16.1; extra == 'dev'
Provides-Extra: doc
Requires-Dist: mdx-include<2.0.0,>=1.4.1; extra == 'doc'
Requires-Dist: mkautodoc<0.3.0,>=0.2.0; extra == 'doc'
Requires-Dist: mkdocs-markdownextradata-plugin<0.3.0,>=0.1.7; extra == 'doc'
Requires-Dist: mkdocs-material<9.0.0,>=8.1.4; extra == 'doc'
Requires-Dist: mkdocs<2.0.0,>=1.1.2; extra == 'doc'
Requires-Dist: mkdocstrings<0.20.0,>=0.19.0; extra == 'doc'
Requires-Dist: pyyaml<7.0.0,>=5.3.1; extra == 'doc'
Provides-Extra: test
Requires-Dist: asyncz[test]==0.1.3; extra == 'test'
Requires-Dist: fakeredis>=1.10.1; extra == 'test'
Requires-Dist: pytest-asyncio<0.20.0,>=0.19.0; extra == 'test'
Requires-Dist: pytest-cov<5.0.0,>=2.12.0; extra == 'test'
Requires-Dist: pytest-mock>=3.10.0; extra == 'test'
Requires-Dist: pytest<8.0.0,>=7.1.3; extra == 'test'
Requires-Dist: requests<3.0.0,>=2.27.0; extra == 'test'
Description-Content-Type: text/markdown

# Esmerald

<p align="center">
  <a href="https://esmerald.dymmond.com"><img src="https://res.cloudinary.com/dymmond/image/upload/v1671718628/esmerald/img/logo-gr_oyr4my.png" alt='Esmerald'></a>
</p>

<p align="center">
    <em>🌟 An alternative SessionMiddleware for Esmerald with Pydantic at its core. 🌟</em>
</p>

<p align="center">
<a href="https://github.com/dymmond/esmerald-sessions/workflows/Test%20Suite/badge.svg?event=push&branch=main" target="_blank">
    <img src="https://github.com/dymmond/esmerald-sessions/workflows/Test%20Suite/badge.svg?event=push&branch=main" alt="Test Suite">
</a>

<a href="https://pypi.org/project/esmerald" target="_blank">
    <img src="https://img.shields.io/pypi/v/esmerald-sessions?color=%2334D058&label=pypi%20package" alt="Package version">
</a>

<a href="https://pypi.org/project/esmerald" target="_blank">
    <img src="https://img.shields.io/pypi/pyversions/esmerald-sessions.svg?color=%2334D058" alt="Supported Python versions">
</a>
</p>

---

**Documentation**: [https://esmerald-sessions.dymmond.com](https://esmerald-sessions.dymmond.com) 📚

**Source Code**: [https://github.com/dymmond/esmerald-sessions](https://github.com/dymmond/esmerald-sessions)

---

## Motivation

Using the default `SessionMiddleware` from Esmerald might not be enough for those applications that need a bit more
than just a simple caching, for example, where to store that same cookie.

This package offers that possibility and allows the extension of it if needed.

Inspired by [Starlette Session](https://github.com/auredentan/starlette-session/blob/master/starlette_session) and with
Pydantic at its core, Esmerald sessions offers the best of both worlds.

## Requirements

* Python 3.7+

## Installation

```shell
$ pip install esmerald-sessions
```

## How to use

Please check the [documentation](https://esmerald-sessions.dymmond.com) how to use the package.
