apache-airflow-providers-standard 1.3.0rc1__tar.gz → 1.4.0__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.

Potentially problematic release.


This version of apache-airflow-providers-standard might be problematic. Click here for more details.

Files changed (137) hide show
  1. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/PKG-INFO +9 -10
  2. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/README.rst +4 -4
  3. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/changelog.rst +26 -0
  4. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/index.rst +1 -1
  5. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/operators/python.rst +7 -0
  6. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/provider.yaml +2 -1
  7. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/pyproject.toml +5 -6
  8. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/__init__.py +1 -1
  9. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/decorators/bash.py +2 -2
  10. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/decorators/branch_external_python.py +2 -1
  11. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/decorators/branch_python.py +2 -1
  12. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/decorators/branch_virtualenv.py +2 -1
  13. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/decorators/external_python.py +2 -1
  14. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/decorators/python.py +2 -2
  15. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/decorators/python_virtualenv.py +2 -1
  16. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/decorators/sensor.py +2 -2
  17. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/decorators/short_circuit.py +2 -1
  18. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/hooks/filesystem.py +4 -1
  19. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/hooks/package_index.py +4 -1
  20. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/hooks/subprocess.py +4 -1
  21. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/operators/bash.py +3 -4
  22. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/operators/branch.py +2 -3
  23. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/operators/empty.py +1 -1
  24. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/operators/python.py +28 -6
  25. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/operators/smooth.py +1 -1
  26. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/operators/trigger_dagrun.py +1 -4
  27. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/sensors/bash.py +1 -1
  28. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/sensors/date_time.py +1 -2
  29. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/sensors/external_task.py +12 -19
  30. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/sensors/filesystem.py +1 -1
  31. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/sensors/python.py +3 -3
  32. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/sensors/time.py +1 -1
  33. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/sensors/time_delta.py +3 -4
  34. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/sensors/weekday.py +1 -1
  35. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/utils/python_virtualenv.py +10 -1
  36. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/utils/skipmixin.py +12 -3
  37. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/version_compat.py +26 -1
  38. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/decorators/test_bash.py +2 -2
  39. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/decorators/test_branch_external_python.py +5 -9
  40. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/decorators/test_branch_python.py +5 -9
  41. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/decorators/test_branch_virtualenv.py +5 -9
  42. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/decorators/test_external_python.py +40 -32
  43. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/decorators/test_python.py +48 -92
  44. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/decorators/test_python_virtualenv.py +50 -50
  45. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/decorators/test_short_circuit.py +6 -6
  46. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/operators/test_bash.py +6 -6
  47. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/operators/test_branch_operator.py +20 -21
  48. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/operators/test_datetime.py +15 -14
  49. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/operators/test_latest_only_operator.py +15 -10
  50. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/operators/test_python.py +129 -81
  51. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/operators/test_trigger_dagrun.py +2 -2
  52. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/operators/test_weekday.py +7 -7
  53. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/sensors/test_external_task_sensor.py +7 -1
  54. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/sensors/test_time_delta.py +38 -40
  55. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/sensors/test_weekday.py +1 -1
  56. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/triggers/test_file.py +2 -1
  57. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/utils/test_python_virtualenv.py +17 -4
  58. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/commits.rst +0 -0
  59. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/conf.py +0 -0
  60. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/configurations-ref.rst +0 -0
  61. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/installing-providers-from-sources.rst +0 -0
  62. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/operators/bash.rst +0 -0
  63. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/operators/datetime.rst +0 -0
  64. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/operators/index.rst +0 -0
  65. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/operators/latest_only.rst +0 -0
  66. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/operators/trigger_dag_run.rst +0 -0
  67. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/security.rst +0 -0
  68. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/sensors/bash.rst +0 -0
  69. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/sensors/datetime.rst +0 -0
  70. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/sensors/external_task_sensor.rst +0 -0
  71. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/sensors/file.rst +0 -0
  72. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/sensors/index.rst +0 -0
  73. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/docs/sensors/python.rst +0 -0
  74. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/__init__.py +0 -0
  75. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/__init__.py +0 -0
  76. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/LICENSE +0 -0
  77. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/decorators/__init__.py +0 -0
  78. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/__init__.py +0 -0
  79. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_bash_decorator.py +0 -0
  80. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_bash_operator.py +0 -0
  81. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_branch_datetime_operator.py +0 -0
  82. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_branch_day_of_week_operator.py +0 -0
  83. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_branch_operator.py +0 -0
  84. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_branch_operator_decorator.py +0 -0
  85. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_external_task_child_deferrable.py +0 -0
  86. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_external_task_marker_dag.py +0 -0
  87. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_external_task_parent_deferrable.py +0 -0
  88. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_latest_only.py +0 -0
  89. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_python_decorator.py +0 -0
  90. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_python_operator.py +0 -0
  91. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_sensor_decorator.py +0 -0
  92. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_sensors.py +0 -0
  93. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_short_circuit_decorator.py +0 -0
  94. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_short_circuit_operator.py +0 -0
  95. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/example_trigger_controller_dag.py +0 -0
  96. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/sql/__init__.py +0 -0
  97. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/example_dags/sql/sample.sql +0 -0
  98. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/exceptions.py +0 -0
  99. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/get_provider_info.py +0 -0
  100. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/hooks/__init__.py +0 -0
  101. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/operators/__init__.py +0 -0
  102. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/operators/datetime.py +0 -0
  103. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/operators/latest_only.py +0 -0
  104. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/operators/weekday.py +0 -0
  105. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/sensors/__init__.py +0 -0
  106. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/triggers/__init__.py +0 -0
  107. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/triggers/external_task.py +0 -0
  108. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/triggers/file.py +0 -0
  109. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/triggers/temporal.py +0 -0
  110. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/utils/__init__.py +0 -0
  111. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/utils/python_virtualenv_script.jinja2 +0 -0
  112. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/utils/sensor_helper.py +0 -0
  113. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/src/airflow/providers/standard/utils/weekday.py +0 -0
  114. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/conftest.py +0 -0
  115. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/__init__.py +0 -0
  116. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/__init__.py +0 -0
  117. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/decorators/__init__.py +0 -0
  118. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/decorators/test_sensor.py +0 -0
  119. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/hooks/__init__.py +0 -0
  120. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/hooks/test_filesystem.py +0 -0
  121. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/hooks/test_package_index.py +0 -0
  122. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/hooks/test_subprocess.py +0 -0
  123. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/operators/__init__.py +0 -0
  124. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/operators/test_smooth.py +0 -0
  125. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/sensors/__init__.py +0 -0
  126. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/sensors/test_bash.py +0 -0
  127. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/sensors/test_date_time.py +0 -0
  128. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/sensors/test_python.py +0 -0
  129. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/sensors/test_time.py +0 -0
  130. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/test_exceptions.py +0 -0
  131. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/triggers/__init__.py +0 -0
  132. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/triggers/test_external_task.py +0 -0
  133. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/triggers/test_temporal.py +0 -0
  134. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/utils/__init__.py +0 -0
  135. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/utils/test_sensor_helper.py +0 -0
  136. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/utils/test_skipmixin.py +0 -0
  137. {apache_airflow_providers_standard-1.3.0rc1 → apache_airflow_providers_standard-1.4.0}/tests/unit/standard/utils/test_weekday.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-standard
3
- Version: 1.3.0rc1
3
+ Version: 1.4.0
4
4
  Summary: Provider package apache-airflow-providers-standard for Apache Airflow
5
5
  Keywords: airflow-provider,standard,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
7
7
  Maintainer-email: Apache Software Foundation <dev@airflow.apache.org>
8
- Requires-Python: ~=3.9
8
+ Requires-Python: ~=3.10
9
9
  Description-Content-Type: text/x-rst
10
10
  Classifier: Development Status :: 5 - Production/Stable
11
11
  Classifier: Environment :: Console
@@ -15,15 +15,14 @@ Classifier: Intended Audience :: System Administrators
15
15
  Classifier: Framework :: Apache Airflow
16
16
  Classifier: Framework :: Apache Airflow :: Provider
17
17
  Classifier: License :: OSI Approved :: Apache Software License
18
- Classifier: Programming Language :: Python :: 3.9
19
18
  Classifier: Programming Language :: Python :: 3.10
20
19
  Classifier: Programming Language :: Python :: 3.11
21
20
  Classifier: Programming Language :: Python :: 3.12
22
21
  Classifier: Topic :: System :: Monitoring
23
- Requires-Dist: apache-airflow>=2.10.0rc1
22
+ Requires-Dist: apache-airflow>=2.10.0
24
23
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
25
- Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-standard/1.3.0/changelog.html
26
- Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-standard/1.3.0
24
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-standard/1.4.0/changelog.html
25
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-standard/1.4.0
27
26
  Project-URL: Mastodon, https://fosstodon.org/@airflow
28
27
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
29
28
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -54,7 +53,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
54
53
 
55
54
  Package ``apache-airflow-providers-standard``
56
55
 
57
- Release: ``1.3.0``
56
+ Release: ``1.4.0``
58
57
 
59
58
 
60
59
  Airflow Standard Provider
@@ -67,7 +66,7 @@ This is a provider package for ``standard`` provider. All classes for this provi
67
66
  are in ``airflow.providers.standard`` python package.
68
67
 
69
68
  You can find package information and changelog for the provider
70
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-standard/1.3.0/>`_.
69
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-standard/1.4.0/>`_.
71
70
 
72
71
  Installation
73
72
  ------------
@@ -76,7 +75,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
76
75
  for the minimum Airflow version supported) via
77
76
  ``pip install apache-airflow-providers-standard``
78
77
 
79
- The package supports the following python versions: 3.9,3.10,3.11,3.12
78
+ The package supports the following python versions: 3.10,3.11,3.12
80
79
 
81
80
  Requirements
82
81
  ------------
@@ -88,5 +87,5 @@ PIP package Version required
88
87
  ================== ==================
89
88
 
90
89
  The changelog for the provider package can be found in the
91
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-standard/1.3.0/changelog.html>`_.
90
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-standard/1.4.0/changelog.html>`_.
92
91
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-standard``
25
25
 
26
- Release: ``1.3.0``
26
+ Release: ``1.4.0``
27
27
 
28
28
 
29
29
  Airflow Standard Provider
@@ -36,7 +36,7 @@ This is a provider package for ``standard`` provider. All classes for this provi
36
36
  are in ``airflow.providers.standard`` python package.
37
37
 
38
38
  You can find package information and changelog for the provider
39
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-standard/1.3.0/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-standard/1.4.0/>`_.
40
40
 
41
41
  Installation
42
42
  ------------
@@ -45,7 +45,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
45
45
  for the minimum Airflow version supported) via
46
46
  ``pip install apache-airflow-providers-standard``
47
47
 
48
- The package supports the following python versions: 3.9,3.10,3.11,3.12
48
+ The package supports the following python versions: 3.10,3.11,3.12
49
49
 
50
50
  Requirements
51
51
  ------------
@@ -57,4 +57,4 @@ PIP package Version required
57
57
  ================== ==================
58
58
 
59
59
  The changelog for the provider package can be found in the
60
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-standard/1.3.0/changelog.html>`_.
60
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-standard/1.4.0/changelog.html>`_.
@@ -35,6 +35,32 @@
35
35
  Changelog
36
36
  ---------
37
37
 
38
+ 1.4.0
39
+ .....
40
+
41
+ Features
42
+ ~~~~~~~~
43
+
44
+ * ``Add support for 'PackageIndex' connections in 'PythonVirtualenvOperator' (#52288)``
45
+ * ``Honor 'index_urls' when venv is created with 'uv' in 'PythonVirtualenvOperator' (#52287)``
46
+
47
+ Misc
48
+ ~~~~
49
+
50
+ * ``Move 'BaseHook' implementation to task SDK (#51873)``
51
+ * ``Disable UP038 ruff rule and revert mandatory 'X | Y' in insintance checks (#52644)``
52
+ * ``Upgrade ruff to latest version (0.12.1) (#52562)``
53
+ * ``Move compat shim in Standard Provider to 'version_compat.py' (#52567)``
54
+ * ``Add a bunch of no-redef ignores so Mypy is happy (#52507)``
55
+ * ``Drop support for Python 3.9 (#52072)``
56
+ * ``Replace 'models.BaseOperator' to Task SDK one for Standard Provider (#52292)``
57
+ * ``Add deprecation to 'airflow/sensors/base.py' (#52249)``
58
+
59
+ .. Below changes are excluded from the changelog. Move them to
60
+ appropriate section above if needed. Do not delete the lines(!):
61
+ * ``One more redef needing ignore (#52525)``
62
+ * ``Make sure all test version imports come from test_common (#52425)``
63
+
38
64
  1.3.0
39
65
  .....
40
66
 
@@ -66,7 +66,7 @@ apache-airflow-providers-standard package
66
66
  Airflow Standard Provider
67
67
 
68
68
 
69
- Release: 1.3.0
69
+ Release: 1.4.0
70
70
 
71
71
  Provider package
72
72
  ----------------
@@ -196,6 +196,13 @@ If you want to use additional task specific private python repositories to setup
196
196
  pip install configurations. Passed index urls replace the standard system configured index url settings.
197
197
  To prevent adding secrets to the private repository in your DAG code you can use the Airflow
198
198
  :doc:`apache-airflow:authoring-and-scheduling/connections`. For this purpose the connection type ``Package Index (Python)`` can be used.
199
+ In the ``Package Index (Python)`` connection type you can specify the index URL and credentials for the private repository.
200
+ After creating a ``Package Index (Python)`` connection, you can provide the connection ID to the ``PythonVirtualenvOperator`` using the ``index_urls_from_connection_ids`` parameter.
201
+ The ``PythonVirtualenvOperator`` will automatically append the index URLs from the connection to the ``index_urls`` parameter of the pip installer including the provided credentials.
202
+
203
+ The first ``index_url`` in the list will be used as main index URL (``index-url`` for pip or ``default-index`` for uv) of the virtual environment setup.
204
+ Additional URLs will be added as extra index URLs. If you provide both parameters ``index_urls`` and ``index_urls_from_connection_ids``, the first URL in
205
+ the ``index_urls`` will be used as the main index URL and the rest will be added as extra index URLs.
199
206
 
200
207
  In the special case you want to prevent remote calls for setup of a virtual environment, pass the ``index_urls`` as empty list as ``index_urls=[]`` which
201
208
  forced pip installer to use the ``--no-index`` option.
@@ -21,12 +21,13 @@ name: Standard
21
21
  description: |
22
22
  Airflow Standard Provider
23
23
  state: ready
24
- source-date-epoch: 1749897025
24
+ source-date-epoch: 1751474457
25
25
  # Note that those versions are maintained by release manager - do not update them manually
26
26
  # with the exception of case where other provider in sources has >= new provider version.
27
27
  # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
28
28
  # to be done in the same PR
29
29
  versions:
30
+ - 1.4.0
30
31
  - 1.3.0
31
32
  - 1.2.0
32
33
  - 1.1.0
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-standard"
28
- version = "1.3.0rc1"
28
+ version = "1.4.0"
29
29
  description = "Provider package apache-airflow-providers-standard for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -44,20 +44,19 @@ classifiers = [
44
44
  "Framework :: Apache Airflow",
45
45
  "Framework :: Apache Airflow :: Provider",
46
46
  "License :: OSI Approved :: Apache Software License",
47
- "Programming Language :: Python :: 3.9",
48
47
  "Programming Language :: Python :: 3.10",
49
48
  "Programming Language :: Python :: 3.11",
50
49
  "Programming Language :: Python :: 3.12",
51
50
  "Topic :: System :: Monitoring",
52
51
  ]
53
- requires-python = "~=3.9"
52
+ requires-python = "~=3.10"
54
53
 
55
54
  # The dependencies should be modified in place in the generated file.
56
55
  # Any change in the dependencies is preserved when the file is regenerated
57
56
  # Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
58
57
  # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
59
58
  dependencies = [
60
- "apache-airflow>=2.10.0rc1",
59
+ "apache-airflow>=2.10.0",
61
60
  ]
62
61
 
63
62
  [dependency-groups]
@@ -95,8 +94,8 @@ apache-airflow-providers-common-sql = {workspace = true}
95
94
  apache-airflow-providers-standard = {workspace = true}
96
95
 
97
96
  [project.urls]
98
- "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-standard/1.3.0"
99
- "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-standard/1.3.0/changelog.html"
97
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-standard/1.4.0"
98
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-standard/1.4.0/changelog.html"
100
99
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
101
100
  "Source Code" = "https://github.com/apache/airflow"
102
101
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "1.3.0"
32
+ __version__ = "1.4.0"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.10.0"
@@ -18,8 +18,8 @@
18
18
  from __future__ import annotations
19
19
 
20
20
  import warnings
21
- from collections.abc import Collection, Mapping, Sequence
22
- from typing import TYPE_CHECKING, Any, Callable, ClassVar
21
+ from collections.abc import Callable, Collection, Mapping, Sequence
22
+ from typing import TYPE_CHECKING, Any, ClassVar
23
23
 
24
24
  from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
25
25
 
@@ -16,7 +16,8 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
- from typing import TYPE_CHECKING, Callable
19
+ from collections.abc import Callable
20
+ from typing import TYPE_CHECKING
20
21
 
21
22
  from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
22
23
 
@@ -16,7 +16,8 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
- from typing import TYPE_CHECKING, Callable
19
+ from collections.abc import Callable
20
+ from typing import TYPE_CHECKING
20
21
 
21
22
  from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
22
23
 
@@ -16,7 +16,8 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
- from typing import TYPE_CHECKING, Callable
19
+ from collections.abc import Callable
20
+ from typing import TYPE_CHECKING
20
21
 
21
22
  from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
22
23
 
@@ -16,7 +16,8 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
- from typing import TYPE_CHECKING, Callable
19
+ from collections.abc import Callable
20
+ from typing import TYPE_CHECKING
20
21
 
21
22
  from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
22
23
 
@@ -16,8 +16,8 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
- from collections.abc import Sequence
20
- from typing import TYPE_CHECKING, Callable
19
+ from collections.abc import Callable, Sequence
20
+ from typing import TYPE_CHECKING
21
21
 
22
22
  from airflow.providers.standard.operators.python import PythonOperator
23
23
  from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
@@ -16,7 +16,8 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
- from typing import TYPE_CHECKING, Callable
19
+ from collections.abc import Callable
20
+ from typing import TYPE_CHECKING
20
21
 
21
22
  from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
22
23
 
@@ -17,8 +17,8 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- from collections.abc import Sequence
21
- from typing import TYPE_CHECKING, Callable, ClassVar
20
+ from collections.abc import Callable, Sequence
21
+ from typing import TYPE_CHECKING, ClassVar
22
22
 
23
23
  from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
24
24
 
@@ -16,7 +16,8 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
- from typing import TYPE_CHECKING, Callable
19
+ from collections.abc import Callable
20
+ from typing import TYPE_CHECKING
20
21
 
21
22
  from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
22
23
 
@@ -20,7 +20,10 @@ from __future__ import annotations
20
20
  from pathlib import Path
21
21
  from typing import Any
22
22
 
23
- from airflow.hooks.base import BaseHook
23
+ try:
24
+ from airflow.sdk import BaseHook
25
+ except ImportError:
26
+ from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
24
27
 
25
28
 
26
29
  class FSHook(BaseHook):
@@ -23,7 +23,10 @@ import subprocess
23
23
  from typing import Any
24
24
  from urllib.parse import quote, urlparse
25
25
 
26
- from airflow.hooks.base import BaseHook
26
+ try:
27
+ from airflow.sdk import BaseHook
28
+ except ImportError:
29
+ from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
27
30
 
28
31
 
29
32
  class PackageIndexHook(BaseHook):
@@ -24,7 +24,10 @@ from collections.abc import Iterator
24
24
  from subprocess import PIPE, STDOUT, Popen
25
25
  from tempfile import TemporaryDirectory, gettempdir
26
26
 
27
- from airflow.hooks.base import BaseHook
27
+ try:
28
+ from airflow.sdk import BaseHook
29
+ except ImportError:
30
+ from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
28
31
 
29
32
  SubprocessResult = namedtuple("SubprocessResult", ["exit_code", "output"])
30
33
 
@@ -20,14 +20,13 @@ from __future__ import annotations
20
20
  import os
21
21
  import shutil
22
22
  import tempfile
23
- from collections.abc import Container, Sequence
23
+ from collections.abc import Callable, Container, Sequence
24
24
  from functools import cached_property
25
- from typing import TYPE_CHECKING, Any, Callable, cast
25
+ from typing import TYPE_CHECKING, Any, cast
26
26
 
27
27
  from airflow.exceptions import AirflowException, AirflowSkipException
28
- from airflow.models.baseoperator import BaseOperator
29
28
  from airflow.providers.standard.hooks.subprocess import SubprocessHook, SubprocessResult, working_directory
30
- from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
29
+ from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS, BaseOperator
31
30
 
32
31
  if AIRFLOW_V_3_0_PLUS:
33
32
  from airflow.sdk.execution_time.context import context_to_airflow_vars
@@ -22,13 +22,12 @@ from __future__ import annotations
22
22
  from collections.abc import Iterable
23
23
  from typing import TYPE_CHECKING
24
24
 
25
- from airflow.models.baseoperator import BaseOperator
26
- from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
25
+ from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS, BaseOperator
27
26
 
28
27
  if AIRFLOW_V_3_0_PLUS:
29
28
  from airflow.providers.standard.utils.skipmixin import SkipMixin
30
29
  else:
31
- from airflow.models.skipmixin import SkipMixin
30
+ from airflow.models.skipmixin import SkipMixin # type: ignore[no-redef]
32
31
 
33
32
  if TYPE_CHECKING:
34
33
  from airflow.sdk.definitions.context import Context
@@ -18,7 +18,7 @@ from __future__ import annotations
18
18
 
19
19
  from typing import TYPE_CHECKING
20
20
 
21
- from airflow.models.baseoperator import BaseOperator
21
+ from airflow.providers.standard.version_compat import BaseOperator
22
22
 
23
23
  if TYPE_CHECKING:
24
24
  from airflow.sdk.definitions.context import Context
@@ -29,12 +29,12 @@ import textwrap
29
29
  import types
30
30
  import warnings
31
31
  from abc import ABCMeta, abstractmethod
32
- from collections.abc import Collection, Container, Iterable, Mapping, Sequence
32
+ from collections.abc import Callable, Collection, Container, Iterable, Mapping, Sequence
33
33
  from functools import cache
34
34
  from itertools import chain
35
35
  from pathlib import Path
36
36
  from tempfile import TemporaryDirectory
37
- from typing import TYPE_CHECKING, Any, Callable, NamedTuple, cast
37
+ from typing import TYPE_CHECKING, Any, NamedTuple, cast
38
38
 
39
39
  import lazy_object_proxy
40
40
  from packaging.requirements import InvalidRequirement, Requirement
@@ -48,10 +48,10 @@ from airflow.exceptions import (
48
48
  AirflowSkipException,
49
49
  DeserializingResultError,
50
50
  )
51
- from airflow.models.baseoperator import BaseOperator
52
51
  from airflow.models.variable import Variable
52
+ from airflow.providers.standard.hooks.package_index import PackageIndexHook
53
53
  from airflow.providers.standard.utils.python_virtualenv import prepare_virtualenv, write_python_script
54
- from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
54
+ from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS, BaseOperator
55
55
  from airflow.utils import hashlib_wrapper
56
56
  from airflow.utils.context import context_copy_partial, context_merge
57
57
  from airflow.utils.file import get_unique_dag_module_name
@@ -62,7 +62,7 @@ if AIRFLOW_V_3_0_PLUS:
62
62
  from airflow.providers.standard.operators.branch import BaseBranchOperator
63
63
  from airflow.providers.standard.utils.skipmixin import SkipMixin
64
64
  else:
65
- from airflow.models.skipmixin import SkipMixin
65
+ from airflow.models.skipmixin import SkipMixin # type: ignore[no-redef]
66
66
  from airflow.operators.branch import BaseBranchOperator # type: ignore[no-redef]
67
67
 
68
68
 
@@ -656,6 +656,8 @@ class PythonVirtualenvOperator(_BasePythonVirtualenvOperator):
656
656
  exit code will be treated as a failure.
657
657
  :param index_urls: an optional list of index urls to load Python packages from.
658
658
  If not provided the system pip conf will be used to source packages from.
659
+ :param index_urls_from_connection_ids: An optional list of ``PackageIndex`` connection IDs.
660
+ Will be appended to ``index_urls``.
659
661
  :param venv_cache_path: Optional path to the virtual environment parent folder in which the
660
662
  virtual environment will be cached, creates a sub-folder venv-{hash} whereas hash will be replaced
661
663
  with a checksum of requirements. If not provided the virtual environment will be created and deleted
@@ -669,7 +671,9 @@ class PythonVirtualenvOperator(_BasePythonVirtualenvOperator):
669
671
  """
670
672
 
671
673
  template_fields: Sequence[str] = tuple(
672
- {"requirements", "index_urls", "venv_cache_path"}.union(PythonOperator.template_fields)
674
+ {"requirements", "index_urls", "index_urls_from_connection_ids", "venv_cache_path"}.union(
675
+ PythonOperator.template_fields
676
+ )
673
677
  )
674
678
  template_ext: Sequence[str] = (".txt",)
675
679
 
@@ -690,6 +694,7 @@ class PythonVirtualenvOperator(_BasePythonVirtualenvOperator):
690
694
  expect_airflow: bool = True,
691
695
  skip_on_exit_code: int | Container[int] | None = None,
692
696
  index_urls: None | Collection[str] | str = None,
697
+ index_urls_from_connection_ids: None | Collection[str] | str = None,
693
698
  venv_cache_path: None | os.PathLike[str] = None,
694
699
  env_vars: dict[str, str] | None = None,
695
700
  inherit_env: bool = True,
@@ -724,6 +729,12 @@ class PythonVirtualenvOperator(_BasePythonVirtualenvOperator):
724
729
  self.index_urls = list(index_urls)
725
730
  else:
726
731
  self.index_urls = None
732
+ if isinstance(index_urls_from_connection_ids, str):
733
+ self.index_urls_from_connection_ids: list[str] | None = [index_urls_from_connection_ids]
734
+ elif isinstance(index_urls_from_connection_ids, Collection):
735
+ self.index_urls_from_connection_ids = list(index_urls_from_connection_ids)
736
+ else:
737
+ self.index_urls_from_connection_ids = None
727
738
  self.venv_cache_path = venv_cache_path
728
739
  super().__init__(
729
740
  python_callable=python_callable,
@@ -850,7 +861,18 @@ class PythonVirtualenvOperator(_BasePythonVirtualenvOperator):
850
861
  self.log.info("New Python virtual environment created in %s", venv_path)
851
862
  return venv_path
852
863
 
864
+ def _retrieve_index_urls_from_connection_ids(self):
865
+ """Retrieve index URLs from Package Index connections."""
866
+ if self.index_urls is None:
867
+ self.index_urls = []
868
+ for conn_id in self.index_urls_from_connection_ids:
869
+ conn_url = PackageIndexHook(conn_id).get_connection_url()
870
+ self.index_urls.append(conn_url)
871
+
853
872
  def execute_callable(self):
873
+ if self.index_urls_from_connection_ids:
874
+ self._retrieve_index_urls_from_connection_ids()
875
+
854
876
  if self.venv_cache_path:
855
877
  venv_path = self._ensure_venv_cache_exists(Path(self.venv_cache_path))
856
878
  python_path = venv_path / "bin" / "python"
@@ -19,7 +19,7 @@ from __future__ import annotations
19
19
 
20
20
  from typing import TYPE_CHECKING
21
21
 
22
- from airflow.models.baseoperator import BaseOperator
22
+ from airflow.providers.standard.version_compat import BaseOperator
23
23
 
24
24
  if TYPE_CHECKING:
25
25
  from airflow.sdk.definitions.context import Context
@@ -34,12 +34,11 @@ from airflow.exceptions import (
34
34
  DagNotFound,
35
35
  DagRunAlreadyExists,
36
36
  )
37
- from airflow.models import BaseOperator
38
37
  from airflow.models.dag import DagModel
39
38
  from airflow.models.dagbag import DagBag
40
39
  from airflow.models.dagrun import DagRun
41
40
  from airflow.providers.standard.triggers.external_task import DagStateTrigger
42
- from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
41
+ from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS, BaseOperator, BaseOperatorLink
43
42
  from airflow.utils import timezone
44
43
  from airflow.utils.state import DagRunState
45
44
  from airflow.utils.types import NOTSET, ArgNotSet, DagRunType
@@ -60,11 +59,9 @@ if TYPE_CHECKING:
60
59
  from airflow.utils.context import Context
61
60
 
62
61
  if AIRFLOW_V_3_0_PLUS:
63
- from airflow.sdk import BaseOperatorLink
64
62
  from airflow.sdk.execution_time.xcom import XCom
65
63
  else:
66
64
  from airflow.models import XCom # type: ignore[no-redef]
67
- from airflow.models.baseoperatorlink import BaseOperatorLink # type: ignore[no-redef]
68
65
 
69
66
 
70
67
  class DagIsPaused(AirflowException):
@@ -24,7 +24,7 @@ from tempfile import NamedTemporaryFile, TemporaryDirectory, gettempdir
24
24
  from typing import TYPE_CHECKING
25
25
 
26
26
  from airflow.exceptions import AirflowFailException
27
- from airflow.sensors.base import BaseSensorOperator
27
+ from airflow.providers.standard.version_compat import BaseSensorOperator
28
28
 
29
29
  if TYPE_CHECKING:
30
30
  try:
@@ -23,8 +23,7 @@ from dataclasses import dataclass
23
23
  from typing import TYPE_CHECKING, Any, NoReturn
24
24
 
25
25
  from airflow.providers.standard.triggers.temporal import DateTimeTrigger
26
- from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
27
- from airflow.sensors.base import BaseSensorOperator
26
+ from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS, BaseSensorOperator
28
27
  from airflow.utils import timezone
29
28
 
30
29
  try:
@@ -19,8 +19,8 @@ from __future__ import annotations
19
19
  import datetime
20
20
  import os
21
21
  import warnings
22
- from collections.abc import Collection, Iterable
23
- from typing import TYPE_CHECKING, Any, Callable, ClassVar
22
+ from collections.abc import Callable, Collection, Iterable
23
+ from typing import TYPE_CHECKING, Any, ClassVar
24
24
 
25
25
  from airflow.configuration import conf
26
26
  from airflow.exceptions import AirflowSkipException
@@ -39,14 +39,16 @@ from airflow.providers.standard.exceptions import (
39
39
  from airflow.providers.standard.operators.empty import EmptyOperator
40
40
  from airflow.providers.standard.triggers.external_task import WorkflowTrigger
41
41
  from airflow.providers.standard.utils.sensor_helper import _get_count, _get_external_task_group_task_ids
42
- from airflow.providers.standard.version_compat import AIRFLOW_V_3_0_PLUS
42
+ from airflow.providers.standard.version_compat import (
43
+ AIRFLOW_V_3_0_PLUS,
44
+ BaseOperator,
45
+ BaseOperatorLink,
46
+ BaseSensorOperator,
47
+ )
43
48
  from airflow.utils.file import correct_maybe_zipped
44
49
  from airflow.utils.state import State, TaskInstanceState
45
50
 
46
- if AIRFLOW_V_3_0_PLUS:
47
- from airflow.sdk.bases.sensor import BaseSensorOperator
48
- else:
49
- from airflow.sensors.base import BaseSensorOperator
51
+ if not AIRFLOW_V_3_0_PLUS:
50
52
  from airflow.utils.session import NEW_SESSION, provide_session
51
53
 
52
54
  if TYPE_CHECKING:
@@ -54,19 +56,10 @@ if TYPE_CHECKING:
54
56
 
55
57
  from airflow.models.taskinstancekey import TaskInstanceKey
56
58
 
57
- try:
58
- from airflow.sdk import BaseOperator
59
+ if AIRFLOW_V_3_0_PLUS:
59
60
  from airflow.sdk.definitions.context import Context
60
- except ImportError:
61
- # TODO: Remove once provider drops support for Airflow 2
62
- from airflow.models.baseoperator import BaseOperator
63
- from airflow.utils.context import Context
64
-
65
-
66
- if AIRFLOW_V_3_0_PLUS:
67
- from airflow.sdk import BaseOperatorLink
68
- else:
69
- from airflow.models.baseoperatorlink import BaseOperatorLink # type: ignore[no-redef]
61
+ else:
62
+ from airflow.utils.context import Context # type: ignore[no-redef]
70
63
 
71
64
 
72
65
  class ExternalDagLink(BaseOperatorLink):
@@ -29,7 +29,7 @@ from airflow.configuration import conf
29
29
  from airflow.exceptions import AirflowException
30
30
  from airflow.providers.standard.hooks.filesystem import FSHook
31
31
  from airflow.providers.standard.triggers.file import FileTrigger
32
- from airflow.sensors.base import BaseSensorOperator
32
+ from airflow.providers.standard.version_compat import BaseSensorOperator
33
33
 
34
34
  try:
35
35
  from airflow.triggers.base import StartTriggerArgs