"""`Configuration` provider example."""

import boto3
from dependency_injector import containers, providers


class Container(containers.DeclarativeContainer):

    config = providers.Configuration()

    s3_client_factory = providers.Factory(
        boto3.client,
        "s3",
        aws_access_key_id=config.aws.access_key_id,
        aws_secret_access_key=config.aws.secret_access_key,
    )


if __name__ == "__main__":
    container = Container()
    container.config.from_dict(
        {
            "aws": {
                 "access_key_id": "KEY",
                 "secret_access_key": "SECRET",
             },
        },
    )
    s3_client = container.s3_client_factory()