apache-airflow-providers-openlineage 2.5.0__tar.gz → 2.6.0rc1__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 (135) hide show
  1. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/PKG-INFO +17 -15
  2. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/README.rst +7 -6
  3. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/changelog.rst +38 -0
  4. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/index.rst +7 -5
  5. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/provider.yaml +7 -1
  6. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/pyproject.toml +10 -9
  7. {apache_airflow_providers_openlineage-2.5.0/tests/integration → apache_airflow_providers_openlineage-2.6.0rc1/src/airflow}/__init__.py +1 -1
  8. {apache_airflow_providers_openlineage-2.5.0/tests/system → apache_airflow_providers_openlineage-2.6.0rc1/src/airflow/providers}/__init__.py +1 -1
  9. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/__init__.py +1 -1
  10. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/conf.py +11 -3
  11. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/extractors/base.py +1 -1
  12. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/get_provider_info.py +6 -0
  13. apache_airflow_providers_openlineage-2.6.0rc1/src/airflow/providers/openlineage/operators/empty.py +48 -0
  14. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/plugins/adapter.py +32 -6
  15. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/plugins/listener.py +38 -8
  16. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/utils/selective_enable.py +5 -7
  17. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/utils/utils.py +79 -3
  18. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/version_compat.py +10 -0
  19. {apache_airflow_providers_openlineage-2.5.0/src/airflow → apache_airflow_providers_openlineage-2.6.0rc1/tests/integration}/__init__.py +1 -1
  20. {apache_airflow_providers_openlineage-2.5.0/src/airflow/providers → apache_airflow_providers_openlineage-2.6.0rc1/tests/system}/__init__.py +1 -1
  21. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_base_complex_dag.py +41 -10
  22. apache_airflow_providers_openlineage-2.6.0rc1/tests/system/openlineage/example_openlineage_docs_file_dag.py +63 -0
  23. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_mapped_simple_dag.py +6 -1
  24. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_task_groups_dag.py +5 -1
  25. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_trigger_dag.py +2 -0
  26. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_base_complex_dag__af2.json +759 -27
  27. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_base_complex_dag__af3.json +741 -29
  28. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_base_simple_dag__af2.json +2 -0
  29. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_base_simple_dag__af3.json +2 -0
  30. apache_airflow_providers_openlineage-2.6.0rc1/tests/system/openlineage/expected_events/openlineage_docs_file_dag.json +44 -0
  31. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_timetable_dag__af3.json +1 -1
  32. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_trigger_dag.json +12 -0
  33. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/operator.py +1 -1
  34. apache_airflow_providers_openlineage-2.6.0rc1/tests/unit/__init__.py +17 -0
  35. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/extractors/test_base.py +2 -2
  36. apache_airflow_providers_openlineage-2.6.0rc1/tests/unit/openlineage/operators/test_empty.py +54 -0
  37. apache_airflow_providers_openlineage-2.6.0rc1/tests/unit/openlineage/plugins/openlineage_configs/__init__.py +16 -0
  38. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/plugins/test_adapter.py +67 -13
  39. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/plugins/test_listener.py +276 -35
  40. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/plugins/test_utils.py +1 -1
  41. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/test_conf.py +33 -0
  42. apache_airflow_providers_openlineage-2.6.0rc1/tests/unit/openlineage/utils/__init__.py +16 -0
  43. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/utils/test_selective_enable.py +1 -1
  44. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/utils/test_utils.py +308 -55
  45. apache_airflow_providers_openlineage-2.5.0/tests/unit/__init__.py +0 -17
  46. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/.latest-doc-only-change.txt +0 -0
  47. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/commits.rst +0 -0
  48. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/conf.py +0 -0
  49. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/configurations-ref.rst +0 -0
  50. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/guides/developer.rst +0 -0
  51. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/guides/structure.rst +0 -0
  52. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/guides/user.rst +0 -0
  53. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/installing-providers-from-sources.rst +0 -0
  54. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/integration-logos/openlineage.svg +0 -0
  55. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/macros.rst +0 -0
  56. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/security.rst +0 -0
  57. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/docs/supported_classes.rst +0 -0
  58. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/LICENSE +0 -0
  59. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/extractors/__init__.py +0 -0
  60. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/extractors/bash.py +0 -0
  61. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/extractors/manager.py +0 -0
  62. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/extractors/python.py +0 -0
  63. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/facets/AirflowDagRunFacet.json +0 -0
  64. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/facets/AirflowDebugRunFacet.json +0 -0
  65. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/facets/AirflowJobFacet.json +0 -0
  66. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/facets/AirflowRunFacet.json +0 -0
  67. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/facets/AirflowStateRunFacet.json +0 -0
  68. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/facets/__init__.py +0 -0
  69. {apache_airflow_providers_openlineage-2.5.0/src/airflow/providers/openlineage/plugins → apache_airflow_providers_openlineage-2.6.0rc1/src/airflow/providers/openlineage/operators}/__init__.py +0 -0
  70. {apache_airflow_providers_openlineage-2.5.0/src/airflow/providers/openlineage/utils → apache_airflow_providers_openlineage-2.6.0rc1/src/airflow/providers/openlineage/plugins}/__init__.py +0 -0
  71. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/plugins/facets.py +0 -0
  72. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/plugins/macros.py +0 -0
  73. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/plugins/openlineage.py +0 -0
  74. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/sqlparser.py +0 -0
  75. {apache_airflow_providers_openlineage-2.5.0/tests/integration/openlineage → apache_airflow_providers_openlineage-2.6.0rc1/src/airflow/providers/openlineage/utils}/__init__.py +0 -0
  76. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/utils/spark.py +0 -0
  77. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/src/airflow/providers/openlineage/utils/sql.py +0 -0
  78. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/conftest.py +0 -0
  79. {apache_airflow_providers_openlineage-2.5.0/tests/integration/openlineage/operators → apache_airflow_providers_openlineage-2.6.0rc1/tests/integration/openlineage}/__init__.py +0 -0
  80. {apache_airflow_providers_openlineage-2.5.0/tests/system/openlineage → apache_airflow_providers_openlineage-2.6.0rc1/tests/integration/openlineage/operators}/__init__.py +0 -0
  81. {apache_airflow_providers_openlineage-2.5.0/tests/system/openlineage/transport → apache_airflow_providers_openlineage-2.6.0rc1/tests/system/openlineage}/__init__.py +0 -0
  82. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/conftest.py +0 -0
  83. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_base_simple_dag.py +0 -0
  84. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_defer_simple_dag.py +0 -0
  85. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_schedule_asset_or_time_dag.py +0 -0
  86. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_schedule_cron_dag.py +0 -0
  87. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_schedule_list_complex_assets_dag.py +0 -0
  88. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_schedule_list_multiple_assets_dag.py +0 -0
  89. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_schedule_list_single_asset_dag.py +0 -0
  90. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_schedule_multiple_assets_dag.py +0 -0
  91. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_schedule_single_asset_dag.py +0 -0
  92. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_schedule_timetable_dag.py +0 -0
  93. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/example_openlineage_versioned_dag.py +0 -0
  94. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/__init__.py +0 -0
  95. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_defer_simple_dag.json +0 -0
  96. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_mapped_simple_dag.json +0 -0
  97. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_asset_or_time_dag__af2.json +0 -0
  98. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_asset_or_time_dag__af3.json +0 -0
  99. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_cron_dag__af2.json +0 -0
  100. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_cron_dag__af3.json +0 -0
  101. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_list_complex_assets_dag__af2.json +0 -0
  102. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_list_complex_assets_dag__af3.json +0 -0
  103. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_list_multiple_assets_dag__af2.json +0 -0
  104. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_list_multiple_assets_dag__af3.json +0 -0
  105. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_list_single_asset_dag__af2.json +0 -0
  106. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_list_single_asset_dag__af3.json +0 -0
  107. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_multiple_assets_dag__af2.json +0 -0
  108. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_multiple_assets_dag__af3.json +0 -0
  109. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_single_asset_dag__af2.json +0 -0
  110. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_single_asset_dag__af3.json +0 -0
  111. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_schedule_timetable_dag__af2.json +0 -0
  112. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_task_groups_dag.json +0 -0
  113. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_versioned_dag__af2.json +0 -0
  114. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/expected_events/openlineage_versioned_dag__af3.json +0 -0
  115. {apache_airflow_providers_openlineage-2.5.0/tests/unit/openlineage → apache_airflow_providers_openlineage-2.6.0rc1/tests/system/openlineage/transport}/__init__.py +0 -0
  116. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/system/openlineage/transport/variable.py +0 -0
  117. {apache_airflow_providers_openlineage-2.5.0/tests/unit/openlineage/dags → apache_airflow_providers_openlineage-2.6.0rc1/tests/unit/openlineage}/__init__.py +0 -0
  118. {apache_airflow_providers_openlineage-2.5.0/tests/unit/openlineage/extractors → apache_airflow_providers_openlineage-2.6.0rc1/tests/unit/openlineage/dags}/__init__.py +0 -0
  119. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/dags/test_openlineage_execution.py +0 -0
  120. {apache_airflow_providers_openlineage-2.5.0/tests/unit/openlineage/plugins → apache_airflow_providers_openlineage-2.6.0rc1/tests/unit/openlineage/extractors}/__init__.py +0 -0
  121. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/extractors/test_bash.py +0 -0
  122. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/extractors/test_manager.py +0 -0
  123. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/extractors/test_python.py +0 -0
  124. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/log_config.py +0 -0
  125. {apache_airflow_providers_openlineage-2.5.0/tests/unit/openlineage/plugins/openlineage_configs → apache_airflow_providers_openlineage-2.6.0rc1/tests/unit/openlineage/operators}/__init__.py +0 -0
  126. {apache_airflow_providers_openlineage-2.5.0/tests/unit/openlineage/utils → apache_airflow_providers_openlineage-2.6.0rc1/tests/unit/openlineage/plugins}/__init__.py +0 -0
  127. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/plugins/openlineage_configs/http.yaml +0 -0
  128. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/plugins/test_execution.py +0 -0
  129. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/plugins/test_facets.py +0 -0
  130. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/plugins/test_macros.py +0 -0
  131. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/plugins/test_openlineage.py +0 -0
  132. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/test_sqlparser.py +0 -0
  133. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/utils/custom_facet_fixture.py +0 -0
  134. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/utils/test_spark.py +0 -0
  135. {apache_airflow_providers_openlineage-2.5.0 → apache_airflow_providers_openlineage-2.6.0rc1}/tests/unit/openlineage/utils/test_sql.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-openlineage
3
- Version: 2.5.0
3
+ Version: 2.6.0rc1
4
4
  Summary: Provider package apache-airflow-providers-openlineage for Apache Airflow
5
5
  Keywords: airflow-provider,openlineage,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.10
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
@@ -18,16 +18,17 @@ Classifier: License :: OSI Approved :: Apache Software License
18
18
  Classifier: Programming Language :: Python :: 3.10
19
19
  Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
21
22
  Classifier: Topic :: System :: Monitoring
22
- Requires-Dist: apache-airflow>=2.10.0
23
- Requires-Dist: apache-airflow-providers-common-sql>=1.20.0
24
- Requires-Dist: apache-airflow-providers-common-compat>=1.4.0
23
+ Requires-Dist: apache-airflow>=2.10.0rc1
24
+ Requires-Dist: apache-airflow-providers-common-sql>=1.20.0rc1
25
+ Requires-Dist: apache-airflow-providers-common-compat>=1.4.0rc1
25
26
  Requires-Dist: attrs>=22.2
26
- Requires-Dist: openlineage-integration-common>=1.34.0
27
- Requires-Dist: openlineage-python>=1.34.0
27
+ Requires-Dist: openlineage-integration-common>=1.36.0
28
+ Requires-Dist: openlineage-python>=1.36.0
28
29
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
29
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.5.0/changelog.html
30
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.5.0
30
+ Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-openlineage/2.6.0/changelog.html
31
+ Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-openlineage/2.6.0
31
32
  Project-URL: Mastodon, https://fosstodon.org/@airflow
32
33
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
33
34
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -58,8 +59,9 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
58
59
 
59
60
  Package ``apache-airflow-providers-openlineage``
60
61
 
61
- Release: ``2.5.0``
62
+ Release: ``2.6.0``
62
63
 
64
+ Release Date: ``|PypiReleaseDate|``
63
65
 
64
66
  `OpenLineage <https://openlineage.io/>`__
65
67
 
@@ -71,7 +73,7 @@ This is a provider package for ``openlineage`` provider. All classes for this pr
71
73
  are in ``airflow.providers.openlineage`` python package.
72
74
 
73
75
  You can find package information and changelog for the provider
74
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.5.0/>`_.
76
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.6.0/>`_.
75
77
 
76
78
  Installation
77
79
  ------------
@@ -80,7 +82,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
80
82
  for the minimum Airflow version supported) via
81
83
  ``pip install apache-airflow-providers-openlineage``
82
84
 
83
- The package supports the following python versions: 3.10,3.11,3.12
85
+ The package supports the following python versions: 3.10,3.11,3.12,3.13
84
86
 
85
87
  Requirements
86
88
  ------------
@@ -92,8 +94,8 @@ PIP package Version required
92
94
  ``apache-airflow-providers-common-sql`` ``>=1.20.0``
93
95
  ``apache-airflow-providers-common-compat`` ``>=1.4.0``
94
96
  ``attrs`` ``>=22.2``
95
- ``openlineage-integration-common`` ``>=1.34.0``
96
- ``openlineage-python`` ``>=1.34.0``
97
+ ``openlineage-integration-common`` ``>=1.36.0``
98
+ ``openlineage-python`` ``>=1.36.0``
97
99
  ========================================== ==================
98
100
 
99
101
  Cross provider package dependencies
@@ -117,5 +119,5 @@ Dependent package
117
119
  ================================================================================================================== =================
118
120
 
119
121
  The changelog for the provider package can be found in the
120
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.5.0/changelog.html>`_.
122
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.6.0/changelog.html>`_.
121
123
 
@@ -23,8 +23,9 @@
23
23
 
24
24
  Package ``apache-airflow-providers-openlineage``
25
25
 
26
- Release: ``2.5.0``
26
+ Release: ``2.6.0``
27
27
 
28
+ Release Date: ``|PypiReleaseDate|``
28
29
 
29
30
  `OpenLineage <https://openlineage.io/>`__
30
31
 
@@ -36,7 +37,7 @@ This is a provider package for ``openlineage`` provider. All classes for this pr
36
37
  are in ``airflow.providers.openlineage`` python package.
37
38
 
38
39
  You can find package information and changelog for the provider
39
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.5.0/>`_.
40
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.6.0/>`_.
40
41
 
41
42
  Installation
42
43
  ------------
@@ -45,7 +46,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
45
46
  for the minimum Airflow version supported) via
46
47
  ``pip install apache-airflow-providers-openlineage``
47
48
 
48
- The package supports the following python versions: 3.10,3.11,3.12
49
+ The package supports the following python versions: 3.10,3.11,3.12,3.13
49
50
 
50
51
  Requirements
51
52
  ------------
@@ -57,8 +58,8 @@ PIP package Version required
57
58
  ``apache-airflow-providers-common-sql`` ``>=1.20.0``
58
59
  ``apache-airflow-providers-common-compat`` ``>=1.4.0``
59
60
  ``attrs`` ``>=22.2``
60
- ``openlineage-integration-common`` ``>=1.34.0``
61
- ``openlineage-python`` ``>=1.34.0``
61
+ ``openlineage-integration-common`` ``>=1.36.0``
62
+ ``openlineage-python`` ``>=1.36.0``
62
63
  ========================================== ==================
63
64
 
64
65
  Cross provider package dependencies
@@ -82,4 +83,4 @@ Dependent package
82
83
  ================================================================================================================== =================
83
84
 
84
85
  The changelog for the provider package can be found in the
85
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.5.0/changelog.html>`_.
86
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.6.0/changelog.html>`_.
@@ -26,6 +26,44 @@
26
26
  Changelog
27
27
  ---------
28
28
 
29
+ 2.6.0
30
+ .....
31
+
32
+ Features
33
+ ~~~~~~~~
34
+
35
+ * ``Add OpenLineage support for EmptyOperator (#53730)``
36
+ * ``feat: Add new documentation facet to all OL events (#52343)``
37
+
38
+ Bug Fixes
39
+ ~~~~~~~~~
40
+
41
+ * ``fix: Adjust emits_ol_events to account for inlets check since AF3.0.2 (#53449)``
42
+ * ``fix: Check dynamic transport env vars in is_disabled() (#53370)``
43
+ * ``Remove direct scheduler BaseOperator refs (#52234)``
44
+ * ``Fix Task Group Deprecation error from plugin (#53813)``
45
+
46
+ Misc
47
+ ~~~~
48
+
49
+ * ``Updating openlineage-integration-common and openlineage-python dependencies for apache-airflow-providers-openlineage provider. (#53671)``
50
+ * ``Add Python 3.13 support for Airflow. (#46891)``
51
+ * ``Cleanup type ignores in openlineage provider where possible (#53284)``
52
+ * ``Remove type ignore across codebase after mypy upgrade (#53243)``
53
+ * ``Make openlineage compatible with mypy 1.16.1 (#53119)``
54
+ * ``Remove upper-binding for "python-requires" (#52980)``
55
+ * ``Temporarily switch to use >=,< pattern instead of '~=' (#52967)``
56
+
57
+ .. Below changes are excluded from the changelog. Move them to
58
+ appropriate section above if needed. Do not delete the lines(!):
59
+ * ``Restore ''get_previous_dagrun'' functionality for task context (#53655)``
60
+ * ``Deprecate decorators from Core (#53629)``
61
+ * ``Replace 'mock.patch("utcnow")' with time_machine. (#53642)``
62
+ * ``Update main with Airflow 3.0.3 release details (#53349)``
63
+ * ``Cleanup mypy ignores in openlineage test_listener (#53326)``
64
+ * ``Make dag_version_id in TI non-nullable (#50825)``
65
+ * ``fix: Adjust OL system test to latest changes (#52971)``
66
+
29
67
  2.5.0
30
68
  .....
31
69
 
@@ -81,7 +81,9 @@ apache-airflow-providers-openlineage package
81
81
  `OpenLineage <https://openlineage.io/>`__
82
82
 
83
83
 
84
- Release: 2.5.0
84
+ Release: 2.6.0
85
+
86
+ Release Date: ``|PypiReleaseDate|``
85
87
 
86
88
  Provider package
87
89
  ----------------
@@ -108,8 +110,8 @@ PIP package Version required
108
110
  ``apache-airflow-providers-common-sql`` ``>=1.20.0``
109
111
  ``apache-airflow-providers-common-compat`` ``>=1.4.0``
110
112
  ``attrs`` ``>=22.2``
111
- ``openlineage-integration-common`` ``>=1.34.0``
112
- ``openlineage-python`` ``>=1.34.0``
113
+ ``openlineage-integration-common`` ``>=1.36.0``
114
+ ``openlineage-python`` ``>=1.36.0``
113
115
  ========================================== ==================
114
116
 
115
117
  Cross provider package dependencies
@@ -138,5 +140,5 @@ Downloading official packages
138
140
  You can download officially released packages and verify their checksums and signatures from the
139
141
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
140
142
 
141
- * `The apache-airflow-providers-openlineage 2.5.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.5.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.5.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.5.0.tar.gz.sha512>`__)
142
- * `The apache-airflow-providers-openlineage 2.5.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.5.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.5.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.5.0-py3-none-any.whl.sha512>`__)
143
+ * `The apache-airflow-providers-openlineage 2.6.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.6.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.6.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.6.0.tar.gz.sha512>`__)
144
+ * `The apache-airflow-providers-openlineage 2.6.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.6.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.6.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_openlineage-2.6.0-py3-none-any.whl.sha512>`__)
@@ -22,12 +22,13 @@ description: |
22
22
  `OpenLineage <https://openlineage.io/>`__
23
23
 
24
24
  state: ready
25
- source-date-epoch: 1751473929
25
+ source-date-epoch: 1753691696
26
26
  # Note that those versions are maintained by release manager - do not update them manually
27
27
  # with the exception of case where other provider in sources has >= new provider version.
28
28
  # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
29
29
  # to be done in the same PR
30
30
  versions:
31
+ - 2.6.0
31
32
  - 2.5.0
32
33
  - 2.4.0
33
34
  - 2.3.0
@@ -68,6 +69,11 @@ integrations:
68
69
  logo: /docs/integration-logos/openlineage.svg
69
70
  tags: [protocol]
70
71
 
72
+ operators:
73
+ - integration-name: OpenLineage
74
+ python-modules:
75
+ - airflow.providers.openlineage.operators.empty
76
+
71
77
  plugins:
72
78
  - name: openlineage
73
79
  plugin-class: airflow.providers.openlineage.plugins.openlineage.OpenLineageProviderPlugin
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-openlineage"
28
- version = "2.5.0"
28
+ version = "2.6.0rc1"
29
29
  description = "Provider package apache-airflow-providers-openlineage for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -47,21 +47,22 @@ classifiers = [
47
47
  "Programming Language :: Python :: 3.10",
48
48
  "Programming Language :: Python :: 3.11",
49
49
  "Programming Language :: Python :: 3.12",
50
+ "Programming Language :: Python :: 3.13",
50
51
  "Topic :: System :: Monitoring",
51
52
  ]
52
- requires-python = "~=3.10"
53
+ requires-python = ">=3.10"
53
54
 
54
55
  # The dependencies should be modified in place in the generated file.
55
56
  # Any change in the dependencies is preserved when the file is regenerated
56
57
  # Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
57
58
  # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
58
59
  dependencies = [
59
- "apache-airflow>=2.10.0",
60
- "apache-airflow-providers-common-sql>=1.20.0",
61
- "apache-airflow-providers-common-compat>=1.4.0",
60
+ "apache-airflow>=2.10.0rc1",
61
+ "apache-airflow-providers-common-sql>=1.20.0rc1",
62
+ "apache-airflow-providers-common-compat>=1.4.0rc1",
62
63
  "attrs>=22.2",
63
- "openlineage-integration-common>=1.34.0",
64
- "openlineage-python>=1.34.0",
64
+ "openlineage-integration-common>=1.36.0",
65
+ "openlineage-python>=1.36.0",
65
66
  ]
66
67
 
67
68
  [dependency-groups]
@@ -104,8 +105,8 @@ apache-airflow-providers-common-sql = {workspace = true}
104
105
  apache-airflow-providers-standard = {workspace = true}
105
106
 
106
107
  [project.urls]
107
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.5.0"
108
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-openlineage/2.5.0/changelog.html"
108
+ "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-openlineage/2.6.0"
109
+ "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-openlineage/2.6.0/changelog.html"
109
110
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
110
111
  "Source Code" = "https://github.com/apache/airflow"
111
112
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -14,4 +14,4 @@
14
14
  # KIND, either express or implied. See the License for the
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
17
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
@@ -14,4 +14,4 @@
14
14
  # KIND, either express or implied. See the License for the
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
- __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
17
+ __path__ = __import__("pkgutil").extend_path(__path__, __name__)
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "2.5.0"
32
+ __version__ = "2.6.0"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.10.0"
@@ -136,9 +136,17 @@ def is_disabled() -> bool:
136
136
  if _is_true(os.getenv("OPENLINEAGE_DISABLED", "")): # Check legacy variable
137
137
  return True
138
138
 
139
- # Check if both 'transport' and 'config_path' are not present and also
140
- # if legacy 'OPENLINEAGE_URL' environment variables is not set
141
- return transport() == {} and config_path(True) == "" and os.getenv("OPENLINEAGE_URL", "") == ""
139
+ if transport(): # Check if transport is present
140
+ return False
141
+ if config_path(True): # Check if config file is present
142
+ return False
143
+ if os.getenv("OPENLINEAGE_URL"): # Check if url simple env var is present
144
+ return False
145
+ # Check if any transport configuration env var is present
146
+ if any(k.startswith("OPENLINEAGE__TRANSPORT") and v for k, v in os.environ.items()):
147
+ return False
148
+
149
+ return True # No transport configuration is present, we can disable OpenLineage
142
150
 
143
151
 
144
152
  @cache
@@ -59,7 +59,7 @@ class BaseExtractor(ABC, LoggingMixin):
59
59
 
60
60
  _allowed_query_params: list[str] = []
61
61
 
62
- def __init__(self, operator): # type: ignore
62
+ def __init__(self, operator):
63
63
  super().__init__()
64
64
  self.operator = operator
65
65
 
@@ -34,6 +34,12 @@ def get_provider_info():
34
34
  "tags": ["protocol"],
35
35
  }
36
36
  ],
37
+ "operators": [
38
+ {
39
+ "integration-name": "OpenLineage",
40
+ "python-modules": ["airflow.providers.openlineage.operators.empty"],
41
+ }
42
+ ],
37
43
  "plugins": [
38
44
  {
39
45
  "name": "openlineage",
@@ -0,0 +1,48 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+ from __future__ import annotations
18
+
19
+ from typing import TYPE_CHECKING
20
+
21
+ from airflow.providers.openlineage.extractors.base import OperatorLineage
22
+ from airflow.providers.openlineage.version_compat import BaseOperator
23
+
24
+ if TYPE_CHECKING:
25
+ from airflow.sdk.definitions.context import Context
26
+
27
+
28
+ class EmptyOperator(BaseOperator):
29
+ """
30
+ Operator that does literally nothing.
31
+
32
+ It can be used to group tasks in a DAG.
33
+ The task is evaluated by the scheduler but never processed by the executor.
34
+ """
35
+
36
+ ui_color = "#e8f7e4"
37
+
38
+ def execute(self, context: Context):
39
+ pass
40
+
41
+ def get_openlineage_facets_on_start(self) -> OperatorLineage:
42
+ return OperatorLineage()
43
+
44
+ def get_openlineage_facets_on_complete(self, task_instance) -> OperatorLineage:
45
+ return OperatorLineage()
46
+
47
+ def get_openlineage_facets_on_failure(self, task_instance) -> OperatorLineage:
48
+ return OperatorLineage()
@@ -90,7 +90,7 @@ class OpenLineageAdapter(LoggingMixin):
90
90
  "OpenLineage configuration found. Transport type: `%s`",
91
91
  config.get("transport", {}).get("type", "no type provided"),
92
92
  )
93
- self._client = OpenLineageClient(config=config) # type: ignore[call-arg]
93
+ self._client = OpenLineageClient(config=config)
94
94
  else:
95
95
  self.log.debug(
96
96
  "OpenLineage configuration not found directly in Airflow. "
@@ -182,13 +182,14 @@ class OpenLineageAdapter(LoggingMixin):
182
182
  self,
183
183
  run_id: str,
184
184
  job_name: str,
185
- job_description: str,
186
185
  event_time: str,
186
+ job_description: str | None,
187
187
  nominal_start_time: str | None,
188
188
  nominal_end_time: str | None,
189
189
  owners: list[str] | None,
190
190
  tags: list[str] | None,
191
191
  task: OperatorLineage | None,
192
+ job_description_type: str | None = None,
192
193
  run_facets: dict[str, RunFacet] | None = None,
193
194
  ) -> RunEvent:
194
195
  """
@@ -196,7 +197,8 @@ class OpenLineageAdapter(LoggingMixin):
196
197
 
197
198
  :param run_id: globally unique identifier of task in dag run
198
199
  :param job_name: globally unique identifier of task in dag
199
- :param job_description: user provided description of job
200
+ :param job_description: description of the job
201
+ :param job_description_type: MIME type of the description arg content
200
202
  :param event_time:
201
203
  :param nominal_start_time: scheduled time of dag run
202
204
  :param nominal_end_time: following schedule of dag run
@@ -221,6 +223,7 @@ class OpenLineageAdapter(LoggingMixin):
221
223
  job_name=job_name,
222
224
  job_type=_JOB_TYPE_TASK,
223
225
  job_description=job_description,
226
+ job_description_type=job_description_type,
224
227
  job_owners=owners,
225
228
  job_tags=tags,
226
229
  job_facets=task.job_facets if task else None,
@@ -241,6 +244,8 @@ class OpenLineageAdapter(LoggingMixin):
241
244
  nominal_end_time: str | None,
242
245
  owners: list[str] | None,
243
246
  tags: list[str] | None,
247
+ job_description: str | None,
248
+ job_description_type: str | None = None,
244
249
  run_facets: dict[str, RunFacet] | None = None,
245
250
  ) -> RunEvent:
246
251
  """
@@ -249,6 +254,8 @@ class OpenLineageAdapter(LoggingMixin):
249
254
  :param run_id: globally unique identifier of task in dag run
250
255
  :param job_name: globally unique identifier of task between dags
251
256
  :param end_time: time of task completion
257
+ :param job_description: description of the job
258
+ :param job_description_type: MIME type of the description arg content
252
259
  :param tags: list of tags
253
260
  :param nominal_start_time: scheduled time of dag run
254
261
  :param nominal_end_time: following schedule of dag run
@@ -274,6 +281,8 @@ class OpenLineageAdapter(LoggingMixin):
274
281
  job_facets=task.job_facets,
275
282
  job_owners=owners,
276
283
  job_tags=tags,
284
+ job_description=job_description,
285
+ job_description_type=job_description_type,
277
286
  ),
278
287
  inputs=task.inputs,
279
288
  outputs=task.outputs,
@@ -291,6 +300,8 @@ class OpenLineageAdapter(LoggingMixin):
291
300
  nominal_end_time: str | None,
292
301
  owners: list[str] | None,
293
302
  tags: list[str] | None,
303
+ job_description: str | None,
304
+ job_description_type: str | None = None,
294
305
  error: str | BaseException | None = None,
295
306
  run_facets: dict[str, RunFacet] | None = None,
296
307
  ) -> RunEvent:
@@ -301,6 +312,8 @@ class OpenLineageAdapter(LoggingMixin):
301
312
  :param job_name: globally unique identifier of task between dags
302
313
  :param end_time: time of task completion
303
314
  :param task: metadata container with information extracted from operator
315
+ :param job_description: description of the job
316
+ :param job_description_type: MIME type of the description arg content
304
317
  :param run_facets: custom run facets
305
318
  :param tags: list of tags
306
319
  :param nominal_start_time: scheduled time of dag run
@@ -338,6 +351,8 @@ class OpenLineageAdapter(LoggingMixin):
338
351
  job_facets=task.job_facets,
339
352
  job_owners=owners,
340
353
  job_tags=tags,
354
+ job_description=job_description,
355
+ job_description_type=job_description_type,
341
356
  ),
342
357
  inputs=task.inputs,
343
358
  outputs=task.outputs,
@@ -356,7 +371,8 @@ class OpenLineageAdapter(LoggingMixin):
356
371
  tags: list[str],
357
372
  run_facets: dict[str, RunFacet],
358
373
  clear_number: int,
359
- description: str | None = None,
374
+ job_description: str | None,
375
+ job_description_type: str | None = None,
360
376
  job_facets: dict[str, JobFacet] | None = None, # Custom job facets
361
377
  ):
362
378
  try:
@@ -366,7 +382,8 @@ class OpenLineageAdapter(LoggingMixin):
366
382
  job=self._build_job(
367
383
  job_name=dag_id,
368
384
  job_type=_JOB_TYPE_DAG,
369
- job_description=description,
385
+ job_description=job_description,
386
+ job_description_type=job_description_type,
370
387
  job_owners=owners,
371
388
  job_facets=job_facets,
372
389
  job_tags=tags,
@@ -404,6 +421,8 @@ class OpenLineageAdapter(LoggingMixin):
404
421
  task_ids: list[str],
405
422
  owners: list[str] | None,
406
423
  run_facets: dict[str, RunFacet],
424
+ job_description: str | None,
425
+ job_description_type: str | None = None,
407
426
  ):
408
427
  try:
409
428
  event = RunEvent(
@@ -414,6 +433,8 @@ class OpenLineageAdapter(LoggingMixin):
414
433
  job_type=_JOB_TYPE_DAG,
415
434
  job_owners=owners,
416
435
  job_tags=tags,
436
+ job_description=job_description,
437
+ job_description_type=job_description_type,
417
438
  ),
418
439
  run=self._build_run(
419
440
  run_id=self.build_dag_run_id(
@@ -453,6 +474,8 @@ class OpenLineageAdapter(LoggingMixin):
453
474
  owners: list[str] | None,
454
475
  msg: str,
455
476
  run_facets: dict[str, RunFacet],
477
+ job_description: str | None,
478
+ job_description_type: str | None = None,
456
479
  ):
457
480
  try:
458
481
  event = RunEvent(
@@ -463,6 +486,8 @@ class OpenLineageAdapter(LoggingMixin):
463
486
  job_type=_JOB_TYPE_DAG,
464
487
  job_owners=owners,
465
488
  job_tags=tags,
489
+ job_description=job_description,
490
+ job_description_type=job_description_type,
466
491
  ),
467
492
  run=self._build_run(
468
493
  run_id=self.build_dag_run_id(
@@ -519,6 +544,7 @@ class OpenLineageAdapter(LoggingMixin):
519
544
  job_name: str,
520
545
  job_type: Literal["DAG", "TASK"],
521
546
  job_description: str | None = None,
547
+ job_description_type: str | None = None,
522
548
  job_owners: list[str] | None = None,
523
549
  job_tags: list[str] | None = None,
524
550
  job_facets: dict[str, JobFacet] | None = None,
@@ -530,7 +556,7 @@ class OpenLineageAdapter(LoggingMixin):
530
556
  facets.update(
531
557
  {
532
558
  "documentation": documentation_job.DocumentationJobFacet(
533
- description=job_description, producer=_PRODUCER
559
+ description=job_description, contentType=job_description_type, producer=_PRODUCER
534
560
  )
535
561
  }
536
562
  )