import assets from dagster_polars import PolarsParquetIOManager from icecream import install from jobs import check_partitions_job, deals_job from schedules import deals_schedule from utils.email import EmailService import dagster as dg install() definitions = dg.Definitions( assets=[ asset.with_attributes( group_names_by_key={asset.key: "vinyl"}, tags_by_key={asset.key: {"app": "vinyl"}}, ) for asset in dg.load_assets_from_modules([assets]) ], resources={ "polars_parquet_io_manager": PolarsParquetIOManager(base_dir="/storage/vinyl"), "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], )