Cotyledon provides a framework for defining long-running services.
It provides handling of Unix signals, spawning of workers, supervision of children processes, daemon reloading, sd-notify, rate limiting for worker spawning, and more.
Free software: Apache license
Documentation: http://cotyledon.readthedocs.org/
Why Cotyledon
This library is mainly used in OpenStack Telemetry projects, in replacement of oslo.service. However, as oslo.service depends on eventlet, a different library was needed for project that do not need it. When an application do not monkeypatch the Python standard library anymore, greenlets do not in timely fashion. That made other libraries such as Tooz or oslo.messaging to fail with e.g. their heartbeat systems. Also, processes would not exist as expected due to greenpipes never being processed.
oslo.service is actually written on top of eventlet to provide two main features:
periodic tasks
workers processes management
The first feature was replaced by another library called futurist and the second feature is superseded by Cotyledon.
Unlike oslo.service, Cotyledon have:
The same code path when workers=1 and workers>=2
Reload API (on SIGHUP) hooks work in case of you don’t want to restarting children
A separated API for children process termination and for master process termination
Seatbelt to ensure only one service workers manager run at a time.
Is signal concurrency safe.
Support non posix platform, because it’s built on top of multiprocessing module instead of os.fork
Provide functional testing
And doesn’t:
facilitate the creation of wsgi application (sockets sharing between parent and children process). Because too many wsgi webserver already exists.
oslo.service being impossible to fix and bringing an heavy dependency on eventlet, Cotyledon appeared.
Metadata
Release files for cotyledon 2.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cotyledon-2.2.0.tar.gz | 29.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cotyledon-2.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.6 kB
Release files / cotyledon-2.2.0.tar.gz
| Download URL | cotyledon-2.2.0.tar.gz |
|---|---|
| Size | 29.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5f9dcc4cfb8124e6550119bb4f6fbda8628bbe653804015b76c392fa5f208009
|
|
BLAKE2b-256 checksum How to use checksums |
de9ee7856beede7f8e6c5616ea0b692b279295febbdf301abb48dcd3b05424fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 23, 2025.
Transparency logRelease files / cotyledon-2.2.0-py3-none-any.whl
| Download URL | cotyledon-2.2.0-py3-none-any.whl |
|---|---|
| Size | 28.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
130c04c339a2f94f482135c10dcfc83c7f7b4daca3c938a6101578b658b75017
|
|
BLAKE2b-256 checksum How to use checksums |
0933fb4a45f4bdde90934955a7c4244d4ffbedccaeaaa838f29714b45a2112e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 23, 2025.
Transparency log