Skip to main content

No project description provided

Project description

Falcon-deps

Dependency injector for Falcon Framework based on taskiq-dependencies.

Installation

Install with pip

pip install falcon-deps

Install with poetry

poetry add falcon-deps

Usage

Start Usage

It's simple as possible.

from falcon_deps import InjectableResource
from falcon.asgi import App, Request, Response
from taskiq_dependencies import Depends


# Imagine we have a database pool.
async def db_pool(
    # Retrieve request object from the actual request.
    request: Request = Depends(),
) -> ConnectionPool:
    return request.context._pool


class Resource(InjectableResource):
    async def on_get(
        self,
        request: Request,
        response: Response,
        # Retrieve database pool as a dependency
        db_pool: ConnctionPool = Depends(db_pool)
    ) -> None:
        ...


app = App()
app.add_route(
    "/test",
    Resource(),
)

Advanced Usage

Falcon gives option to specify suffix for resource. If you want to use suffix with InjectableResource you need to pass suffix to InjectableResource too.

app.add_route(
    "/test",
    Resource(suffix="bob",),
    suffix="bob",
)

If some of methods in Resource don't need dependency injection, it's possible to remove them from injection with exclude_responder_from_inject.

app.add_route(
    "/test",
    Resource(
        exclude_responder_from_inject={
            # Remove on_get and on_post methods from injection.
            "on_get",
            "on_post",
        },
    ),
)

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

falcon_deps-0.1.2.tar.gz (4.1 kB view hashes)

Uploaded Source

Built Distribution

falcon_deps-0.1.2-py3-none-any.whl (3.9 kB view hashes)

Uploaded Python 3

Supported by

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