import assets from config import APP from icecream import install from jobs import check_partitions_job, deals_job from resources import MyIOManager from schedules import deals_schedule from shared.config import STORAGE_DIR from utils.email import EmailService import dagster as dg install() definitions = dg.Definitions( assets=[ asset.with_attributes( group_names_by_key={asset.key: APP}, tags_by_key={asset.key: {"app": APP}}, ) for asset in dg.load_assets_from_modules([assets]) ], resources={ "polars_parquet_io_manager": MyIOManager(base_dir=STORAGE_DIR), "email_service": EmailService( smtp_server=dg.EnvVar("SMTP_SERVER"), smtp_port=dg.EnvVar.int("SMTP_PORT"), smtp_username=dg.EnvVar("SMTP_USERNAME"), smtp_password=dg.EnvVar("SMTP_PASSWORD"), sender_email=dg.EnvVar("SENDER_EMAIL"), receiver_email=dg.EnvVar("RECEIVER_EMAIL"), ), }, jobs=[deals_job, check_partitions_job], schedules=[deals_schedule], )