Gusty

Latest version: v0.22.2

Safety actively analyzes 723400 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 9 of 9

0.3.1

- **DAG-level External Dependencies** - External dependencies can now be listed at the DAG level, either in `METADATA.yml` or in `create_dag`.
- **Root Tasks** - Users can designate root tasks for DAGs by name using the `root_tasks` argument. gusty will place these tasks at the root of the DAG, and raise a helpful error if the designated root task either lists dependencies or is listed as a dependency by other tasks.
- **Better Sensor Support** - Some sensors keyword arguments were previously not being detected by the task builder, causes sensor YAML specs to error. This has been fixed.

0.3.0

gusty 0.3.0 provides **full support for Airflow 2.x task groups**, and replaces `GustyDAG` with `create_dag`, a function that works just like the `GustyDAG` class, and still hands users back an Airflow DAG, but is much more flexible.

`create_dag` provides the following functionality:

- Ability to provide defaults for the DAG, task groups, and external task sensors ("wait for" tasks)
- `task_group_defaults` accepts a dictionary of any parameters that could be passed to Airflow's `TaskGroup` class
- `wait_for_defaults` accepts a dictionary of parameters that could be passed to Airflow's `ExternalTaskSensor` class
- `latest_only` is a boolean that will put a `LatestOnlyOperator` at the root of the DAG
- all other (valid) keyword arguments provided will be passed to Airflow's DAG class
- Ability to override any defaults set in `create_dag` with `METADATA.yml` files - at both the DAG level and the task group level
- By default, TaskGroup parameter `prefix_group_id` is set to `False`, and when enabled, task dependencies will also check for adjusted prefixed task ids automatically for setting dependencies.
- Support for `suffix_group_id` for task groups. Can be set in `task_group_defaults` or `METADATA.yml`. A gusty exclusive feature!
- `latest_only` no longer needs to be set in DAG's default args, can be defined on top-level call to `create_dag` function, or in `METADATA.yml`.

All operator dispatching still works exactly the same. gusty 0.3.0 is compatible with Airflow 1.x.

0.2.0

A small change to the `operator` spec, where users now specify both module and operator, e.g. `airflow.operators.bash.BashOperator`, allows for imports across all Airflow providers, as well as any organization's proprietary operators.

0.1.0

- gusty only parses YAML, Jupyter Notebooks, and RMarkdown documents in DAG folders
- removal of gusty operators module
- latest_only setting for DAGs can read in from METADATA.yml

0.0.0

The older demo contains separate containers for Jupyter and Rmd jobs, which are triggered via gusty operators, which have since been deprecated in gusty 0.1.0 in favor of custom operators.

Page 9 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.