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.