Skip to main content

Dependency injection for typer

Project description

typer-injector

PyPI - Version PyPI - Python Version Coverage


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.2.1.tar.gz (7.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.2.1-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for typer_injector-0.2.1.tar.gz
Algorithm Hash digest
SHA256 2b02511ba1434f8527fd7cad0f8901fe9af2b487129fe67b4466a29c0bd6d6ae
MD5 8b49b001d6fabaee965ec56f10d03ab0
BLAKE2b-256 e4b8ea06b54357d86057af236e18d190c38ec9896017be65530efdc41e9aee27

See more details on using hashes here.

Provenance

The following attestation bundles were made for typer_injector-0.2.1.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.2.1-py3-none-any.whl.

File metadata

  • Download URL: typer_injector-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for typer_injector-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 43f1eb49e65ad4291fac19178fb394da74e389e330c11fb14ea9a4c1436c6a99
MD5 bb2da47f5f3af4349146d788e19f76d7
BLAKE2b-256 f40d0a3f057575e5b6dbccb215c78d18656827fa2217bbc249a70552b6e9d13f

See more details on using hashes here.

Provenance

The following attestation bundles were made for typer_injector-0.2.1-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