Emmett is a full-stack Python web framework designed with simplicity in mind.
The aim of Emmett is to be clearly understandable, easy to be learned and to be used, so you can focus completely on your product's features:
from emmett import App, request, response
from emmett.orm import Database, Model, Field
from emmett.tools import service, requires
class Task(Model):
name = Field.string()
is_completed = Field.bool(default=False)
app = App(__name__)
app.config.db.uri = "postgres://user:password@localhost/foo"
db = Database(app)
db.define_models(Task)
app.pipeline = [db.pipe]
def is_authenticated():
return request.headers.get("api-key") == "foobar"
def not_authorized():
response.status = 401
return {'error': 'not authorized'}
@app.route(methods='get')
@requires(is_authenticated, otherwise=not_authorized)
@service.json
async def todo():
page = request.query_params.page or 1
tasks = Task.where(
lambda t: t.is_completed == False
).select(paginate=(page, 20))
return {'tasks': tasks}
Documentation
The documentation is available at https://emmett.sh/docs.
The sources are available under the docs folder.
Examples
The bloggy example described in the Tutorial is available under the examples folder.
Status of the project
Emmett is production ready and is compatible with Python 3.9 and above versions.
Emmett follows a semantic versioning for its releases, with a {major}.{minor}.{patch} scheme for versions numbers, where:
- major versions might introduce breaking changes
- minor versions usually introduce new features and might introduce deprecations
- patch versions only introduce bug fixes
Deprecations are kept in place for at least 3 minor versions, and the drop is always communicated in the upgrade guide.
How can I help?
We would be very glad if you contributed to the project in one or all of these ways:
- Talking about Emmett with friends and on the web
- Adding issues and features requests here on GitHub
- Participating in discussions about new features and issues here on GitHub
- Improving the documentation
- Forking the project and writing beautiful code
License
Emmett is released under the BSD License.
However, due to original license limitations, contents under validators and libs are included in Emmett under their original licenses. Please check the source code for more details.
Metadata
Release files for emmett 2.8.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| emmett-2.8.2.tar.gz | 363.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| emmett-2.8.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 628.7 kB
Release files / emmett-2.8.2.tar.gz
| Download URL | emmett-2.8.2.tar.gz |
|---|---|
| Size | 363.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
95b25e0e1d12f439aa1286a2d8b1b39ef7947ac06c61db13ae5d03dfc5cc4599
|
|
BLAKE2b-256 checksum How to use checksums |
7cf7e1bc44e4a934088af046fba40f10642d48dd2cc79f6e89f7becf0a6030cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency logRelease files / emmett-2.8.2-py3-none-any.whl
| Download URL | emmett-2.8.2-py3-none-any.whl |
|---|---|
| Size | 265.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e00454c013c06e4816b674a4b104e11b50459d07d71d73c828e24a3467e1cf08
|
|
BLAKE2b-256 checksum How to use checksums |
a044a7982afe20fbc5b56554af13faccacbb23f38f4e7e00c2e8a9f720ea90ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.
Transparency log