Callable provider

Callable provider calls a function, a method or another callable.

import passlib.hash

from dependency_injector import containers, providers


class Container(containers.DeclarativeContainer):

    password_hasher = providers.Callable(
        passlib.hash.sha256_crypt.hash,
        salt_size=16,
        rounds=10000,
    )

    password_verifier = providers.Callable(passlib.hash.sha256_crypt.verify)


if __name__ == "__main__":
    container = Container()

    hashed_password = container.password_hasher("super secret")
    assert container.password_verifier("super secret", hashed_password)

Callable provider handles an injection of the dependencies the same way like a Factory provider.