Skip to main content

Dependency injection for typer

Project description

typer-injector

PyPI - Version PyPI - Python Version


typer-injector adds FastAPI-style dependency injection to Typer.

Table of Contents

Installation

pip install typer-injector

Usage

Example:

import socket
from typing import Annotated, TypeAlias

import typer
from typer_injector import Depends, InjectingTyper


app = InjectingTyper()


def address_dependency(
    host: Annotated[str, typer.Option()],
    port: Annotated[int, typer.Option()],
) -> tuple[str, int]:
    return host, port


Address: TypeAlias = Annotated[tuple[str, int], Depends(address_dependency)]


@app.command()
def send_message(message: str, address: Address) -> None:
    """Send a message to the specified address."""
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
        sock.connect(address)
        sock.send(message.encode())


@app.command()
def receive_message(address: Address) -> None:
    """Listen for a message at the specified address."""
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
        sock.bind(address)
        sock.listen(1)
        conn, _ = sock.accept()
        with conn:
            data = conn.recv(1024)
            print(data.decode())


if __name__ == '__main__':
    app()

License

typer-injector is distributed under the terms of the MIT license.

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

typer_injector-0.1.0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

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

typer_injector-0.1.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file typer_injector-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for typer_injector-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2a188a655e06d7d74292814a8e67c5744ba272fff25f3f280174f0053176ad32
MD5 674e4ffbc327745f3215d9a6d66d9174
BLAKE2b-256 9e0fed01d4b3d42253099b2497195f1e2a2d04706880fe3b26fdc71de6cae296

See more details on using hashes here.

Provenance

The following attestation bundles were made for typer_injector-0.1.0.tar.gz:

Publisher: release.yml on BenjyWiener/typer-injector

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

File details

Details for the file typer_injector-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: typer_injector-0.1.0-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 typer_injector-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7f20316d910ef035b9acc92e22c46a8ea67d5859d4c7ef55dc3be87788cfa4b
MD5 99b4af7fc42714193cee44da15dcd5f3
BLAKE2b-256 508d082af7e884e033b84d2345a52e3595413dacf719ceb1aab3560addaed31b

See more details on using hashes here.

Provenance

The following attestation bundles were made for typer_injector-0.1.0-py3-none-any.whl:

Publisher: release.yml on BenjyWiener/typer-injector

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