CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-apache-airflow-providers-ftp

Provider package for Apache Airflow that enables FTP file transfer protocol operations including hooks, operators, and sensors for workflow integration.

84

1.06x
Quality

Pending

Does it follow best practices?

Impact

84%

1.06x

Average score across 10 eval scenarios

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

criteria.jsonevals/scenario-6/

{
  "context": "This evaluation assesses how well the engineer uses the apache-airflow-providers-ftp package to implement timeout and soft-fail strategies for FTP file monitoring. The focus is on proper usage of FTPSensor parameters to achieve different failure behaviors.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "FTPSensor Usage",
      "description": "Uses FTPSensor class from airflow.providers.ftp.sensors.ftp for monitoring file existence on the FTP server",
      "max_score": 15
    },
    {
      "name": "Critical File Timeout",
      "description": "Configures the critical file sensor with timeout parameter set to 300 seconds (5 minutes) to fail when file is not found",
      "max_score": 15
    },
    {
      "name": "Critical File Hard-Fail",
      "description": "Ensures critical file sensor does NOT use soft_fail=True (either omits it or sets soft_fail=False) so the DAG fails on timeout",
      "max_score": 15
    },
    {
      "name": "Optional File Timeout",
      "description": "Configures the optional file sensor with timeout parameter set to 300 seconds (5 minutes)",
      "max_score": 15
    },
    {
      "name": "Optional File Soft-Fail",
      "description": "Configures the optional file sensor with soft_fail=True to skip the task instead of failing when file is not found within timeout",
      "max_score": 20
    },
    {
      "name": "Poke Interval",
      "description": "Sets poke_interval parameter to 30 seconds for both sensors to control polling frequency",
      "max_score": 10
    },
    {
      "name": "Poke Mode",
      "description": "Sets mode parameter to 'poke' for both sensors (or omits it since poke is the default mode)",
      "max_score": 5
    },
    {
      "name": "FTP Connection",
      "description": "Properly configures ftp_conn_id parameter on both FTPSensor instances to reference an Airflow connection",
      "max_score": 5
    }
  ]
}

tile.json