import logging.config import pyxdi import sentry_sdk from sentry_sdk.integrations.httpx import HttpxIntegration from sentry_sdk.integrations.sqlalchemy import SqlalchemyIntegration from campaigns.assets.modules import AssetsModule from campaigns.auth.modules import AuthModule from campaigns.campaigns.modules import CampaignsModule from campaigns.config import settings from campaigns.meta.modules import MetaModule from campaigns.modules import AppModule def configure() -> pyxdi.PyxDI: # Configure logging logging.config.dictConfig(settings.logging_config) # Setup Sentry if settings.sentry_dsn: sentry_sdk.init( dsn=settings.sentry_dsn, integrations=[ HttpxIntegration(), SqlalchemyIntegration(), ], ) return pyxdi.PyxDI( modules=[AppModule, AuthModule, AssetsModule, CampaignsModule, MetaModule], )