Files
dagster/apps/vinyl/src/definitions.py

36 lines
1.1 KiB
Python

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],
)