apache-airflow-task-sdk 1.2.0rc2__tar.gz → 1.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/.pre-commit-config.yaml +1 -9
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/PKG-INFO +4 -4
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/pyproject.toml +4 -4
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/__init__.py +1 -1
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/configuration/parser.py +1 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/logging/structlog.py +34 -5
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/metrics/otel_logger.py +16 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/decorator.py +8 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/configuration.py +7 -3
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/comms.py +1 -1
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/supervisor.py +1 -1
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/plugins_manager.py +1 -1
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/bases/test_decorator.py +33 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/test_comms.py +47 -2
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/test_configuration.py +29 -1
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/.gitignore +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/LICENSE +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/NOTICE +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/README.md +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/dev/datamodel_code_formatter.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/dev/generate_task_sdk_models.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/.gitignore +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/api.rst +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/concepts.rst +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/conf.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/deferred-vs-async-operators.rst +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/dynamic-task-mapping.rst +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/examples.rst +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/img/airflow-2-approach.png +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/img/airflow-2-arch.png +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/img/airflow-3-arch.png +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/img/airflow-3-task-sdk.png +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/index.rst +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/__init__.pyi +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/configuration/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/configuration/exceptions.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/dagnode/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/dagnode/node.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/listeners/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/listeners/listener.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/listeners/spec/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/listeners/spec/lifecycle.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/listeners/spec/taskinstance.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/logging/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/logging/_config.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/logging/_noncaching.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/logging/percent_formatter.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/logging/remote.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/logging/types.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/module_loading/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/module_loading/file_discovery.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/common.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/exceptions.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/metrics/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/metrics/base_stats_logger.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/metrics/datadog_logger.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/metrics/dual_stats_manager.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/metrics/metrics_registry.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/metrics/metrics_template.yaml +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/metrics/protocols.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/metrics/stats.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/metrics/statsd_logger.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/metrics/validators.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/otel_env_config.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/observability/traces/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/plugins_manager/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/plugins_manager/plugins_manager.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/providers_discovery/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/providers_discovery/providers_discovery.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/secrets_backend/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/secrets_backend/base.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/secrets_masker/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/secrets_masker/secrets_masker.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/serialization/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/template_rendering/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/timezones/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/_shared/timezones/timezone.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/api/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/api/client.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/api/datamodels/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/api/datamodels/_generated.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/api/datamodels/activities.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/branch.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/hook.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/notifier.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/operator.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/operatorlink.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/secrets_backend.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/sensor.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/skipmixin.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/timetable.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/xcom.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/crypto.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/abstractoperator.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/contextmanager.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/dag_parsing_context.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/decorators.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/expandinput.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/logging_mixin.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/mixins.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/node.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/setup_teardown.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/templater.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/_internal/types.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/asset/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/asset/decorators.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/asset/metadata.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/callback.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/connection.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/context.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/dag.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/deadline.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/decorators/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/decorators/__init__.pyi +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/decorators/condition.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/decorators/setup_teardown.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/decorators/task_group.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/edges.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/mappedoperator.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/operator_resources.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/param.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/partition_mappers/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/partition_mappers/allowed_key.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/partition_mappers/base.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/partition_mappers/chain.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/partition_mappers/identity.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/partition_mappers/product.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/partition_mappers/temporal.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/taskgroup.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/template.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/timetables/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/timetables/_cron.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/timetables/_delta.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/timetables/assets.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/timetables/events.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/timetables/interval.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/timetables/simple.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/timetables/trigger.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/variable.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/definitions/xcom_arg.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/exceptions.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/cache.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/callback_runner.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/context.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/execute_workload.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/hitl.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/lazy_sequence.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/macros.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/secrets/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/secrets/execution_api.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/secrets_masker.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/sentry/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/sentry/configured.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/sentry/noop.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/task_mapping.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/task_runner.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/timeout.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/execution_time/xcom.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/io/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/io/fs.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/io/path.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/io/stat.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/io/store.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/io/typedef.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/lineage.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/listener.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/log.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/module_loading.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/observability/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/observability/metrics/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/observability/metrics/datadog_logger.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/observability/metrics/otel_logger.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/observability/metrics/stats_utils.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/observability/metrics/statsd_logger.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/observability/stats.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/providers_manager_runtime.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/py.typed +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/bignum.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/builtin.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/datetime.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/deltalake.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/iceberg.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/kubernetes.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/numpy.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/pandas.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/pydantic.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/timezone.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/serializers/uuid.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/serde/typing.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/timezone.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/types.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/yaml.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/conftest.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/api/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/api/test_client.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/bases/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/bases/notifier/test_notifier.txt +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/bases/test_branch.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/bases/test_hook.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/bases/test_notifier.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/bases/test_operator.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/bases/test_sensor.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/bases/test_skipmixin.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/bases/test_xcom.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/dags/dag_parsing_context.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/dags/super_basic.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/dags/super_basic_deferred_run.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/dags/super_basic_run.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/_internal/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/_internal/test_decorators.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/_internal/test_templater.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/conftest.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/decorators/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/decorators/test_condition.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/decorators/test_mapped.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/decorators/test_setup_teardown.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/decorators/test_task_group.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/sensors/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_asset.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_asset_decorators.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_callback.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_connection.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_context.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_dag.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_deadline.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_macros.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_mappedoperator.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_mixins.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_module_loading.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_operator_resources.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_param.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_taskgroup.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_template.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_variables.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/definitions/test_xcom_arg.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/docs/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/docs/test_docs_inventory.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/docs/test_public_api.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/conftest.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/test_cache.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/test_context.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/test_context_cache.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/test_hitl.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/test_lazy_sequence.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/test_secrets.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/test_sentry.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/test_supervisor.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/test_task_mapping.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/execution_time/test_task_runner.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/io/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/io/test_path.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/serde/__init__.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/serde/test_serde.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/serde/test_serializers.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/test_crypto.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/test_lineage.py +0 -0
- {apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/tests/task_sdk/test_providers_manager_runtime.py +0 -0
|
@@ -56,17 +56,9 @@ repos:
|
|
|
56
56
|
pass_filenames: false
|
|
57
57
|
files: ^src/airflow/sdk/definitions/dag\.py$|^src/airflow/sdk/definitions/decorators/task_group\.py$
|
|
58
58
|
- id: mypy-task-sdk
|
|
59
|
-
stages: ['pre-push']
|
|
60
59
|
name: Run mypy for task-sdk
|
|
61
60
|
language: python
|
|
62
|
-
entry: ../scripts/ci/prek/
|
|
63
|
-
files: ^.*\.py$
|
|
64
|
-
require_serial: true
|
|
65
|
-
- id: mypy-task-sdk
|
|
66
|
-
stages: ['manual']
|
|
67
|
-
name: Run mypy for task-sdk (manual)
|
|
68
|
-
language: python
|
|
69
|
-
entry: ../scripts/ci/prek/mypy_folder.py task-sdk
|
|
61
|
+
entry: ../scripts/ci/prek/mypy_local_folder.py task-sdk
|
|
70
62
|
pass_filenames: false
|
|
71
63
|
files: ^.*\.py$
|
|
72
64
|
require_serial: true
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-task-sdk
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: Python Task SDK for Apache Airflow DAG Authors
|
|
5
5
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
6
|
-
Project-URL: Documentation, https://airflow.
|
|
7
|
-
Project-URL: Homepage, https://airflow.
|
|
6
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/
|
|
7
|
+
Project-URL: Homepage, https://airflow.apache.org/
|
|
8
8
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
9
9
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
10
10
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
@@ -29,7 +29,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
29
29
|
Classifier: Programming Language :: Python :: 3.14
|
|
30
30
|
Classifier: Topic :: System :: Monitoring
|
|
31
31
|
Requires-Python: !=3.15,>=3.10
|
|
32
|
-
Requires-Dist: apache-airflow-core<3.3.0,>=3.2.
|
|
32
|
+
Requires-Dist: apache-airflow-core<3.3.0,>=3.2.0
|
|
33
33
|
Requires-Dist: asgiref>=2.3.0; python_version < '3.14'
|
|
34
34
|
Requires-Dist: asgiref>=3.11.1; python_version >= '3.14'
|
|
35
35
|
Requires-Dist: attrs!=25.2.0,>=24.2.0
|
|
@@ -48,7 +48,7 @@ classifiers = [
|
|
|
48
48
|
"Topic :: System :: Monitoring",
|
|
49
49
|
]
|
|
50
50
|
dependencies = [
|
|
51
|
-
"apache-airflow-core<3.3.0,>=3.2.
|
|
51
|
+
"apache-airflow-core<3.3.0,>=3.2.0",
|
|
52
52
|
"asgiref>=2.3.0; python_version < '3.14'",
|
|
53
53
|
"asgiref>=3.11.1; python_version >= '3.14'",
|
|
54
54
|
"attrs>=24.2.0, !=25.2.0",
|
|
@@ -108,8 +108,8 @@ dependencies = [
|
|
|
108
108
|
|
|
109
109
|
[project.urls]
|
|
110
110
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
111
|
-
Documentation = "https://airflow.
|
|
112
|
-
Homepage = "https://airflow.
|
|
111
|
+
Documentation = "https://airflow.apache.org/docs/"
|
|
112
|
+
Homepage = "https://airflow.apache.org/"
|
|
113
113
|
"Slack Chat" = "https://s.apache.org/airflow-slack"
|
|
114
114
|
"Source Code" = "https://github.com/apache/airflow"
|
|
115
115
|
Mastodon = "https://fosstodon.org/@airflow"
|
|
@@ -120,7 +120,7 @@ YouTube = "https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/"
|
|
|
120
120
|
[build-system]
|
|
121
121
|
requires = [
|
|
122
122
|
"hatchling==1.29.0",
|
|
123
|
-
"packaging==26.
|
|
123
|
+
"packaging==26.1",
|
|
124
124
|
"pathspec==1.0.4",
|
|
125
125
|
"pluggy==1.6.0",
|
|
126
126
|
"tomli==2.4.1; python_version < '3.11'",
|
|
@@ -257,6 +257,7 @@ class AirflowConfigParser(ConfigParser):
|
|
|
257
257
|
("scheduler", "ti_metrics_interval"): ("scheduler", "running_metrics_interval", "3.2.0"),
|
|
258
258
|
("api", "fallback_page_limit"): ("api", "page_size", "3.2.0"),
|
|
259
259
|
("workers", "missing_dag_retries"): ("workers", "missing_dag_retires", "3.1.8"),
|
|
260
|
+
("database", "sql_alchemy_conn"): ("core", "sql_alchemy_conn", "3.0"),
|
|
260
261
|
}
|
|
261
262
|
|
|
262
263
|
# A mapping of new section -> (old section, since_version).
|
|
@@ -95,10 +95,15 @@ def _make_airflow_structlogger(min_level):
|
|
|
95
95
|
if not args:
|
|
96
96
|
return self._proxy_to_logger(name, event, **kw)
|
|
97
97
|
|
|
98
|
-
#
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
98
|
+
# Match CPython's stdlib logging behavior: try positional formatting first,
|
|
99
|
+
# fall back to named substitution only if that fails.
|
|
100
|
+
# See https://github.com/python/cpython/blob/3.13/Lib/logging/__init__.py#L307-L326
|
|
101
|
+
try:
|
|
102
|
+
return self._proxy_to_logger(name, event % args, **kw)
|
|
103
|
+
except (TypeError, KeyError):
|
|
104
|
+
if len(args) == 1 and isinstance(args[0], Mapping) and args[0]:
|
|
105
|
+
return self._proxy_to_logger(name, event % args[0], **kw)
|
|
106
|
+
raise
|
|
102
107
|
|
|
103
108
|
meth.__name__ = name
|
|
104
109
|
return meth
|
|
@@ -216,6 +221,30 @@ def drop_positional_args(logger: Any, method_name: Any, event_dict: EventDict) -
|
|
|
216
221
|
return event_dict
|
|
217
222
|
|
|
218
223
|
|
|
224
|
+
def positional_arguments_formatter(logger: Any, method_name: Any, event_dict: EventDict) -> EventDict:
|
|
225
|
+
"""
|
|
226
|
+
Format positional arguments matching CPython's stdlib logging behavior.
|
|
227
|
+
|
|
228
|
+
Replaces structlog's built-in PositionalArgumentsFormatter to correctly handle the case
|
|
229
|
+
where a single dict is passed as a positional argument (e.g. ``log.warning('%s', {'a': 1})``).
|
|
230
|
+
|
|
231
|
+
CPython tries positional formatting first (``msg % args``), and only falls back to named
|
|
232
|
+
substitution (``msg % args[0]``) if that raises TypeError or KeyError. structlog's built-in
|
|
233
|
+
formatter does it the other way around, causing TypeError for ``%s`` format specifiers.
|
|
234
|
+
"""
|
|
235
|
+
args = event_dict.get("positional_args")
|
|
236
|
+
if args:
|
|
237
|
+
try:
|
|
238
|
+
event_dict["event"] = event_dict["event"] % args
|
|
239
|
+
except (TypeError, KeyError):
|
|
240
|
+
if len(args) == 1 and isinstance(args[0], Mapping) and args[0]:
|
|
241
|
+
event_dict["event"] = event_dict["event"] % args[0]
|
|
242
|
+
else:
|
|
243
|
+
raise
|
|
244
|
+
del event_dict["positional_args"]
|
|
245
|
+
return event_dict
|
|
246
|
+
|
|
247
|
+
|
|
219
248
|
# This is a placeholder fn, that is "edited" in place via the `suppress_logs_and_warning` decorator
|
|
220
249
|
# The reason we need to do it this way is that structlog caches loggers on first use, and those include the
|
|
221
250
|
# configured processors, so we can't get away with changing the config as it won't have any effect once the
|
|
@@ -268,7 +297,7 @@ def structlog_processors(
|
|
|
268
297
|
timestamper,
|
|
269
298
|
structlog.contextvars.merge_contextvars,
|
|
270
299
|
structlog.processors.add_log_level,
|
|
271
|
-
|
|
300
|
+
positional_arguments_formatter,
|
|
272
301
|
logger_name,
|
|
273
302
|
redact_jwt,
|
|
274
303
|
structlog.processors.StackInfoRenderer(),
|
|
@@ -433,6 +433,22 @@ def get_otel_logger(
|
|
|
433
433
|
)
|
|
434
434
|
readers.append(export_to_console)
|
|
435
435
|
|
|
436
|
+
# Reset the OTel SDK's Once() guard so set_meter_provider() can succeed.
|
|
437
|
+
# This is necessary when get_otel_logger() is called after a process fork:
|
|
438
|
+
# the parent's _METER_PROVIDER_SET_ONCE._done = True is inherited by the child,
|
|
439
|
+
# causing set_meter_provider() to silently fail with "Overriding of current
|
|
440
|
+
# MeterProvider is not allowed". The child then uses the parent's stale provider
|
|
441
|
+
# whose PeriodicExportingMetricReader thread is dead after fork.
|
|
442
|
+
# On first call (no fork), _done is already False so this is a no-op.
|
|
443
|
+
# See: https://github.com/apache/airflow/issues/64690
|
|
444
|
+
try:
|
|
445
|
+
import opentelemetry.metrics._internal as _metrics_internal
|
|
446
|
+
|
|
447
|
+
_metrics_internal._METER_PROVIDER_SET_ONCE._done = False
|
|
448
|
+
_metrics_internal._METER_PROVIDER = None
|
|
449
|
+
except (ImportError, AttributeError):
|
|
450
|
+
pass
|
|
451
|
+
|
|
436
452
|
metrics.set_meter_provider(
|
|
437
453
|
MeterProvider(
|
|
438
454
|
resource=resource,
|
|
@@ -30,6 +30,7 @@ import typing_extensions
|
|
|
30
30
|
|
|
31
31
|
from airflow.sdk import TriggerRule, timezone
|
|
32
32
|
from airflow.sdk.bases.operator import (
|
|
33
|
+
BASEOPERATOR_ARGS_EXPECTED_TYPES,
|
|
33
34
|
BaseOperator,
|
|
34
35
|
coerce_resources,
|
|
35
36
|
coerce_timedelta,
|
|
@@ -498,6 +499,13 @@ class _TaskDecorator(ExpandableFactory, Generic[FParams, FReturn, OperatorSubcla
|
|
|
498
499
|
if "self" in self.function_signature.parameters:
|
|
499
500
|
raise TypeError(f"@{self.decorator_name} does not support methods")
|
|
500
501
|
self.kwargs.setdefault("task_id", self.function.__name__)
|
|
502
|
+
for arg_name, expected_type in BASEOPERATOR_ARGS_EXPECTED_TYPES.items():
|
|
503
|
+
if arg_name in self.kwargs:
|
|
504
|
+
value = self.kwargs[arg_name]
|
|
505
|
+
if value is not None and not isinstance(value, expected_type):
|
|
506
|
+
raise TypeError(
|
|
507
|
+
f"Expected {arg_name!r} to be {expected_type}, got {type(value).__name__}: {value!r}"
|
|
508
|
+
)
|
|
501
509
|
update_wrapper(self, self.function)
|
|
502
510
|
|
|
503
511
|
def __call__(self, *args: FParams.args, **kwargs: FParams.kwargs) -> XComArg:
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/configuration.py
RENAMED
|
@@ -30,6 +30,7 @@ from airflow.sdk import yaml
|
|
|
30
30
|
from airflow.sdk._shared.configuration.parser import (
|
|
31
31
|
AirflowConfigParser as _SharedAirflowConfigParser,
|
|
32
32
|
configure_parser_from_configuration_description,
|
|
33
|
+
expand_env_var,
|
|
33
34
|
)
|
|
34
35
|
from airflow.sdk.execution_time.secrets import _SERVER_DEFAULT_SECRETS_SEARCH_PATH
|
|
35
36
|
|
|
@@ -99,7 +100,7 @@ def get_sdk_expansion_variables() -> dict[str, Any]:
|
|
|
99
100
|
SDK only needs AIRFLOW_HOME for expansion. Core specific variables
|
|
100
101
|
(FERNET_KEY, JWT_SECRET_KEY, etc.) are not needed in the SDK.
|
|
101
102
|
"""
|
|
102
|
-
airflow_home = os.environ.get("AIRFLOW_HOME", os.path.expanduser("~/airflow"))
|
|
103
|
+
airflow_home = expand_env_var(os.environ.get("AIRFLOW_HOME", os.path.expanduser("~/airflow")))
|
|
103
104
|
return {
|
|
104
105
|
"AIRFLOW_HOME": airflow_home,
|
|
105
106
|
}
|
|
@@ -107,8 +108,11 @@ def get_sdk_expansion_variables() -> dict[str, Any]:
|
|
|
107
108
|
|
|
108
109
|
def get_airflow_config() -> str:
|
|
109
110
|
"""Get path to airflow.cfg file."""
|
|
110
|
-
|
|
111
|
-
|
|
111
|
+
airflow_config_var = os.environ.get("AIRFLOW_CONFIG")
|
|
112
|
+
if airflow_config_var is None:
|
|
113
|
+
airflow_home: str = os.environ.get("AIRFLOW_HOME", os.path.expanduser("~/airflow"))
|
|
114
|
+
return os.path.join(expand_env_var(airflow_home), "airflow.cfg")
|
|
115
|
+
return expand_env_var(airflow_config_var)
|
|
112
116
|
|
|
113
117
|
|
|
114
118
|
class AirflowSDKConfigParser(_SharedAirflowConfigParser):
|
|
@@ -216,7 +216,7 @@ class CommsDecoder(Generic[ReceiveMsgType, SendMsgType]):
|
|
|
216
216
|
# always be in the return type union
|
|
217
217
|
return resp # type: ignore[return-value]
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
return self._get_response()
|
|
220
220
|
|
|
221
221
|
async def asend(self, msg: SendMsgType) -> ReceiveMsgType | None:
|
|
222
222
|
"""
|
|
@@ -1184,7 +1184,7 @@ class ActivitySubprocess(WatchedSubprocess):
|
|
|
1184
1184
|
# Reset the counter on success
|
|
1185
1185
|
self.failed_heartbeats = 0
|
|
1186
1186
|
except ServerResponseError as e:
|
|
1187
|
-
if e.response.status_code in {HTTPStatus.NOT_FOUND, HTTPStatus.CONFLICT}:
|
|
1187
|
+
if e.response.status_code in {HTTPStatus.NOT_FOUND, HTTPStatus.GONE, HTTPStatus.CONFLICT}:
|
|
1188
1188
|
log.error(
|
|
1189
1189
|
"Server indicated the task shouldn't be running anymore",
|
|
1190
1190
|
detail=e.detail,
|
|
@@ -27,7 +27,7 @@ from airflow import settings
|
|
|
27
27
|
from airflow.sdk._shared.module_loading import import_string
|
|
28
28
|
from airflow.sdk._shared.observability.metrics.stats import Stats
|
|
29
29
|
from airflow.sdk._shared.plugins_manager import (
|
|
30
|
-
AirflowPlugin,
|
|
30
|
+
AirflowPlugin as AirflowPlugin,
|
|
31
31
|
_load_entrypoint_plugins,
|
|
32
32
|
_load_plugins_from_plugin_directory,
|
|
33
33
|
integrate_listener_plugins as _integrate_listener_plugins,
|
|
@@ -197,6 +197,39 @@ class TestDefaultFillingLogic:
|
|
|
197
197
|
|
|
198
198
|
assert make_op(dummy_task, op_kwargs={"a": 1, "kw_required": "x"}) is not None
|
|
199
199
|
|
|
200
|
+
@pytest.mark.parametrize(
|
|
201
|
+
("kwargs", "match"),
|
|
202
|
+
[
|
|
203
|
+
pytest.param(
|
|
204
|
+
{"task_id": "fetch_{}".format},
|
|
205
|
+
"Expected 'task_id' to be .*, got builtin_function_or_method",
|
|
206
|
+
id="task_id_bound_method",
|
|
207
|
+
),
|
|
208
|
+
pytest.param(
|
|
209
|
+
{"retries": "three"},
|
|
210
|
+
"Expected 'retries' to be .*, got str",
|
|
211
|
+
id="retries_string",
|
|
212
|
+
),
|
|
213
|
+
pytest.param(
|
|
214
|
+
{"queue": 42},
|
|
215
|
+
"Expected 'queue' to be .*, got int",
|
|
216
|
+
id="queue_int",
|
|
217
|
+
),
|
|
218
|
+
pytest.param(
|
|
219
|
+
{"priority_weight": 1.5},
|
|
220
|
+
"Expected 'priority_weight' to be .*, got float",
|
|
221
|
+
id="priority_weight_float",
|
|
222
|
+
),
|
|
223
|
+
],
|
|
224
|
+
)
|
|
225
|
+
def test_wrong_arg_type_raises_type_error_at_decoration_time(self, kwargs, match):
|
|
226
|
+
"""Non-matching types for operator kwargs raise TypeError at decoration time."""
|
|
227
|
+
with pytest.raises(TypeError, match=match):
|
|
228
|
+
|
|
229
|
+
@task(**kwargs)
|
|
230
|
+
def my_task():
|
|
231
|
+
return 1
|
|
232
|
+
|
|
200
233
|
|
|
201
234
|
def make_op(func, op_args=None, op_kwargs=None, **kwargs):
|
|
202
235
|
return DummyDecoratedOperator(
|
|
@@ -23,10 +23,17 @@ from socket import socketpair
|
|
|
23
23
|
|
|
24
24
|
import msgspec
|
|
25
25
|
import pytest
|
|
26
|
+
import structlog
|
|
26
27
|
|
|
27
28
|
from airflow.sdk import timezone
|
|
28
|
-
from airflow.sdk.execution_time.comms import
|
|
29
|
-
|
|
29
|
+
from airflow.sdk.execution_time.comms import (
|
|
30
|
+
BundleInfo,
|
|
31
|
+
CommsDecoder,
|
|
32
|
+
MaskSecret,
|
|
33
|
+
StartupDetails,
|
|
34
|
+
VariableResult,
|
|
35
|
+
_ResponseFrame,
|
|
36
|
+
)
|
|
30
37
|
|
|
31
38
|
|
|
32
39
|
class TestCommsModels:
|
|
@@ -148,3 +155,41 @@ class TestCommsDecoder:
|
|
|
148
155
|
# It actually failed to read at all for large values, but lets just make sure we get it all
|
|
149
156
|
assert len(msg.value) == 10 * 1024 * 1024 + 1
|
|
150
157
|
assert msg.value[-1] == "b"
|
|
158
|
+
|
|
159
|
+
def test_send_thread_safety(self):
|
|
160
|
+
r, w = socketpair()
|
|
161
|
+
decoder = CommsDecoder(socket=r, log=structlog.get_logger())
|
|
162
|
+
num_threads = 5
|
|
163
|
+
results = [None] * num_threads
|
|
164
|
+
errors = [None] * num_threads
|
|
165
|
+
request_sent = [threading.Event() for _ in range(num_threads)]
|
|
166
|
+
|
|
167
|
+
def send_and_store(idx):
|
|
168
|
+
request_sent[idx].set() # Signal that this thread is about to send
|
|
169
|
+
try:
|
|
170
|
+
msg = VariableResult(key=f"key{idx}", value=f"value{idx}", type="VariableResult")
|
|
171
|
+
results[idx] = decoder.send(msg)
|
|
172
|
+
except Exception as e:
|
|
173
|
+
errors[idx] = e
|
|
174
|
+
|
|
175
|
+
threads = [threading.Thread(target=send_and_store, args=(i,)) for i in range(num_threads)]
|
|
176
|
+
for t in threads:
|
|
177
|
+
t.start()
|
|
178
|
+
|
|
179
|
+
# For each thread, wait until it signals it's ready, then send the response
|
|
180
|
+
for idx in range(num_threads):
|
|
181
|
+
request_sent[idx].wait()
|
|
182
|
+
resp = {"type": "VariableResult", "key": f"key{idx}", "value": f"value{idx}"}
|
|
183
|
+
frame = _ResponseFrame(idx, resp, None)
|
|
184
|
+
data = msgspec.msgpack.encode(frame)
|
|
185
|
+
w.sendall(len(data).to_bytes(4, byteorder="big") + data)
|
|
186
|
+
|
|
187
|
+
for t in threads:
|
|
188
|
+
t.join(timeout=5)
|
|
189
|
+
for idx, t in enumerate(threads):
|
|
190
|
+
assert not t.is_alive(), f"Thread {idx} did not finish (possible deadlock or hang in send method)"
|
|
191
|
+
|
|
192
|
+
for idx in range(num_threads):
|
|
193
|
+
assert errors[idx] is None, f"Thread {idx} error: {errors[idx]}"
|
|
194
|
+
assert results[idx].key == f"key{idx}", f"Out-of-order or missing response for thread {idx}"
|
|
195
|
+
assert results[idx].value == f"value{idx}", f"Incorrect value for thread {idx}"
|
|
@@ -23,7 +23,7 @@ from unittest import mock
|
|
|
23
23
|
import pytest
|
|
24
24
|
|
|
25
25
|
from airflow.sdk._shared.configuration.exceptions import AirflowConfigException
|
|
26
|
-
from airflow.sdk.configuration import conf
|
|
26
|
+
from airflow.sdk.configuration import conf, get_airflow_config
|
|
27
27
|
from airflow.sdk.providers_manager_runtime import ProvidersManagerTaskRuntime
|
|
28
28
|
|
|
29
29
|
from tests_common.test_utils.config import (
|
|
@@ -156,3 +156,31 @@ class TestSDKProviderConfigPriority:
|
|
|
156
156
|
custom_value = "my_custom.celery_executor"
|
|
157
157
|
with conf_vars({("celery", "celery_app_name"): custom_value}):
|
|
158
158
|
assert conf.get("celery", "celery_app_name") == custom_value
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
class TestGetAirflowConfig:
|
|
162
|
+
"""Tests for get_airflow_config respecting AIRFLOW_CONFIG env var."""
|
|
163
|
+
|
|
164
|
+
def test_returns_airflow_config_env_var(self):
|
|
165
|
+
"""get_airflow_config returns AIRFLOW_CONFIG when set."""
|
|
166
|
+
with mock.patch.dict("os.environ", {"AIRFLOW_CONFIG": "/custom/path/airflow.cfg"}):
|
|
167
|
+
assert get_airflow_config() == "/custom/path/airflow.cfg"
|
|
168
|
+
|
|
169
|
+
def test_expands_env_var_in_airflow_config(self):
|
|
170
|
+
"""get_airflow_config expands env vars in AIRFLOW_CONFIG."""
|
|
171
|
+
with mock.patch.dict(
|
|
172
|
+
"os.environ", {"AIRFLOW_CONFIG": "$CUSTOM_DIR/airflow.cfg", "CUSTOM_DIR": "/resolved"}
|
|
173
|
+
):
|
|
174
|
+
assert get_airflow_config() == "/resolved/airflow.cfg"
|
|
175
|
+
|
|
176
|
+
def test_default_fallback_when_airflow_config_not_set(self):
|
|
177
|
+
"""get_airflow_config returns {AIRFLOW_HOME}/airflow.cfg when AIRFLOW_CONFIG is absent."""
|
|
178
|
+
env = {"AIRFLOW_HOME": "/custom/home"}
|
|
179
|
+
with mock.patch.dict("os.environ", env, clear=True):
|
|
180
|
+
assert get_airflow_config() == "/custom/home/airflow.cfg"
|
|
181
|
+
|
|
182
|
+
def test_expands_env_var_in_airflow_home_fallback(self):
|
|
183
|
+
"""get_airflow_config expands env vars in AIRFLOW_HOME when AIRFLOW_CONFIG is absent."""
|
|
184
|
+
env = {"AIRFLOW_HOME": "$CUSTOM_DIR/airflow", "CUSTOM_DIR": "/resolved"}
|
|
185
|
+
with mock.patch.dict("os.environ", env, clear=True):
|
|
186
|
+
assert get_airflow_config() == "/resolved/airflow/airflow.cfg"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/dev/datamodel_code_formatter.py
RENAMED
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/dev/generate_task_sdk_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/dynamic-task-mapping.rst
RENAMED
|
File without changes
|
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/img/airflow-2-approach.png
RENAMED
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/img/airflow-2-arch.png
RENAMED
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/img/airflow-3-arch.png
RENAMED
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/docs/img/airflow-3-task-sdk.png
RENAMED
|
File without changes
|
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/__init__.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/api/__init__.py
RENAMED
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/api/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/__init__.py
RENAMED
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/branch.py
RENAMED
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/hook.py
RENAMED
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/notifier.py
RENAMED
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/operator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/sensor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/bases/xcom.py
RENAMED
|
File without changes
|
{apache_airflow_task_sdk-1.2.0rc2 → apache_airflow_task_sdk-1.2.1}/src/airflow/sdk/crypto.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|