datajunction-server 0.0.1a84.dev4__tar.gz → 0.0.1a85.dev0__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 (524) hide show
  1. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/PKG-INFO +1 -1
  2. datajunction_server-0.0.1a85.dev0/datajunction_server/__about__.py +4 -0
  3. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/cubes.py +7 -3
  4. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/data.py +4 -0
  5. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/helpers.py +2 -0
  6. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/materializations.py +7 -7
  7. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/cube_materializations.py +11 -4
  8. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/materializations.py +9 -1
  9. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/materialization/jobs/cube_materialization.py +8 -1
  10. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/cube_materialization.py +1 -1
  11. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/node_type.py +0 -11
  12. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/service_clients.py +110 -8
  13. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/utils.py +3 -1
  14. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/cubes_test.py +973 -0
  15. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/materializations_test.py +321 -1
  16. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/nodes_test.py +1 -1
  17. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/conftest.py +58 -5
  18. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/service_clients_test.py +82 -3
  19. datajunction_server-0.0.1a84.dev4/datajunction_server/__about__.py +0 -4
  20. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/.coveragerc +0 -0
  21. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/.env +0 -0
  22. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/.env.integration +0 -0
  23. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/.flake8 +0 -0
  24. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/.gitignore +0 -0
  25. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/.isort.cfg +0 -0
  26. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/.pre-commit-config.yaml +0 -0
  27. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/Dockerfile +0 -0
  28. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/Makefile +0 -0
  29. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/README.md +0 -0
  30. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/__init__.py +0 -0
  31. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/README +0 -0
  32. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/env.py +0 -0
  33. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/script.py.mako +0 -0
  34. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2023_12_20_1829-724445d2b29d_initial_migration.py +0 -0
  35. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_01_08_2034-945d44abcd32_add_dimension_links.py +0 -0
  36. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_01_11_2032-c74b11566d82_add_column_order.py +0 -0
  37. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_01_18_2011-20f060b02772_switch_enum_values.py +0 -0
  38. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_01_23_0617-c9cef8864ecb_add_missing_table_attribute_to_source_.py +0 -0
  39. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_01_23_1655-a8e22109be24_availability_state_s_valid_through_ts_.py +0 -0
  40. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_02_22_0713-d61fb7e48cc3_cascade_deletes_to_dimension_links.py +0 -0
  41. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_04_30_1556-de7ec1c82fe0_add_query_requests.py +0 -0
  42. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_05_09_1420-9b1227ff17f4_update_backfill_spec.py +0 -0
  43. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_05_21_0012-57fc93ef6947_add_query_id_to_queryrequest.py +0 -0
  44. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_06_21_1301-640a814db2d8_add_collection_tables.py +0 -0
  45. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_07_12_0348-34171c92dd6d_set_user_username_to_be_unique.py +0 -0
  46. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_08_18_0036-f3c9b40deb6f_add_create_by_to_nodes_node_revisions_.py +0 -0
  47. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_10_24_0015-4d6ab789e456_add_a_map_of_links_to_availability_state.py +0 -0
  48. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2024_10_26_0340-70904373eab3_add_indexes_on_history_and_node_tables.py +0 -0
  49. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2025_01_19_1808-9650f9b728a2_add_query_ast_for_noderevision.py +0 -0
  50. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic/versions/2025_01_24_0020-bec3296d7537_add_custom_metadata_field_to_nodes.py +0 -0
  51. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/alembic.ini +0 -0
  52. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/__init__.py +0 -0
  53. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/access/authentication/__init__.py +0 -0
  54. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/access/authentication/basic.py +0 -0
  55. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/access/authentication/github.py +0 -0
  56. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/access/authentication/google.py +0 -0
  57. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/access/authentication/whoami.py +0 -0
  58. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/attributes.py +0 -0
  59. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/catalogs.py +0 -0
  60. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/client.py +0 -0
  61. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/collection.py +0 -0
  62. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/dimensions.py +0 -0
  63. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/djsql.py +0 -0
  64. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/engines.py +0 -0
  65. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/__init__.py +0 -0
  66. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/main.py +0 -0
  67. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/queries/__init__.py +0 -0
  68. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/queries/catalogs.py +0 -0
  69. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/queries/dag.py +0 -0
  70. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/queries/engines.py +0 -0
  71. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/queries/nodes.py +0 -0
  72. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/queries/sql.py +0 -0
  73. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/queries/tags.py +0 -0
  74. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/resolvers/__init__.py +0 -0
  75. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/resolvers/nodes.py +0 -0
  76. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/resolvers/tags.py +0 -0
  77. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/scalars/__init__.py +0 -0
  78. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/scalars/availabilitystate.py +0 -0
  79. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/scalars/catalog_engine.py +0 -0
  80. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/scalars/column.py +0 -0
  81. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/scalars/errors.py +0 -0
  82. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/scalars/materialization.py +0 -0
  83. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/scalars/metricmetadata.py +0 -0
  84. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/scalars/node.py +0 -0
  85. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/scalars/sql.py +0 -0
  86. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/scalars/tag.py +0 -0
  87. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/scalars/user.py +0 -0
  88. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/graphql/utils.py +0 -0
  89. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/health.py +0 -0
  90. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/history.py +0 -0
  91. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/logging.conf +0 -0
  92. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/main.py +0 -0
  93. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/measures.py +0 -0
  94. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/metrics.py +0 -0
  95. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/namespaces.py +0 -0
  96. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/nodes.py +0 -0
  97. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/notification.py +0 -0
  98. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/sql.py +0 -0
  99. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/tags.py +0 -0
  100. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/api/users.py +0 -0
  101. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/config.py +0 -0
  102. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/constants.py +0 -0
  103. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/construction/__init__.py +0 -0
  104. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/construction/build.py +0 -0
  105. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/construction/build_v2.py +0 -0
  106. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/construction/dimensions.py +0 -0
  107. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/construction/dj_query.py +0 -0
  108. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/construction/exceptions.py +0 -0
  109. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/construction/utils.py +0 -0
  110. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/__init__.py +0 -0
  111. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/attributetype.py +0 -0
  112. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/availabilitystate.py +0 -0
  113. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/backfill.py +0 -0
  114. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/base.py +0 -0
  115. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/catalog.py +0 -0
  116. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/collection.py +0 -0
  117. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/column.py +0 -0
  118. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/database.py +0 -0
  119. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/dimensionlink.py +0 -0
  120. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/engine.py +0 -0
  121. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/history.py +0 -0
  122. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/materialization.py +0 -0
  123. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/measure.py +0 -0
  124. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/metricmetadata.py +0 -0
  125. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/namespace.py +0 -0
  126. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/node.py +0 -0
  127. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/partition.py +0 -0
  128. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/queryrequest.py +0 -0
  129. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/tag.py +0 -0
  130. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/database/user.py +0 -0
  131. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/enum.py +0 -0
  132. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/errors.py +0 -0
  133. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/__init__.py +0 -0
  134. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/access/__init__.py +0 -0
  135. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/access/authentication/__init__.py +0 -0
  136. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/access/authentication/basic.py +0 -0
  137. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/access/authentication/github.py +0 -0
  138. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/access/authentication/google.py +0 -0
  139. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/access/authentication/http.py +0 -0
  140. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/access/authentication/tokens.py +0 -0
  141. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/access/authorization.py +0 -0
  142. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/client.py +0 -0
  143. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/engines.py +0 -0
  144. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/namespaces.py +0 -0
  145. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/nodes.py +0 -0
  146. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/templates/client_setup.j2 +0 -0
  147. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/templates/create_cube.j2 +0 -0
  148. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/templates/create_dimension.j2 +0 -0
  149. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/templates/create_metric.j2 +0 -0
  150. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/templates/create_transform.j2 +0 -0
  151. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/templates/link_dimension.j2 +0 -0
  152. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/templates/namespace_mapping.j2 +0 -0
  153. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/templates/register_table.j2 +0 -0
  154. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/templates/set_column_attributes.j2 +0 -0
  155. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/internal/validation.py +0 -0
  156. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/materialization/__init__.py +0 -0
  157. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/materialization/jobs/__init__.py +0 -0
  158. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/materialization/jobs/job_types.py +0 -0
  159. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/materialization/jobs/materialization_job.py +0 -0
  160. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/__init__.py +0 -0
  161. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/access.py +0 -0
  162. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/attribute.py +0 -0
  163. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/base.py +0 -0
  164. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/catalog.py +0 -0
  165. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/collection.py +0 -0
  166. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/column.py +0 -0
  167. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/cube.py +0 -0
  168. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/database.py +0 -0
  169. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/dimensionlink.py +0 -0
  170. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/engine.py +0 -0
  171. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/history.py +0 -0
  172. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/materialization.py +0 -0
  173. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/measure.py +0 -0
  174. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/metric.py +0 -0
  175. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/node.py +0 -0
  176. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/partition.py +0 -0
  177. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/query.py +0 -0
  178. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/sql.py +0 -0
  179. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/table.py +0 -0
  180. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/tag.py +0 -0
  181. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/models/user.py +0 -0
  182. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/naming.py +0 -0
  183. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/__init__.py +0 -0
  184. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/dag.py +0 -0
  185. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/decompose.py +0 -0
  186. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/functions.py +0 -0
  187. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/__init__.py +0 -0
  188. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/ast.py +0 -0
  189. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/__init__.py +0 -0
  190. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/antlr4.py +0 -0
  191. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/exceptions.py +0 -0
  192. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseLexer.g4 +0 -0
  193. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseParser.g4 +0 -0
  194. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/grammar/__init__.py +0 -0
  195. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.interp +0 -0
  196. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.py +0 -0
  197. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.tokens +0 -0
  198. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.interp +0 -0
  199. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.py +0 -0
  200. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.tokens +0 -0
  201. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserListener.py +0 -0
  202. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserVisitor.py +0 -0
  203. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/sql/parsing/types.py +0 -0
  204. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/superset.py +0 -0
  205. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/transpilation.py +0 -0
  206. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/datajunction_server/typing.py +0 -0
  207. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/init_data/seed.sql +0 -0
  208. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/pdm.lock +0 -0
  209. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/pyproject.toml +0 -0
  210. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/requirements/docker.txt +0 -0
  211. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/requirements/test.txt +0 -0
  212. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/scripts/docs-snippets.js +0 -0
  213. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/scripts/docs-snippets.sh +0 -0
  214. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/scripts/generate-openapi.py +0 -0
  215. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/__init__.py +0 -0
  216. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/__init__.py +0 -0
  217. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/access_test.py +0 -0
  218. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/attributes_test.py +0 -0
  219. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/catalog_test.py +0 -0
  220. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/client_test.py +0 -0
  221. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/collections_test.py +0 -0
  222. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/data_test.py +0 -0
  223. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/dimension_links_test.py +0 -0
  224. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/dimensions_access_test.py +0 -0
  225. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/dimensions_test.py +0 -0
  226. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/djql_test.py +0 -0
  227. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/engine_test.py +0 -0
  228. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/create_cube.repairs_cube.namespace.txt +0 -0
  229. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/create_cube.repairs_cube.txt +0 -0
  230. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/create_dimension.repair_order.namespace.txt +0 -0
  231. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/create_dimension.repair_order.txt +0 -0
  232. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/create_metric.num_repair_orders.namespace.txt +0 -0
  233. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/create_metric.num_repair_orders.txt +0 -0
  234. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/create_transform.regional_level_agg.namespace.txt +0 -0
  235. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/create_transform.regional_level_agg.txt +0 -0
  236. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/dimension_links.repair_orders.namespace.txt +0 -0
  237. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/dimension_links.repair_orders.txt +0 -0
  238. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/include_client_setup.txt +0 -0
  239. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/notebook.create_cube.txt +0 -0
  240. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/notebook.create_transform.txt +0 -0
  241. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/notebook.link_dimension.txt +0 -0
  242. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/notebook.set_attribute.txt +0 -0
  243. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/client_test/register_table.txt +0 -0
  244. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.druid_spec.json +0 -0
  245. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.partition.druid_spec.json +0 -0
  246. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.partition.query.sql +0 -0
  247. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/druid_measures_cube.full.query.sql +0 -0
  248. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.categorical.query.sql +0 -0
  249. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.druid_spec.json +0 -0
  250. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.patched.query.sql +0 -0
  251. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/druid_measures_cube.incremental.query.sql +0 -0
  252. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.categorical.query.sql +0 -0
  253. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.druid_spec.json +0 -0
  254. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/druid_metrics_cube.incremental.query.sql +0 -0
  255. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/spark_sql.full.config.json +0 -0
  256. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/spark_sql.full.materializations.json +0 -0
  257. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.config.json +0 -0
  258. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.materializations.json +0 -0
  259. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/spark_sql.full.partition.query.sql +0 -0
  260. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/spark_sql.full.query.sql +0 -0
  261. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/spark_sql.incremental.additional.query.sql +0 -0
  262. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/spark_sql.incremental.categorical.query.sql +0 -0
  263. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/spark_sql.incremental.config.json +0 -0
  264. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/spark_sql.incremental.lookback.query.sql +0 -0
  265. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/files/materializations_test/spark_sql.incremental.query.sql +0 -0
  266. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/graphql/__init__.py +0 -0
  267. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/graphql/catalog_test.py +0 -0
  268. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/graphql/common_dimensions_test.py +0 -0
  269. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/graphql/engine_test.py +0 -0
  270. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/graphql/find_nodes_test.py +0 -0
  271. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/graphql/measures_sql_test.py +0 -0
  272. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/graphql/tags_test.py +0 -0
  273. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/health_test.py +0 -0
  274. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/helpers_test.py +0 -0
  275. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/history_test.py +0 -0
  276. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/measures_test.py +0 -0
  277. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/metrics_test.py +0 -0
  278. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/namespaces_test.py +0 -0
  279. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/nodes_update_test.py +0 -0
  280. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/notification_test.py +0 -0
  281. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/routers_test.py +0 -0
  282. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/sql_test.py +0 -0
  283. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/sql_v2_test.py +0 -0
  284. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/tags_test.py +0 -0
  285. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/api/users_test.py +0 -0
  286. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/construction/__init__.py +0 -0
  287. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/construction/build_test.py +0 -0
  288. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/construction/build_v2_test.py +0 -0
  289. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/construction/compile_test.py +0 -0
  290. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/construction/exceptions_test.py +0 -0
  291. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/construction/fixtures.py +0 -0
  292. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/construction/inference_test.py +0 -0
  293. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/construction/utils_test.py +0 -0
  294. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/default.duckdb +0 -0
  295. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/duckdb.sql +0 -0
  296. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/errors_test.py +0 -0
  297. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/examples.py +0 -0
  298. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/integration/__init__.py +0 -0
  299. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/integration/basic_test.py +0 -0
  300. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/internal/authentication/basic_test.py +0 -0
  301. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/internal/authentication/github_test.py +0 -0
  302. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/internal/authentication/http_test.py +0 -0
  303. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/internal/authentication/token_test.py +0 -0
  304. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/internal/authentication/whoami_test.py +0 -0
  305. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/migrations_test.py +0 -0
  306. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/models/__init__.py +0 -0
  307. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/models/catalog_test.py +0 -0
  308. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/models/hash_test.py +0 -0
  309. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/models/measure_test.py +0 -0
  310. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/models/node_test.py +0 -0
  311. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/models/query_test.py +0 -0
  312. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/__init__.py +0 -0
  313. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/dag_test.py +0 -0
  314. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/decompose_test.py +0 -0
  315. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/functions_test.py +0 -0
  316. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/__init__.py +0 -0
  317. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/backends/__init__.py +0 -0
  318. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/backends/antlr4_test.py +0 -0
  319. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/backends/types_test.py +0 -0
  320. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/__init__.py +0 -0
  321. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query1.sql +0 -0
  322. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query10.sql +0 -0
  323. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query11.sql +0 -0
  324. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query12.sql +0 -0
  325. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query13.sql +0 -0
  326. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query14.sql +0 -0
  327. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query15.sql +0 -0
  328. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query16.sql +0 -0
  329. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query17.sql +0 -0
  330. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query18.sql +0 -0
  331. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query19.sql +0 -0
  332. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query2.sql +0 -0
  333. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query20.sql +0 -0
  334. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query21.sql +0 -0
  335. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query22.sql +0 -0
  336. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query23.sql +0 -0
  337. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query24.sql +0 -0
  338. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query25.sql +0 -0
  339. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query26.sql +0 -0
  340. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query27.sql +0 -0
  341. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query28.sql +0 -0
  342. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query29.sql +0 -0
  343. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query3.sql +0 -0
  344. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query30.sql +0 -0
  345. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query31.sql +0 -0
  346. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query32.sql +0 -0
  347. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query33.sql +0 -0
  348. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query34.sql +0 -0
  349. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query35.sql +0 -0
  350. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query36.sql +0 -0
  351. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query37.sql +0 -0
  352. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query38.sql +0 -0
  353. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query39.sql +0 -0
  354. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query4.sql +0 -0
  355. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query40.sql +0 -0
  356. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query41.sql +0 -0
  357. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query42.sql +0 -0
  358. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query43.sql +0 -0
  359. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query44.sql +0 -0
  360. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query45.sql +0 -0
  361. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query46.sql +0 -0
  362. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query47.sql +0 -0
  363. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query48.sql +0 -0
  364. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query49.sql +0 -0
  365. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query5.sql +0 -0
  366. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query50.sql +0 -0
  367. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query51.sql +0 -0
  368. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query52.sql +0 -0
  369. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query53.sql +0 -0
  370. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query54.sql +0 -0
  371. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query55.sql +0 -0
  372. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query56.sql +0 -0
  373. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query57.sql +0 -0
  374. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query58.sql +0 -0
  375. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query59.sql +0 -0
  376. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query6.sql +0 -0
  377. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query60.sql +0 -0
  378. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query61.sql +0 -0
  379. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query62.sql +0 -0
  380. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query63.sql +0 -0
  381. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query64.sql +0 -0
  382. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query65.sql +0 -0
  383. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query66.sql +0 -0
  384. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query67.sql +0 -0
  385. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query68.sql +0 -0
  386. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query69.sql +0 -0
  387. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query7.sql +0 -0
  388. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query70.sql +0 -0
  389. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query71.sql +0 -0
  390. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query72.sql +0 -0
  391. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query73.sql +0 -0
  392. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query74.sql +0 -0
  393. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query75.sql +0 -0
  394. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query76.sql +0 -0
  395. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query77.sql +0 -0
  396. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query78.sql +0 -0
  397. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query79.sql +0 -0
  398. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query8.sql +0 -0
  399. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query80.sql +0 -0
  400. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query81.sql +0 -0
  401. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query82.sql +0 -0
  402. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query83.sql +0 -0
  403. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query84.sql +0 -0
  404. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query85.sql +0 -0
  405. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query86.sql +0 -0
  406. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query87.sql +0 -0
  407. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query88.sql +0 -0
  408. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query89.sql +0 -0
  409. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query9.sql +0 -0
  410. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query90.sql +0 -0
  411. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query91.sql +0 -0
  412. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query92.sql +0 -0
  413. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query93.sql +0 -0
  414. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query94.sql +0 -0
  415. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query95.sql +0 -0
  416. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query96.sql +0 -0
  417. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query97.sql +0 -0
  418. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query98.sql +0 -0
  419. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/ansi/query99.sql +0 -0
  420. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query1.sql +0 -0
  421. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query10.sql +0 -0
  422. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query11.sql +0 -0
  423. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query12.sql +0 -0
  424. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query13.sql +0 -0
  425. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query14.sql +0 -0
  426. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query15.sql +0 -0
  427. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query16.sql +0 -0
  428. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query17.sql +0 -0
  429. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query18.sql +0 -0
  430. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query19.sql +0 -0
  431. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query2.sql +0 -0
  432. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query20.sql +0 -0
  433. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query21.sql +0 -0
  434. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query22.sql +0 -0
  435. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query23.sql +0 -0
  436. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query24.sql +0 -0
  437. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query25.sql +0 -0
  438. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query26.sql +0 -0
  439. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query27.sql +0 -0
  440. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query28.sql +0 -0
  441. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query29.sql +0 -0
  442. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query3.sql +0 -0
  443. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query30.sql +0 -0
  444. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query31.sql +0 -0
  445. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query32.sql +0 -0
  446. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query33.sql +0 -0
  447. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query34.sql +0 -0
  448. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query35.sql +0 -0
  449. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query36.sql +0 -0
  450. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query37.sql +0 -0
  451. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query38.sql +0 -0
  452. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query39.sql +0 -0
  453. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query4.sql +0 -0
  454. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query40.sql +0 -0
  455. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query41.sql +0 -0
  456. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query42.sql +0 -0
  457. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query43.sql +0 -0
  458. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query44.sql +0 -0
  459. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query45.sql +0 -0
  460. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query46.sql +0 -0
  461. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query47.sql +0 -0
  462. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query48.sql +0 -0
  463. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query49.sql +0 -0
  464. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query5.sql +0 -0
  465. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query50.sql +0 -0
  466. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query51.sql +0 -0
  467. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query52.sql +0 -0
  468. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query53.sql +0 -0
  469. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query54.sql +0 -0
  470. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query55.sql +0 -0
  471. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query56.sql +0 -0
  472. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query57.sql +0 -0
  473. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query58.sql +0 -0
  474. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query59.sql +0 -0
  475. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query6.sql +0 -0
  476. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query60.sql +0 -0
  477. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query61.sql +0 -0
  478. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query62.sql +0 -0
  479. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query63.sql +0 -0
  480. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query64.sql +0 -0
  481. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query65.sql +0 -0
  482. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query66.sql +0 -0
  483. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query67.sql +0 -0
  484. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query68.sql +0 -0
  485. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query69.sql +0 -0
  486. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query7.sql +0 -0
  487. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query70.sql +0 -0
  488. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query71.sql +0 -0
  489. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query72.sql +0 -0
  490. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query73.sql +0 -0
  491. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query74.sql +0 -0
  492. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query75.sql +0 -0
  493. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query76.sql +0 -0
  494. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query77.sql +0 -0
  495. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query78.sql +0 -0
  496. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query79.sql +0 -0
  497. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query8.sql +0 -0
  498. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query80.sql +0 -0
  499. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query81.sql +0 -0
  500. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query82.sql +0 -0
  501. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query83.sql +0 -0
  502. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query84.sql +0 -0
  503. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query85.sql +0 -0
  504. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query86.sql +0 -0
  505. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query87.sql +0 -0
  506. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query88.sql +0 -0
  507. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query89.sql +0 -0
  508. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query9.sql +0 -0
  509. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query90.sql +0 -0
  510. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query91.sql +0 -0
  511. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query92.sql +0 -0
  512. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query93.sql +0 -0
  513. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query94.sql +0 -0
  514. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query95.sql +0 -0
  515. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query96.sql +0 -0
  516. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query97.sql +0 -0
  517. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query98.sql +0 -0
  518. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query99.sql +0 -0
  519. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/queries/tpcds/test_tpcds.py +0 -0
  520. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/parsing/test_ast.py +0 -0
  521. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/sql/utils.py +0 -0
  522. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/superset_test.py +0 -0
  523. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/transpilation_test.py +0 -0
  524. {datajunction_server-0.0.1a84.dev4 → datajunction_server-0.0.1a85.dev0}/tests/utils_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: datajunction-server
3
- Version: 0.0.1a84.dev4
3
+ Version: 0.0.1a85.dev0
4
4
  Summary: DataJunction server library for running to a DataJunction server
5
5
  Project-URL: Homepage, https://datajunction.io
6
6
  Project-URL: Repository, https://github.com/DataJunction/dj
@@ -0,0 +1,4 @@
1
+ """
2
+ Version for Hatch
3
+ """
4
+ __version__ = "0.0.1a85.dev0"
@@ -12,6 +12,7 @@ from datajunction_server.api.helpers import get_catalog_by_name
12
12
  from datajunction_server.construction.dimensions import build_dimensions_from_cube_query
13
13
  from datajunction_server.database.node import Node
14
14
  from datajunction_server.database.user import User
15
+ from datajunction_server.errors import DJInvalidInputException
15
16
  from datajunction_server.internal.access.authentication.http import SecureAPIRouter
16
17
  from datajunction_server.internal.access.authorization import validate_access
17
18
  from datajunction_server.internal.materializations import build_cube_materialization
@@ -57,7 +58,7 @@ async def get_cube(
57
58
  return await get_cube_revision_metadata(session, name)
58
59
 
59
60
 
60
- @router.get("/cubes/{name}/materialization", name="Materialization Config Cube")
61
+ @router.get("/cubes/{name}/materialization", name="Cube Materialization Config")
61
62
  async def cube_materialization_info(
62
63
  name: str,
63
64
  session: AsyncSession = Depends(get_session),
@@ -88,8 +89,11 @@ async def cube_materialization_info(
88
89
  """
89
90
  node = await Node.get_cube_by_name(session, name)
90
91
  temporal_partitions = node.current.temporal_partition_columns() # type: ignore
91
- # if not temporal_partitions:
92
- # raise DJInvalidInputException()
92
+ if len(temporal_partitions) != 1:
93
+ raise DJInvalidInputException(
94
+ "The cube must have a single temporal partition column set "
95
+ "in order for it to be materialized.",
96
+ )
93
97
  temporal_partition = temporal_partitions[0] if temporal_partitions else None
94
98
  granularity_lookback_defaults = {
95
99
  Granularity.MINUTE: "1 MINUTE",
@@ -2,6 +2,7 @@
2
2
  """
3
3
  Data related APIs.
4
4
  """
5
+ import logging
5
6
  from typing import Callable, Dict, List, Optional
6
7
 
7
8
  from fastapi import BackgroundTasks, Depends, Query, Request
@@ -42,6 +43,8 @@ from datajunction_server.utils import (
42
43
  get_settings,
43
44
  )
44
45
 
46
+ _logger = logging.getLogger(__name__)
47
+
45
48
  settings = get_settings()
46
49
  router = SecureAPIRouter(tags=["data"])
47
50
 
@@ -61,6 +64,7 @@ async def add_availability_state(
61
64
  """
62
65
  Add an availability state to a node.
63
66
  """
67
+ _logger.info("Storing availability for node=%s", node_name)
64
68
 
65
69
  node = await Node.get_by_name(
66
70
  session,
@@ -366,6 +366,8 @@ async def validate_cube( # pylint: disable=too-many-locals
366
366
 
367
367
  # Verify that the provided metrics are metric nodes
368
368
  metrics: List[Column] = [metric.current.columns[0] for metric in metric_nodes]
369
+ for metric in metrics:
370
+ await session.refresh(metric, ["node_revisions"])
369
371
  if not metrics:
370
372
  raise DJInvalidInputException(
371
373
  message=("At least one metric is required"),
@@ -81,7 +81,7 @@ def materialization_jobs_info() -> JSONResponse:
81
81
  )
82
82
  async def upsert_materialization( # pylint: disable=too-many-locals
83
83
  node_name: str,
84
- data: UpsertCubeMaterialization | UpsertMaterialization,
84
+ data: UpsertMaterialization | UpsertCubeMaterialization,
85
85
  *,
86
86
  session: AsyncSession = Depends(get_session),
87
87
  request: Request,
@@ -105,7 +105,7 @@ async def upsert_materialization( # pylint: disable=too-many-locals
105
105
  if node.type == NodeType.CUBE: # type: ignore
106
106
  node = await Node.get_cube_by_name(session, node_name)
107
107
  _logger.info(
108
- "Upserting materialization for node=%s@%s",
108
+ "Upserting materialization for node=%s version=%s",
109
109
  node.name, # type: ignore
110
110
  node.current_version, # type: ignore
111
111
  )
@@ -138,7 +138,7 @@ async def upsert_materialization( # pylint: disable=too-many-locals
138
138
  and existing_materialization.config == new_materialization.config
139
139
  ):
140
140
  _logger.info(
141
- "Existing materialization found for node=%s@%s",
141
+ "Existing materialization found for node=%s version=%s",
142
142
  node.name, # type: ignore
143
143
  node.current_version, # type: ignore
144
144
  )
@@ -167,7 +167,7 @@ async def upsert_materialization( # pylint: disable=too-many-locals
167
167
  request_headers=request_headers,
168
168
  )
169
169
  _logger.info(
170
- "Refresh materialization workflows for node=%s@%s",
170
+ "Refresh materialization workflows for node=%s version=%s",
171
171
  node.name, # type: ignore
172
172
  node.current_version, # type: ignore
173
173
  )
@@ -195,7 +195,7 @@ async def upsert_materialization( # pylint: disable=too-many-locals
195
195
  # If changes are detected, update the existing or save the new materialization
196
196
  if existing_materialization:
197
197
  _logger.info(
198
- "Updating existing materialization for node=%s@%s",
198
+ "Updating existing materialization for node=%s version=%s",
199
199
  node.name, # type: ignore
200
200
  node.current_version, # type: ignore
201
201
  )
@@ -206,7 +206,7 @@ async def upsert_materialization( # pylint: disable=too-many-locals
206
206
  new_materialization.deactivated_at = None
207
207
  else:
208
208
  _logger.info(
209
- "Adding new materialization for node=%s@%s",
209
+ "Adding new materialization for node=%s version=%s",
210
210
  node.name, # type: ignore
211
211
  node.current_version, # type: ignore
212
212
  )
@@ -242,7 +242,7 @@ async def upsert_materialization( # pylint: disable=too-many-locals
242
242
  )
243
243
  await session.commit()
244
244
  _logger.info(
245
- "Scheduling materialization workflows for node=%s@%s",
245
+ "Scheduling materialization workflows for node=%s version=%s",
246
246
  node.name, # type: ignore
247
247
  node.current_version, # type: ignore
248
248
  )
@@ -37,9 +37,16 @@ def generate_partition_filter_sql(
37
37
  lookback_window == "1 DAY" or not lookback_window
38
38
  ):
39
39
  return f"{temporal_partition.name} = {partition_sql}"
40
- lookback_timestamp = f"{logical_ts} - INTERVAL {lookback_window}"
41
- partition_start = _partition_sql(lookback_timestamp, str(temporal_partition.type))
42
- return f"{temporal_partition.name} BETWEEN {partition_start} AND {partition_sql}"
40
+ lookback_timestamp = (
41
+ f"{logical_ts} - INTERVAL {lookback_window}" # pragma: no cover
42
+ )
43
+ partition_start = _partition_sql( # pragma: no cover
44
+ lookback_timestamp,
45
+ str(temporal_partition.type),
46
+ )
47
+ return ( # pragma: no cover
48
+ f"{temporal_partition.name} BETWEEN {partition_start} AND {partition_sql}"
49
+ )
43
50
 
44
51
 
45
52
  def combine_measures_on_shared_grain(
@@ -161,7 +168,7 @@ async def build_cube_materialization( # pylint: disable=used-before-assignment,
161
168
  )
162
169
  }
163
170
  if len(query_grains) > 1:
164
- raise DJInvalidInputException(
171
+ raise DJInvalidInputException( # pragma: no cover
165
172
  "DJ cannot manage materializations for cubes that have underlying "
166
173
  "measures queries at different grains: "
167
174
  + " vs ".join(
@@ -1,4 +1,5 @@
1
1
  """Node materialization helper functions"""
2
+ import logging
2
3
  import zlib
3
4
  from typing import Dict, List, Optional, Tuple, Union
4
5
 
@@ -40,6 +41,7 @@ from datajunction_server.sql.parsing.types import TimestampType
40
41
  from datajunction_server.utils import SEPARATOR
41
42
 
42
43
  MAX_COLUMN_NAME_LENGTH = 128
44
+ _logger = logging.getLogger(__name__)
43
45
 
44
46
 
45
47
  async def rewrite_metrics_expressions(
@@ -193,6 +195,12 @@ async def build_non_cube_materialization_config(
193
195
  """
194
196
  Build materialization config for non-cube nodes (transforms and dimensions).
195
197
  """
198
+ _logger.info(
199
+ "Building materialization config for node=%s node_type=%s %s",
200
+ current_revision.name,
201
+ current_revision.type,
202
+ upsert,
203
+ )
196
204
  build_criteria = get_default_criteria(
197
205
  node=current_revision,
198
206
  )
@@ -254,7 +262,7 @@ async def create_new_materialization(
254
262
  "least one cube element has a temporal partition defined",
255
263
  )
256
264
 
257
- # Druid Cube (this job will take subsume all existing jobs)
265
+ # Druid Cube (this job will subsume all existing cube materialization types)
258
266
  if upsert.job == MaterializationJobTypeEnum.DRUID_CUBE:
259
267
  generic_config = await build_cube_materialization(
260
268
  session=session,
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Cube materialization jobs
3
3
  """
4
+ import logging
4
5
  from typing import Dict, Optional
5
6
 
6
7
  from datajunction_server.database.materialization import Materialization
@@ -26,6 +27,8 @@ from datajunction_server.service_clients import QueryServiceClient
26
27
  from datajunction_server.sql.parsing import ast
27
28
  from datajunction_server.sql.parsing.backends.antlr4 import parse
28
29
 
30
+ _logger = logging.getLogger(__name__)
31
+
29
32
 
30
33
  class DefaultCubeMaterialization(
31
34
  MaterializationJob,
@@ -141,7 +144,11 @@ class DruidCubeMaterializationJob(DruidMaterializationJob, MaterializationJob):
141
144
  "The materialization job config class must be defined!",
142
145
  )
143
146
  cube_config = self.config_class.parse_obj(materialization.config) # type: ignore
144
- return query_service_client.materialize(
147
+ _logger.info(
148
+ "Scheduling DruidCubeMaterializationJob for node=%s",
149
+ cube_config.cube,
150
+ )
151
+ return query_service_client.materialize_cube(
145
152
  materialization_input=DruidCubeMaterializationInput(
146
153
  name=materialization.name,
147
154
  cube=cube_config.cube,
@@ -239,7 +239,7 @@ class UpsertCubeMaterialization(BaseModel):
239
239
  """
240
240
  Validates the `job` field. Converts to an enum if `job` is a string.
241
241
  """
242
- if isinstance(job, str):
242
+ if isinstance(job, str): # pragma: no cover
243
243
  job_name = job.upper()
244
244
  options = (
245
245
  MaterializationJobTypeEnum._member_names_ # pylint: disable=protected-access,no-member
@@ -45,14 +45,3 @@ class NodeNameVersion(BaseModel):
45
45
 
46
46
  class Config: # pylint: disable=missing-class-docstring,too-few-public-methods
47
47
  orm_mode = True
48
-
49
- def __str__(self):
50
- return f"{self.name}@{self.version}"
51
-
52
- @classmethod
53
- def from_string(cls, node_name_version: str):
54
- """
55
- Returns the object from a name + version string in the format node.name@v1
56
- """
57
- name, version = node_name_version.split("@")
58
- return NodeNameVersion(name=name, version=version)
@@ -1,4 +1,5 @@
1
1
  """Clients for various configurable services."""
2
+ import logging
2
3
  from http import HTTPStatus
3
4
  from typing import TYPE_CHECKING, Dict, List, Optional, Union
4
5
  from urllib.parse import urljoin
@@ -31,6 +32,8 @@ from datajunction_server.sql.parsing.types import ColumnType
31
32
  if TYPE_CHECKING:
32
33
  from datajunction_server.database.engine import Engine
33
34
 
35
+ _logger = logging.getLogger(__name__)
36
+
34
37
 
35
38
  class RequestsSessionWithEndpoint(requests.Session):
36
39
  """
@@ -214,13 +217,20 @@ class QueryServiceClient: # pylint: disable=too-few-public-methods
214
217
  """
215
218
  Get a previously submitted query
216
219
  """
220
+ get_query_endpoint = f"/queries/{query_id}/"
217
221
  response = self.requests_session.get(
218
- f"/queries/{query_id}/",
222
+ get_query_endpoint,
219
223
  headers={**self.requests_session.headers, **request_headers}
220
224
  if request_headers
221
225
  else self.requests_session.headers,
222
226
  )
223
227
  if response.status_code == 404:
228
+ _logger.exception(
229
+ "[DJQS] Failed to get query_id=%s with `GET %s`",
230
+ query_id,
231
+ get_query_endpoint,
232
+ exc_info=True,
233
+ )
224
234
  raise DJQueryServiceClientEntityNotFound( # pragma: no cover
225
235
  message=f"Error response from query service: {response.text}",
226
236
  )
@@ -229,6 +239,11 @@ class QueryServiceClient: # pylint: disable=too-few-public-methods
229
239
  message=f"Error response from query service: {response.text}",
230
240
  )
231
241
  query_info = response.json()
242
+ _logger.info(
243
+ "[DJQS] Retrieved query_id=%s with `GET %s`",
244
+ query_id,
245
+ get_query_endpoint,
246
+ )
232
247
  return QueryWithResults(**query_info)
233
248
 
234
249
  def materialize(
@@ -236,7 +251,6 @@ class QueryServiceClient: # pylint: disable=too-few-public-methods
236
251
  materialization_input: Union[
237
252
  GenericMaterializationInput,
238
253
  DruidMaterializationInput,
239
- DruidCubeMaterializationInput,
240
254
  ],
241
255
  request_headers: Optional[Dict[str, str]] = None,
242
256
  ) -> MaterializationInfo:
@@ -246,7 +260,7 @@ class QueryServiceClient: # pylint: disable=too-few-public-methods
246
260
  that this functionality may be moved to the materialization service at a later point.
247
261
  """
248
262
  response = self.requests_session.post(
249
- "/cubes/materialize",
263
+ "/materialization/",
250
264
  json=materialization_input.dict(),
251
265
  headers={
252
266
  **self.requests_session.headers,
@@ -256,10 +270,56 @@ class QueryServiceClient: # pylint: disable=too-few-public-methods
256
270
  else self.requests_session.headers,
257
271
  )
258
272
  if response.status_code not in (200, 201): # pragma: no cover
273
+ _logger.exception(
274
+ "[DJQS] Failed to materialize node=%s with `POST /materialization/`: %s",
275
+ materialization_input.node_name,
276
+ materialization_input.dict(),
277
+ exc_info=True,
278
+ )
259
279
  return MaterializationInfo(urls=[], output_tables=[])
260
280
  result = response.json()
281
+ _logger.info(
282
+ "[DJQS] Scheduled materialization for node=%s with `POST /materialization/`",
283
+ materialization_input.node_name,
284
+ )
261
285
  return MaterializationInfo(**result)
262
286
 
287
+ def materialize_cube(
288
+ self,
289
+ materialization_input: DruidCubeMaterializationInput,
290
+ request_headers: Optional[Dict[str, str]] = None,
291
+ ) -> MaterializationInfo:
292
+ """
293
+ Post a request to the query service asking it to set up a scheduled materialization
294
+ for the node. The query service is expected to manage all reruns of this job. Note
295
+ that this functionality may be moved to the materialization service at a later point.
296
+ """
297
+ response = self.requests_session.post(
298
+ "/cubes/materialize",
299
+ json=materialization_input.dict(),
300
+ headers={
301
+ **self.requests_session.headers,
302
+ **QueryServiceClient.filtered_headers(request_headers),
303
+ }
304
+ if request_headers
305
+ else self.requests_session.headers,
306
+ timeout=20,
307
+ )
308
+ if response.status_code not in (200, 201): # pragma: no cover
309
+ _logger.exception(
310
+ "[DJQS] Failed to schedule cube materialization for"
311
+ " node=%s with `POST /cubes/materialize`",
312
+ materialization_input.cube,
313
+ exc_info=True,
314
+ )
315
+ return MaterializationInfo(urls=[], output_tables=[]) # pragma: no cover
316
+ result = response.json() # pragma: no cover
317
+ _logger.info(
318
+ "[DJQS] Scheduled cube materialization for node=%s with `POST /cubes/materialize`",
319
+ materialization_input.cube,
320
+ )
321
+ return MaterializationInfo(**result) # pragma: no cover
322
+
263
323
  def deactivate_materialization(
264
324
  self,
265
325
  node_name: str,
@@ -269,8 +329,9 @@ class QueryServiceClient: # pylint: disable=too-few-public-methods
269
329
  """
270
330
  Deactivates the specified node materialization
271
331
  """
332
+ deactivate_endpoint = f"/materialization/{node_name}/{materialization_name}/"
272
333
  response = self.requests_session.delete(
273
- f"/materialization/{node_name}/{materialization_name}/",
334
+ deactivate_endpoint,
274
335
  headers={
275
336
  **self.requests_session.headers,
276
337
  **QueryServiceClient.filtered_headers(request_headers),
@@ -279,8 +340,19 @@ class QueryServiceClient: # pylint: disable=too-few-public-methods
279
340
  else self.requests_session.headers,
280
341
  )
281
342
  if response.status_code not in (200, 201): # pragma: no cover
343
+ _logger.exception(
344
+ "[DJQS] Failed to deactivate materialization for node=%s with `DELETE %s`",
345
+ node_name,
346
+ deactivate_endpoint,
347
+ exc_info=True,
348
+ )
282
349
  return MaterializationInfo(urls=[], output_tables=[])
283
350
  result = response.json()
351
+ _logger.info(
352
+ "[DJQS] Deactivated materialization for node=%s with `DELETE %s`",
353
+ node_name,
354
+ deactivate_endpoint,
355
+ )
284
356
  return MaterializationInfo(**result)
285
357
 
286
358
  def get_materialization_info(
@@ -294,9 +366,12 @@ class QueryServiceClient: # pylint: disable=too-few-public-methods
294
366
  """
295
367
  Gets materialization info for the node and materialization config name.
296
368
  """
297
- response = self.requests_session.get(
369
+ info_endpoint = (
298
370
  f"/materialization/{node_name}/{node_version}/{materialization_name}/"
299
- f"?node_type={node_type}",
371
+ f"?node_type={node_type}"
372
+ )
373
+ response = self.requests_session.get(
374
+ info_endpoint,
300
375
  timeout=3,
301
376
  headers={
302
377
  **self.requests_session.headers,
@@ -306,7 +381,19 @@ class QueryServiceClient: # pylint: disable=too-few-public-methods
306
381
  else self.requests_session.headers,
307
382
  )
308
383
  if response.status_code not in (200, 201):
384
+ _logger.exception(
385
+ "[DJQS] Failed to get materialization info for node=%s with `GET %s`",
386
+ node_name,
387
+ info_endpoint,
388
+ exc_info=True,
389
+ )
309
390
  return MaterializationInfo(output_tables=[], urls=[])
391
+
392
+ _logger.info(
393
+ "[DJQS] Retrieved materialization info for node=%s with `GET %s`",
394
+ node_name,
395
+ info_endpoint,
396
+ )
310
397
  return MaterializationInfo(**response.json())
311
398
 
312
399
  def run_backfill(
@@ -319,9 +406,12 @@ class QueryServiceClient: # pylint: disable=too-few-public-methods
319
406
  request_headers: Optional[Dict[str, str]] = None,
320
407
  ) -> MaterializationInfo:
321
408
  """Kicks off a backfill with the given backfill spec"""
322
- response = self.requests_session.post(
409
+ backfill_endpoint = (
323
410
  f"/materialization/run/{node_name}/{materialization_name}"
324
- f"/?node_version={node_version}&node_type={node_type}",
411
+ f"/?node_version={node_version}&node_type={node_type}"
412
+ )
413
+ response = self.requests_session.post(
414
+ backfill_endpoint,
325
415
  json=[partition.dict() for partition in partitions],
326
416
  headers={
327
417
  **self.requests_session.headers,
@@ -332,5 +422,17 @@ class QueryServiceClient: # pylint: disable=too-few-public-methods
332
422
  timeout=20,
333
423
  )
334
424
  if response.status_code not in (200, 201):
425
+ _logger.exception(
426
+ "[DJQS] Failed to run backfill for node=%s with `POST %s`",
427
+ node_name,
428
+ backfill_endpoint,
429
+ exc_info=True,
430
+ )
335
431
  return MaterializationInfo(output_tables=[], urls=[]) # pragma: no cover
432
+
433
+ _logger.info(
434
+ "[DJQS] Ran backfill for node=%s with `POST %s`",
435
+ node_name,
436
+ backfill_endpoint,
437
+ )
336
438
  return MaterializationInfo(**response.json())
@@ -185,7 +185,9 @@ async def refresh_if_needed(session: AsyncSession, obj, attributes: list[str]):
185
185
  await session.refresh(obj, attributes_to_refresh)
186
186
 
187
187
 
188
- def get_query_service_client() -> Optional[QueryServiceClient]:
188
+ def get_query_service_client( # pylint: disable=unused-argument
189
+ request: Request = None,
190
+ ) -> Optional[QueryServiceClient]:
189
191
  """
190
192
  Return query service client
191
193
  """