apache-airflow-task-sdk 1.4.0b2__tar.gz → 1.4.0rc2__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.
Files changed (385) hide show
  1. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/.pre-commit-config.yaml +6 -0
  2. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/PKG-INFO +3 -3
  3. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/ts-bundle-spec.rst +1 -1
  4. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/pyproject.toml +2 -2
  5. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/__init__.py +1 -1
  6. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/logging/structlog.py +14 -1
  7. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/module_loading/file_discovery.py +7 -4
  8. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/metrics/metrics_registry.py +3 -3
  9. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/metrics/metrics_template.yaml +79 -5
  10. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/metrics/stats.py +2 -1
  11. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/plugins_manager/__init__.py +2 -0
  12. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/plugins_manager/plugins_manager.py +31 -0
  13. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/secrets_masker/secrets_masker.py +1 -1
  14. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/api/datamodels/_generated.py +7 -2
  15. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/resumablejobmixin.py +1 -6
  16. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/_subprocess.py +251 -99
  17. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/dag.py +3 -0
  18. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/context.py +42 -8
  19. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/coordinator.py +8 -6
  20. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/loop.py +22 -3
  21. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/schema/schema.json +61 -36
  22. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/schema/versions/__init__.py +2 -0
  23. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/schema/versions/v2026_10_30.py +14 -0
  24. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/supervisor.py +39 -21
  25. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/task_runner.py +41 -13
  26. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/python_importer.py +5 -3
  27. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/yaml_importer/importer.py +11 -9
  28. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/yaml_importer/schema.json +2 -1
  29. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/timezone.py +6 -2
  30. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/types.py +11 -0
  31. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/bases/test_resumablejobmixin.py +37 -10
  32. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/test_subprocess.py +501 -28
  33. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/schema/test_migrator.py +5 -0
  34. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_context.py +97 -0
  35. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_loop.py +84 -16
  36. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_task_runner.py +31 -1
  37. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/importers/test_python_importer.py +37 -0
  38. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/importers/yaml_importer/test_importer.py +43 -12
  39. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/serde/test_serializers.py +14 -3
  40. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/.gitignore +0 -0
  41. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/LICENSE +0 -0
  42. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/NOTICE +0 -0
  43. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/README.md +0 -0
  44. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/dev/datamodel_code_formatter.py +0 -0
  45. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/dev/generate_task_sdk_models.py +0 -0
  46. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/.gitignore +0 -0
  47. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/airflow-metadata.schema.json +0 -0
  48. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/api.rst +0 -0
  49. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/concepts.rst +0 -0
  50. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/conf.py +0 -0
  51. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/deferred-vs-async-operators.rst +0 -0
  52. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/dynamic-task-mapping.rst +0 -0
  53. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/examples.rst +0 -0
  54. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/executable-bundle-spec.rst +0 -0
  55. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/img/airflow-2-approach.png +0 -0
  56. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/img/airflow-2-arch.png +0 -0
  57. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/img/airflow-3-arch.png +0 -0
  58. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/img/airflow-3-task-sdk.png +0 -0
  59. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/index.rst +0 -0
  60. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/lang-sdk-spec.rst +0 -0
  61. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/lang-sdk.rst +0 -0
  62. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/docs/resumable-job-mixin.rst +0 -0
  63. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/__init__.pyi +0 -0
  64. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/configuration/__init__.py +0 -0
  65. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/configuration/exceptions.py +0 -0
  66. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/configuration/parser.py +0 -0
  67. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/dagnode/__init__.py +0 -0
  68. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/dagnode/cycle.py +0 -0
  69. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/dagnode/node.py +0 -0
  70. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/listeners/__init__.py +0 -0
  71. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/listeners/listener.py +0 -0
  72. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/listeners/spec/__init__.py +0 -0
  73. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/listeners/spec/lifecycle.py +0 -0
  74. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/listeners/spec/taskinstance.py +0 -0
  75. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/logging/__init__.py +0 -0
  76. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/logging/_config.py +0 -0
  77. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/logging/_noncaching.py +0 -0
  78. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/logging/factory.py +0 -0
  79. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/logging/percent_formatter.py +0 -0
  80. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/logging/remote.py +0 -0
  81. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/logging/types.py +0 -0
  82. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/module_loading/__init__.py +0 -0
  83. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/module_loading/dag_file.py +0 -0
  84. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/__init__.py +0 -0
  85. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/common.py +0 -0
  86. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/exceptions.py +0 -0
  87. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/metrics/__init__.py +0 -0
  88. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/metrics/base_stats_logger.py +0 -0
  89. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/metrics/datadog_logger.py +0 -0
  90. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/metrics/otel_logger.py +0 -0
  91. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/metrics/protocols.py +0 -0
  92. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/metrics/statsd_logger.py +0 -0
  93. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/metrics/validators.py +0 -0
  94. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/otel_env_config.py +0 -0
  95. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/observability/traces/__init__.py +0 -0
  96. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/providers_discovery/__init__.py +0 -0
  97. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/providers_discovery/providers_discovery.py +0 -0
  98. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/secrets_backend/__init__.py +0 -0
  99. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/secrets_backend/base.py +0 -0
  100. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/secrets_masker/__init__.py +0 -0
  101. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/serialization/__init__.py +0 -0
  102. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/state/__init__.py +0 -0
  103. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/template_rendering/__init__.py +0 -0
  104. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/timezones/__init__.py +0 -0
  105. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/_shared/timezones/timezone.py +0 -0
  106. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/api/__init__.py +0 -0
  107. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/api/client.py +0 -0
  108. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/api/datamodels/__init__.py +0 -0
  109. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/api/datamodels/activities.py +0 -0
  110. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/__init__.py +0 -0
  111. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/branch.py +0 -0
  112. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/decorator.py +0 -0
  113. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/hook.py +0 -0
  114. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/notifier.py +0 -0
  115. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/operator.py +0 -0
  116. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/operatorlink.py +0 -0
  117. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/secrets_backend.py +0 -0
  118. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/sensor.py +0 -0
  119. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/skipmixin.py +0 -0
  120. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/timetable.py +0 -0
  121. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/bases/xcom.py +0 -0
  122. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/configuration.py +0 -0
  123. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/__init__.py +0 -0
  124. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/_bundle_metadata.py +0 -0
  125. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/_dag_importer.py +0 -0
  126. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/executable/__init__.py +0 -0
  127. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/executable/_bundle_reader.py +0 -0
  128. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/executable/_dag_importer.py +0 -0
  129. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/executable/coordinator.py +0 -0
  130. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/java/__init__.py +0 -0
  131. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/java/_dag_importer.py +0 -0
  132. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/java/_jar_manifest.py +0 -0
  133. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/java/coordinator.py +0 -0
  134. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/node/__init__.py +0 -0
  135. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/node/_bundle_reader.py +0 -0
  136. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/node/_dag_importer.py +0 -0
  137. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/coordinators/node/coordinator.py +0 -0
  138. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/crypto.py +0 -0
  139. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/__init__.py +0 -0
  140. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/__init__.py +0 -0
  141. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/abstractoperator.py +0 -0
  142. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/contextmanager.py +0 -0
  143. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/dag_parsing_context.py +0 -0
  144. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/decorators.py +0 -0
  145. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/expandinput.py +0 -0
  146. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/logging_mixin.py +0 -0
  147. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/loop.py +0 -0
  148. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/mixins.py +0 -0
  149. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/node.py +0 -0
  150. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/setup_teardown.py +0 -0
  151. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/templater.py +0 -0
  152. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/_internal/types.py +0 -0
  153. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/asset/__init__.py +0 -0
  154. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/asset/access_control.py +0 -0
  155. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/asset/decorators.py +0 -0
  156. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/asset/metadata.py +0 -0
  157. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/callback.py +0 -0
  158. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/connection.py +0 -0
  159. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/context.py +0 -0
  160. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/deadline.py +0 -0
  161. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/decorators/__init__.py +0 -0
  162. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/decorators/__init__.pyi +0 -0
  163. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/decorators/condition.py +0 -0
  164. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/decorators/setup_teardown.py +0 -0
  165. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/decorators/task_group.py +0 -0
  166. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/edges.py +0 -0
  167. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/loop.py +0 -0
  168. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/mappedoperator.py +0 -0
  169. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/operator_resources.py +0 -0
  170. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/param.py +0 -0
  171. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/partition_mappers/__init__.py +0 -0
  172. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/partition_mappers/allowed_key.py +0 -0
  173. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/partition_mappers/base.py +0 -0
  174. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/partition_mappers/chain.py +0 -0
  175. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/partition_mappers/fixed_key.py +0 -0
  176. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/partition_mappers/identity.py +0 -0
  177. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/partition_mappers/product.py +0 -0
  178. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/partition_mappers/temporal.py +0 -0
  179. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/partition_mappers/wait_policy.py +0 -0
  180. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/partition_mappers/window.py +0 -0
  181. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/retry_policy.py +0 -0
  182. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/taskgroup.py +0 -0
  183. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/template.py +0 -0
  184. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/timetables/__init__.py +0 -0
  185. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/timetables/_cron.py +0 -0
  186. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/timetables/_delta.py +0 -0
  187. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/timetables/assets.py +0 -0
  188. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/timetables/events.py +0 -0
  189. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/timetables/interval.py +0 -0
  190. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/timetables/simple.py +0 -0
  191. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/timetables/trigger.py +0 -0
  192. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/variable.py +0 -0
  193. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/definitions/xcom_arg.py +0 -0
  194. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/exceptions.py +0 -0
  195. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/__init__.py +0 -0
  196. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/bundles.py +0 -0
  197. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/cache.py +0 -0
  198. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/callback_runner.py +0 -0
  199. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/callback_supervisor.py +0 -0
  200. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/comms.py +0 -0
  201. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/connection_test_supervisor.py +0 -0
  202. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/email_backend.py +0 -0
  203. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/execute_workload.py +0 -0
  204. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/hitl.py +0 -0
  205. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/lazy_sequence.py +0 -0
  206. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/macros.py +0 -0
  207. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/request_handlers.py +0 -0
  208. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/schema/AGENTS.md +0 -0
  209. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/schema/__init__.py +0 -0
  210. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/schema/migrator.py +0 -0
  211. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/secrets/__init__.py +0 -0
  212. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/secrets/execution_api.py +0 -0
  213. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/secrets_masker.py +0 -0
  214. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/sentry/__init__.py +0 -0
  215. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/sentry/configured.py +0 -0
  216. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/sentry/noop.py +0 -0
  217. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/task_mapping.py +0 -0
  218. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/timeout.py +0 -0
  219. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/tracing.py +0 -0
  220. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/execution_time/xcom.py +0 -0
  221. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/__init__.py +0 -0
  222. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/base.py +0 -0
  223. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/yaml_importer/__init__.py +0 -0
  224. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/yaml_importer/builder.py +0 -0
  225. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/yaml_importer/migrator.py +0 -0
  226. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/yaml_importer/models.py +0 -0
  227. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/yaml_importer/parser.py +0 -0
  228. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/yaml_importer/versions/__init__.py +0 -0
  229. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/importers/zip_importer.py +0 -0
  230. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/io/__init__.py +0 -0
  231. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/io/fs.py +0 -0
  232. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/io/path.py +0 -0
  233. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/io/stat.py +0 -0
  234. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/io/store.py +0 -0
  235. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/io/typedef.py +0 -0
  236. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/lineage.py +0 -0
  237. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/listener.py +0 -0
  238. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/log.py +0 -0
  239. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/module_loading.py +0 -0
  240. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/observability/__init__.py +0 -0
  241. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/observability/metrics/__init__.py +0 -0
  242. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/observability/metrics/datadog_logger.py +0 -0
  243. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/observability/metrics/otel_logger.py +0 -0
  244. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/observability/metrics/stats_utils.py +0 -0
  245. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/observability/metrics/statsd_logger.py +0 -0
  246. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/observability/stats.py +0 -0
  247. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/plugins_manager.py +0 -0
  248. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/providers_manager_runtime.py +0 -0
  249. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/py.typed +0 -0
  250. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/__init__.py +0 -0
  251. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/__init__.py +0 -0
  252. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/bignum.py +0 -0
  253. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/builtin.py +0 -0
  254. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/datetime.py +0 -0
  255. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/deltalake.py +0 -0
  256. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/iceberg.py +0 -0
  257. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/kubernetes.py +0 -0
  258. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/lazy_xcom_sequence.py +0 -0
  259. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/numpy.py +0 -0
  260. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/pandas.py +0 -0
  261. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/pydantic.py +0 -0
  262. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/serializers/uuid.py +0 -0
  263. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/serde/typing.py +0 -0
  264. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/state.py +0 -0
  265. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/timezone.py +0 -0
  266. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/src/airflow/sdk/yaml.py +0 -0
  267. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/__init__.py +0 -0
  268. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/conftest.py +0 -0
  269. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/__init__.py +0 -0
  270. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/api/__init__.py +0 -0
  271. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/api/test_client.py +0 -0
  272. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/bases/__init__.py +0 -0
  273. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/bases/notifier/test_notifier.txt +0 -0
  274. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/bases/test_branch.py +0 -0
  275. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/bases/test_decorator.py +0 -0
  276. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/bases/test_hook.py +0 -0
  277. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/bases/test_notifier.py +0 -0
  278. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/bases/test_operator.py +0 -0
  279. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/bases/test_sensor.py +0 -0
  280. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/bases/test_skipmixin.py +0 -0
  281. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/bases/test_xcom.py +0 -0
  282. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/__init__.py +0 -0
  283. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/executable/__init__.py +0 -0
  284. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/executable/_bundle_test_utils.py +0 -0
  285. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/executable/test_bundle_reader.py +0 -0
  286. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/executable/test_coordinator.py +0 -0
  287. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/executable/test_dag_importer.py +0 -0
  288. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/java/__init__.py +0 -0
  289. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/java/_jar_test_utils.py +0 -0
  290. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/java/test_coordinator.py +0 -0
  291. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/java/test_dag_importer.py +0 -0
  292. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/java/test_jar_manifest.py +0 -0
  293. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/node/__init__.py +0 -0
  294. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/node/_bundle_test_utils.py +0 -0
  295. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/node/test_bundle_reader.py +0 -0
  296. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/node/test_coordinator.py +0 -0
  297. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/node/test_dag_importer.py +0 -0
  298. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/coordinators/test_dag_importer.py +0 -0
  299. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/dags/dag_parsing_context.py +0 -0
  300. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/dags/super_basic.py +0 -0
  301. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/dags/super_basic_deferred_run.py +0 -0
  302. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/dags/super_basic_run.py +0 -0
  303. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/__init__.py +0 -0
  304. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/_internal/__init__.py +0 -0
  305. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/_internal/test_decorators.py +0 -0
  306. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/_internal/test_loop.py +0 -0
  307. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/_internal/test_templater.py +0 -0
  308. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/conftest.py +0 -0
  309. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/decorators/__init__.py +0 -0
  310. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/decorators/test_condition.py +0 -0
  311. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/decorators/test_mapped.py +0 -0
  312. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/decorators/test_result.py +0 -0
  313. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/decorators/test_setup_teardown.py +0 -0
  314. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/decorators/test_task_group.py +0 -0
  315. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/sensors/__init__.py +0 -0
  316. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_asset.py +0 -0
  317. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_asset_access_control.py +0 -0
  318. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_asset_decorators.py +0 -0
  319. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_callback.py +0 -0
  320. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_connection.py +0 -0
  321. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_context.py +0 -0
  322. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_dag.py +0 -0
  323. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_deadline.py +0 -0
  324. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_macros.py +0 -0
  325. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_mappedoperator.py +0 -0
  326. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_mixins.py +0 -0
  327. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_module_loading.py +0 -0
  328. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_operator_resources.py +0 -0
  329. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_param.py +0 -0
  330. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_partition_mappers.py +0 -0
  331. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_retry_policy.py +0 -0
  332. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_taskgroup.py +0 -0
  333. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_template.py +0 -0
  334. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_variables.py +0 -0
  335. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_wait_policy.py +0 -0
  336. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/test_xcom_arg.py +0 -0
  337. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/timetables/__init__.py +0 -0
  338. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/timetables/test__cron.py +0 -0
  339. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/definitions/timetables/test_assets.py +0 -0
  340. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/docs/__init__.py +0 -0
  341. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/docs/test_docs_inventory.py +0 -0
  342. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/docs/test_public_api.py +0 -0
  343. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/__init__.py +0 -0
  344. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/_request_registration_types.py +0 -0
  345. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/conftest.py +0 -0
  346. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/exec_probe_target.py +0 -0
  347. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/schema/__init__.py +0 -0
  348. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/schema/_mock_version_bundle.py +0 -0
  349. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/schema/test_integration.py +0 -0
  350. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_bundles.py +0 -0
  351. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_cache.py +0 -0
  352. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_callback_supervisor.py +0 -0
  353. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_comms.py +0 -0
  354. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_connection_test_supervisor.py +0 -0
  355. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_context_cache.py +0 -0
  356. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_coordinator.py +0 -0
  357. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_email_backend.py +0 -0
  358. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_hitl.py +0 -0
  359. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_lazy_sequence.py +0 -0
  360. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_request_handlers.py +0 -0
  361. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_secrets.py +0 -0
  362. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_sentry.py +0 -0
  363. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_supervisor.py +0 -0
  364. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_supervisor_schemas_name_type_sync.py +0 -0
  365. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_task_mapping.py +0 -0
  366. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_timeout.py +0 -0
  367. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/execution_time/test_tracing.py +0 -0
  368. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/importers/__init__.py +0 -0
  369. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/importers/test_registry.py +0 -0
  370. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/importers/test_zip_importer.py +0 -0
  371. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/importers/yaml_importer/__init__.py +0 -0
  372. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/importers/yaml_importer/example_dag.yaml +0 -0
  373. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/importers/yaml_importer/test_migrator.py +0 -0
  374. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/importers/yaml_importer/test_parser.py +0 -0
  375. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/io/__init__.py +0 -0
  376. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/io/test_path.py +0 -0
  377. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/serde/__init__.py +0 -0
  378. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/serde/test_serde.py +0 -0
  379. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/test_configuration.py +0 -0
  380. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/test_crypto.py +0 -0
  381. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/test_exceptions.py +0 -0
  382. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/test_lineage.py +0 -0
  383. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/test_log.py +0 -0
  384. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/test_plugins_manager.py +0 -0
  385. {apache_airflow_task_sdk-1.4.0b2 → apache_airflow_task_sdk-1.4.0rc2}/tests/task_sdk/test_providers_manager_runtime.py +0 -0
@@ -26,6 +26,8 @@ repos:
26
26
  hooks:
27
27
  - id: check-core-imports
28
28
  name: Check for core imports in task-sdk files
29
+ env:
30
+ PYTHONPYCACHEPREFIX: .build/pycache
29
31
  entry: ../scripts/ci/prek/check_core_imports_in_sdk.py
30
32
  language: python
31
33
  types: [python]
@@ -54,12 +56,16 @@ repos:
54
56
  ^src/airflow/sdk/types.py$
55
57
  - id: check-init-decorator-arguments
56
58
  name: Sync model __init__ and decorator arguments
59
+ env:
60
+ PYTHONPYCACHEPREFIX: .build/pycache
57
61
  language: python
58
62
  entry: ../scripts/ci/prek/check_init_decorator_arguments.py
59
63
  pass_filenames: false
60
64
  files: ^src/airflow/sdk/definitions/dag\.py$|^src/airflow/sdk/definitions/decorators/task_group\.py$
61
65
  - id: mypy-task-sdk
62
66
  name: Run mypy for task-sdk
67
+ env:
68
+ PYTHONPYCACHEPREFIX: .build/pycache
63
69
  language: python
64
70
  entry: ../scripts/ci/prek/run_mypy_full_dist_local_venv_or_breeze_in_ci.py task-sdk
65
71
  pass_filenames: false
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: apache-airflow-task-sdk
3
- Version: 1.4.0b2
3
+ Version: 1.4.0rc2
4
4
  Summary: Python Task SDK for Apache Airflow DAG Authors
5
5
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
6
6
  Project-URL: Documentation, https://airflow.staged.apache.org/docs/
@@ -28,12 +28,12 @@ Classifier: Programming Language :: Python :: 3.13
28
28
  Classifier: Programming Language :: Python :: 3.14
29
29
  Classifier: Topic :: System :: Monitoring
30
30
  Requires-Python: !=3.15,>=3.11
31
- Requires-Dist: apache-airflow-core<3.5.0,>=3.4.0b1
31
+ Requires-Dist: apache-airflow-core<3.5.0,>=3.4.0rc1
32
32
  Requires-Dist: asgiref>=2.3.0; python_version < '3.14'
33
33
  Requires-Dist: asgiref>=3.11.1; python_version >= '3.14'
34
34
  Requires-Dist: attrs!=25.2.0,>=24.2.0
35
35
  Requires-Dist: babel>=2.17.0
36
- Requires-Dist: cadwyn>=6.1.1
36
+ Requires-Dist: cadwyn>=8.1.0
37
37
  Requires-Dist: colorlog>=6.8.2
38
38
  Requires-Dist: fsspec>=2023.10.0
39
39
  Requires-Dist: greenback>=1.2.1
@@ -127,7 +127,7 @@ The ``airflowMetadata`` payload is compact UTF-8 JSON with this logical shape:
127
127
  "airflow_bundle_metadata_version": "1.0",
128
128
  "sdk": {
129
129
  "language": "typescript",
130
- "version": "0.1.0-beta1",
130
+ "version": "1.0.0-beta1",
131
131
  "supervisor_schema_version": "2026-06-16"
132
132
  },
133
133
  "source": "main.ts",
@@ -47,12 +47,12 @@ classifiers = [
47
47
  "Topic :: System :: Monitoring",
48
48
  ]
49
49
  dependencies = [
50
- "apache-airflow-core<3.5.0,>=3.4.0b1",
50
+ "apache-airflow-core<3.5.0,>=3.4.0rc1",
51
51
  "asgiref>=2.3.0; python_version < '3.14'",
52
52
  "asgiref>=3.11.1; python_version >= '3.14'",
53
53
  "attrs>=24.2.0, !=25.2.0",
54
54
  "babel>=2.17.0",
55
- "cadwyn>=6.1.1",
55
+ "cadwyn>=8.1.0",
56
56
  "fsspec>=2023.10.0",
57
57
  "greenback>=1.2.1",
58
58
  "httpx2>=2.0.0",
@@ -123,7 +123,7 @@ __all__ = [
123
123
  "teardown",
124
124
  ]
125
125
 
126
- __version__ = "1.4.0b2"
126
+ __version__ = "1.4.0rc2"
127
127
 
128
128
  if TYPE_CHECKING:
129
129
  from airflow.sdk.api.datamodels._generated import DagRunState, TaskInstanceState, TriggerRule, WeightRule
@@ -20,6 +20,7 @@ from __future__ import annotations
20
20
  import codecs
21
21
  import io
22
22
  import itertools
23
+ import linecache
23
24
  import logging
24
25
  import os
25
26
  import re
@@ -363,6 +364,16 @@ def _make_safe_enc_hook(default):
363
364
  return safe_enc_hook
364
365
 
365
366
 
367
+ def _add_source_lines(stacks: list[dict[str, Any]]) -> list[dict[str, Any]]:
368
+ """Add each frame's source code ``line``, which structlog's ``ExceptionDictTransformer`` omits."""
369
+ for stack in stacks:
370
+ for frame in stack["frames"]:
371
+ linecache.checkcache(frame["filename"])
372
+ if line := linecache.getline(frame["filename"], frame["lineno"]).strip():
373
+ frame["line"] = line
374
+ return stacks
375
+
376
+
366
377
  @cache
367
378
  def structlog_processors(
368
379
  json_output: bool,
@@ -436,7 +447,9 @@ def structlog_processors(
436
447
  use_rich=False, show_locals=False, suppress=suppress
437
448
  )
438
449
 
439
- dict_tracebacks = structlog.processors.ExceptionRenderer(dict_exc_formatter)
450
+ dict_tracebacks = structlog.processors.ExceptionRenderer(
451
+ lambda exc_info: _add_source_lines(dict_exc_formatter(exc_info))
452
+ )
440
453
 
441
454
  import msgspec
442
455
 
@@ -147,11 +147,13 @@ def _find_path_from_directory(
147
147
 
148
148
  :return: a generator of file paths which should not be ignored.
149
149
  """
150
- # A Dict of patterns, keyed using resolved, absolute paths
150
+ # A Dict of patterns, keyed using the walked (not resolved) paths, so that a symlink switched
151
+ # during the walk (e.g. by git-sync) does not drop the patterns inherited by subdirectories
151
152
  patterns_by_dir: dict[Path, list[_IgnoreRule]] = {}
153
+ visited_dirs: set[Path] = set()
152
154
 
153
155
  for root, dirs, files in os.walk(base_dir_path, followlinks=True):
154
- patterns: list[_IgnoreRule] = patterns_by_dir.get(Path(root).resolve(), [])
156
+ patterns: list[_IgnoreRule] = patterns_by_dir.get(Path(root), [])
155
157
 
156
158
  ignore_file_path = Path(root) / ignore_file_name
157
159
  if ignore_file_path.is_file():
@@ -176,12 +178,13 @@ def _find_path_from_directory(
176
178
  # explicit loop for infinite recursion detection since we are following symlinks in this walk
177
179
  for sd in dirs:
178
180
  dirpath = (Path(root) / sd).resolve()
179
- if dirpath in patterns_by_dir:
181
+ if dirpath in visited_dirs:
180
182
  raise RuntimeError(
181
183
  "Detected recursive loop when walking DAG directory "
182
184
  f"{base_dir_path}: {dirpath} has appeared more than once."
183
185
  )
184
- patterns_by_dir.update({dirpath: patterns.copy()})
186
+ visited_dirs.add(dirpath)
187
+ patterns_by_dir[Path(root) / sd] = patterns.copy()
185
188
 
186
189
  for file in files:
187
190
  if file != ignore_file_name:
@@ -81,7 +81,7 @@ def convert_to_rst_tables(metrics: list) -> str:
81
81
  # Counters section
82
82
  if counters:
83
83
  output.append("Counters")
84
- output.append("--------")
84
+ output.append("^^^^^^^^")
85
85
  output.append("")
86
86
  output.append(tabulate(counters, headers=headers, tablefmt="rst"))
87
87
  output.append("")
@@ -89,7 +89,7 @@ def convert_to_rst_tables(metrics: list) -> str:
89
89
  # Gauges section
90
90
  if gauges:
91
91
  output.append("Gauges")
92
- output.append("------")
92
+ output.append("^^^^^^")
93
93
  output.append("")
94
94
  output.append(tabulate(gauges, headers=headers, tablefmt="rst"))
95
95
  output.append("")
@@ -97,7 +97,7 @@ def convert_to_rst_tables(metrics: list) -> str:
97
97
  # Timers section
98
98
  if timers:
99
99
  output.append("Timers")
100
- output.append("------")
100
+ output.append("^^^^^^")
101
101
  output.append("")
102
102
  output.append(tabulate(timers, headers=headers, tablefmt="rst"))
103
103
  output.append("")
@@ -53,35 +53,109 @@ metrics:
53
53
 
54
54
  - name: "resumable_job.fresh_submit"
55
55
  description: "Number of times a ResumableJobMixin operator submitted a fresh job
56
- with no prior run ID stored (first run). Metric with operator tagging."
56
+ with no prior run ID stored (first run). Metric with operator, dag_id and task_id tagging."
57
57
  type: "counter"
58
58
  legacy_name: "-"
59
59
  name_variables: []
60
60
 
61
61
  - name: "resumable_job.already_succeeded"
62
62
  description: "Number of times a ResumableJobMixin operator found a stored run ID
63
- whose job had already completed successfully and skipped resubmission. Metric with operator tagging."
63
+ whose job had already completed successfully and skipped resubmission. Metric with operator,
64
+ dag_id and task_id tagging."
64
65
  type: "counter"
65
66
  legacy_name: "-"
66
67
  name_variables: []
67
68
 
68
69
  - name: "resumable_job.terminal_resubmit"
69
70
  description: "Number of times a ResumableJobMixin operator found a stored run ID
70
- whose job was in a terminal (failed) state and submitted a fresh job. Metric with operator tagging."
71
+ whose job was in a terminal (failed) state and submitted a fresh job. Metric with operator,
72
+ dag_id and task_id tagging."
71
73
  type: "counter"
72
74
  legacy_name: "-"
73
75
  name_variables: []
74
76
 
75
77
  - name: "resumable_job.reconnect_attempt"
76
78
  description: "Number of times a ResumableJobMixin operator found a stored run ID
77
- on retry and attempted to reconnect. Metric with operator tagging."
79
+ on retry and attempted to reconnect. Metric with operator, dag_id and task_id tagging."
78
80
  type: "counter"
79
81
  legacy_name: "-"
80
82
  name_variables: []
81
83
 
82
84
  - name: "resumable_job.reconnect_success"
83
85
  description: "Number of times a ResumableJobMixin operator successfully reconnected
84
- to an active job on retry. Metric with operator tagging."
86
+ to an active job on retry. Metric with operator, dag_id and task_id tagging."
87
+ type: "counter"
88
+ legacy_name: "-"
89
+ name_variables: []
90
+
91
+ - name: "task_state_store.read_found"
92
+ description: "Number of times a task read a key from the task state store and found a value.
93
+ Counts each call, so one task may contribute several.
94
+ Metric with operator, dag_id and task_id tagging."
95
+ type: "counter"
96
+ legacy_name: "-"
97
+ name_variables: []
98
+
99
+ - name: "task_state_store.read_absent"
100
+ description: "Number of times a task read a key from the task state store and found nothing.
101
+ Counts each call, so one task may contribute several.
102
+ Metric with operator, dag_id and task_id tagging."
103
+ type: "counter"
104
+ legacy_name: "-"
105
+ name_variables: []
106
+
107
+ - name: "task_state_store.write"
108
+ description: "Number of times a task wrote a key to the task state store.
109
+ Counts each call, so one task may contribute several.
110
+ Metric with operator, dag_id and task_id tagging."
111
+ type: "counter"
112
+ legacy_name: "-"
113
+ name_variables: []
114
+
115
+ - name: "task_state_store.delete"
116
+ description: "Number of times a task deleted a single key from the task state store.
117
+ Counts each call, so one task may contribute several.
118
+ Metric with operator, dag_id and task_id tagging."
119
+ type: "counter"
120
+ legacy_name: "-"
121
+ name_variables: []
122
+
123
+ - name: "task_state_store.clear"
124
+ description: "Number of times a task cleared every key in its task state store scope.
125
+ Counts each call, so one task may contribute several.
126
+ Metric with operator, dag_id and task_id tagging."
127
+ type: "counter"
128
+ legacy_name: "-"
129
+ name_variables: []
130
+
131
+ - name: "asset_state_store.read_found"
132
+ description: "Number of times a task read a key from the asset state store and found a value.
133
+ Counts each call, so one task may contribute several.
134
+ Metric with operator, dag_id and task_id tagging."
135
+ type: "counter"
136
+ legacy_name: "-"
137
+ name_variables: []
138
+
139
+ - name: "asset_state_store.read_absent"
140
+ description: "Number of times a task read a key from the asset state store and found nothing.
141
+ Counts each call, so one task may contribute several.
142
+ Metric with operator, dag_id and task_id tagging."
143
+ type: "counter"
144
+ legacy_name: "-"
145
+ name_variables: []
146
+
147
+ - name: "asset_state_store.write"
148
+ description: "Number of times a task wrote a key to the asset state store.
149
+ Counts each call, so one task may contribute several.
150
+ Metric with operator, dag_id and task_id tagging."
151
+ type: "counter"
152
+ legacy_name: "-"
153
+ name_variables: []
154
+
155
+ - name: "asset_state_store.delete"
156
+ description: "Number of times a task deleted a single key from the asset state store.
157
+ Counts each call, so one task may contribute several.
158
+ Metric with operator, dag_id and task_id tagging."
85
159
  type: "counter"
86
160
  legacy_name: "-"
87
161
  name_variables: []
@@ -67,7 +67,8 @@ def _reset_backend_after_fork() -> None:
67
67
  _backend = None
68
68
 
69
69
 
70
- os.register_at_fork(after_in_child=_reset_backend_after_fork)
70
+ if hasattr(os, "register_at_fork"):
71
+ os.register_at_fork(after_in_child=_reset_backend_after_fork)
71
72
 
72
73
 
73
74
  def normalize_name_for_stats(name: str, log_warning: bool = True) -> str:
@@ -26,6 +26,8 @@ from .plugins_manager import (
26
26
  ExternalViewDict as ExternalViewDict,
27
27
  FastAPIAppDict as FastAPIAppDict,
28
28
  FastAPIRootMiddlewareDict as FastAPIRootMiddlewareDict,
29
+ PluginActionDestinationLiteral as PluginActionDestinationLiteral,
30
+ PluginActionDict as PluginActionDict,
29
31
  PluginsDirectorySource as PluginsDirectorySource,
30
32
  ReactAppDict as ReactAppDict,
31
33
  _load_entrypoint_plugins as _load_entrypoint_plugins,
@@ -121,6 +121,36 @@ class ReactAppDict(_BaseUIDict):
121
121
  destination: NotRequired[Literal[BaseDestinationLiteral, "dashboard", "dag_overview", "task_overview"]]
122
122
 
123
123
 
124
+ PluginActionDestinationLiteral = Literal["dag", "dag_run", "task_instance"]
125
+
126
+
127
+ class _BasePluginActionDict(TypedDict):
128
+ """Shared fields mirroring ``BasePluginActionResponse``."""
129
+
130
+ name: str
131
+ destination: PluginActionDestinationLiteral
132
+ icon: NotRequired[str | None]
133
+ icon_dark_mode: NotRequired[str | None]
134
+ applies_to: NotRequired[AppliesToDict | None]
135
+
136
+
137
+ class PluginLinkActionDict(_BasePluginActionDict):
138
+ """An ``AirflowPlugin.ui_actions`` entry that opens a URL."""
139
+
140
+ action_type: Literal["link"]
141
+ href: str
142
+
143
+
144
+ class PluginReactActionDict(_BasePluginActionDict):
145
+ """An ``AirflowPlugin.ui_actions`` entry that mounts a React component behind a button."""
146
+
147
+ action_type: Literal["react"]
148
+ bundle_url: str
149
+
150
+
151
+ PluginActionDict = PluginLinkActionDict | PluginReactActionDict
152
+
153
+
124
154
  class FastAPIAppDict(TypedDict):
125
155
  """Dictionary structure for entries in AirflowPlugin.fastapi_apps."""
126
156
 
@@ -158,6 +188,7 @@ class AirflowPlugin:
158
188
  fastapi_root_middlewares: list[FastAPIRootMiddlewareDict] = []
159
189
  external_views: list[ExternalViewDict] = []
160
190
  react_apps: list[ReactAppDict] = []
191
+ ui_actions: list[PluginActionDict] = []
161
192
  ui_translations: list[Any] = []
162
193
  menu_links: list[Any] = []
163
194
  appbuilder_views: list[Any] = []
@@ -719,4 +719,4 @@ class RedactedIO(TextIO):
719
719
  return self.target.write(s)
720
720
 
721
721
  def writelines(self, lines) -> None:
722
- self.target.writelines(lines)
722
+ self.target.writelines(str(redact(line)) for line in lines)
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: http://0.0.0.0:8080/execution/openapi.json
3
- # version: 0.85.0
3
+ # version: 0.86.0
4
4
 
5
5
  # Licensed to the Apache Software Foundation (ASF) under one
6
6
  # or more contributor license agreements. See the NOTICE file
@@ -239,10 +239,14 @@ class LoopContext(BaseModel):
239
239
  """
240
240
 
241
241
  node_id: Annotated[str, Field(title="Node Id")]
242
- index: Annotated[int, Field(ge=0, title="Index")]
242
+ index: Annotated[int, Field(ge=1, title="Index")]
243
243
  max_iterations: Annotated[int, Field(gt=0, title="Max Iterations")]
244
244
  terminal_task_id: Annotated[str, Field(title="Terminal Task Id")]
245
245
  terminal_is_mapped: Annotated[bool, Field(title="Terminal Is Mapped")]
246
+ region_id: Annotated[UUID, Field(title="Region Id")]
247
+ trajectory: Annotated[int, Field(ge=1, title="Trajectory")]
248
+ forked_from_region_id: Annotated[UUID | None, Field(title="Forked From Region Id")] = None
249
+ resumes_from_index: Annotated[int | None, Field(title="Resumes From Index")] = None
246
250
 
247
251
 
248
252
  class LoopDecisionPayload(BaseModel):
@@ -869,6 +873,7 @@ class TIRunContext(BaseModel):
869
873
 
870
874
  dag_run: DagRun
871
875
  loop: LoopContext | None = None
876
+ expanded_ti_count: Annotated[int | None, Field(title="Expanded Ti Count")] = None
872
877
  task_reschedule_count: Annotated[int | None, Field(title="Task Reschedule Count")] = 0
873
878
  first_task_reschedule_start_date: Annotated[
874
879
  AwareDatetime | None, Field(title="First Task Reschedule Start Date")
@@ -122,13 +122,8 @@ class ResumableJobMixin(ABC):
122
122
  self.poll_until_complete(external_id, context)
123
123
  return self.get_job_result(external_id, context)
124
124
 
125
- stats_tags = {"operator": type(self).__name__}
126
- # The task is team-scoped in multi-team deployments; surface team_name on the
127
- # resumable_job metrics via the running task instance's stats tags (omitted when
128
- # not multi-team or the task has no team).
129
125
  ti = context.get("ti")
130
- if ti is not None and (team_name := ti.stats_tags.get("team_name")):
131
- stats_tags["team_name"] = team_name
126
+ stats_tags = {**(ti.stats_tags if ti is not None else {}), "operator": type(self).__name__}
132
127
 
133
128
  reconnect_to: Any = None
134
129
  already_succeeded_id: Any = None