Python workflow management framework for building complex pipelines of batch jobs with dependency resolution and task scheduling.
72
{
"context": "Evaluates whether the workflow uses Luigi's configuration-driven features to control logging destinations/prefixes and to send failure notifications when running the two-stage pipeline. Scoring looks only at Luigi integration: config ingestion, logging setup, notification hooks, runner usage, and exit codes sourced from Luigi utilities.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Config loading",
"description": "Uses Luigi's configuration loader (e.g., `luigi.configuration.add_config_path` or `LuigiConfigParser.read`) to ingest the provided config file so scheduler host, log destination, and email recipients come from Luigi config rather than manual parsing.",
"max_score": 20
},
{
"name": "Logging setup",
"description": "Applies logging settings from Luigi config (such as `[core] logging_conf_file`, `log_level`, or `log_format`) via `luigi.interface.setup_interface_logging`/`setup_logging` so task start/end messages flow to the configured file with the configured prefix instead of hand-built log handlers.",
"max_score": 25
},
{
"name": "Failure notification",
"description": "Relies on Luigi's notification utilities (e.g., `[email] receiver`/`format`, `[core] email_prefix`, `luigi.notifications.send_email`, or `luigi.Event.FAILURE` handlers) to emit alerts that include the failing task name and error message when the deliberate failure occurs.",
"max_score": 30
},
{
"name": "Luigi runner",
"description": "Runs the two-stage workflow through Luigi (`luigi.build` or `luigi.run`) using scheduler settings pulled from config (e.g., `[core] scheduler_host`/`scheduler_port`) instead of executing tasks directly or bypassing Luigi scheduling.",
"max_score": 15
},
{
"name": "Exit codes",
"description": "Maps Luigi run results or `luigi.retcodes` to return 0 on a clean run and non-zero on the forced failure, rather than hardcoding statuses unrelated to Luigi's run outcome.",
"max_score": 10
}
]
}Install with Tessl CLI
npx tessl i tessl/pypi-luigidocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10