datajunction-server 0.0.1a45.dev0__tar.gz → 0.0.1a45.dev2__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 (543) hide show
  1. datajunction_server-0.0.1a45.dev2/.env +2 -0
  2. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/PKG-INFO +1 -3
  3. datajunction_server-0.0.1a45.dev2/datajunction_server/__about__.py +4 -0
  4. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/access/authentication/basic.py +13 -10
  5. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/access/authentication/google.py +7 -9
  6. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/attributes.py +23 -13
  7. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/catalogs.py +23 -29
  8. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/client.py +50 -49
  9. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/cubes.py +18 -18
  10. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/data.py +23 -33
  11. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/dimensions.py +17 -17
  12. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/djsql.py +8 -8
  13. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/engines.py +11 -13
  14. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/graphql/catalogs.py +2 -2
  15. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/graphql/engines.py +2 -2
  16. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/health.py +6 -6
  17. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/helpers.py +142 -248
  18. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/history.py +12 -14
  19. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/materializations.py +31 -47
  20. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/measures.py +26 -36
  21. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/metrics.py +18 -30
  22. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/namespaces.py +51 -47
  23. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/nodes.py +238 -335
  24. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/sql.py +11 -11
  25. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/tags.py +26 -40
  26. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/construction/build.py +73 -97
  27. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/construction/dimensions.py +5 -12
  28. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/construction/dj_query.py +22 -29
  29. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/construction/utils.py +7 -20
  30. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/attributetype.py +1 -49
  31. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/catalog.py +0 -1
  32. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/column.py +1 -1
  33. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/dimensionlink.py +0 -1
  34. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/materialization.py +0 -1
  35. datajunction_server-0.0.1a45.dev2/datajunction_server/database/namespace.py +25 -0
  36. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/node.py +4 -163
  37. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/access/authentication/basic.py +8 -10
  38. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/access/authentication/http.py +4 -7
  39. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/engines.py +3 -3
  40. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/materializations.py +16 -21
  41. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/namespaces.py +86 -64
  42. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/nodes.py +169 -286
  43. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/access.py +4 -4
  44. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/node.py +2 -8
  45. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/dag.py +56 -101
  46. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/ast.py +69 -98
  47. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/utils.py +36 -21
  48. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/pdm.lock +43 -119
  49. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/pyproject.toml +9 -7
  50. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/requirements/docker.txt +2 -4
  51. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/requirements/test.txt +3 -7
  52. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/attributes_test.py +9 -12
  53. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/catalog_test.py +53 -69
  54. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/client_test.py +22 -31
  55. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/cubes_test.py +93 -108
  56. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/data_test.py +155 -186
  57. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/dimension_links_test.py +57 -73
  58. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/dimensions_test.py +21 -31
  59. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/djql_test.py +30 -40
  60. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/engine_test.py +19 -23
  61. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/graphql/catalog_test.py +9 -10
  62. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/graphql/engine_test.py +8 -9
  63. datajunction_server-0.0.1a45.dev2/tests/api/health_test.py +26 -0
  64. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/helpers_test.py +6 -16
  65. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/history_test.py +7 -11
  66. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/materializations_test.py +60 -79
  67. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/measures_test.py +22 -31
  68. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/metrics_test.py +53 -71
  69. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/namespaces_test.py +65 -88
  70. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/node_update_test.py +6 -8
  71. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/nodes_test.py +395 -493
  72. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/routers_test.py +8 -10
  73. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/sql_test.py +100 -104
  74. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/tags_test.py +37 -42
  75. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/conftest.py +101 -168
  76. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/construction/build_test.py +50 -64
  77. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/construction/compile_test.py +22 -39
  78. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/construction/fixtures.py +6 -7
  79. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/construction/inference_test.py +31 -45
  80. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/construction/utils_test.py +6 -11
  81. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/internal/authentication/basic_test.py +25 -51
  82. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/internal/authentication/whoami_test.py +6 -8
  83. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/models/node_test.py +2 -2
  84. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/dag_test.py +5 -6
  85. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/functions_test.py +400 -592
  86. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/test_ast.py +77 -83
  87. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/utils_test.py +4 -5
  88. datajunction_server-0.0.1a45.dev0/.env +0 -2
  89. datajunction_server-0.0.1a45.dev0/datajunction_server/__about__.py +0 -4
  90. datajunction_server-0.0.1a45.dev0/datajunction_server/database/namespace.py +0 -128
  91. datajunction_server-0.0.1a45.dev0/tests/api/health_test.py +0 -35
  92. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/.coveragerc +0 -0
  93. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/.env.integration +0 -0
  94. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/.flake8 +0 -0
  95. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/.gitignore +0 -0
  96. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/.isort.cfg +0 -0
  97. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/.pre-commit-config.yaml +0 -0
  98. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/.pylintrc +0 -0
  99. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/Dockerfile +0 -0
  100. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/Makefile +0 -0
  101. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/README.md +0 -0
  102. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/alembic/README +0 -0
  103. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/alembic/env.py +0 -0
  104. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/alembic/script.py.mako +0 -0
  105. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/alembic/versions/2023_12_20_1829-724445d2b29d_initial_migration.py +0 -0
  106. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/alembic/versions/2024_01_08_2034-945d44abcd32_add_dimension_links.py +0 -0
  107. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/alembic/versions/2024_01_11_2032-c74b11566d82_add_column_order.py +0 -0
  108. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/alembic/versions/2024_01_18_2011-20f060b02772_switch_enum_values.py +0 -0
  109. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/alembic/versions/2024_01_23_0617-c9cef8864ecb_add_missing_table_attribute_to_source_.py +0 -0
  110. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/alembic/versions/2024_01_23_1655-a8e22109be24_availability_state_s_valid_through_ts_.py +0 -0
  111. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/alembic/versions/2024_02_22_0713-d61fb7e48cc3_cascade_deletes_to_dimension_links.py +0 -0
  112. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/alembic.ini +0 -0
  113. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/alembic_version.csv +0 -0
  114. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/attributetype.csv +0 -0
  115. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/availabilitystate.csv +0 -0
  116. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/backfill.csv +0 -0
  117. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/catalog.csv +0 -0
  118. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/catalogengines.csv +0 -0
  119. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/column.csv +0 -0
  120. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/columnattribute.csv +0 -0
  121. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/cube.csv +0 -0
  122. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/database.csv +0 -0
  123. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/engine.csv +0 -0
  124. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/history.csv +0 -0
  125. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/materialization.csv +0 -0
  126. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/measures.csv +0 -0
  127. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/metric_required_dimensions.csv +0 -0
  128. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/metricmetadata.csv +0 -0
  129. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/missingparent.csv +0 -0
  130. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/node.csv +0 -0
  131. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/nodeavailabilitystate.csv +0 -0
  132. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/nodecolumns.csv +0 -0
  133. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/nodemissingparents.csv +0 -0
  134. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/nodenamespace.csv +0 -0
  135. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/noderelationship.csv +0 -0
  136. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/noderevision.csv +0 -0
  137. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/partition.csv +0 -0
  138. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/alembic_version.csv +0 -0
  139. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/attributetype.csv +0 -0
  140. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/availabilitystate.csv +0 -0
  141. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/backfill.csv +0 -0
  142. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/catalog.csv +0 -0
  143. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/catalogengines.csv +0 -0
  144. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/column.csv +0 -0
  145. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/columnattribute.csv +0 -0
  146. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/cube.csv +0 -0
  147. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/database.csv +0 -0
  148. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/engine.csv +0 -0
  149. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/history.csv +0 -0
  150. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/materialization.csv +0 -0
  151. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/measures.csv +0 -0
  152. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/metric_required_dimensions.csv +0 -0
  153. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/metricmetadata.csv +0 -0
  154. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/missingparent.csv +0 -0
  155. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/node.csv +0 -0
  156. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/nodeavailabilitystate.csv +0 -0
  157. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/nodecolumns.csv +0 -0
  158. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/nodemissingparents.csv +0 -0
  159. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/nodenamespace.csv +0 -0
  160. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/noderelationship.csv +0 -0
  161. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/noderevision.csv +0 -0
  162. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/partition.csv +0 -0
  163. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/table.csv +0 -0
  164. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/tablecolumns.csv +0 -0
  165. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/tag.csv +0 -0
  166. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/tagnoderelationship.csv +0 -0
  167. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/prod/backup/users.csv +0 -0
  168. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/table.csv +0 -0
  169. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/tablecolumns.csv +0 -0
  170. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/tag.csv +0 -0
  171. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/tagnoderelationship.csv +0 -0
  172. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/alembic_version.csv +0 -0
  173. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/attributetype.csv +0 -0
  174. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/availabilitystate.csv +0 -0
  175. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/backfill.csv +0 -0
  176. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/catalog.csv +0 -0
  177. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/catalogengines.csv +0 -0
  178. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/column.csv +0 -0
  179. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/columnattribute.csv +0 -0
  180. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/cube.csv +0 -0
  181. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/database.csv +0 -0
  182. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/engine.csv +0 -0
  183. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/history.csv +0 -0
  184. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/materialization.csv +0 -0
  185. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/measures.csv +0 -0
  186. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/metric_required_dimensions.csv +0 -0
  187. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/metricmetadata.csv +0 -0
  188. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/missingparent.csv +0 -0
  189. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/node.csv +0 -0
  190. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/nodeavailabilitystate.csv +0 -0
  191. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/nodecolumns.csv +0 -0
  192. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/nodemissingparents.csv +0 -0
  193. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/nodenamespace.csv +0 -0
  194. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/noderelationship.csv +0 -0
  195. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/noderevision.csv +0 -0
  196. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/partition.csv +0 -0
  197. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/table.csv +0 -0
  198. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/tablecolumns.csv +0 -0
  199. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/tag.csv +0 -0
  200. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/tagnoderelationship.csv +0 -0
  201. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/test/backup/users.csv +0 -0
  202. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/backup/users.csv +0 -0
  203. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/curl-format.txt +0 -0
  204. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/__init__.py +0 -0
  205. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/__init__.py +0 -0
  206. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/access/authentication/__init__.py +0 -0
  207. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/access/authentication/github.py +0 -0
  208. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/access/authentication/whoami.py +0 -0
  209. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/graphql/__init__.py +0 -0
  210. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/graphql/main.py +0 -0
  211. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/logging.conf +0 -0
  212. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/api/main.py +0 -0
  213. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/config.py +0 -0
  214. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/constants.py +0 -0
  215. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/construction/__init__.py +0 -0
  216. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/construction/exceptions.py +0 -0
  217. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/__init__.py +0 -0
  218. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/availabilitystate.py +0 -0
  219. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/backfill.py +0 -0
  220. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/base.py +0 -0
  221. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/database.py +0 -0
  222. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/engine.py +0 -0
  223. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/history.py +0 -0
  224. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/measure.py +0 -0
  225. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/metricmetadata.py +0 -0
  226. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/partition.py +0 -0
  227. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/tag.py +0 -0
  228. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/database/user.py +0 -0
  229. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/enum.py +0 -0
  230. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/errors.py +0 -0
  231. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/__init__.py +0 -0
  232. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/access/__init__.py +0 -0
  233. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/access/authentication/__init__.py +0 -0
  234. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/access/authentication/github.py +0 -0
  235. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/access/authentication/google.py +0 -0
  236. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/access/authentication/tokens.py +0 -0
  237. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/internal/access/authorization.py +0 -0
  238. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/materialization/__init__.py +0 -0
  239. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/materialization/jobs/__init__.py +0 -0
  240. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/materialization/jobs/cube_materialization.py +0 -0
  241. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/materialization/jobs/job_types.py +0 -0
  242. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/materialization/jobs/materialization_job.py +0 -0
  243. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/__init__.py +0 -0
  244. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/attribute.py +0 -0
  245. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/base.py +0 -0
  246. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/catalog.py +0 -0
  247. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/column.py +0 -0
  248. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/cube.py +0 -0
  249. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/database.py +0 -0
  250. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/dimensionlink.py +0 -0
  251. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/engine.py +0 -0
  252. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/history.py +0 -0
  253. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/materialization.py +0 -0
  254. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/measure.py +0 -0
  255. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/metric.py +0 -0
  256. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/node_type.py +0 -0
  257. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/partition.py +0 -0
  258. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/query.py +0 -0
  259. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/table.py +0 -0
  260. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/tag.py +0 -0
  261. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/models/user.py +0 -0
  262. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/naming.py +0 -0
  263. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/service_clients.py +0 -0
  264. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/__init__.py +0 -0
  265. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/functions.py +0 -0
  266. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/__init__.py +0 -0
  267. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/__init__.py +0 -0
  268. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/antlr4.py +0 -0
  269. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/exceptions.py +0 -0
  270. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/grammar/SqlBaseLexer.g4 +0 -0
  271. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/grammar/SqlBaseParser.g4 +0 -0
  272. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/grammar/__init__.py +0 -0
  273. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.interp +0 -0
  274. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.py +0 -0
  275. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.tokens +0 -0
  276. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.interp +0 -0
  277. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.py +0 -0
  278. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.tokens +0 -0
  279. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserListener.py +0 -0
  280. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserVisitor.py +0 -0
  281. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/sql/parsing/types.py +0 -0
  282. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/superset.py +0 -0
  283. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/transpilation.py +0 -0
  284. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/datajunction_server/typing.py +0 -0
  285. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/default.duckdb +0 -0
  286. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/dj.copy.db +0 -0
  287. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/dj.internal.db +0 -0
  288. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/dj.test.db +0 -0
  289. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/dj.tt.db +0 -0
  290. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/dj_prod.dump +0 -0
  291. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/dj_prod.sql +0 -0
  292. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/scripts/docs-snippets.js +0 -0
  293. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/scripts/docs-snippets.sh +0 -0
  294. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/scripts/generate-openapi.py +0 -0
  295. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tester.py +0 -0
  296. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/__init__.py +0 -0
  297. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/__init__.py +0 -0
  298. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/druid_measures_cube.full.druid_spec.json +0 -0
  299. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/druid_measures_cube.full.partition.druid_spec.json +0 -0
  300. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/druid_measures_cube.full.partition.query.sql +0 -0
  301. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/druid_measures_cube.full.query.sql +0 -0
  302. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/druid_measures_cube.incremental.druid_spec.json +0 -0
  303. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/druid_measures_cube.incremental.patched.query.sql +0 -0
  304. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/druid_measures_cube.incremental.query.sql +0 -0
  305. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/druid_metrics_cube.incremental.druid_spec.json +0 -0
  306. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/druid_metrics_cube.incremental.query.sql +0 -0
  307. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/spark_sql.full.config.json +0 -0
  308. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/spark_sql.full.materializations.json +0 -0
  309. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/spark_sql.full.partition.config.json +0 -0
  310. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/spark_sql.full.partition.materializations.json +0 -0
  311. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/spark_sql.full.partition.query.sql +0 -0
  312. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/spark_sql.full.query.sql +0 -0
  313. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/spark_sql.incremental.additional.query.sql +0 -0
  314. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/spark_sql.incremental.config.json +0 -0
  315. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/files/materializations_test/spark_sql.incremental.query.sql +0 -0
  316. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/api/graphql/__init__.py +0 -0
  317. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/construction/__init__.py +0 -0
  318. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/construction/exceptions_test.py +0 -0
  319. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/default.duckdb +0 -0
  320. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/duckdb.sql +0 -0
  321. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/errors_test.py +0 -0
  322. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/examples.py +0 -0
  323. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/fixes_test.py +0 -0
  324. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/integration/__init__.py +0 -0
  325. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/integration/basic_test.py +0 -0
  326. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/internal/authentication/github_test.py +0 -0
  327. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/internal/authentication/http_test.py +0 -0
  328. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/internal/authentication/token_test.py +0 -0
  329. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/migrations_test.py +0 -0
  330. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/models/__init__.py +0 -0
  331. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/models/catalog_test.py +0 -0
  332. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/models/hash_test.py +0 -0
  333. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/models/measure_test.py +0 -0
  334. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/models/query_test.py +0 -0
  335. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/service_clients_test.py +0 -0
  336. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/__init__.py +0 -0
  337. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/__init__.py +0 -0
  338. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/backends/__init__.py +0 -0
  339. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/backends/antlr4_test.py +0 -0
  340. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/backends/types_test.py +0 -0
  341. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/__init__.py +0 -0
  342. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query1.sql +0 -0
  343. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query10.sql +0 -0
  344. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query11.sql +0 -0
  345. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query12.sql +0 -0
  346. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query13.sql +0 -0
  347. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query14.sql +0 -0
  348. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query15.sql +0 -0
  349. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query16.sql +0 -0
  350. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query17.sql +0 -0
  351. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query18.sql +0 -0
  352. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query19.sql +0 -0
  353. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query2.sql +0 -0
  354. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query20.sql +0 -0
  355. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query21.sql +0 -0
  356. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query22.sql +0 -0
  357. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query23.sql +0 -0
  358. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query24.sql +0 -0
  359. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query25.sql +0 -0
  360. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query26.sql +0 -0
  361. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query27.sql +0 -0
  362. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query28.sql +0 -0
  363. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query29.sql +0 -0
  364. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query3.sql +0 -0
  365. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query30.sql +0 -0
  366. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query31.sql +0 -0
  367. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query32.sql +0 -0
  368. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query33.sql +0 -0
  369. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query34.sql +0 -0
  370. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query35.sql +0 -0
  371. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query36.sql +0 -0
  372. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query37.sql +0 -0
  373. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query38.sql +0 -0
  374. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query39.sql +0 -0
  375. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query4.sql +0 -0
  376. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query40.sql +0 -0
  377. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query41.sql +0 -0
  378. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query42.sql +0 -0
  379. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query43.sql +0 -0
  380. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query44.sql +0 -0
  381. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query45.sql +0 -0
  382. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query46.sql +0 -0
  383. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query47.sql +0 -0
  384. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query48.sql +0 -0
  385. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query49.sql +0 -0
  386. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query5.sql +0 -0
  387. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query50.sql +0 -0
  388. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query51.sql +0 -0
  389. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query52.sql +0 -0
  390. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query53.sql +0 -0
  391. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query54.sql +0 -0
  392. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query55.sql +0 -0
  393. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query56.sql +0 -0
  394. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query57.sql +0 -0
  395. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query58.sql +0 -0
  396. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query59.sql +0 -0
  397. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query6.sql +0 -0
  398. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query60.sql +0 -0
  399. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query61.sql +0 -0
  400. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query62.sql +0 -0
  401. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query63.sql +0 -0
  402. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query64.sql +0 -0
  403. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query65.sql +0 -0
  404. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query66.sql +0 -0
  405. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query67.sql +0 -0
  406. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query68.sql +0 -0
  407. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query69.sql +0 -0
  408. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query7.sql +0 -0
  409. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query70.sql +0 -0
  410. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query71.sql +0 -0
  411. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query72.sql +0 -0
  412. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query73.sql +0 -0
  413. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query74.sql +0 -0
  414. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query75.sql +0 -0
  415. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query76.sql +0 -0
  416. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query77.sql +0 -0
  417. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query78.sql +0 -0
  418. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query79.sql +0 -0
  419. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query8.sql +0 -0
  420. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query80.sql +0 -0
  421. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query81.sql +0 -0
  422. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query82.sql +0 -0
  423. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query83.sql +0 -0
  424. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query84.sql +0 -0
  425. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query85.sql +0 -0
  426. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query86.sql +0 -0
  427. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query87.sql +0 -0
  428. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query88.sql +0 -0
  429. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query89.sql +0 -0
  430. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query9.sql +0 -0
  431. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query90.sql +0 -0
  432. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query91.sql +0 -0
  433. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query92.sql +0 -0
  434. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query93.sql +0 -0
  435. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query94.sql +0 -0
  436. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query95.sql +0 -0
  437. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query96.sql +0 -0
  438. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query97.sql +0 -0
  439. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query98.sql +0 -0
  440. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/ansi/query99.sql +0 -0
  441. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query1.sql +0 -0
  442. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query10.sql +0 -0
  443. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query11.sql +0 -0
  444. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query12.sql +0 -0
  445. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query13.sql +0 -0
  446. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query14.sql +0 -0
  447. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query15.sql +0 -0
  448. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query16.sql +0 -0
  449. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query17.sql +0 -0
  450. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query18.sql +0 -0
  451. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query19.sql +0 -0
  452. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query2.sql +0 -0
  453. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query20.sql +0 -0
  454. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query21.sql +0 -0
  455. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query22.sql +0 -0
  456. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query23.sql +0 -0
  457. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query24.sql +0 -0
  458. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query25.sql +0 -0
  459. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query26.sql +0 -0
  460. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query27.sql +0 -0
  461. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query28.sql +0 -0
  462. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query29.sql +0 -0
  463. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query3.sql +0 -0
  464. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query30.sql +0 -0
  465. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query31.sql +0 -0
  466. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query32.sql +0 -0
  467. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query33.sql +0 -0
  468. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query34.sql +0 -0
  469. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query35.sql +0 -0
  470. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query36.sql +0 -0
  471. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query37.sql +0 -0
  472. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query38.sql +0 -0
  473. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query39.sql +0 -0
  474. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query4.sql +0 -0
  475. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query40.sql +0 -0
  476. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query41.sql +0 -0
  477. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query42.sql +0 -0
  478. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query43.sql +0 -0
  479. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query44.sql +0 -0
  480. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query45.sql +0 -0
  481. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query46.sql +0 -0
  482. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query47.sql +0 -0
  483. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query48.sql +0 -0
  484. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query49.sql +0 -0
  485. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query5.sql +0 -0
  486. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query50.sql +0 -0
  487. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query51.sql +0 -0
  488. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query52.sql +0 -0
  489. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query53.sql +0 -0
  490. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query54.sql +0 -0
  491. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query55.sql +0 -0
  492. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query56.sql +0 -0
  493. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query57.sql +0 -0
  494. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query58.sql +0 -0
  495. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query59.sql +0 -0
  496. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query6.sql +0 -0
  497. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query60.sql +0 -0
  498. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query61.sql +0 -0
  499. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query62.sql +0 -0
  500. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query63.sql +0 -0
  501. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query64.sql +0 -0
  502. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query65.sql +0 -0
  503. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query66.sql +0 -0
  504. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query67.sql +0 -0
  505. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query68.sql +0 -0
  506. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query69.sql +0 -0
  507. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query7.sql +0 -0
  508. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query70.sql +0 -0
  509. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query71.sql +0 -0
  510. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query72.sql +0 -0
  511. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query73.sql +0 -0
  512. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query74.sql +0 -0
  513. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query75.sql +0 -0
  514. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query76.sql +0 -0
  515. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query77.sql +0 -0
  516. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query78.sql +0 -0
  517. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query79.sql +0 -0
  518. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query8.sql +0 -0
  519. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query80.sql +0 -0
  520. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query81.sql +0 -0
  521. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query82.sql +0 -0
  522. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query83.sql +0 -0
  523. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query84.sql +0 -0
  524. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query85.sql +0 -0
  525. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query86.sql +0 -0
  526. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query87.sql +0 -0
  527. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query88.sql +0 -0
  528. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query89.sql +0 -0
  529. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query9.sql +0 -0
  530. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query90.sql +0 -0
  531. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query91.sql +0 -0
  532. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query92.sql +0 -0
  533. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query93.sql +0 -0
  534. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query94.sql +0 -0
  535. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query95.sql +0 -0
  536. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query96.sql +0 -0
  537. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query97.sql +0 -0
  538. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query98.sql +0 -0
  539. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/sparksql/query99.sql +0 -0
  540. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/parsing/queries/tpcds/test_tpcds.py +0 -0
  541. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/sql/utils.py +0 -0
  542. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/superset_test.py +0 -0
  543. {datajunction_server-0.0.1a45.dev0 → datajunction_server-0.0.1a45.dev2}/tests/transpilation_test.py +0 -0
@@ -0,0 +1,2 @@
1
+ QUERY_SERVICE=http://host.docker.internal:8002
2
+ SECRET=a-fake-secretkey
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datajunction-server
3
- Version: 0.0.1a45.dev0
3
+ Version: 0.0.1a45.dev2
4
4
  Summary: DataJunction server library for running to a DataJunction server
5
5
  Project-URL: repository, https://github.com/DataJunction/dj
6
6
  Author-email: DataJunction Authors <yian.shang@gmail.com>
@@ -14,11 +14,9 @@ Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Requires-Python: <4.0,>=3.8
16
16
  Requires-Dist: accept-types<1.0.0,>=0.4.1
17
- Requires-Dist: aiosqlite>=0.20.0
18
17
  Requires-Dist: alembic>=1.10.3
19
18
  Requires-Dist: antlr4-python3-runtime==4.12.0
20
19
  Requires-Dist: asciidag<1.0.0,>=0.2.0
21
- Requires-Dist: asyncpg>=0.29.0
22
20
  Requires-Dist: bcrypt>=4.0.1
23
21
  Requires-Dist: cachelib<1.0.0,>=0.10.2
24
22
  Requires-Dist: cachetools>=5.3.1
@@ -0,0 +1,4 @@
1
+ """
2
+ Version for Hatch
3
+ """
4
+ __version__ = "0.0.1a45.dev2"
@@ -8,7 +8,7 @@ from fastapi import APIRouter, Depends, Form
8
8
  from fastapi.responses import JSONResponse, Response
9
9
  from fastapi.security import OAuth2PasswordRequestForm
10
10
  from sqlalchemy import select
11
- from sqlalchemy.ext.asyncio import AsyncSession
11
+ from sqlalchemy.orm import Session
12
12
 
13
13
  from datajunction_server.constants import AUTH_COOKIE, LOGGED_IN_FLAG_COOKIE
14
14
  from datajunction_server.database.user import OAuthProvider, User
@@ -24,17 +24,20 @@ router = APIRouter(tags=["Basic OAuth2"])
24
24
 
25
25
 
26
26
  @router.post("/basic/user/")
27
- async def create_a_user(
27
+ def create_a_user(
28
28
  email: str = Form(),
29
29
  username: str = Form(),
30
30
  password: str = Form(),
31
- session: AsyncSession = Depends(get_session),
31
+ session: Session = Depends(get_session),
32
32
  ) -> JSONResponse:
33
33
  """
34
34
  Create a new user
35
35
  """
36
- user_result = await session.execute(select(User).where(User.username == username))
37
- if user_result.scalar_one_or_none():
36
+ if (
37
+ session.execute(select(User).where(User.username == username))
38
+ .scalars()
39
+ .one_or_none()
40
+ ):
38
41
  raise DJException(
39
42
  http_status_code=HTTPStatus.CONFLICT,
40
43
  errors=[
@@ -51,8 +54,8 @@ async def create_a_user(
51
54
  oauth_provider=OAuthProvider.BASIC,
52
55
  )
53
56
  session.add(new_user)
54
- await session.commit()
55
- await session.refresh(new_user)
57
+ session.commit()
58
+ session.refresh(new_user)
56
59
  return JSONResponse(
57
60
  content={"message": "User successfully created"},
58
61
  status_code=HTTPStatus.CREATED,
@@ -60,14 +63,14 @@ async def create_a_user(
60
63
 
61
64
 
62
65
  @router.post("/basic/login/")
63
- async def login(
66
+ def login(
64
67
  form_data: OAuth2PasswordRequestForm = Depends(),
65
- session: AsyncSession = Depends(get_session),
68
+ session: Session = Depends(get_session),
66
69
  ):
67
70
  """
68
71
  Get a JWT token and set it as an HTTP only cookie
69
72
  """
70
- user = await validate_user_password(
73
+ user = validate_user_password(
71
74
  username=form_data.username,
72
75
  password=form_data.password,
73
76
  session=session,
@@ -14,7 +14,7 @@ import requests
14
14
  from fastapi import APIRouter, Depends, Request
15
15
  from google.oauth2 import id_token
16
16
  from sqlalchemy import select
17
- from sqlalchemy.ext.asyncio import AsyncSession
17
+ from sqlalchemy.orm import Session
18
18
  from starlette.responses import RedirectResponse
19
19
 
20
20
  from datajunction_server.constants import AUTH_COOKIE, LOGGED_IN_FLAG_COOKIE
@@ -46,11 +46,11 @@ def login(target: Optional[str] = None):
46
46
 
47
47
 
48
48
  @router.get("/google/token/")
49
- async def get_access_token(
49
+ def get_access_token(
50
50
  request: Request,
51
51
  state: Optional[str] = None,
52
52
  error: Optional[str] = None,
53
- session: AsyncSession = Depends(get_session),
53
+ session: Session = Depends(get_session),
54
54
  setting: Settings = Depends(get_settings),
55
55
  ):
56
56
  """
@@ -75,10 +75,8 @@ async def get_access_token(
75
75
  audience=setting.google_oauth_client_id,
76
76
  )
77
77
 
78
- existing_user = (
79
- await session.execute(
80
- select(User).where(User.email == user_data["email"]),
81
- )
78
+ existing_user = session.execute(
79
+ select(User).where(User.email == user_data["email"]),
82
80
  ).scalar()
83
81
  if existing_user:
84
82
  _logger.info("OAuth user found")
@@ -93,8 +91,8 @@ async def get_access_token(
93
91
  oauth_provider=OAuthProvider.GOOGLE,
94
92
  )
95
93
  session.add(new_user)
96
- await session.commit()
97
- await session.refresh(new_user)
94
+ session.commit()
95
+ session.refresh(new_user)
98
96
  user = new_user
99
97
  response = RedirectResponse(url=urljoin(settings.frontend_host, state)) # type: ignore
100
98
  response.set_cookie(
@@ -7,7 +7,7 @@ from typing import List
7
7
 
8
8
  from fastapi import Depends
9
9
  from sqlalchemy import select
10
- from sqlalchemy.ext.asyncio import AsyncSession
10
+ from sqlalchemy.orm import Session
11
11
 
12
12
  from datajunction_server.database.attributetype import AttributeType
13
13
  from datajunction_server.errors import DJAlreadyExistsException, DJException
@@ -26,13 +26,13 @@ router = SecureAPIRouter(tags=["attributes"])
26
26
 
27
27
 
28
28
  @router.get("/attributes/", response_model=List[AttributeTypeBase])
29
- async def list_attributes(
30
- *, session: AsyncSession = Depends(get_session)
29
+ def list_attributes(
30
+ *, session: Session = Depends(get_session)
31
31
  ) -> List[AttributeTypeBase]:
32
32
  """
33
33
  List all available attribute types.
34
34
  """
35
- attributes = await AttributeType.get_all(session)
35
+ attributes = session.execute(select(AttributeType)).scalars().all()
36
36
  return [AttributeTypeBase.from_orm(attr) for attr in attributes]
37
37
 
38
38
 
@@ -42,8 +42,8 @@ async def list_attributes(
42
42
  status_code=201,
43
43
  name="Add an Attribute Type",
44
44
  )
45
- async def add_attribute_type(
46
- data: MutableAttributeTypeFields, *, session: AsyncSession = Depends(get_session)
45
+ def add_attribute_type(
46
+ data: MutableAttributeTypeFields, *, session: Session = Depends(get_session)
47
47
  ) -> AttributeTypeBase:
48
48
  """
49
49
  Add a new attribute type
@@ -52,16 +52,26 @@ async def add_attribute_type(
52
52
  raise DJException(
53
53
  message="Cannot use `system` as the attribute type namespace as it is reserved.",
54
54
  )
55
- attribute_type = await AttributeType.get_by_name(session, data.name)
55
+ statement = select(AttributeType).where(AttributeType.name == data.name)
56
+ attribute_type = session.execute(statement).unique().one_or_none()
56
57
  if attribute_type:
57
58
  raise DJAlreadyExistsException(
58
59
  message=f"Attribute type `{data.name}` already exists!",
59
60
  )
60
- attribute_type = await AttributeType.create(session, data)
61
- return AttributeTypeBase.from_orm(attribute_type)
61
+ attribute_type = AttributeType(
62
+ namespace=data.namespace,
63
+ name=data.name,
64
+ description=data.description,
65
+ allowed_node_types=data.allowed_node_types,
66
+ uniqueness_scope=data.uniqueness_scope if data.uniqueness_scope else [],
67
+ )
68
+ session.add(attribute_type)
69
+ session.commit()
70
+ session.refresh(attribute_type)
71
+ return attribute_type
62
72
 
63
73
 
64
- async def default_attribute_types(session: AsyncSession = Depends(get_session)):
74
+ def default_attribute_types(session: Session = Depends(get_session)):
65
75
  """
66
76
  Loads all the column attribute types that are supported by the system
67
77
  by default into the database.
@@ -95,7 +105,7 @@ async def default_attribute_types(session: AsyncSession = Depends(get_session)):
95
105
  set(default_attribute_type_names.keys()),
96
106
  ),
97
107
  )
98
- attribute_types = (await session.execute(statement)).scalars().all()
108
+ attribute_types = session.execute(statement).scalars().all()
99
109
  for type_ in attribute_types:
100
110
  # if type_: # pragma: no cover
101
111
  type_.name = default_attribute_type_names[type_.name].name
@@ -113,7 +123,7 @@ async def default_attribute_types(session: AsyncSession = Depends(get_session)):
113
123
  new_types = set(default_attribute_type_names.keys()) - {
114
124
  type_.name for type_ in attribute_types if type_
115
125
  }
116
- session.add_all(
126
+ session.bulk_save_objects(
117
127
  [default_attribute_type_names[name] for name in new_types],
118
128
  )
119
- await session.commit()
129
+ session.commit()
@@ -8,8 +8,7 @@ from typing import List
8
8
 
9
9
  from fastapi import Depends, HTTPException
10
10
  from sqlalchemy import select
11
- from sqlalchemy.ext.asyncio import AsyncSession
12
- from sqlalchemy.orm import joinedload
11
+ from sqlalchemy.orm import Session
13
12
 
14
13
  from datajunction_server.api.engines import EngineInfo
15
14
  from datajunction_server.api.helpers import get_catalog_by_name
@@ -29,27 +28,22 @@ UNKNOWN_CATALOG_ID = 0
29
28
 
30
29
 
31
30
  @router.get("/catalogs/", response_model=List[CatalogInfo])
32
- async def list_catalogs(
33
- *, session: AsyncSession = Depends(get_session)
34
- ) -> List[CatalogInfo]:
31
+ def list_catalogs(*, session: Session = Depends(get_session)) -> List[CatalogInfo]:
35
32
  """
36
33
  List all available catalogs
37
34
  """
38
- statement = select(Catalog).options(joinedload(Catalog.engines))
39
35
  return [
40
36
  CatalogInfo.from_orm(catalog)
41
- for catalog in (await session.execute(statement)).unique().scalars()
37
+ for catalog in session.execute(select(Catalog)).scalars()
42
38
  ]
43
39
 
44
40
 
45
41
  @router.get("/catalogs/{name}/", response_model=CatalogInfo, name="Get a Catalog")
46
- async def get_catalog(
47
- name: str, *, session: AsyncSession = Depends(get_session)
48
- ) -> CatalogInfo:
42
+ def get_catalog(name: str, *, session: Session = Depends(get_session)) -> CatalogInfo:
49
43
  """
50
44
  Return a catalog by name
51
45
  """
52
- return await get_catalog_by_name(session, name)
46
+ return get_catalog_by_name(session, name)
53
47
 
54
48
 
55
49
  @router.post(
@@ -58,16 +52,16 @@ async def get_catalog(
58
52
  status_code=201,
59
53
  name="Add A Catalog",
60
54
  )
61
- async def add_catalog(
55
+ def add_catalog(
62
56
  data: CatalogInfo,
63
57
  *,
64
- session: AsyncSession = Depends(get_session),
58
+ session: Session = Depends(get_session),
65
59
  ) -> CatalogInfo:
66
60
  """
67
61
  Add a Catalog
68
62
  """
69
63
  try:
70
- await get_catalog_by_name(session, data.name)
64
+ get_catalog_by_name(session, data.name)
71
65
  except DJException:
72
66
  pass
73
67
  else:
@@ -89,15 +83,15 @@ async def add_catalog(
89
83
  ],
90
84
  )
91
85
  catalog.engines.extend(
92
- await list_new_engines(
86
+ list_new_engines(
93
87
  session=session,
94
88
  catalog=catalog,
95
89
  create_engines=data.engines, # type: ignore
96
90
  ),
97
91
  )
98
92
  session.add(catalog)
99
- await session.commit()
100
- await session.refresh(catalog, ["engines"])
93
+ session.commit()
94
+ session.refresh(catalog)
101
95
 
102
96
  return CatalogInfo.from_orm(catalog)
103
97
 
@@ -108,27 +102,27 @@ async def add_catalog(
108
102
  status_code=201,
109
103
  name="Add Engines to a Catalog",
110
104
  )
111
- async def add_engines_to_catalog(
105
+ def add_engines_to_catalog(
112
106
  name: str,
113
107
  data: List[EngineInfo],
114
108
  *,
115
- session: AsyncSession = Depends(get_session),
109
+ session: Session = Depends(get_session),
116
110
  ) -> CatalogInfo:
117
111
  """
118
112
  Attach one or more engines to a catalog
119
113
  """
120
- catalog = await get_catalog_by_name(session, name)
114
+ catalog = get_catalog_by_name(session, name)
121
115
  catalog.engines.extend(
122
- await list_new_engines(session=session, catalog=catalog, create_engines=data),
116
+ list_new_engines(session=session, catalog=catalog, create_engines=data),
123
117
  )
124
118
  session.add(catalog)
125
- await session.commit()
126
- await session.refresh(catalog)
119
+ session.commit()
120
+ session.refresh(catalog)
127
121
  return CatalogInfo.from_orm(catalog)
128
122
 
129
123
 
130
- async def list_new_engines(
131
- session: AsyncSession,
124
+ def list_new_engines(
125
+ session: Session,
132
126
  catalog: Catalog,
133
127
  create_engines: List[EngineInfo],
134
128
  ) -> List[Engine]:
@@ -138,7 +132,7 @@ async def list_new_engines(
138
132
  new_engines = []
139
133
  for engine_ref in create_engines:
140
134
  already_set = False
141
- engine = await get_engine(session, engine_ref.name, engine_ref.version)
135
+ engine = get_engine(session, engine_ref.name, engine_ref.version)
142
136
  for set_engine in catalog.engines:
143
137
  if engine.name == set_engine.name and engine.version == set_engine.version:
144
138
  already_set = True
@@ -147,17 +141,17 @@ async def list_new_engines(
147
141
  return new_engines
148
142
 
149
143
 
150
- async def default_catalog(session: AsyncSession = Depends(get_session)):
144
+ def default_catalog(session: Session = Depends(get_session)):
151
145
  """
152
146
  Loads a default catalog for nodes that are pure SQL and don't belong in any
153
147
  particular catalog. This typically applies to on-the-fly user-defined dimensions.
154
148
  """
155
149
  statement = select(Catalog).filter(Catalog.id == UNKNOWN_CATALOG_ID)
156
- catalogs = (await session.execute(statement)).all()
150
+ catalogs = session.execute(statement).all()
157
151
  if not catalogs:
158
152
  unknown = Catalog(
159
153
  id=UNKNOWN_CATALOG_ID,
160
154
  name="unknown",
161
155
  )
162
156
  session.add(unknown)
163
- await session.commit()
157
+ session.commit()
@@ -6,13 +6,12 @@ import json
6
6
  import logging
7
7
 
8
8
  from fastapi import Depends
9
- from sqlalchemy.ext.asyncio import AsyncSession
10
- from sqlalchemy.orm import joinedload
9
+ from sqlalchemy.orm import Session
11
10
 
12
11
  from datajunction_server.api.helpers import get_node_by_name
13
- from datajunction_server.database import Node, NodeRevision
14
12
  from datajunction_server.internal.access.authentication.http import SecureAPIRouter
15
13
  from datajunction_server.models.materialization import MaterializationJobTypeEnum
14
+ from datajunction_server.models.node import NodeOutput
16
15
  from datajunction_server.models.node_type import NodeType
17
16
  from datajunction_server.utils import get_session, get_settings
18
17
 
@@ -22,58 +21,62 @@ router = SecureAPIRouter(tags=["client"])
22
21
 
23
22
 
24
23
  @router.get("/datajunction-clients/python/new_node/{node_name}", response_model=str)
25
- async def client_code_for_creating_node(
26
- node_name: str, *, session: AsyncSession = Depends(get_session)
24
+ def client_code_for_creating_node(
25
+ node_name: str, *, session: Session = Depends(get_session)
27
26
  ) -> str:
28
27
  """
29
28
  Generate the Python client code used for creating this node
30
29
  """
31
30
  node_short_name = node_name.split(".")[-1]
32
- node = await Node.get_by_name(
33
- session,
34
- node_name,
35
- options=[
36
- joinedload(Node.current).options(
37
- *NodeRevision.default_load_options(),
38
- joinedload(NodeRevision.cube_elements),
39
- ),
40
- ],
41
- raise_if_not_exists=True,
42
- )
31
+ node = get_node_by_name(session, node_name)
32
+
43
33
  # Generic user-configurable node creation params
44
- params = {
45
- "name": node.name, # type: ignore
46
- "display_name": node.current.display_name, # type: ignore
47
- "description": node.current.description, # type: ignore
48
- "mode": node.current.mode, # type: ignore
49
- "query": node.current.query, # type: ignore
50
- "schema_": node.current.schema_, # type: ignore
51
- "table": node.current.table, # type: ignore
52
- "primary_key": [col.name for col in node.current.primary_key()], # type: ignore
53
- }
34
+ params = NodeOutput.from_orm(node).dict(
35
+ exclude={
36
+ "id",
37
+ "version",
38
+ "type",
39
+ "catalog_id",
40
+ "lineage",
41
+ "status",
42
+ "metric_metadata_id",
43
+ "mode",
44
+ "node_id",
45
+ "updated_at",
46
+ "materializations",
47
+ "columns",
48
+ "catalog",
49
+ "parents",
50
+ "metric_metadata",
51
+ "query" if node.type == NodeType.CUBE else "",
52
+ "dimension_links",
53
+ "created_at",
54
+ "current_version",
55
+ "missing_table",
56
+ "namespace",
57
+ "tags",
58
+ },
59
+ exclude_none=True,
60
+ )
61
+
62
+ params["primary_key"] = [col.name for col in node.current.primary_key()]
54
63
 
55
- for key in params: # pylint: disable=consider-using-dict-items
56
- if (
57
- not isinstance(params[key], list)
58
- and key != "query"
59
- and key != "lineage"
60
- and params[key]
61
- ):
64
+ for key in params:
65
+ if not isinstance(params[key], list) and key != "query" and key != "lineage":
62
66
  params[key] = f'"{params[key]}"'
63
- if key == "query" and params[key]:
67
+ if key == "query":
64
68
  params[key] = f'"""{params[key]}"""'
65
69
 
66
70
  # Cube-specific params
67
71
  cube_params = []
68
- if node.type == NodeType.CUBE: # type: ignore
72
+ if node.type == NodeType.CUBE:
69
73
  ordering = {
70
- col.name: col.order or idx
71
- for idx, col in enumerate(node.current.columns) # type: ignore
74
+ col.name: col.order or idx for idx, col in enumerate(node.current.columns)
72
75
  }
73
76
  metrics_list = sorted(
74
77
  [
75
78
  elem.node_revisions[-1].name
76
- for elem in node.current.cube_elements # type: ignore
79
+ for elem in node.current.cube_elements
77
80
  if elem.node_revisions[-1].type == NodeType.METRIC
78
81
  ],
79
82
  key=lambda x: ordering[x],
@@ -81,7 +84,7 @@ async def client_code_for_creating_node(
81
84
  dimensions_list = sorted(
82
85
  [
83
86
  elem.node_revisions[-1].name + "." + elem.name
84
- for elem in node.current.cube_elements # type: ignore
87
+ for elem in node.current.cube_elements
85
88
  if elem.node_revisions[-1].type == NodeType.DIMENSION
86
89
  ],
87
90
  key=lambda x: ordering[x],
@@ -94,14 +97,12 @@ async def client_code_for_creating_node(
94
97
  ]
95
98
 
96
99
  formatted_params = ",\n".join(
97
- [f" {k}={params[k]}" for k in sorted(params.keys()) if params[k]]
98
- + cube_params,
100
+ [f" {k}={params[k]}" for k in sorted(params.keys())] + cube_params,
99
101
  )
100
102
 
101
- node_type = node.type # type: ignore
102
103
  client_code = f"""dj = DJBuilder(DJ_URL)
103
104
 
104
- {node_short_name} = dj.create_{node_type}(
105
+ {node_short_name} = dj.create_{node.type}(
105
106
  {formatted_params}
106
107
  )"""
107
108
  return client_code # type: ignore
@@ -111,17 +112,17 @@ async def client_code_for_creating_node(
111
112
  "/datajunction-clients/python/add_materialization/{node_name}/{materialization_name}",
112
113
  response_model=str,
113
114
  )
114
- async def client_code_for_adding_materialization(
115
+ def client_code_for_adding_materialization(
115
116
  node_name: str,
116
117
  materialization_name: str,
117
118
  *,
118
- session: AsyncSession = Depends(get_session),
119
+ session: Session = Depends(get_session),
119
120
  ) -> str:
120
121
  """
121
122
  Generate the Python client code used for adding this materialization
122
123
  """
123
124
  node_short_name = node_name.split(".")[-1]
124
- node = await get_node_by_name(session, node_name)
125
+ node = get_node_by_name(session, node_name)
125
126
  materialization = [
126
127
  materialization
127
128
  for materialization in node.current.materializations
@@ -159,18 +160,18 @@ materialization = MaterializationConfig(
159
160
  "/datajunction-clients/python/link_dimension/{node_name}/{column}/{dimension}/",
160
161
  response_model=str,
161
162
  )
162
- async def client_code_for_linking_dimension_to_node(
163
+ def client_code_for_linking_dimension_to_node(
163
164
  node_name: str,
164
165
  column: str,
165
166
  dimension: str,
166
167
  *,
167
- session: AsyncSession = Depends(get_session),
168
+ session: Session = Depends(get_session),
168
169
  ) -> str:
169
170
  """
170
171
  Generate the Python client code used for linking this node's column to a dimension
171
172
  """
172
173
  node_short_name = node_name.split(".")[-1]
173
- node = await get_node_by_name(session, node_name)
174
+ node = get_node_by_name(session, node_name)
174
175
  client_code = f"""dj = DJBuilder(DJ_URL)
175
176
  {node_short_name} = dj.{node.type}(
176
177
  "{node.name}"
@@ -6,11 +6,10 @@ import logging
6
6
  from typing import List, Optional
7
7
 
8
8
  from fastapi import Depends, Query
9
- from sqlalchemy.ext.asyncio import AsyncSession
9
+ from sqlalchemy.orm import Session
10
10
 
11
- from datajunction_server.api.helpers import get_catalog_by_name
11
+ from datajunction_server.api.helpers import get_catalog_by_name, get_node_by_name
12
12
  from datajunction_server.construction.dimensions import build_dimensions_from_cube_query
13
- from datajunction_server.database.node import Node
14
13
  from datajunction_server.internal.access.authentication.http import SecureAPIRouter
15
14
  from datajunction_server.internal.access.authorization import validate_access
16
15
  from datajunction_server.internal.nodes import get_cube_revision_metadata
@@ -21,6 +20,7 @@ from datajunction_server.models.cube import (
21
20
  DimensionValues,
22
21
  )
23
22
  from datajunction_server.models.metric import TranslatedSQL
23
+ from datajunction_server.models.node_type import NodeType
24
24
  from datajunction_server.models.query import QueryCreate
25
25
  from datajunction_server.naming import from_amenable_name
26
26
  from datajunction_server.service_clients import QueryServiceClient
@@ -36,17 +36,17 @@ router = SecureAPIRouter(tags=["cubes"])
36
36
 
37
37
 
38
38
  @router.get("/cubes/{name}/", name="Get a Cube")
39
- async def get_cube(
40
- name: str, *, session: AsyncSession = Depends(get_session)
39
+ def get_cube(
40
+ name: str, *, session: Session = Depends(get_session)
41
41
  ) -> CubeRevisionMetadata:
42
42
  """
43
43
  Get information on a cube
44
44
  """
45
- return await get_cube_revision_metadata(session, name)
45
+ return get_cube_revision_metadata(session, name)
46
46
 
47
47
 
48
48
  @router.get("/cubes/{name}/dimensions/sql", name="Dimensions SQL for Cube")
49
- async def get_cube_dimension_sql(
49
+ def get_cube_dimension_sql(
50
50
  name: str,
51
51
  *,
52
52
  dimensions: List[str] = Query([], description="Dimensions to get values for"),
@@ -59,7 +59,7 @@ async def get_cube_dimension_sql(
59
59
  description="Number of rows to limit the data retrieved to",
60
60
  ),
61
61
  include_counts: bool = False,
62
- session: AsyncSession = Depends(get_session),
62
+ session: Session = Depends(get_session),
63
63
  validate_access: access.ValidateAccessFn = Depends( # pylint: disable=redefined-outer-name
64
64
  validate_access,
65
65
  ),
@@ -67,11 +67,11 @@ async def get_cube_dimension_sql(
67
67
  """
68
68
  Generates SQL to retrieve all unique values of a dimension for the cube
69
69
  """
70
- node = await Node.get_cube_by_name(session, name)
71
- node_revision = node.current # type: ignore
72
- return await build_dimensions_from_cube_query(
70
+ node = get_node_by_name(session=session, name=name, node_type=NodeType.CUBE)
71
+ cube = node.current
72
+ return build_dimensions_from_cube_query(
73
73
  session,
74
- node_revision,
74
+ cube,
75
75
  dimensions,
76
76
  filters,
77
77
  limit,
@@ -84,7 +84,7 @@ async def get_cube_dimension_sql(
84
84
  "/cubes/{name}/dimensions/data",
85
85
  name="Dimensions Values for Cube",
86
86
  )
87
- async def get_cube_dimension_values( # pylint: disable=too-many-locals
87
+ def get_cube_dimension_values( # pylint: disable=too-many-locals
88
88
  name: str,
89
89
  *,
90
90
  dimensions: List[str] = Query([], description="Dimensions to get values for"),
@@ -98,7 +98,7 @@ async def get_cube_dimension_values( # pylint: disable=too-many-locals
98
98
  ),
99
99
  include_counts: bool = False,
100
100
  async_: bool = False,
101
- session: AsyncSession = Depends(get_session),
101
+ session: Session = Depends(get_session),
102
102
  query_service_client: QueryServiceClient = Depends(get_query_service_client),
103
103
  validate_access: access.ValidateAccessFn = Depends( # pylint: disable=redefined-outer-name
104
104
  validate_access,
@@ -107,9 +107,9 @@ async def get_cube_dimension_values( # pylint: disable=too-many-locals
107
107
  """
108
108
  All unique values of a dimension from the cube
109
109
  """
110
- node = await Node.get_cube_by_name(session, name)
111
- cube = node.current # type: ignore
112
- translated_sql = await build_dimensions_from_cube_query(
110
+ node = get_node_by_name(session=session, name=name, node_type=NodeType.CUBE)
111
+ cube = node.current
112
+ translated_sql = build_dimensions_from_cube_query(
113
113
  session,
114
114
  cube,
115
115
  dimensions,
@@ -119,7 +119,7 @@ async def get_cube_dimension_values( # pylint: disable=too-many-locals
119
119
  validate_access,
120
120
  )
121
121
  if cube.availability:
122
- catalog = await get_catalog_by_name( # pragma: no cover
122
+ catalog = get_catalog_by_name( # pragma: no cover
123
123
  session,
124
124
  cube.availability.catalog, # type: ignore
125
125
  )