elementary-data 0.23.2__tar.gz → 0.23.4__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 (249) hide show
  1. {elementary_data-0.23.2 → elementary_data-0.23.4}/PKG-INFO +1 -1
  2. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/alert.py +6 -2
  3. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/alert_messages/builder.py +14 -40
  4. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/alerts_groups/alerts_group.py +6 -7
  5. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/alerts_groups/base_alerts_group.py +3 -7
  6. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/model_alert.py +5 -5
  7. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/source_freshness_alert.py +5 -1
  8. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/test_alert.py +4 -0
  9. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/alerts/alert_filters.py +1 -1
  10. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/data_monitoring_alerts.py +2 -7
  11. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/integrations/base_integration.py +4 -20
  12. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/integrations/slack/slack.py +8 -51
  13. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/alerts/schema/alert_data.py +1 -0
  14. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/alerts/schema/pending_alerts.py +3 -4
  15. {elementary_data-0.23.2 → elementary_data-0.23.4}/pyproject.toml +1 -1
  16. {elementary_data-0.23.2 → elementary_data-0.23.4}/LICENSE +0 -0
  17. {elementary_data-0.23.2 → elementary_data-0.23.4}/README.md +0 -0
  18. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/.prettierignore +0 -0
  19. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/__init__.py +0 -0
  20. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/cli/__init__.py +0 -0
  21. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/cli/cli.py +0 -0
  22. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/cli/logo.py +0 -0
  23. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/cli/upgrade.py +0 -0
  24. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/__init__.py +0 -0
  25. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/api/__init__.py +0 -0
  26. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/api/api_client.py +0 -0
  27. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/azure/__init__.py +0 -0
  28. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/azure/client.py +0 -0
  29. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/dbt/__init__.py +0 -0
  30. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/dbt/api_dbt_runner.py +0 -0
  31. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/dbt/base_dbt_runner.py +0 -0
  32. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/dbt/command_line_dbt_runner.py +0 -0
  33. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/dbt/dbt_fusion_runner.py +0 -0
  34. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/dbt/dbt_log.py +0 -0
  35. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/dbt/factory.py +0 -0
  36. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/dbt/subprocess_dbt_runner.py +0 -0
  37. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/dbt/transient_errors.py +0 -0
  38. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/fetcher/__init__.py +0 -0
  39. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/fetcher/fetcher.py +0 -0
  40. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/gcs/__init__.py +0 -0
  41. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/gcs/client.py +0 -0
  42. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/s3/__init__.py +0 -0
  43. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/s3/client.py +0 -0
  44. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/slack/__init__.py +0 -0
  45. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/slack/client.py +0 -0
  46. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/slack/schema.py +0 -0
  47. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/clients/slack/slack_message_builder.py +0 -0
  48. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/config/__init__.py +0 -0
  49. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/config/config.py +0 -0
  50. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/exceptions/__init__.py +0 -0
  51. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/exceptions/exceptions.py +0 -0
  52. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/README.md +0 -0
  53. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/__init__.py +0 -0
  54. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/block_builders.py +0 -0
  55. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/blocks.py +0 -0
  56. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/formats/__init__.py +0 -0
  57. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/formats/adaptive_cards.py +0 -0
  58. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/formats/block_kit.py +0 -0
  59. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/formats/html.py +0 -0
  60. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/formats/markdown.py +0 -0
  61. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/formats/text.py +0 -0
  62. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/formats/unicode.py +0 -0
  63. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/message_body.py +0 -0
  64. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/messaging_integrations/README.md +0 -0
  65. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/messaging_integrations/__init__.py +0 -0
  66. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/messaging_integrations/base_messaging_integration.py +0 -0
  67. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/messaging_integrations/empty_message_context.py +0 -0
  68. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/messaging_integrations/exceptions.py +0 -0
  69. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/messaging_integrations/file_system.py +0 -0
  70. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/messaging_integrations/mapped.py +0 -0
  71. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/messaging_integrations/slack_web.py +0 -0
  72. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/messaging_integrations/slack_webhook.py +0 -0
  73. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/messages/messaging_integrations/teams_webhook.py +0 -0
  74. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/__init__.py +0 -0
  75. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/__init__.py +0 -0
  76. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/alert_messages/__init__.py +0 -0
  77. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/alert_messages/alert_fields.py +0 -0
  78. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/alerts_groups/__init__.py +0 -0
  79. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/alerts_groups/grouped_by_table.py +0 -0
  80. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/alerts/grouping_type.py +0 -0
  81. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/__init__.py +0 -0
  82. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/alerts/__init__.py +0 -0
  83. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/alerts/alerts.py +0 -0
  84. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/filters/__init__.py +0 -0
  85. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/filters/filters.py +0 -0
  86. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/filters/schema.py +0 -0
  87. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/groups/__init__.py +0 -0
  88. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/groups/groups.py +0 -0
  89. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/groups/schema.py +0 -0
  90. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/groups/tree_builder.py +0 -0
  91. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/invocations/__init__.py +0 -0
  92. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/invocations/invocations.py +0 -0
  93. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/invocations/schema.py +0 -0
  94. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/lineage/__init__.py +0 -0
  95. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/lineage/lineage.py +0 -0
  96. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/lineage/schema.py +0 -0
  97. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/models/__init__.py +0 -0
  98. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/models/models.py +0 -0
  99. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/models/schema.py +0 -0
  100. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/report/__init__.py +0 -0
  101. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/report/report.py +0 -0
  102. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/report/schema.py +0 -0
  103. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/report/totals_utils.py +0 -0
  104. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/selector/__init__.py +0 -0
  105. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/selector/schema.py +0 -0
  106. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/selector/selector.py +0 -0
  107. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/source_freshnesses/__init__.py +0 -0
  108. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/source_freshnesses/schema.py +0 -0
  109. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/source_freshnesses/source_freshnesses.py +0 -0
  110. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/tests/__init__.py +0 -0
  111. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/tests/schema.py +0 -0
  112. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/tests/tests.py +0 -0
  113. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/tests/utils.py +0 -0
  114. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/api/totals_schema.py +0 -0
  115. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/cli.py +0 -0
  116. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/__init__.py +0 -0
  117. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/__init__.py +0 -0
  118. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/integrations/README.md +0 -0
  119. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/integrations/__init__.py +0 -0
  120. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/integrations/integrations.py +0 -0
  121. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/integrations/slack/__init__.py +0 -0
  122. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/integrations/slack/message_builder.py +0 -0
  123. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/integrations/utils/__init__.py +0 -0
  124. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/integrations/utils/orchestrator_link.py +0 -0
  125. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/integrations/utils/report_link.py +0 -0
  126. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/alerts/schema.py +0 -0
  127. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/data_monitoring.py +0 -0
  128. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/report/__init__.py +0 -0
  129. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/report/data_monitoring_report.py +0 -0
  130. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/report/index.html +0 -0
  131. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/report/slack_report_summary_message_builder.py +0 -0
  132. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/schema.py +0 -0
  133. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/data_monitoring/selector_filter.py +0 -0
  134. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_init.py +0 -0
  135. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/.gitignore +0 -0
  136. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/README.md +0 -0
  137. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/analyses/.gitkeep +0 -0
  138. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/dbt_project.yml +0 -0
  139. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/alerts/fetchers/get_alerts.sql +0 -0
  140. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/alerts/manage/update_sent_alerts.sql +0 -0
  141. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/alerts/manage/update_skipped_alerts.sql +0 -0
  142. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/alerts/population/model_alerts.sql +0 -0
  143. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/alerts/population/populate_alerts_table.sql +0 -0
  144. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/alerts/population/source_freshness_alerts.sql +0 -0
  145. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/alerts/population/test_alerts.sql +0 -0
  146. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/alerts/population/utils/empty_alert_tables.sql +0 -0
  147. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/alerts/population/utils/generate_alert_object.sql +0 -0
  148. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/alerts/population/utils/get_alerts_model_detected_at_expr.sql +0 -0
  149. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/alerts/population/utils/get_new_alerts_where_clause.sql +0 -0
  150. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/base_queries/current_tests_run_results_query.sql +0 -0
  151. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/base_queries/owners.sql +0 -0
  152. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/base_queries/resources.sql +0 -0
  153. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/base_queries/tags.sql +0 -0
  154. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/can_upload_source_freshness.sql +0 -0
  155. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/empty_elementary_exposures.sql +0 -0
  156. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_adapter_type_and_unique_id.sql +0 -0
  157. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_alerts_time_limit.sql +0 -0
  158. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_dbt_models_test_coverage.sql +0 -0
  159. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_elementary_database_and_schema.sql +0 -0
  160. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_elementary_table_nodes.sql +0 -0
  161. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_exposures.sql +0 -0
  162. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_latest_invocation.sql +0 -0
  163. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_models.sql +0 -0
  164. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_models_latest_invocation.sql +0 -0
  165. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_models_latest_invocations_data.sql +0 -0
  166. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_models_runs.sql +0 -0
  167. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_nodes_depends_on_nodes.sql +0 -0
  168. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_result_rows_agate.sql +0 -0
  169. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_seeds.sql +0 -0
  170. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_singular_tests.sql +0 -0
  171. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_snapshots.sql +0 -0
  172. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_source_freshness_results.sql +0 -0
  173. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_sources.sql +0 -0
  174. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_test_last_invocation.sql +0 -0
  175. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_test_results.sql +0 -0
  176. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_test_rows_sample.sql +0 -0
  177. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/get_tests.sql +0 -0
  178. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/internal_tests/validate_alert_statuses_are_updated.sql +0 -0
  179. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/materializations/nothing.sql +0 -0
  180. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/overrides/ref.sql +0 -0
  181. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/test_conn.sql +0 -0
  182. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/tests/unique_if_exists.sql +0 -0
  183. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/upload_source_freshness.sql +0 -0
  184. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/utils/edr_quote_identifier.sql +0 -0
  185. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/macros/utils/normalized_source_freshness_status.sql +0 -0
  186. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/models/alerts/alerts_v2.sql +0 -0
  187. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/models/alerts/deprecated/alerts.sql +0 -0
  188. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/models/alerts/deprecated/alerts_models.sql +0 -0
  189. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/models/alerts/deprecated/alerts_source_freshness.sql +0 -0
  190. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/models/elementary.yml +0 -0
  191. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/models/elementary_exposures/elementary_exposures.sql +0 -0
  192. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/models/elementary_exposures.yml +0 -0
  193. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/models/enriched_exposures/enriched_exposures.sql +0 -0
  194. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/models/update_alerts/update_sent_alerts.sql +0 -0
  195. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/models/update_alerts/update_skipped_alerts.sql +0 -0
  196. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/package-lock.yml +0 -0
  197. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/packages.yml +0 -0
  198. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/snapshots/.gitkeep +0 -0
  199. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project/tests/.gitkeep +0 -0
  200. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/dbt_project_utils.py +0 -0
  201. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/debug.py +0 -0
  202. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/__init__.py +0 -0
  203. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/alerts/__init__.py +0 -0
  204. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/alerts/alerts.py +0 -0
  205. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/alerts/schema/__init__.py +0 -0
  206. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/base_fetcher.py +0 -0
  207. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/invocations/__init__.py +0 -0
  208. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/invocations/invocations.py +0 -0
  209. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/invocations/schema.py +0 -0
  210. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/lineage/__init__.py +0 -0
  211. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/lineage/lineage.py +0 -0
  212. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/models/__init__.py +0 -0
  213. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/models/models.py +0 -0
  214. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/models/schema.py +0 -0
  215. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/selector/__init__.py +0 -0
  216. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/selector/schema.py +0 -0
  217. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/selector/selector.py +0 -0
  218. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/source_freshnesses/__init__.py +0 -0
  219. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/source_freshnesses/schema.py +0 -0
  220. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/source_freshnesses/source_freshnesses.py +0 -0
  221. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/tests/__init__.py +0 -0
  222. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/tests/schema.py +0 -0
  223. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/monitor/fetchers/tests/tests.py +0 -0
  224. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/operations/__init__.py +0 -0
  225. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/operations/cli.py +0 -0
  226. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/operations/upload_source_freshness.py +0 -0
  227. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/py.typed +0 -0
  228. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/tracking/__init__.py +0 -0
  229. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/tracking/anonymous_tracking.py +0 -0
  230. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/tracking/runner.py +0 -0
  231. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/tracking/tracking_interface.py +0 -0
  232. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/__init__.py +0 -0
  233. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/bucket_path.py +0 -0
  234. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/cli_utils.py +0 -0
  235. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/cwd.py +0 -0
  236. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/dicts.py +0 -0
  237. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/env_vars.py +0 -0
  238. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/env_vars_context.py +0 -0
  239. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/hash.py +0 -0
  240. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/json_utils.py +0 -0
  241. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/log.py +0 -0
  242. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/models.py +0 -0
  243. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/ordered_yaml.py +0 -0
  244. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/package.py +0 -0
  245. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/pydantic_shim.py +0 -0
  246. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/schema.py +0 -0
  247. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/ssl.py +0 -0
  248. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/strings.py +0 -0
  249. {elementary_data-0.23.2 → elementary_data-0.23.4}/elementary/utils/time.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: elementary-data
3
- Version: 0.23.2
3
+ Version: 0.23.4
4
4
  Summary: Data monitoring and lineage
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -99,8 +99,12 @@ class AlertModel:
99
99
  raise NotImplementedError
100
100
 
101
101
  @property
102
- def concise_name(self):
103
- return "Alert"
102
+ def concise_name(self) -> str:
103
+ raise NotImplementedError
104
+
105
+ @property
106
+ def asset_type(self) -> str:
107
+ raise NotImplementedError
104
108
 
105
109
  @property
106
110
  def summary(self) -> str:
@@ -1,5 +1,5 @@
1
1
  from datetime import timedelta
2
- from typing import Any, Dict, List, Literal, Optional, Sequence, Tuple, Union
2
+ from typing import Any, Dict, List, Optional, Sequence, Tuple, Union
3
3
 
4
4
  from elementary.messages.block_builders import (
5
5
  BoldTextBlock,
@@ -33,7 +33,7 @@ from elementary.messages.blocks import (
33
33
  TextStyle,
34
34
  )
35
35
  from elementary.messages.message_body import Color, MessageBlock, MessageBody
36
- from elementary.monitor.alerts.alert import OrchestratorInfo
36
+ from elementary.monitor.alerts.alert import AlertModel, OrchestratorInfo
37
37
  from elementary.monitor.alerts.alert_messages.alert_fields import AlertField
38
38
  from elementary.monitor.alerts.alerts_groups.alerts_group import AlertsGroup
39
39
  from elementary.monitor.alerts.alerts_groups.base_alerts_group import BaseAlertsGroup
@@ -51,12 +51,7 @@ from elementary.monitor.data_monitoring.alerts.integrations.utils.report_link im
51
51
  )
52
52
  from elementary.utils.pydantic_shim import BaseModel
53
53
 
54
- AlertType = Union[
55
- TestAlertModel,
56
- ModelAlertModel,
57
- SourceFreshnessAlertModel,
58
- BaseAlertsGroup,
59
- ]
54
+ AlertType = Union[AlertModel, BaseAlertsGroup]
60
55
 
61
56
 
62
57
  class MessageBuilderConfig(BaseModel):
@@ -104,7 +99,7 @@ class AlertMessageBuilder:
104
99
 
105
100
  def _get_run_alert_subtitle_block(
106
101
  self,
107
- type: Literal["test", "snapshot", "model", "source"],
102
+ type: str,
108
103
  name: str,
109
104
  status: Optional[str] = None,
110
105
  detected_at_str: Optional[str] = None,
@@ -172,7 +167,7 @@ class AlertMessageBuilder:
172
167
 
173
168
  def _get_run_alert_subtitle_links(
174
169
  self,
175
- alert: Union[TestAlertModel, SourceFreshnessAlertModel, ModelAlertModel],
170
+ alert: AlertModel,
176
171
  ) -> List[ReportLinkData]:
177
172
  report_link = alert.get_report_link()
178
173
  if report_link:
@@ -181,25 +176,14 @@ class AlertMessageBuilder:
181
176
 
182
177
  def _get_run_alert_subtitle_blocks(
183
178
  self,
184
- alert: Union[TestAlertModel, SourceFreshnessAlertModel, ModelAlertModel],
179
+ alert: AlertModel,
185
180
  ) -> List[MessageBlock]:
186
- asset_type: Literal["test", "snapshot", "model", "source"]
187
- asset_name: str
188
- if isinstance(alert, TestAlertModel):
189
- asset_type = "test"
190
- asset_name = alert.concise_name
191
- elif isinstance(alert, SourceFreshnessAlertModel):
192
- asset_type = "source"
193
- asset_name = f"{alert.source_name}.{alert.identifier}"
194
- elif isinstance(alert, ModelAlertModel):
195
- asset_type = "snapshot" if alert.materialization == "snapshot" else "model"
196
- asset_name = alert.alias
197
181
  links = self._get_run_alert_subtitle_links(alert)
198
182
  orchestrator_info = alert.orchestrator_info
199
183
  return [
200
184
  self._get_run_alert_subtitle_block(
201
- type=asset_type,
202
- name=asset_name,
185
+ type=alert.asset_type,
186
+ name=alert.concise_name,
203
187
  status=alert.status,
204
188
  detected_at_str=alert.detected_at_str,
205
189
  suppression_interval=alert.suppression_interval,
@@ -472,11 +456,7 @@ class AlertMessageBuilder:
472
456
 
473
457
  def _get_alert_list_line(
474
458
  self,
475
- alert: Union[
476
- TestAlertModel,
477
- ModelAlertModel,
478
- SourceFreshnessAlertModel,
479
- ],
459
+ alert: AlertModel,
480
460
  ) -> LineBlock:
481
461
  inlines: List[InlineBlock] = [
482
462
  TextBlock(text=alert.summary, style=TextStyle.BOLD),
@@ -507,13 +487,7 @@ class AlertMessageBuilder:
507
487
  self,
508
488
  title: str,
509
489
  bullet_icon: Icon,
510
- alerts: Sequence[
511
- Union[
512
- TestAlertModel,
513
- ModelAlertModel,
514
- SourceFreshnessAlertModel,
515
- ]
516
- ],
490
+ alerts: Sequence[AlertModel],
517
491
  ) -> List[MessageBlock]:
518
492
  blocks: List[MessageBlock] = []
519
493
  if not alerts:
@@ -526,10 +500,10 @@ class AlertMessageBuilder:
526
500
 
527
501
  def _get_sub_alert_groups_blocks(
528
502
  self,
529
- test_errors: List[Union[TestAlertModel, SourceFreshnessAlertModel]],
530
- test_warnings: List[Union[TestAlertModel, SourceFreshnessAlertModel]],
531
- test_failures: List[Union[TestAlertModel, SourceFreshnessAlertModel]],
532
- model_errors: List[ModelAlertModel],
503
+ test_errors: Sequence[AlertModel],
504
+ test_warnings: Sequence[AlertModel],
505
+ test_failures: Sequence[AlertModel],
506
+ model_errors: Sequence[AlertModel],
533
507
  ) -> List[MessageBlock]:
534
508
  blocks: List[MessageBlock] = []
535
509
  model_errors_alert_list_blocks = self._get_alert_list_blocks(
@@ -1,20 +1,19 @@
1
- from typing import List, Optional, Union
1
+ from typing import List, Optional, Sequence
2
2
 
3
+ from elementary.monitor.alerts.alert import AlertModel
3
4
  from elementary.monitor.alerts.alerts_groups.base_alerts_group import BaseAlertsGroup
4
5
  from elementary.monitor.alerts.model_alert import ModelAlertModel
5
- from elementary.monitor.alerts.source_freshness_alert import SourceFreshnessAlertModel
6
- from elementary.monitor.alerts.test_alert import TestAlertModel
7
6
 
8
7
 
9
8
  class AlertsGroup(BaseAlertsGroup):
10
- test_errors: List[Union[TestAlertModel, SourceFreshnessAlertModel]]
11
- test_warnings: List[Union[TestAlertModel, SourceFreshnessAlertModel]]
12
- test_failures: List[Union[TestAlertModel, SourceFreshnessAlertModel]]
9
+ test_errors: List[AlertModel]
10
+ test_warnings: List[AlertModel]
11
+ test_failures: List[AlertModel]
13
12
  model_errors: List[ModelAlertModel]
14
13
 
15
14
  def __init__(
16
15
  self,
17
- alerts: List[Union[TestAlertModel, ModelAlertModel, SourceFreshnessAlertModel]],
16
+ alerts: Sequence[AlertModel],
18
17
  env: Optional[str] = None,
19
18
  ) -> None:
20
19
  super().__init__(alerts, env=env)
@@ -1,18 +1,14 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from datetime import datetime
3
- from typing import Dict, List, Optional, Sequence, Union
3
+ from typing import Dict, List, Optional, Sequence
4
4
 
5
- from elementary.monitor.alerts.model_alert import ModelAlertModel
6
- from elementary.monitor.alerts.source_freshness_alert import SourceFreshnessAlertModel
7
- from elementary.monitor.alerts.test_alert import TestAlertModel
5
+ from elementary.monitor.alerts.alert import AlertModel
8
6
 
9
7
 
10
8
  class BaseAlertsGroup(ABC):
11
9
  def __init__(
12
10
  self,
13
- alerts: Sequence[
14
- Union[TestAlertModel, ModelAlertModel, SourceFreshnessAlertModel]
15
- ],
11
+ alerts: Sequence[AlertModel],
16
12
  env: Optional[str] = None,
17
13
  ) -> None:
18
14
  self.alerts = alerts
@@ -100,13 +100,13 @@ class ModelAlertModel(AlertModel):
100
100
  full_refresh=self.full_refresh,
101
101
  )
102
102
 
103
+ @property
104
+ def asset_type(self) -> str:
105
+ return "snapshot" if self.materialization == "snapshot" else "model"
106
+
103
107
  @property
104
108
  def concise_name(self) -> str:
105
- if self.materialization == "snapshot":
106
- dbt_type = "snapshot"
107
- else:
108
- dbt_type = "model"
109
- return f"dbt {dbt_type} alert - {self.alias}"
109
+ return self.alias
110
110
 
111
111
  @property
112
112
  def summary(self) -> str:
@@ -155,9 +155,13 @@ class SourceFreshnessAlertModel(AlertModel):
155
155
  freshness_description=self.freshness_description,
156
156
  )
157
157
 
158
+ @property
159
+ def asset_type(self) -> str:
160
+ return "source"
161
+
158
162
  @property
159
163
  def concise_name(self) -> str:
160
- return f"source freshness alert - {self.source_name}.{self.identifier}"
164
+ return f"{self.source_name}.{self.identifier}"
161
165
 
162
166
  @property
163
167
  def error_message(self) -> str:
@@ -166,6 +166,10 @@ class TestAlertModel(AlertModel):
166
166
  env=self.env,
167
167
  )
168
168
 
169
+ @property
170
+ def asset_type(self) -> str:
171
+ return "test"
172
+
169
173
  @property
170
174
  def concise_name(self) -> str:
171
175
  if self.test_sub_type_display_name.lower() not in (
@@ -29,7 +29,7 @@ def _get_alert_node_name(alert: PendingAlertSchema) -> Optional[str]:
29
29
  alert_node_name = None
30
30
  alert_type = AlertTypes(alert.type)
31
31
  if alert_type is AlertTypes.TEST:
32
- alert_node_name = alert.data.test_name # type: ignore[union-attr]
32
+ alert_node_name = alert.data.test_name # type: ignore[attr-defined]
33
33
  elif alert_type is AlertTypes.MODEL or alert_type is AlertTypes.SOURCE_FRESHNESS:
34
34
  alert_node_name = alert.data.model_unique_id
35
35
  else:
@@ -22,6 +22,7 @@ from elementary.messages.messaging_integrations.base_messaging_integration impor
22
22
  from elementary.messages.messaging_integrations.exceptions import (
23
23
  MessagingIntegrationError,
24
24
  )
25
+ from elementary.monitor.alerts.alert import AlertModel
25
26
  from elementary.monitor.alerts.alert_messages.builder import (
26
27
  AlertMessageBuilder,
27
28
  MessageBuilderConfig,
@@ -385,13 +386,7 @@ class DataMonitoringAlerts(DataMonitoring):
385
386
  self.execution_properties["sent_alert_count"] = self.sent_alert_count
386
387
  return
387
388
 
388
- sent_successfully_alerts: List[
389
- Union[
390
- TestAlertModel,
391
- ModelAlertModel,
392
- SourceFreshnessAlertModel,
393
- ]
394
- ] = []
389
+ sent_successfully_alerts: List[AlertModel] = []
395
390
 
396
391
  with alive_bar(len(alerts), title="Sending alerts") as bar:
397
392
  for alert in alerts:
@@ -1,6 +1,7 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from typing import Union
3
3
 
4
+ from elementary.monitor.alerts.alert import AlertModel
4
5
  from elementary.monitor.alerts.alerts_groups import GroupedByTableAlerts
5
6
  from elementary.monitor.alerts.alerts_groups.base_alerts_group import BaseAlertsGroup
6
7
  from elementary.monitor.alerts.model_alert import ModelAlertModel
@@ -21,13 +22,7 @@ class BaseIntegration(ABC):
21
22
 
22
23
  def _get_alert_template(
23
24
  self,
24
- alert: Union[
25
- TestAlertModel,
26
- ModelAlertModel,
27
- SourceFreshnessAlertModel,
28
- GroupedByTableAlerts,
29
- BaseAlertsGroup,
30
- ],
25
+ alert: Union[AlertModel, GroupedByTableAlerts, BaseAlertsGroup],
31
26
  *args,
32
27
  **kwargs,
33
28
  ):
@@ -83,12 +78,7 @@ class BaseIntegration(ABC):
83
78
  @abstractmethod
84
79
  def _get_fallback_template(
85
80
  self,
86
- alert: Union[
87
- TestAlertModel,
88
- ModelAlertModel,
89
- SourceFreshnessAlertModel,
90
- GroupedByTableAlerts,
91
- ],
81
+ alert: Union[AlertModel, GroupedByTableAlerts],
92
82
  *args,
93
83
  **kwargs,
94
84
  ):
@@ -97,13 +87,7 @@ class BaseIntegration(ABC):
97
87
  @abstractmethod
98
88
  def send_alert(
99
89
  self,
100
- alert: Union[
101
- TestAlertModel,
102
- ModelAlertModel,
103
- SourceFreshnessAlertModel,
104
- GroupedByTableAlerts,
105
- BaseAlertsGroup,
106
- ],
90
+ alert: Union[AlertModel, GroupedByTableAlerts, BaseAlertsGroup],
107
91
  *args,
108
92
  **kwargs,
109
93
  ) -> bool:
@@ -9,6 +9,7 @@ from elementary.clients.slack.client import SlackClient, SlackWebClient
9
9
  from elementary.clients.slack.schema import SlackBlocksType, SlackMessageSchema
10
10
  from elementary.clients.slack.slack_message_builder import MessageColor
11
11
  from elementary.config.config import Config
12
+ from elementary.monitor.alerts.alert import AlertModel
12
13
  from elementary.monitor.alerts.alerts_groups import AlertsGroup, GroupedByTableAlerts
13
14
  from elementary.monitor.alerts.alerts_groups.base_alerts_group import BaseAlertsGroup
14
15
  from elementary.monitor.alerts.model_alert import ModelAlertModel
@@ -94,13 +95,7 @@ class SlackIntegration(BaseIntegration):
94
95
 
95
96
  def _get_alert_template(
96
97
  self,
97
- alert: Union[
98
- TestAlertModel,
99
- ModelAlertModel,
100
- SourceFreshnessAlertModel,
101
- GroupedByTableAlerts,
102
- BaseAlertsGroup,
103
- ],
98
+ alert: Union[AlertModel, GroupedByTableAlerts, BaseAlertsGroup],
104
99
  *args,
105
100
  **kwargs,
106
101
  ) -> SlackMessageSchema:
@@ -875,14 +870,7 @@ class SlackIntegration(BaseIntegration):
875
870
  def _add_compact_sub_group_details_block(
876
871
  self,
877
872
  details_blocks: list,
878
- alerts: Sequence[
879
- Union[
880
- TestAlertModel,
881
- ModelAlertModel,
882
- SourceFreshnessAlertModel,
883
- GroupedByTableAlerts,
884
- ],
885
- ],
873
+ alerts: Sequence[Union[AlertModel, GroupedByTableAlerts]],
886
874
  sub_title: str,
887
875
  bullet_icon: str,
888
876
  ) -> None:
@@ -941,14 +929,7 @@ class SlackIntegration(BaseIntegration):
941
929
  def _add_sub_group_details_block(
942
930
  self,
943
931
  details_blocks: list,
944
- alerts: Sequence[
945
- Union[
946
- TestAlertModel,
947
- ModelAlertModel,
948
- SourceFreshnessAlertModel,
949
- GroupedByTableAlerts,
950
- ],
951
- ],
932
+ alerts: Sequence[Union[AlertModel, GroupedByTableAlerts]],
952
933
  sub_title: str,
953
934
  bullet_icon: str,
954
935
  ) -> None:
@@ -1036,13 +1017,7 @@ class SlackIntegration(BaseIntegration):
1036
1017
 
1037
1018
  def _get_fallback_template(
1038
1019
  self,
1039
- alert: Union[
1040
- TestAlertModel,
1041
- ModelAlertModel,
1042
- SourceFreshnessAlertModel,
1043
- GroupedByTableAlerts,
1044
- BaseAlertsGroup,
1045
- ],
1020
+ alert: Union[AlertModel, GroupedByTableAlerts, BaseAlertsGroup],
1046
1021
  *args,
1047
1022
  **kwargs,
1048
1023
  ) -> SlackMessageSchema:
@@ -1079,13 +1054,7 @@ class SlackIntegration(BaseIntegration):
1079
1054
 
1080
1055
  def _fix_owners_and_subscribers(
1081
1056
  self,
1082
- alert: Union[
1083
- TestAlertModel,
1084
- ModelAlertModel,
1085
- SourceFreshnessAlertModel,
1086
- GroupedByTableAlerts,
1087
- BaseAlertsGroup,
1088
- ],
1057
+ alert: Union[AlertModel, GroupedByTableAlerts, BaseAlertsGroup],
1089
1058
  ):
1090
1059
  if isinstance(alert, BaseAlertsGroup):
1091
1060
  for inner_alert in alert.alerts:
@@ -1099,13 +1068,7 @@ class SlackIntegration(BaseIntegration):
1099
1068
 
1100
1069
  def send_alert(
1101
1070
  self,
1102
- alert: Union[
1103
- TestAlertModel,
1104
- ModelAlertModel,
1105
- SourceFreshnessAlertModel,
1106
- GroupedByTableAlerts,
1107
- BaseAlertsGroup,
1108
- ],
1071
+ alert: Union[AlertModel, GroupedByTableAlerts, BaseAlertsGroup],
1109
1072
  *args,
1110
1073
  **kwargs,
1111
1074
  ) -> bool:
@@ -1164,13 +1127,7 @@ class SlackIntegration(BaseIntegration):
1164
1127
 
1165
1128
  def _get_integration_params(
1166
1129
  self,
1167
- alert: Union[
1168
- TestAlertModel,
1169
- ModelAlertModel,
1170
- SourceFreshnessAlertModel,
1171
- GroupedByTableAlerts,
1172
- BaseAlertsGroup,
1173
- ],
1130
+ alert: Union[AlertModel, GroupedByTableAlerts, BaseAlertsGroup],
1174
1131
  *args,
1175
1132
  **kwargs,
1176
1133
  ) -> Dict[str, Any]:
@@ -34,6 +34,7 @@ class BaseAlertDataSchema(BaseModel):
34
34
  owners: Optional[List[str]] = None
35
35
  model_meta: Optional[Dict] = None
36
36
  status: str
37
+ resource_type: Optional[ResourceType] = None
37
38
  # Orchestrator fields
38
39
  job_id: Optional[str] = None
39
40
  job_name: Optional[str] = None
@@ -1,8 +1,9 @@
1
1
  from datetime import datetime, timezone
2
2
  from enum import Enum
3
- from typing import Optional, Union
3
+ from typing import Optional
4
4
 
5
5
  from elementary.monitor.fetchers.alerts.schema.alert_data import (
6
+ BaseAlertDataSchema,
6
7
  ModelAlertDataSchema,
7
8
  SourceFreshnessAlertDataSchema,
8
9
  TestAlertDataSchema,
@@ -40,9 +41,7 @@ class PendingAlertSchema(BaseModel):
40
41
  created_at: datetime
41
42
  updated_at: datetime
42
43
  status: AlertStatus
43
- data: Union[
44
- TestAlertDataSchema, ModelAlertDataSchema, SourceFreshnessAlertDataSchema
45
- ]
44
+ data: BaseAlertDataSchema
46
45
  sent_at: Optional[datetime] = None
47
46
 
48
47
  class Config:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "elementary-data"
3
- version = "0.23.2"
3
+ version = "0.23.4"
4
4
  description = "Data monitoring and lineage"
5
5
  authors = ["Elementary"]
6
6
  keywords = ["data", "lineage", "data lineage", "data warehouse", "DWH", "observability", "data monitoring", "data observability", "Snowflake", "BigQuery", "Redshift", "data reliability", "analytics engineering"]