Skip to main content

Async dependency injection for Python functions

Project description

uncalled-for

Async dependency injection for Python functions.

Declare what your function needs as parameter defaults. They show up resolved when the function runs. No ceremony, no container, no configuration.

from uncalled_for import Depends

async def get_db():
    db = await connect()
    try:
        yield db
    finally:
        await db.close()

async def handle_request(db: Connection = Depends(get_db)):
    await db.execute("SELECT 1")

Features

  • Zero dependencies — standard library only
  • Async-native — built on AsyncExitStack and ContextVar
  • Context manager lifecycle — sync and async generators get proper cleanup
  • Nested dependencies — dependencies can depend on other dependencies
  • Caching — each dependency resolves once per call, even if referenced multiple times

Install

pip install uncalled-for

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uncalled_for-0.1.1.tar.gz (46.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uncalled_for-0.1.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file uncalled_for-0.1.1.tar.gz.

File metadata

  • Download URL: uncalled_for-0.1.1.tar.gz
  • Upload date:
  • Size: 46.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uncalled_for-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4c493da249b10c7ab6dcfcd51b0fca74f5f6d254204a22385b8ccf9bf1f6f869
MD5 4856a3f88bebca8b55d1796f35114e67
BLAKE2b-256 94da3928890fb3d50ccb59f8d5c519f699a3654553bca0ef39de8eabda8092bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for uncalled_for-0.1.1.tar.gz:

Publisher: publish.yml on chrisguidry/uncalled-for

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uncalled_for-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: uncalled_for-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uncalled_for-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f6e5691c105a62d832f97fd615ad8b8cb3c8c9476610d5e95e5ce4b3f20377b7
MD5 ed240edf744f46d3490c817d94d2d30b
BLAKE2b-256 e56fbde0bf2cfc115a28fde0afaa8368265d56d19781d733b1358215e926cd95

See more details on using hashes here.

Provenance

The following attestation bundles were made for uncalled_for-0.1.1-py3-none-any.whl:

Publisher: publish.yml on chrisguidry/uncalled-for

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page