datajunction-server 0.0.1a37__tar.gz → 0.0.1a37.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/PKG-INFO +1 -1
  2. datajunction_server-0.0.1a37.dev0/curl-format.txt +9 -0
  3. datajunction_server-0.0.1a37.dev0/datajunction_server/__about__.py +4 -0
  4. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/health.py +2 -2
  5. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/helpers.py +5 -3
  6. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/main.py +1 -0
  7. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/metrics.py +17 -21
  8. datajunction_server-0.0.1a37.dev0/datajunction_server/enum.py +21 -0
  9. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/errors.py +3 -2
  10. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/attribute.py +2 -2
  11. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/column.py +2 -2
  12. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/engine.py +2 -2
  13. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/history.py +3 -3
  14. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/materialization.py +2 -1
  15. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/measure.py +2 -2
  16. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/node.py +5 -12
  17. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/node_type.py +2 -2
  18. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/partition.py +3 -3
  19. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/query.py +2 -2
  20. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/dag.py +16 -8
  21. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/types.py +3 -2
  22. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/typing.py +4 -3
  23. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/utils.py +3 -2
  24. datajunction_server-0.0.1a37.dev0/dj.copy.db +0 -0
  25. datajunction_server-0.0.1a37.dev0/dj.internal.db +0 -0
  26. datajunction_server-0.0.1a37.dev0/dj.test.db +0 -0
  27. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/pyproject.toml +3 -0
  28. datajunction_server-0.0.1a37.dev0/tester.py +24 -0
  29. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/metrics_test.py +2 -8
  30. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/nodes_test.py +1 -1
  31. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/utils_test.py +6 -6
  32. datajunction_server-0.0.1a37.dev0/tests/default.duckdb +0 -0
  33. datajunction_server-0.0.1a37/datajunction_server/__about__.py +0 -4
  34. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.coveragerc +0 -0
  35. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.env +0 -0
  36. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.env.integration +0 -0
  37. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.flake8 +0 -0
  38. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.gitignore +0 -0
  39. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.isort.cfg +0 -0
  40. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.pre-commit-config.yaml +0 -0
  41. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.pylintrc +0 -0
  42. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/Dockerfile +0 -0
  43. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/Makefile +0 -0
  44. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/README.md +0 -0
  45. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/README +0 -0
  46. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/env.py +0 -0
  47. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/script.py.mako +0 -0
  48. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_07_07_2006-4e1ff36c27c6_initial_migration.py +0 -0
  49. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_07_11_2337-bd313a10e2a8_add_bound_dimensions_attribute_to_.py +0 -0
  50. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_07_14_0428-5c3d0c958c3c_add_node_to_history.py +0 -0
  51. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_07_30_1608-4147da2ac841_add_deactivated_to_materialization.py +0 -0
  52. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_08_02_0055-ccc77abcf899_add_deactivated_to_namespace.py +0 -0
  53. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_08_08_1856-cde75f986a62_user_model.py +0 -0
  54. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_08_18_2348-fe8d3dbe512a_store_column_level_lineage.py +0 -0
  55. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_09_18_1346-f2e9ef937daf_add_measures.py +0 -0
  56. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_09_20_2049-879128f3e778_add_display_name_to_column.py +0 -0
  57. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_09_21_0033-b75e5163b09d_add_description_and_display_name_to_.py +0 -0
  58. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_10_02_1642-d8fa1e6371a7_add_url_to_availability_state.py +0 -0
  59. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_10_08_1438-58e246fba34b_add_partitions_and_backfills.py +0 -0
  60. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_10_24_0354-87cf9c00ac00_add_metric_metadata.py +0 -0
  61. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_11_21_1611-d1a8716cf2d2_add_materialization_strategy_and_job_.py +0 -0
  62. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic.ini +0 -0
  63. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/__init__.py +0 -0
  64. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/__init__.py +0 -0
  65. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/__init__.py +0 -0
  66. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/basic.py +0 -0
  67. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/github.py +0 -0
  68. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/google.py +0 -0
  69. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/whoami.py +0 -0
  70. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/attributes.py +0 -0
  71. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/catalogs.py +0 -0
  72. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/client.py +0 -0
  73. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/cubes.py +0 -0
  74. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/data.py +0 -0
  75. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/dimensions.py +0 -0
  76. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/djsql.py +0 -0
  77. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/engines.py +0 -0
  78. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/__init__.py +0 -0
  79. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/catalogs.py +0 -0
  80. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/engines.py +0 -0
  81. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/main.py +0 -0
  82. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/history.py +0 -0
  83. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/logging.conf +0 -0
  84. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/materializations.py +0 -0
  85. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/measures.py +0 -0
  86. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/namespaces.py +0 -0
  87. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/nodes.py +0 -0
  88. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/sql.py +0 -0
  89. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/tags.py +0 -0
  90. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/config.py +0 -0
  91. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/constants.py +0 -0
  92. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/__init__.py +0 -0
  93. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/build.py +0 -0
  94. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/dimensions.py +0 -0
  95. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/dj_query.py +0 -0
  96. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/exceptions.py +0 -0
  97. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/utils.py +0 -0
  98. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/__init__.py +0 -0
  99. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/__init__.py +0 -0
  100. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/__init__.py +0 -0
  101. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/basic.py +0 -0
  102. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/github.py +0 -0
  103. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/google.py +0 -0
  104. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/http.py +0 -0
  105. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/tokens.py +0 -0
  106. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authorization.py +0 -0
  107. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/engines.py +0 -0
  108. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/materializations.py +0 -0
  109. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/namespaces.py +0 -0
  110. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/nodes.py +0 -0
  111. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/__init__.py +0 -0
  112. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/jobs/__init__.py +0 -0
  113. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/jobs/cube_materialization.py +0 -0
  114. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/jobs/job_types.py +0 -0
  115. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/jobs/materialization_job.py +0 -0
  116. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/__init__.py +0 -0
  117. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/access.py +0 -0
  118. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/base.py +0 -0
  119. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/catalog.py +0 -0
  120. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/cube.py +0 -0
  121. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/database.py +0 -0
  122. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/metric.py +0 -0
  123. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/table.py +0 -0
  124. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/tag.py +0 -0
  125. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/user.py +0 -0
  126. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/service_clients.py +0 -0
  127. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/__init__.py +0 -0
  128. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/functions.py +0 -0
  129. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/__init__.py +0 -0
  130. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/ast.py +0 -0
  131. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/__init__.py +0 -0
  132. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/antlr4.py +0 -0
  133. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/exceptions.py +0 -0
  134. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseLexer.g4 +0 -0
  135. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseParser.g4 +0 -0
  136. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/__init__.py +0 -0
  137. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.interp +0 -0
  138. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.py +0 -0
  139. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.tokens +0 -0
  140. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.interp +0 -0
  141. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.py +0 -0
  142. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.tokens +0 -0
  143. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserListener.py +0 -0
  144. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserVisitor.py +0 -0
  145. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/superset.py +0 -0
  146. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/transpilation.py +0 -0
  147. {datajunction_server-0.0.1a37/tests → datajunction_server-0.0.1a37.dev0}/default.duckdb +0 -0
  148. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/dj.demo.db +0 -0
  149. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/pdm.lock +0 -0
  150. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/requirements/docker.txt +0 -0
  151. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/requirements/test.txt +0 -0
  152. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/scripts/docs-snippets.js +0 -0
  153. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/scripts/docs-snippets.sh +0 -0
  154. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/scripts/generate-openapi.py +0 -0
  155. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/__init__.py +0 -0
  156. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/__init__.py +0 -0
  157. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/attributes_test.py +0 -0
  158. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/catalog_test.py +0 -0
  159. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/client_test.py +0 -0
  160. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/cubes_test.py +0 -0
  161. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/data_test.py +0 -0
  162. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/dimensions_test.py +0 -0
  163. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/djql_test.py +0 -0
  164. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/engine_test.py +0 -0
  165. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/graphql/__init__.py +0 -0
  166. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/graphql/catalog_test.py +0 -0
  167. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/graphql/engine_test.py +0 -0
  168. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/health_test.py +0 -0
  169. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/helpers_test.py +0 -0
  170. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/history_test.py +0 -0
  171. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/materializations_test.py +0 -0
  172. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/measures_test.py +0 -0
  173. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/namespaces_test.py +0 -0
  174. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/node_update_test.py +0 -0
  175. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/routers_test.py +0 -0
  176. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/sql_test.py +0 -0
  177. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/tags_test.py +0 -0
  178. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/conftest.py +0 -0
  179. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/__init__.py +0 -0
  180. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/build_test.py +0 -0
  181. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/compile_test.py +0 -0
  182. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/exceptions_test.py +0 -0
  183. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/fixtures.py +0 -0
  184. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/inference_test.py +0 -0
  185. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/duckdb.sql +0 -0
  186. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/errors_test.py +0 -0
  187. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/examples.py +0 -0
  188. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/fixes_test.py +0 -0
  189. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/integration/__init__.py +0 -0
  190. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/integration/basic_test.py +0 -0
  191. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/basic_test.py +0 -0
  192. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/github_test.py +0 -0
  193. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/http_test.py +0 -0
  194. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/token_test.py +0 -0
  195. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/whoami_test.py +0 -0
  196. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/migrations_test.py +0 -0
  197. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/__init__.py +0 -0
  198. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/catalog_test.py +0 -0
  199. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/hash_test.py +0 -0
  200. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/measure_test.py +0 -0
  201. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/node_test.py +0 -0
  202. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/query_test.py +0 -0
  203. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/service_clients_test.py +0 -0
  204. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/__init__.py +0 -0
  205. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/dag_test.py +0 -0
  206. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/functions_test.py +0 -0
  207. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/__init__.py +0 -0
  208. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/backends/__init__.py +0 -0
  209. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/backends/antlr4_test.py +0 -0
  210. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/backends/types_test.py +0 -0
  211. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/__init__.py +0 -0
  212. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query1.sql +0 -0
  213. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query10.sql +0 -0
  214. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query11.sql +0 -0
  215. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query12.sql +0 -0
  216. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query13.sql +0 -0
  217. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query14.sql +0 -0
  218. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query15.sql +0 -0
  219. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query16.sql +0 -0
  220. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query17.sql +0 -0
  221. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query18.sql +0 -0
  222. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query19.sql +0 -0
  223. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query2.sql +0 -0
  224. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query20.sql +0 -0
  225. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query21.sql +0 -0
  226. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query22.sql +0 -0
  227. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query23.sql +0 -0
  228. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query24.sql +0 -0
  229. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query25.sql +0 -0
  230. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query26.sql +0 -0
  231. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query27.sql +0 -0
  232. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query28.sql +0 -0
  233. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query29.sql +0 -0
  234. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query3.sql +0 -0
  235. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query30.sql +0 -0
  236. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query31.sql +0 -0
  237. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query32.sql +0 -0
  238. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query33.sql +0 -0
  239. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query34.sql +0 -0
  240. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query35.sql +0 -0
  241. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query36.sql +0 -0
  242. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query37.sql +0 -0
  243. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query38.sql +0 -0
  244. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query39.sql +0 -0
  245. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query4.sql +0 -0
  246. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query40.sql +0 -0
  247. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query41.sql +0 -0
  248. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query42.sql +0 -0
  249. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query43.sql +0 -0
  250. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query44.sql +0 -0
  251. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query45.sql +0 -0
  252. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query46.sql +0 -0
  253. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query47.sql +0 -0
  254. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query48.sql +0 -0
  255. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query49.sql +0 -0
  256. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query5.sql +0 -0
  257. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query50.sql +0 -0
  258. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query51.sql +0 -0
  259. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query52.sql +0 -0
  260. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query53.sql +0 -0
  261. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query54.sql +0 -0
  262. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query55.sql +0 -0
  263. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query56.sql +0 -0
  264. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query57.sql +0 -0
  265. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query58.sql +0 -0
  266. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query59.sql +0 -0
  267. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query6.sql +0 -0
  268. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query60.sql +0 -0
  269. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query61.sql +0 -0
  270. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query62.sql +0 -0
  271. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query63.sql +0 -0
  272. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query64.sql +0 -0
  273. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query65.sql +0 -0
  274. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query66.sql +0 -0
  275. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query67.sql +0 -0
  276. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query68.sql +0 -0
  277. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query69.sql +0 -0
  278. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query7.sql +0 -0
  279. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query70.sql +0 -0
  280. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query71.sql +0 -0
  281. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query72.sql +0 -0
  282. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query73.sql +0 -0
  283. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query74.sql +0 -0
  284. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query75.sql +0 -0
  285. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query76.sql +0 -0
  286. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query77.sql +0 -0
  287. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query78.sql +0 -0
  288. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query79.sql +0 -0
  289. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query8.sql +0 -0
  290. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query80.sql +0 -0
  291. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query81.sql +0 -0
  292. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query82.sql +0 -0
  293. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query83.sql +0 -0
  294. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query84.sql +0 -0
  295. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query85.sql +0 -0
  296. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query86.sql +0 -0
  297. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query87.sql +0 -0
  298. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query88.sql +0 -0
  299. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query89.sql +0 -0
  300. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query9.sql +0 -0
  301. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query90.sql +0 -0
  302. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query91.sql +0 -0
  303. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query92.sql +0 -0
  304. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query93.sql +0 -0
  305. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query94.sql +0 -0
  306. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query95.sql +0 -0
  307. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query96.sql +0 -0
  308. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query97.sql +0 -0
  309. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query98.sql +0 -0
  310. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query99.sql +0 -0
  311. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query1.sql +0 -0
  312. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query10.sql +0 -0
  313. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query11.sql +0 -0
  314. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query12.sql +0 -0
  315. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query13.sql +0 -0
  316. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query14.sql +0 -0
  317. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query15.sql +0 -0
  318. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query16.sql +0 -0
  319. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query17.sql +0 -0
  320. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query18.sql +0 -0
  321. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query19.sql +0 -0
  322. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query2.sql +0 -0
  323. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query20.sql +0 -0
  324. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query21.sql +0 -0
  325. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query22.sql +0 -0
  326. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query23.sql +0 -0
  327. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query24.sql +0 -0
  328. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query25.sql +0 -0
  329. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query26.sql +0 -0
  330. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query27.sql +0 -0
  331. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query28.sql +0 -0
  332. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query29.sql +0 -0
  333. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query3.sql +0 -0
  334. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query30.sql +0 -0
  335. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query31.sql +0 -0
  336. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query32.sql +0 -0
  337. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query33.sql +0 -0
  338. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query34.sql +0 -0
  339. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query35.sql +0 -0
  340. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query36.sql +0 -0
  341. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query37.sql +0 -0
  342. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query38.sql +0 -0
  343. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query39.sql +0 -0
  344. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query4.sql +0 -0
  345. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query40.sql +0 -0
  346. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query41.sql +0 -0
  347. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query42.sql +0 -0
  348. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query43.sql +0 -0
  349. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query44.sql +0 -0
  350. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query45.sql +0 -0
  351. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query46.sql +0 -0
  352. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query47.sql +0 -0
  353. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query48.sql +0 -0
  354. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query49.sql +0 -0
  355. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query5.sql +0 -0
  356. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query50.sql +0 -0
  357. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query51.sql +0 -0
  358. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query52.sql +0 -0
  359. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query53.sql +0 -0
  360. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query54.sql +0 -0
  361. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query55.sql +0 -0
  362. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query56.sql +0 -0
  363. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query57.sql +0 -0
  364. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query58.sql +0 -0
  365. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query59.sql +0 -0
  366. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query6.sql +0 -0
  367. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query60.sql +0 -0
  368. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query61.sql +0 -0
  369. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query62.sql +0 -0
  370. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query63.sql +0 -0
  371. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query64.sql +0 -0
  372. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query65.sql +0 -0
  373. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query66.sql +0 -0
  374. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query67.sql +0 -0
  375. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query68.sql +0 -0
  376. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query69.sql +0 -0
  377. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query7.sql +0 -0
  378. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query70.sql +0 -0
  379. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query71.sql +0 -0
  380. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query72.sql +0 -0
  381. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query73.sql +0 -0
  382. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query74.sql +0 -0
  383. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query75.sql +0 -0
  384. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query76.sql +0 -0
  385. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query77.sql +0 -0
  386. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query78.sql +0 -0
  387. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query79.sql +0 -0
  388. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query8.sql +0 -0
  389. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query80.sql +0 -0
  390. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query81.sql +0 -0
  391. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query82.sql +0 -0
  392. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query83.sql +0 -0
  393. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query84.sql +0 -0
  394. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query85.sql +0 -0
  395. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query86.sql +0 -0
  396. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query87.sql +0 -0
  397. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query88.sql +0 -0
  398. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query89.sql +0 -0
  399. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query9.sql +0 -0
  400. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query90.sql +0 -0
  401. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query91.sql +0 -0
  402. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query92.sql +0 -0
  403. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query93.sql +0 -0
  404. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query94.sql +0 -0
  405. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query95.sql +0 -0
  406. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query96.sql +0 -0
  407. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query97.sql +0 -0
  408. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query98.sql +0 -0
  409. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query99.sql +0 -0
  410. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/test_tpcds.py +0 -0
  411. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/test_ast.py +0 -0
  412. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/utils.py +0 -0
  413. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/superset_test.py +0 -0
  414. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/transpilation_test.py +0 -0
  415. {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/utils_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datajunction-server
3
- Version: 0.0.1a37
3
+ Version: 0.0.1a37.dev0
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>
@@ -0,0 +1,9 @@
1
+ time_namelookup: %{time_namelookup}s\n
2
+ time_connect: %{time_connect}s\n
3
+ time_appconnect: %{time_appconnect}s\n
4
+ time_pretransfer: %{time_pretransfer}s\n
5
+ time_redirect: %{time_redirect}s\n
6
+ time_starttransfer: %{time_starttransfer}s\n
7
+ ----------\n
8
+ time_total: %{time_total}s\n
9
+
@@ -0,0 +1,4 @@
1
+ """
2
+ Version for Hatch
3
+ """
4
+ __version__ = "0.0.1a37.dev0"
@@ -2,13 +2,13 @@
2
2
  Application healthchecks.
3
3
  """
4
4
 
5
- import enum
6
5
  from typing import List
7
6
 
8
7
  from fastapi import APIRouter, Depends
9
8
  from sqlalchemy import select
10
9
  from sqlmodel import Session, SQLModel
11
10
 
11
+ from datajunction_server.enum import StrEnum
12
12
  from datajunction_server.utils import get_session, get_settings
13
13
 
14
14
  settings = get_settings()
@@ -16,7 +16,7 @@ settings = get_settings()
16
16
  router = APIRouter(tags=["health"])
17
17
 
18
18
 
19
- class HealthcheckStatus(str, enum.Enum):
19
+ class HealthcheckStatus(StrEnum):
20
20
  """
21
21
  Possible health statuses.
22
22
  """
@@ -953,9 +953,11 @@ async def query_event_stream( # pylint: disable=too-many-arguments
953
953
  break
954
954
 
955
955
  # Check the current state of the query
956
- query_next = query_service_client.get_query(query_id=query_id) # type: ignore
957
- if query_next.state in END_JOB_STATES:
958
- _logger.info(
956
+ query_next = query_service_client.get_query( # type: ignore # pragma: no cover
957
+ query_id=query_id,
958
+ )
959
+ if query_next.state in END_JOB_STATES: # pragma: no cover
960
+ _logger.info( # pragma: no cover
959
961
  "query end state detected (%s), sending final event to the client",
960
962
  query_next.state,
961
963
  )
@@ -79,6 +79,7 @@ app = FastAPI(
79
79
  },
80
80
  dependencies=dependencies,
81
81
  )
82
+
82
83
  app.add_middleware(
83
84
  CORSMiddleware,
84
85
  allow_origins=settings.cors_origin_whitelist,
@@ -6,7 +6,6 @@ from http import HTTPStatus
6
6
  from typing import List, Optional
7
7
 
8
8
  from fastapi import Depends, HTTPException, Query
9
- from sqlalchemy.exc import NoResultFound
10
9
  from sqlalchemy.sql.operators import is_
11
10
  from sqlmodel import Session, select
12
11
 
@@ -103,31 +102,28 @@ async def get_common_dimensions(
103
102
  """
104
103
  Return common dimensions for a set of metrics.
105
104
  """
106
- metric_nodes = []
107
105
  errors = []
108
- for node_name in metric:
109
- statement = (
110
- select(Node)
111
- .where(Node.name == node_name)
112
- .where(is_(Node.deactivated_at, None))
113
- )
114
- try:
115
- node = session.exec(statement).one()
116
- if node.type != NodeType.METRIC:
117
- errors.append(
118
- DJError(
119
- message=f"Not a metric node: {node_name}",
120
- code=ErrorCode.NODE_TYPE_ERROR,
121
- ),
122
- )
123
- metric_nodes.append(node)
124
- except NoResultFound:
106
+ statement = (
107
+ select(Node)
108
+ .where(Node.name.in_(metric)) # type: ignore # pylint: disable=no-member
109
+ .where(is_(Node.deactivated_at, None))
110
+ )
111
+ metric_nodes = session.exec(statement).all()
112
+ for node in metric_nodes:
113
+ if node.type != NodeType.METRIC:
125
114
  errors.append(
126
115
  DJError(
127
- message=f"Metric node not found: {node_name}",
128
- code=ErrorCode.UNKNOWN_NODE,
116
+ message=f"Not a metric node: {node.name}",
117
+ code=ErrorCode.NODE_TYPE_ERROR,
129
118
  ),
130
119
  )
120
+ if not metric_nodes:
121
+ errors.append(
122
+ DJError(
123
+ message=f"Metric nodes not found: {','.join(metric)}",
124
+ code=ErrorCode.UNKNOWN_NODE,
125
+ ),
126
+ )
131
127
 
132
128
  if errors:
133
129
  raise DJException(errors=errors)
@@ -0,0 +1,21 @@
1
+ """
2
+ Backwards-compatible StrEnum for both Python >= and < 3.11
3
+ """
4
+ import enum
5
+ import sys
6
+
7
+ if sys.version_info >= (3, 11):
8
+ from enum import ( # noqa # pylint: disable=unused-import # pragma: no cover
9
+ IntEnum,
10
+ StrEnum,
11
+ )
12
+ else:
13
+
14
+ class StrEnum(str, enum.Enum): # pragma: no cover
15
+ """Backwards compatible StrEnum for Python < 3.11""" # pragma: no cover
16
+
17
+ def __str__(self):
18
+ return str(self.value)
19
+
20
+ class IntEnum(int, enum.Enum): # pragma: no cover
21
+ """Backwards compatible IntEnum for Python < 3.11""" # pragma: no cover
@@ -2,13 +2,14 @@
2
2
  Errors and warnings.
3
3
  """
4
4
 
5
- from enum import Enum
6
5
  from typing import Any, Dict, List, Literal, Optional, TypedDict
7
6
 
8
7
  from sqlmodel import SQLModel
9
8
 
9
+ from datajunction_server.enum import IntEnum
10
10
 
11
- class ErrorCode(int, Enum):
11
+
12
+ class ErrorCode(IntEnum):
12
13
  """
13
14
  Error codes.
14
15
  """
@@ -1,13 +1,13 @@
1
1
  """
2
2
  Models for attributes.
3
3
  """
4
- import enum
5
4
  from typing import TYPE_CHECKING, List, Optional
6
5
 
7
6
  from sqlalchemy import JSON, String, UniqueConstraint
8
7
  from sqlalchemy.sql.schema import Column as SqlaColumn
9
8
  from sqlmodel import Field, Relationship
10
9
 
10
+ from datajunction_server.enum import StrEnum
11
11
  from datajunction_server.models.base import BaseSQLModel
12
12
  from datajunction_server.models.node_type import NodeType
13
13
 
@@ -36,7 +36,7 @@ class MutableAttributeTypeFields(AttributeTypeIdentifier):
36
36
  allowed_node_types: List[NodeType] = Field(sa_column=SqlaColumn(JSON))
37
37
 
38
38
 
39
- class UniquenessScope(str, enum.Enum):
39
+ class UniquenessScope(StrEnum):
40
40
  """
41
41
  The scope at which this attribute needs to be unique.
42
42
  """
@@ -1,7 +1,6 @@
1
1
  """
2
2
  Models for columns.
3
3
  """
4
- import enum
5
4
  from typing import TYPE_CHECKING, List, Optional, Tuple, TypedDict
6
5
 
7
6
  from pydantic import root_validator
@@ -10,6 +9,7 @@ from sqlalchemy.sql.schema import Column as SqlaColumn
10
9
  from sqlalchemy.types import String, Text
11
10
  from sqlmodel import Field, Relationship
12
11
 
12
+ from datajunction_server.enum import StrEnum
13
13
  from datajunction_server.models.base import (
14
14
  BaseSQLModel,
15
15
  NodeColumns,
@@ -191,7 +191,7 @@ class ColumnAttributeInput(BaseSQLModel):
191
191
  column_name: str
192
192
 
193
193
 
194
- class SemanticType(str, enum.Enum):
194
+ class SemanticType(StrEnum):
195
195
  """
196
196
  Semantic type of a column
197
197
  """
@@ -1,17 +1,17 @@
1
1
  """
2
2
  Models for columns.
3
3
  """
4
- import enum
5
4
  from typing import Optional
6
5
 
7
6
  from sqlalchemy.sql.schema import Column as SqlaColumn
8
7
  from sqlalchemy.types import Enum
9
8
  from sqlmodel import Field, SQLModel
10
9
 
10
+ from datajunction_server.enum import StrEnum
11
11
  from datajunction_server.models.base import BaseSQLModel
12
12
 
13
13
 
14
- class Dialect(str, enum.Enum):
14
+ class Dialect(StrEnum):
15
15
  """
16
16
  SQL dialect
17
17
  """
@@ -2,7 +2,6 @@
2
2
  Model for history.
3
3
  """
4
4
  from datetime import datetime, timezone
5
- from enum import Enum
6
5
  from functools import partial
7
6
  from typing import Any, Dict, Optional
8
7
 
@@ -10,12 +9,13 @@ from sqlalchemy import DateTime
10
9
  from sqlalchemy.sql.schema import Column as SqlaColumn
11
10
  from sqlmodel import JSON, Field, SQLModel
12
11
 
12
+ from datajunction_server.enum import StrEnum
13
13
  from datajunction_server.models.node import NodeRevision, NodeStatus
14
14
  from datajunction_server.models.user import User
15
15
  from datajunction_server.typing import UTCDatetime
16
16
 
17
17
 
18
- class ActivityType(str, Enum):
18
+ class ActivityType(StrEnum):
19
19
  """
20
20
  An activity type
21
21
  """
@@ -30,7 +30,7 @@ class ActivityType(str, Enum):
30
30
  STATUS_CHANGE = "status_change"
31
31
 
32
32
 
33
- class EntityType(str, Enum):
33
+ class EntityType(StrEnum):
34
34
  """
35
35
  An entity type for which activity can occur
36
36
  """
@@ -9,6 +9,7 @@ from sqlalchemy import DateTime, String
9
9
  from sqlalchemy.types import Enum
10
10
  from sqlmodel import Field, Relationship, SQLModel, UniqueConstraint
11
11
 
12
+ from datajunction_server.enum import StrEnum
12
13
  from datajunction_server.errors import DJInvalidInputException
13
14
  from datajunction_server.models.base import BaseSQLModel
14
15
  from datajunction_server.models.node_type import NodeType
@@ -44,7 +45,7 @@ DRUID_AGG_MAPPING = {
44
45
  }
45
46
 
46
47
 
47
- class MaterializationStrategy(str, enum.Enum):
48
+ class MaterializationStrategy(StrEnum):
48
49
  """
49
50
  Materialization strategies
50
51
  """
@@ -1,7 +1,6 @@
1
1
  """
2
2
  Models for measures.
3
3
  """
4
- import enum
5
4
  from typing import TYPE_CHECKING, List, Optional
6
5
 
7
6
  from pydantic.class_validators import root_validator
@@ -9,13 +8,14 @@ from sqlalchemy.sql.schema import Column as SqlaColumn
9
8
  from sqlalchemy.types import Enum, String
10
9
  from sqlmodel import Field, Relationship
11
10
 
11
+ from datajunction_server.enum import StrEnum
12
12
  from datajunction_server.models.base import BaseSQLModel, generate_display_name
13
13
 
14
14
  if TYPE_CHECKING:
15
15
  from datajunction_server.models import Column
16
16
 
17
17
 
18
- class AggregationRule(str, enum.Enum):
18
+ class AggregationRule(StrEnum):
19
19
  """
20
20
  Type of allowed aggregation for a given measure.
21
21
  """
@@ -20,6 +20,7 @@ from sqlalchemy.types import Enum
20
20
  from sqlmodel import Field, Relationship, SQLModel
21
21
  from typing_extensions import TypedDict
22
22
 
23
+ from datajunction_server.enum import StrEnum
23
24
  from datajunction_server.errors import DJError, DJInvalidInputException
24
25
  from datajunction_server.models.base import (
25
26
  BaseSQLModel,
@@ -124,7 +125,7 @@ class BoundDimensionsRelationship(BaseSQLModel, table=True): # type: ignore
124
125
  )
125
126
 
126
127
 
127
- class NodeMode(str, enum.Enum):
128
+ class NodeMode(StrEnum):
128
129
  """
129
130
  Node mode.
130
131
 
@@ -138,7 +139,7 @@ class NodeMode(str, enum.Enum):
138
139
  DRAFT = "draft"
139
140
 
140
141
 
141
- class NodeStatus(str, enum.Enum):
142
+ class NodeStatus(StrEnum):
142
143
  """
143
144
  Node status.
144
145
 
@@ -487,7 +488,7 @@ class AvailabilityState(AvailabilityStateBase, table=True): # type: ignore
487
488
  return True
488
489
 
489
490
 
490
- class MetricDirection(str, enum.Enum):
491
+ class MetricDirection(StrEnum):
491
492
  """
492
493
  The direction of the metric that's considered good, i.e., higher is better
493
494
  """
@@ -1111,17 +1112,9 @@ class DimensionAttributeOutput(SQLModel):
1111
1112
  node_name: Optional[str]
1112
1113
  node_display_name: Optional[str]
1113
1114
  is_primary_key: bool
1114
- type: ColumnType
1115
+ type: str
1115
1116
  path: List[str]
1116
1117
 
1117
- @root_validator
1118
- def type_string(cls, values): # pylint: disable=no-self-argument
1119
- """
1120
- Extracts the type as a string
1121
- """
1122
- values["type"] = str(values.get("type"))
1123
- return values
1124
-
1125
1118
 
1126
1119
  class ColumnOutput(BaseSQLModel):
1127
1120
  """
@@ -1,8 +1,8 @@
1
1
  """Node type"""
2
- import enum
2
+ from datajunction_server.enum import StrEnum
3
3
 
4
4
 
5
- class NodeType(str, enum.Enum):
5
+ class NodeType(StrEnum):
6
6
  """
7
7
  Node type.
8
8
 
@@ -1,5 +1,4 @@
1
1
  """Partition-related models."""
2
- import enum
3
2
  from typing import TYPE_CHECKING, List, Optional
4
3
 
5
4
  from pydantic.class_validators import validator
@@ -8,6 +7,7 @@ from sqlalchemy import JSON
8
7
  from sqlalchemy import Column as SqlaColumn
9
8
  from sqlmodel import Field, Relationship, SQLModel
10
9
 
10
+ from datajunction_server.enum import StrEnum
11
11
  from datajunction_server.models.base import BaseSQLModel
12
12
  from datajunction_server.models.column import Column
13
13
  from datajunction_server.sql.parsing.types import TimestampType
@@ -16,7 +16,7 @@ if TYPE_CHECKING:
16
16
  from datajunction_server.models.materialization import Materialization
17
17
 
18
18
 
19
- class PartitionType(str, enum.Enum):
19
+ class PartitionType(StrEnum):
20
20
  """
21
21
  Partition type.
22
22
 
@@ -27,7 +27,7 @@ class PartitionType(str, enum.Enum):
27
27
  CATEGORICAL = "categorical"
28
28
 
29
29
 
30
- class Granularity(str, enum.Enum):
30
+ class Granularity(StrEnum):
31
31
  """
32
32
  Time dimension granularity.
33
33
  """
@@ -3,13 +3,13 @@ Models for queries.
3
3
  """
4
4
 
5
5
  from datetime import datetime
6
- from enum import Enum
7
6
  from typing import Any, List, Optional
8
7
 
9
8
  import msgpack
10
9
  from pydantic import AnyHttpUrl, validator
11
10
  from sqlmodel import Field, SQLModel
12
11
 
12
+ from datajunction_server.enum import IntEnum
13
13
  from datajunction_server.models.base import BaseSQLModel
14
14
  from datajunction_server.typing import QueryState, Row
15
15
 
@@ -135,7 +135,7 @@ class QueryWithResults(BaseSQLModel):
135
135
  return datetime.fromisoformat(value) if isinstance(value, str) else value
136
136
 
137
137
 
138
- class QueryExtType(int, Enum):
138
+ class QueryExtType(IntEnum):
139
139
  """
140
140
  Custom ext type for msgpack.
141
141
  """
@@ -47,7 +47,9 @@ def get_dimensions(
47
47
  continue
48
48
  processed.add(current_node)
49
49
 
50
- for column in current_node.current.columns:
50
+ current_revision = current_node.current
51
+ current_primary_key = current_node.current.primary_key()
52
+ for column in current_revision.columns:
51
53
  # Include the dimension if it's a column belonging to a dimension node
52
54
  # or if it's tagged with the dimension column attribute (but not
53
55
  # additionally linked to a dimension)
@@ -69,11 +71,11 @@ def get_dimensions(
69
71
  dimensions.append(
70
72
  DimensionAttributeOutput(
71
73
  name=f"{current_node.name}.{column.name}",
72
- node_name=current_node.current.name,
73
- node_display_name=current_node.current.display_name,
74
+ node_name=current_revision.name,
75
+ node_display_name=current_revision.display_name,
74
76
  is_primary_key=column.name
75
- in {pk.name for pk in current_node.current.primary_key()},
76
- type=column.type,
77
+ in {pk.name for pk in current_primary_key},
78
+ type=str(column.type),
77
79
  path=join_path_str,
78
80
  ),
79
81
  )
@@ -90,7 +92,7 @@ def check_convergence(path1: List[str], path2: List[str]) -> bool:
90
92
  final element, the dimension attribute.
91
93
  """
92
94
  if path1 == path2:
93
- return True
95
+ return True # pragma: no cover
94
96
  len1 = len(path1)
95
97
  len2 = len(path2)
96
98
  min_len = min(len1, len2)
@@ -131,8 +133,14 @@ def get_shared_dimensions(
131
133
  """
132
134
  Return a list of dimensions that are common between the nodes.
133
135
  """
134
- common = group_dimensions_by_name(metric_nodes[0])
135
- for node in set(metric_nodes[1:]):
136
+ common_parents = set()
137
+ for metric_node in metric_nodes:
138
+ immediate_parent = metric_node.current.parents[0]
139
+ common_parents.add(immediate_parent)
140
+
141
+ parents = list(common_parents)
142
+ common = group_dimensions_by_name(parents[0])
143
+ for node in parents[1:]:
136
144
  node_dimensions = group_dimensions_by_name(node)
137
145
 
138
146
  # Merge each set of dimensions based on the name and path
@@ -13,12 +13,13 @@ field_type=IntegerType(), is_optional=True, doc='an optional field'))
13
13
  """
14
14
 
15
15
  import re
16
- from enum import Enum
17
16
  from typing import TYPE_CHECKING, Any, ClassVar, Dict, Generator, Optional, Tuple, cast
18
17
 
19
18
  from pydantic import BaseModel, Extra
20
19
  from pydantic.class_validators import AnyCallable
21
20
 
21
+ from datajunction_server.enum import StrEnum
22
+
22
23
  if TYPE_CHECKING:
23
24
  from datajunction_server.sql.parsing import ast
24
25
 
@@ -657,7 +658,7 @@ class DateTimeBase(PrimitiveType, Singleton):
657
658
  """
658
659
 
659
660
  # pylint: disable=invalid-name
660
- class Unit(str, Enum):
661
+ class Unit(StrEnum):
661
662
  """
662
663
  Units used for date and time functions and intervals
663
664
  """
@@ -7,13 +7,14 @@ Custom types for annotations.
7
7
  from __future__ import annotations
8
8
 
9
9
  import datetime
10
- from enum import Enum
11
10
  from types import ModuleType
12
11
  from typing import Any, Iterator, List, Literal, Optional, Tuple, TypedDict, Union
13
12
 
14
13
  from pydantic.datetime_parse import parse_datetime
15
14
  from typing_extensions import Protocol
16
15
 
16
+ from datajunction_server.enum import StrEnum
17
+
17
18
 
18
19
  class SQLADialect(Protocol): # pylint: disable=too-few-public-methods
19
20
  """
@@ -48,7 +49,7 @@ Row = Tuple[Any, ...]
48
49
  Stream = Iterator[Row]
49
50
 
50
51
 
51
- class TypeEnum(str, Enum):
52
+ class TypeEnum(StrEnum):
52
53
  """
53
54
  PEP 249 basic types.
54
55
 
@@ -64,7 +65,7 @@ class TypeEnum(str, Enum):
64
65
  UNKNOWN = "UNKNOWN"
65
66
 
66
67
 
67
- class QueryState(str, Enum):
68
+ class QueryState(StrEnum):
68
69
  """
69
70
  Different states of a query.
70
71
  """
@@ -4,7 +4,6 @@ Utility functions.
4
4
  import logging
5
5
  import os
6
6
  import re
7
- from enum import Enum
8
7
  from functools import lru_cache
9
8
  from string import ascii_letters, digits
10
9
 
@@ -19,6 +18,7 @@ from starlette.requests import Request
19
18
  from yarl import URL
20
19
 
21
20
  from datajunction_server.config import Settings
21
+ from datajunction_server.enum import StrEnum
22
22
  from datajunction_server.errors import DJException
23
23
  from datajunction_server.models.user import User
24
24
  from datajunction_server.service_clients import QueryServiceClient
@@ -52,6 +52,7 @@ def get_settings() -> Settings:
52
52
  return Settings()
53
53
 
54
54
 
55
+ @lru_cache(maxsize=None)
55
56
  def get_engine() -> Engine:
56
57
  """
57
58
  Create the metadata engine.
@@ -103,7 +104,7 @@ def get_issue_url(
103
104
  return baseurl % query_arguments
104
105
 
105
106
 
106
- class VersionUpgrade(str, Enum):
107
+ class VersionUpgrade(StrEnum):
107
108
  """
108
109
  The version upgrade type
109
110
  """
@@ -2,6 +2,9 @@
2
2
  requires = ["hatchling"]
3
3
  build-backend = "hatchling.build"
4
4
 
5
+ [tool.hatch.build.targets.wheel]
6
+ packages = ["datajunction_server"]
7
+
5
8
  [tool.pdm.build]
6
9
  includes = ["dj"]
7
10
 
@@ -0,0 +1,24 @@
1
+ def profile(func):
2
+ from functools import wraps
3
+
4
+ @wraps(func)
5
+ def wrapper(*args, **kwargs):
6
+ from line_profiler import LineProfiler
7
+ prof = LineProfiler()
8
+ try:
9
+ return prof(func)(*args, **kwargs)
10
+ finally:
11
+ prof.print_stats()
12
+
13
+ return wrapper
14
+
15
+ @profile
16
+ def tester():
17
+ retval = []
18
+ for x in range(100):
19
+ retval.extend([1234, 1234])
20
+ return retval
21
+
22
+
23
+ tester()
24
+
@@ -458,21 +458,15 @@ def test_raise_common_dimensions_metric_not_found(
458
458
  )
459
459
  assert response.status_code == 500
460
460
  assert response.json() == {
461
- "message": "Metric node not found: default.foo\nMetric node not found: default.bar",
462
461
  "errors": [
463
462
  {
464
463
  "code": 203,
465
- "message": "Metric node not found: default.foo",
466
- "debug": None,
467
464
  "context": "",
468
- },
469
- {
470
- "code": 203,
471
- "message": "Metric node not found: default.bar",
472
465
  "debug": None,
473
- "context": "",
466
+ "message": "Metric nodes not found: default.foo,default.bar",
474
467
  },
475
468
  ],
469
+ "message": "Metric nodes not found: default.foo,default.bar",
476
470
  "warnings": [],
477
471
  }
478
472
 
@@ -4957,7 +4957,7 @@ def test_resolving_downstream_status(client_with_service_setup: TestClient) -> N
4957
4957
  (metric3, NodeType.METRIC),
4958
4958
  ]:
4959
4959
  response = client_with_service_setup.post(
4960
- f"/nodes/{node_type.value}/",
4960
+ f"/nodes/{node_type.value}/", # pylint: disable=no-member
4961
4961
  json=node,
4962
4962
  )
4963
4963
  assert response.status_code == 201