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.
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/PKG-INFO +1 -1
- datajunction_server-0.0.1a37.dev0/curl-format.txt +9 -0
- datajunction_server-0.0.1a37.dev0/datajunction_server/__about__.py +4 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/health.py +2 -2
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/helpers.py +5 -3
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/main.py +1 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/metrics.py +17 -21
- datajunction_server-0.0.1a37.dev0/datajunction_server/enum.py +21 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/errors.py +3 -2
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/attribute.py +2 -2
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/column.py +2 -2
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/engine.py +2 -2
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/history.py +3 -3
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/materialization.py +2 -1
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/measure.py +2 -2
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/node.py +5 -12
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/node_type.py +2 -2
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/partition.py +3 -3
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/query.py +2 -2
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/dag.py +16 -8
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/types.py +3 -2
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/typing.py +4 -3
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/utils.py +3 -2
- datajunction_server-0.0.1a37.dev0/dj.copy.db +0 -0
- datajunction_server-0.0.1a37.dev0/dj.internal.db +0 -0
- datajunction_server-0.0.1a37.dev0/dj.test.db +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/pyproject.toml +3 -0
- datajunction_server-0.0.1a37.dev0/tester.py +24 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/metrics_test.py +2 -8
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/nodes_test.py +1 -1
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/utils_test.py +6 -6
- datajunction_server-0.0.1a37.dev0/tests/default.duckdb +0 -0
- datajunction_server-0.0.1a37/datajunction_server/__about__.py +0 -4
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.coveragerc +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.env +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.env.integration +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.flake8 +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.gitignore +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.isort.cfg +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.pre-commit-config.yaml +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/.pylintrc +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/Dockerfile +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/Makefile +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/README.md +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/README +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/env.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/script.py.mako +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_07_07_2006-4e1ff36c27c6_initial_migration.py +0 -0
- {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
- {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
- {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
- {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
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_08_08_1856-cde75f986a62_user_model.py +0 -0
- {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
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_09_18_1346-f2e9ef937daf_add_measures.py +0 -0
- {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
- {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
- {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
- {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
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic/versions/2023_10_24_0354-87cf9c00ac00_add_metric_metadata.py +0 -0
- {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
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/alembic.ini +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/basic.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/github.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/google.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/access/authentication/whoami.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/attributes.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/catalogs.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/client.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/cubes.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/data.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/dimensions.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/djsql.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/engines.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/catalogs.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/engines.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/graphql/main.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/history.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/logging.conf +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/materializations.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/measures.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/namespaces.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/nodes.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/sql.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/tags.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/config.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/constants.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/build.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/dimensions.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/dj_query.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/exceptions.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/construction/utils.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/basic.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/github.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/google.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/http.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authentication/tokens.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/access/authorization.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/engines.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/materializations.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/namespaces.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/internal/nodes.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/jobs/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/jobs/cube_materialization.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/jobs/job_types.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/materialization/jobs/materialization_job.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/access.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/base.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/catalog.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/cube.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/database.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/metric.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/table.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/tag.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/models/user.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/service_clients.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/functions.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/ast.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/antlr4.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/exceptions.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseLexer.g4 +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/SqlBaseParser.g4 +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.interp +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseLexer.tokens +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.interp +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParser.tokens +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserListener.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/parsing/backends/grammar/generated/SqlBaseParserVisitor.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/superset.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/transpilation.py +0 -0
- {datajunction_server-0.0.1a37/tests → datajunction_server-0.0.1a37.dev0}/default.duckdb +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/dj.demo.db +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/pdm.lock +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/requirements/docker.txt +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/requirements/test.txt +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/scripts/docs-snippets.js +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/scripts/docs-snippets.sh +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/scripts/generate-openapi.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/attributes_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/catalog_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/client_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/cubes_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/data_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/dimensions_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/djql_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/engine_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/graphql/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/graphql/catalog_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/graphql/engine_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/health_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/helpers_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/history_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/materializations_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/measures_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/namespaces_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/node_update_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/routers_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/sql_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/tags_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/conftest.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/build_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/compile_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/exceptions_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/fixtures.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/construction/inference_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/duckdb.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/errors_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/examples.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/fixes_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/integration/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/integration/basic_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/basic_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/github_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/http_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/token_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/internal/authentication/whoami_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/migrations_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/catalog_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/hash_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/measure_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/node_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/models/query_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/service_clients_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/dag_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/functions_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/backends/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/backends/antlr4_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/backends/types_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/__init__.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query1.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query10.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query11.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query12.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query13.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query14.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query15.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query16.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query17.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query18.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query19.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query2.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query20.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query21.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query22.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query23.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query24.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query25.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query26.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query27.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query28.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query29.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query3.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query30.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query31.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query32.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query33.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query34.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query35.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query36.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query37.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query38.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query39.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query4.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query40.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query41.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query42.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query43.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query44.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query45.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query46.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query47.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query48.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query49.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query5.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query50.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query51.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query52.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query53.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query54.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query55.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query56.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query57.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query58.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query59.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query6.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query60.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query61.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query62.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query63.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query64.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query65.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query66.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query67.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query68.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query69.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query7.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query70.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query71.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query72.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query73.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query74.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query75.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query76.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query77.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query78.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query79.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query8.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query80.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query81.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query82.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query83.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query84.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query85.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query86.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query87.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query88.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query89.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query9.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query90.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query91.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query92.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query93.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query94.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query95.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query96.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query97.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query98.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/ansi/query99.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query1.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query10.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query11.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query12.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query13.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query14.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query15.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query16.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query17.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query18.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query19.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query2.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query20.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query21.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query22.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query23.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query24.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query25.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query26.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query27.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query28.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query29.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query3.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query30.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query31.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query32.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query33.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query34.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query35.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query36.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query37.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query38.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query39.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query4.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query40.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query41.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query42.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query43.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query44.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query45.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query46.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query47.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query48.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query49.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query5.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query50.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query51.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query52.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query53.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query54.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query55.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query56.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query57.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query58.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query59.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query6.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query60.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query61.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query62.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query63.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query64.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query65.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query66.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query67.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query68.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query69.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query7.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query70.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query71.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query72.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query73.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query74.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query75.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query76.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query77.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query78.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query79.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query8.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query80.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query81.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query82.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query83.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query84.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query85.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query86.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query87.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query88.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query89.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query9.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query90.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query91.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query92.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query93.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query94.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query95.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query96.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query97.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query98.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/sparksql/query99.sql +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/queries/tpcds/test_tpcds.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/parsing/test_ast.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/sql/utils.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/superset_test.py +0 -0
- {datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/transpilation_test.py +0 -0
- {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
|
+
|
{datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/api/health.py
RENAMED
|
@@ -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(
|
|
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(
|
|
957
|
-
|
|
958
|
-
|
|
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
|
)
|
|
@@ -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
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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"
|
|
128
|
-
code=ErrorCode.
|
|
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
|
{datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/errors.py
RENAMED
|
@@ -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
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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:
|
|
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,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(
|
|
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(
|
|
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(
|
|
138
|
+
class QueryExtType(IntEnum):
|
|
139
139
|
"""
|
|
140
140
|
Custom ext type for msgpack.
|
|
141
141
|
"""
|
{datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/sql/dag.py
RENAMED
|
@@ -47,7 +47,9 @@ def get_dimensions(
|
|
|
47
47
|
continue
|
|
48
48
|
processed.add(current_node)
|
|
49
49
|
|
|
50
|
-
|
|
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=
|
|
73
|
-
node_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
|
|
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
|
-
|
|
135
|
-
for
|
|
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(
|
|
661
|
+
class Unit(StrEnum):
|
|
661
662
|
"""
|
|
662
663
|
Units used for date and time functions and intervals
|
|
663
664
|
"""
|
{datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/typing.py
RENAMED
|
@@ -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(
|
|
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(
|
|
68
|
+
class QueryState(StrEnum):
|
|
68
69
|
"""
|
|
69
70
|
Different states of a query.
|
|
70
71
|
"""
|
{datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/datajunction_server/utils.py
RENAMED
|
@@ -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(
|
|
107
|
+
class VersionUpgrade(StrEnum):
|
|
107
108
|
"""
|
|
108
109
|
The version upgrade type
|
|
109
110
|
"""
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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
|
+
|
{datajunction_server-0.0.1a37 → datajunction_server-0.0.1a37.dev0}/tests/api/metrics_test.py
RENAMED
|
@@ -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
|
-
"
|
|
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
|