diff --git a/.changes/unreleased/Under the Hood-20240425-020137.yaml b/.changes/unreleased/Under the Hood-20240425-020137.yaml
new file mode 100644
index 0000000000..9d12957e5b
--- /dev/null
+++ b/.changes/unreleased/Under the Hood-20240425-020137.yaml
@@ -0,0 +1,6 @@
+kind: Under the Hood
+body: Create `metricflow-semantics` package.
+time: 2024-04-25T02:01:37.532124-07:00
+custom:
+ Author: plypaul
+ Issue: "1150"
diff --git a/.github/workflows/cd-push-to-pypi.yaml b/.github/workflows/cd-push-to-pypi.yaml
index 7468e1efe1..6b32bec67e 100644
--- a/.github/workflows/cd-push-to-pypi.yaml
+++ b/.github/workflows/cd-push-to-pypi.yaml
@@ -21,7 +21,7 @@ jobs:
with:
python-version: "${{ env.PYTHON_VERSION }}"
- - name: Hatch Publish
+ - name: Hatch Publish `metricflow`
run: hatch build && hatch publish
env:
HATCH_INDEX_USER: __token__
diff --git a/.github/workflows/ci-metricflow-unit-tests.yaml b/.github/workflows/ci-metricflow-unit-tests.yaml
index 34291067f3..9106eaf83a 100644
--- a/.github/workflows/ci-metricflow-unit-tests.yaml
+++ b/.github/workflows/ci-metricflow-unit-tests.yaml
@@ -16,7 +16,6 @@ jobs:
matrix:
python-version: ["3.8", "3.11"]
steps:
-
- name: Check-out the repo
uses: actions/checkout@v3
@@ -62,3 +61,25 @@ jobs:
- name: Check success
run: test ${{ needs.metricflow-unit-tests-duckdb.result }} = 'success' -a ${{ needs.metricflow-unit-tests-postgres.result }} = 'success'
+
+ metricflow-package-tests:
+ name: MetricFlow Packages Tests
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: [ "3.8", "3.11" ]
+ steps:
+
+ - name: Check-out the repo
+ uses: actions/checkout@v3
+
+ - name: Setup Python ${{ inputs.python-version }} Environment
+ uses: ./.github/actions/setup-python-env
+ with:
+ python-version: "${{ matrix.python-version }}"
+
+ - name: Test `metricflow-semantics` Package
+ run: bash scripts/ci_tests/metricflow_semantics_package_test.sh
+
+ - name: Test `metricflow` Package
+ run: bash scripts/ci_tests/metricflow_package_test.sh
diff --git a/Makefile b/Makefile
index aecd70458c..6d81e6bc70 100644
--- a/Makefile
+++ b/Makefile
@@ -9,7 +9,9 @@ ADDITIONAL_PYTEST_OPTIONS =
# Pytest that can populate the persistent source schema
USE_PERSISTENT_SOURCE_SCHEMA = --use-persistent-source-schema
-POPULATE_PERSISTENT_SOURCE_SCHEMA = tests/source_schema_tools.py::populate_source_schema
+TESTS_METRICFLOW = tests_metricflow
+TESTS_METRICFLOW_SEMANTICS = tests_metricflow_semantics
+POPULATE_PERSISTENT_SOURCE_SCHEMA = $(TESTS_METRICFLOW)/source_schema_tools.py::populate_source_schema
# Install Hatch package / project manager
.PHONY: install-hatch
@@ -19,16 +21,17 @@ install-hatch:
# Testing and linting
.PHONY: test
test:
- hatch -v run dev-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) tests/
+ cd metricflow-semantics && hatch -v run dev-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) $(TESTS_METRICFLOW_SEMANTICS)/
+ hatch -v run dev-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) $(TESTS_METRICFLOW)/
.PHONY: test-postgresql
test-postgresql:
- hatch -v run postgres-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) tests/
+ hatch -v run postgres-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) $(TESTS_METRICFLOW)/
# Engine-specific test environments.
.PHONY: test-bigquery
test-bigquery:
- hatch -v run bigquery-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) tests/
+ hatch -v run bigquery-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) $(TESTS_METRICFLOW)/
.PHONY: populate-persistent-source-schema-bigquery
populate-persistent-source-schema-bigquery:
@@ -36,7 +39,7 @@ populate-persistent-source-schema-bigquery:
.PHONY: test-databricks
test-databricks:
- hatch -v run databricks-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) tests/
+ hatch -v run databricks-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) $(TESTS_METRICFLOW)/
.PHONY: populate-persistent-source-schema-databricks
populate-persistent-source-schema-databricks:
@@ -44,7 +47,7 @@ populate-persistent-source-schema-databricks:
.PHONY: test-redshift
test-redshift:
- hatch -v run redshift-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) tests/
+ hatch -v run redshift-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) $(TESTS_METRICFLOW)/
.PHONY: populate-persistent-source-schema-redshift
populate-persistent-source-schema-redshift:
@@ -53,7 +56,7 @@ populate-persistent-source-schema-redshift:
.PHONY: test-snowflake
test-snowflake:
- hatch -v run snowflake-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) tests/
+ hatch -v run snowflake-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) $(TESTS_METRICFLOW)/
.PHONY: populate-persistent-source-schema-snowflake
populate-persistent-source-schema-snowflake:
@@ -61,7 +64,7 @@ populate-persistent-source-schema-snowflake:
.PHONY: test-trino
test-trino:
- hatch -v run trino-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) tests/
+ hatch -v run trino-env:pytest -vv -n $(PARALLELISM) $(ADDITIONAL_PYTEST_OPTIONS) $(TESTS_METRICFLOW)/
.PHONY: lint
lint:
@@ -79,12 +82,12 @@ trino:
# Re-generate test snapshots using all supported SQL engines.
.PHONY: regenerate-test-snapshots
regenerate-test-snapshots:
- hatch -v run dev-env:python tests/generate_snapshots.py
+ hatch -v run dev-env:python tests_metricflow/generate_snapshots.py
# Populate persistent source schemas for all relevant SQL engines.
.PHONY: populate-persistent-source-schemas
populate-persistent-source-schemas:
- hatch -v run dev-env:python tests/populate_persistent_source_schemas.py
+ hatch -v run dev-env:python $(TESTS_METRICFLOW)/populate_persistent_source_schemas.py
# Re-generate snapshots for the default SQL engine.
.PHONY: test-snap
diff --git a/dbt-metricflow/dbt_metricflow/cli/cli_context.py b/dbt-metricflow/dbt_metricflow/cli/cli_context.py
index 83abb96676..bdc3fd2454 100644
--- a/dbt-metricflow/dbt_metricflow/cli/cli_context.py
+++ b/dbt-metricflow/dbt_metricflow/cli/cli_context.py
@@ -6,11 +6,11 @@
from typing import Dict, Optional
from dbt_semantic_interfaces.protocols.semantic_manifest import SemanticManifest
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
from dbt_metricflow.cli.dbt_connectors.adapter_backed_client import AdapterBackedSqlClient
from dbt_metricflow.cli.dbt_connectors.dbt_config_accessor import dbtArtifacts, dbtProjectMetadata
from metricflow.engine.metricflow_engine import MetricFlowEngine
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
from metricflow.protocols.sql_client import SqlClient
logger = logging.getLogger(__name__)
diff --git a/dbt-metricflow/dbt_metricflow/cli/dbt_connectors/adapter_backed_client.py b/dbt-metricflow/dbt_metricflow/cli/dbt_connectors/adapter_backed_client.py
index 8d112e2c4f..0ae19f3ed7 100644
--- a/dbt-metricflow/dbt_metricflow/cli/dbt_connectors/adapter_backed_client.py
+++ b/dbt-metricflow/dbt_metricflow/cli/dbt_connectors/adapter_backed_client.py
@@ -8,12 +8,13 @@
from dbt.adapters.base.impl import BaseAdapter
from dbt.exceptions import DbtDatabaseError
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
+from metricflow_semantics.errors.error_classes import SqlBindParametersNotSupportedError
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.random_id import random_id
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
-from metricflow.errors.errors import SqlBindParametersNotSupportedError
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
from metricflow.protocols.sql_client import SqlEngine
-from metricflow.random_id import random_id
from metricflow.sql.render.big_query import BigQuerySqlQueryPlanRenderer
from metricflow.sql.render.databricks import DatabricksSqlQueryPlanRenderer
from metricflow.sql.render.duckdb_renderer import DuckDbSqlQueryPlanRenderer
@@ -22,7 +23,6 @@
from metricflow.sql.render.snowflake import SnowflakeSqlQueryPlanRenderer
from metricflow.sql.render.sql_plan_renderer import SqlQueryPlanRenderer
from metricflow.sql.render.trino import TrinoSqlQueryPlanRenderer
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql_request.sql_request_attributes import SqlRequestId
logger = logging.getLogger(__name__)
diff --git a/dbt-metricflow/dbt_metricflow/cli/dbt_connectors/dbt_config_accessor.py b/dbt-metricflow/dbt_metricflow/cli/dbt_connectors/dbt_config_accessor.py
index 12eace5056..5ac5f32f7e 100644
--- a/dbt-metricflow/dbt_metricflow/cli/dbt_connectors/dbt_config_accessor.py
+++ b/dbt-metricflow/dbt_metricflow/cli/dbt_connectors/dbt_config_accessor.py
@@ -12,12 +12,11 @@
from dbt.config.project import Project
from dbt.config.runtime import load_profile, load_project
from dbt_semantic_interfaces.protocols.semantic_manifest import SemanticManifest
+from metricflow_semantics.errors.error_classes import ModelCreationException
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.dbt_manifest_parser import parse_manifest_from_dbt_generated_manifest
from typing_extensions import Self
-from metricflow.errors.errors import ModelCreationException
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.model.dbt_manifest_parser import parse_manifest_from_dbt_generated_manifest
-
logger = logging.getLogger(__name__)
diff --git a/dbt-metricflow/dbt_metricflow/cli/main.py b/dbt-metricflow/dbt_metricflow/cli/main.py
index fa1ffe8831..f8dda90028 100644
--- a/dbt-metricflow/dbt_metricflow/cli/main.py
+++ b/dbt-metricflow/dbt_metricflow/cli/main.py
@@ -18,6 +18,7 @@
from dbt_semantic_interfaces.validations.semantic_manifest_validator import SemanticManifestValidator
from dbt_semantic_interfaces.validations.validator_helpers import SemanticManifestValidationResults
from halo import Halo
+from metricflow_semantics.dag.dag_visualization import display_dag_as_svg
from update_checker import UpdateChecker
import dbt_metricflow.cli.custom_click_types as click_custom
@@ -35,11 +36,10 @@
query_options,
start_end_time_options,
)
-from metricflow.dag.dag_visualization import display_dag_as_svg
from metricflow.engine.metricflow_engine import MetricFlowExplainResult, MetricFlowQueryRequest, MetricFlowQueryResult
-from metricflow.model.data_warehouse_model_validator import DataWarehouseModelValidator
from metricflow.telemetry.models import TelemetryLevel
from metricflow.telemetry.reporter import TelemetryReporter, log_call
+from metricflow.validation.data_warehouse_model_validator import DataWarehouseModelValidator
logger = logging.getLogger(__name__)
diff --git a/metricflow-semantics/LICENSE b/metricflow-semantics/LICENSE
new file mode 100644
index 0000000000..5bfefb53d1
--- /dev/null
+++ b/metricflow-semantics/LICENSE
@@ -0,0 +1,90 @@
+License text copyright © 2017 MariaDB Corporation Ab, All Rights Reserved.
+“Business Source License” is a trademark of MariaDB Corporation Ab.
+
+Licensed Work: dbt MetricFlow
+
+Change Date: The change date for each release of the Licensed Work will
+be the 3rd anniversary of the initial release date of that
+release of the Licensed Work.
+
+Change License: Apache 2.0 https://www.apache.org/licenses/LICENSE-2.0
+
+Additional Use Grant: The Licensor hereby grants you the right to use the
+Licensed Work for production purposes that consist of
+your internal business purposes, but not for the purpose
+of providing managed services or software-as-a-service
+to others.
+
+Terms
+
+The Licensor hereby grants you the right to copy, modify, create derivative
+works, redistribute, and make non-production use of the Licensed Work. The
+Licensor may make an Additional Use Grant, above, permitting limited production
+use.
+
+Effective on the Change Date, or the fourth anniversary of the first publicly
+available distribution of a specific version of the Licensed Work under this
+License, whichever comes first, the Licensor hereby grants you rights under the
+terms of the Change License, and the rights granted in the paragraph above
+terminate.
+
+If your use of the Licensed Work does not comply with the requirements currently
+in effect as described in this License, you must purchase a commercial license
+from the Licensor, its affiliated entities, or authorized resellers, or you must
+refrain from using the Licensed Work.
+
+All copies of the original and modified Licensed Work, and derivative works of
+the Licensed Work, are subject to this License. This License applies separately
+for each version of the Licensed Work and the Change Date may vary for each
+version of the Licensed Work released by Licensor.
+
+You must conspicuously display this License on each original or modified copy of
+the Licensed Work. If you receive the Licensed Work in original or modified form
+from a third party, the terms and conditions set forth in this License apply to
+your use of that work.
+
+Any use of the Licensed Work in violation of this License will automatically
+terminate your rights under this License for the current and all other versions
+of the Licensed Work.
+
+This License does not grant you any right in any trademark or logo of Licensor
+or its affiliates (provided that you may use a trademark or logo of Licensor as
+expressly required by this License).TO THE EXTENT PERMITTED BY APPLICABLE LAW,
+THE LICENSED WORK IS PROVIDED ON AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL
+WARRANTIES AND CONDITIONS, EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION)
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+NON-INFRINGEMENT, AND TITLE.MariaDB hereby grants you permission to use this
+License’s text to license your works, and to refer to it using the trademark
+“Business Source License”, as long as you comply with the Covenants of Licensor
+below.
+
+Covenants of Licensor
+
+In consideration of the right to use this License’s text and the “Business
+Source License” name and trademark, Licensor covenants to MariaDB, and to all
+other recipients of the licensed work to be provided by Licensor:
+
+To specify as the Change License the GPL Version 2.0 or any later version, or a
+license that is compatible with GPL Version 2.0 or a later version, where
+“compatible” means that software provided under the Change License can be
+included in a program with software provided under GPL Version 2.0 or a later
+version. Licensor may specify additional Change Licenses without limitation.
+
+To either: (a) specify an additional grant of rights to use that does not impose
+any additional restriction on the right granted in this License, as the
+Additional Use Grant; or (b) insert the text “None”.
+
+To specify a Change Date.
+
+Not to modify this License in any other way.
+
+Notice
+
+The Business Source License (this document, or the “License”) is not an Open
+Source license. However, the Licensed Work will eventually be made available
+under an Open Source License, as stated in this License.
+
+For more information on the use of the Business Source License for MariaDB
+products, please visit the MariaDB Business Source License FAQ. For more
+information on the use of the Business Source License generally, please visit
+the Adopting and Developing Business Source License FAQ.
diff --git a/metricflow-semantics/README.md b/metricflow-semantics/README.md
new file mode 100644
index 0000000000..c9b31a010e
--- /dev/null
+++ b/metricflow-semantics/README.md
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+# Welcome to metricflow-semantics
+
+`metricflow-semantics` encapsulates the modules needed to resolve the semantics of MetricFlow queries.
+## Repo use cases
+- Resolving the dbt model dependencies of a (saved) query in MetricFlow for DAG dependency management.
diff --git a/metricflow/collection_helpers/__init__.py b/metricflow-semantics/metricflow_semantics/__init__.py
similarity index 100%
rename from metricflow/collection_helpers/__init__.py
rename to metricflow-semantics/metricflow_semantics/__init__.py
diff --git a/metricflow/aggregation_properties.py b/metricflow-semantics/metricflow_semantics/aggregation_properties.py
similarity index 100%
rename from metricflow/aggregation_properties.py
rename to metricflow-semantics/metricflow_semantics/aggregation_properties.py
diff --git a/metricflow/assert_one_arg.py b/metricflow-semantics/metricflow_semantics/assert_one_arg.py
similarity index 100%
rename from metricflow/assert_one_arg.py
rename to metricflow-semantics/metricflow_semantics/assert_one_arg.py
diff --git a/metricflow/dag/__init__.py b/metricflow-semantics/metricflow_semantics/collection_helpers/__init__.py
similarity index 100%
rename from metricflow/dag/__init__.py
rename to metricflow-semantics/metricflow_semantics/collection_helpers/__init__.py
diff --git a/metricflow/collection_helpers/merger.py b/metricflow-semantics/metricflow_semantics/collection_helpers/merger.py
similarity index 100%
rename from metricflow/collection_helpers/merger.py
rename to metricflow-semantics/metricflow_semantics/collection_helpers/merger.py
diff --git a/metricflow/errors/__init__.py b/metricflow-semantics/metricflow_semantics/dag/__init__.py
similarity index 100%
rename from metricflow/errors/__init__.py
rename to metricflow-semantics/metricflow_semantics/dag/__init__.py
diff --git a/metricflow/dag/dag_to_text.py b/metricflow-semantics/metricflow_semantics/dag/dag_to_text.py
similarity index 98%
rename from metricflow/dag/dag_to_text.py
rename to metricflow-semantics/metricflow_semantics/dag/dag_to_text.py
index c2f218fefe..5b3ea8ad58 100644
--- a/metricflow/dag/dag_to_text.py
+++ b/metricflow-semantics/metricflow_semantics/dag/dag_to_text.py
@@ -12,9 +12,9 @@
import jinja2
if typing.TYPE_CHECKING:
- from metricflow.dag.mf_dag import DagNode, DagNodeT, DisplayedProperty, MetricFlowDag
+ from metricflow_semantics.dag.mf_dag import DagNode, DagNodeT, DisplayedProperty, MetricFlowDag
-from metricflow.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
logger = logging.getLogger(__name__)
diff --git a/metricflow/dag/dag_visualization.py b/metricflow-semantics/metricflow_semantics/dag/dag_visualization.py
similarity index 93%
rename from metricflow/dag/dag_visualization.py
rename to metricflow-semantics/metricflow_semantics/dag/dag_visualization.py
index 67544ad394..45260d2c13 100644
--- a/metricflow/dag/dag_visualization.py
+++ b/metricflow-semantics/metricflow_semantics/dag/dag_visualization.py
@@ -6,8 +6,8 @@
import graphviz
-from metricflow.dag.mf_dag import DagNode, MetricFlowDag
-from metricflow.random_id import random_id
+from metricflow_semantics.dag.mf_dag import DagNode, MetricFlowDag
+from metricflow_semantics.random_id import random_id
logger = logging.getLogger(__name__)
DagNodeT = TypeVar("DagNodeT", bound=DagNode)
diff --git a/metricflow/dag/id_prefix.py b/metricflow-semantics/metricflow_semantics/dag/id_prefix.py
similarity index 100%
rename from metricflow/dag/id_prefix.py
rename to metricflow-semantics/metricflow_semantics/dag/id_prefix.py
diff --git a/metricflow/dag/mf_dag.py b/metricflow-semantics/metricflow_semantics/dag/mf_dag.py
similarity index 96%
rename from metricflow/dag/mf_dag.py
rename to metricflow-semantics/metricflow_semantics/dag/mf_dag.py
index 68a84dd916..b7bcb0ab20 100644
--- a/metricflow/dag/mf_dag.py
+++ b/metricflow-semantics/metricflow_semantics/dag/mf_dag.py
@@ -11,10 +11,10 @@
import jinja2
-from metricflow.dag.dag_to_text import MetricFlowDagTextFormatter
-from metricflow.dag.id_prefix import IdPrefix
-from metricflow.dag.sequential_id import SequentialIdGenerator
-from metricflow.visitor import VisitorOutputT
+from metricflow_semantics.dag.dag_to_text import MetricFlowDagTextFormatter
+from metricflow_semantics.dag.id_prefix import IdPrefix
+from metricflow_semantics.dag.sequential_id import SequentialIdGenerator
+from metricflow_semantics.visitor import VisitorOutputT
logger = logging.getLogger(__name__)
diff --git a/metricflow/dag/sequential_id.py b/metricflow-semantics/metricflow_semantics/dag/sequential_id.py
similarity index 96%
rename from metricflow/dag/sequential_id.py
rename to metricflow-semantics/metricflow_semantics/dag/sequential_id.py
index a26f29c6f5..853109ff6d 100644
--- a/metricflow/dag/sequential_id.py
+++ b/metricflow-semantics/metricflow_semantics/dag/sequential_id.py
@@ -6,7 +6,7 @@
from typing_extensions import override
-from metricflow.dag.id_prefix import IdPrefix
+from metricflow_semantics.dag.id_prefix import IdPrefix
@dataclass(frozen=True)
diff --git a/metricflow/filters/__init__.py b/metricflow-semantics/metricflow_semantics/errors/__init__.py
similarity index 100%
rename from metricflow/filters/__init__.py
rename to metricflow-semantics/metricflow_semantics/errors/__init__.py
diff --git a/metricflow/errors/errors.py b/metricflow-semantics/metricflow_semantics/errors/error_classes.py
similarity index 100%
rename from metricflow/errors/errors.py
rename to metricflow-semantics/metricflow_semantics/errors/error_classes.py
diff --git a/metricflow/model/__init__.py b/metricflow-semantics/metricflow_semantics/filters/__init__.py
similarity index 100%
rename from metricflow/model/__init__.py
rename to metricflow-semantics/metricflow_semantics/filters/__init__.py
diff --git a/metricflow/filters/merge_where.py b/metricflow-semantics/metricflow_semantics/filters/merge_where.py
similarity index 100%
rename from metricflow/filters/merge_where.py
rename to metricflow-semantics/metricflow_semantics/filters/merge_where.py
diff --git a/metricflow/filters/time_constraint.py b/metricflow-semantics/metricflow_semantics/filters/time_constraint.py
similarity index 98%
rename from metricflow/filters/time_constraint.py
rename to metricflow-semantics/metricflow_semantics/filters/time_constraint.py
index b7a00ef6cb..69a8bd8d96 100644
--- a/metricflow/filters/time_constraint.py
+++ b/metricflow-semantics/metricflow_semantics/filters/time_constraint.py
@@ -9,7 +9,7 @@
from dbt_semantic_interfaces.dataclass_serialization import SerializableDataclass
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-from metricflow.time.time_granularity import offset_period
+from metricflow_semantics.time.time_granularity import offset_period
logger = logging.getLogger(__name__)
diff --git a/metricflow/instances.py b/metricflow-semantics/metricflow_semantics/instances.py
similarity index 97%
rename from metricflow/instances.py
rename to metricflow-semantics/metricflow_semantics/instances.py
index f1e8164f8c..2e6c4499c3 100644
--- a/metricflow/instances.py
+++ b/metricflow-semantics/metricflow_semantics/instances.py
@@ -9,9 +9,9 @@
from dbt_semantic_interfaces.dataclass_serialization import SerializableDataclass
from dbt_semantic_interfaces.references import MetricModelReference, SemanticModelElementReference
-from metricflow.aggregation_properties import AggregationState
-from metricflow.specs.column_assoc import ColumnAssociation
-from metricflow.specs.specs import (
+from metricflow_semantics.aggregation_properties import AggregationState
+from metricflow_semantics.specs.column_assoc import ColumnAssociation
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
EntitySpec,
GroupByMetricSpec,
diff --git a/metricflow/model/semantics/__init__.py b/metricflow-semantics/metricflow_semantics/mf_logging/__init__.py
similarity index 100%
rename from metricflow/model/semantics/__init__.py
rename to metricflow-semantics/metricflow_semantics/mf_logging/__init__.py
diff --git a/metricflow/mf_logging/formatting.py b/metricflow-semantics/metricflow_semantics/mf_logging/formatting.py
similarity index 100%
rename from metricflow/mf_logging/formatting.py
rename to metricflow-semantics/metricflow_semantics/mf_logging/formatting.py
diff --git a/metricflow/mf_logging/pretty_print.py b/metricflow-semantics/metricflow_semantics/mf_logging/pretty_print.py
similarity index 98%
rename from metricflow/mf_logging/pretty_print.py
rename to metricflow-semantics/metricflow_semantics/mf_logging/pretty_print.py
index 08ab8c84ac..330d9e1cca 100644
--- a/metricflow/mf_logging/pretty_print.py
+++ b/metricflow-semantics/metricflow_semantics/mf_logging/pretty_print.py
@@ -9,7 +9,7 @@
from pydantic import BaseModel
-from metricflow.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.formatting import indent
logger = logging.getLogger(__name__)
@@ -36,7 +36,8 @@ def __init__(
@staticmethod
def _is_pydantic_base_model(obj: Any): # type:ignore
- return isinstance(obj, BaseModel)
+ # Checking the attribute as the BaseModel check fails for newer version of Pydantic.
+ return isinstance(obj, BaseModel) or hasattr(obj, "__config__")
def _handle_sequence_obj(self, list_like_obj: Union[list, tuple], remaining_line_width: Optional[int]) -> str:
"""Pretty prints a sequence object i.e. list or tuple.
diff --git a/metricflow/mf_logging/runtime.py b/metricflow-semantics/metricflow_semantics/mf_logging/runtime.py
similarity index 100%
rename from metricflow/mf_logging/runtime.py
rename to metricflow-semantics/metricflow_semantics/mf_logging/runtime.py
diff --git a/metricflow/model/transformations/__init__.py b/metricflow-semantics/metricflow_semantics/model/__init__.py
similarity index 100%
rename from metricflow/model/transformations/__init__.py
rename to metricflow-semantics/metricflow_semantics/model/__init__.py
diff --git a/metricflow/model/dbt_manifest_parser.py b/metricflow-semantics/metricflow_semantics/model/dbt_manifest_parser.py
similarity index 93%
rename from metricflow/model/dbt_manifest_parser.py
rename to metricflow-semantics/metricflow_semantics/model/dbt_manifest_parser.py
index 0e53410084..ea1ba90c9c 100644
--- a/metricflow/model/dbt_manifest_parser.py
+++ b/metricflow-semantics/metricflow_semantics/model/dbt_manifest_parser.py
@@ -16,7 +16,7 @@
PydanticSemanticManifestTransformer,
)
-from metricflow.model.transformations.dedupe_metric_input_measures import DedupeMetricInputMeasuresRule
+from metricflow_semantics.model.transformations.dedupe_metric_input_measures import DedupeMetricInputMeasuresRule
def parse_manifest_from_dbt_generated_manifest(manifest_json_string: str) -> PydanticSemanticManifest:
diff --git a/metricflow/model/graph.py b/metricflow-semantics/metricflow_semantics/model/graph.py
similarity index 100%
rename from metricflow/model/graph.py
rename to metricflow-semantics/metricflow_semantics/model/graph.py
diff --git a/metricflow/model/object_to_reference.py b/metricflow-semantics/metricflow_semantics/model/object_to_reference.py
similarity index 100%
rename from metricflow/model/object_to_reference.py
rename to metricflow-semantics/metricflow_semantics/model/object_to_reference.py
diff --git a/metricflow-semantics/metricflow_semantics/model/semantic_manifest_lookup.py b/metricflow-semantics/metricflow_semantics/model/semantic_manifest_lookup.py
new file mode 100644
index 0000000000..0068424a2e
--- /dev/null
+++ b/metricflow-semantics/metricflow_semantics/model/semantic_manifest_lookup.py
@@ -0,0 +1,31 @@
+from __future__ import annotations
+
+import logging
+
+from dbt_semantic_interfaces.protocols.semantic_manifest import SemanticManifest
+
+from metricflow_semantics.model.semantics.metric_lookup import MetricLookup
+from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
+
+logger = logging.getLogger(__name__)
+
+
+class SemanticManifestLookup:
+ """Adds semantics information to the user configured model."""
+
+ def __init__(self, semantic_manifest: SemanticManifest) -> None: # noqa: D107
+ self._semantic_manifest = semantic_manifest
+ self._semantic_model_lookup = SemanticModelLookup(semantic_manifest)
+ self._metric_lookup = MetricLookup(self._semantic_manifest, self._semantic_model_lookup)
+
+ @property
+ def semantic_manifest(self) -> SemanticManifest: # noqa: D102
+ return self._semantic_manifest
+
+ @property
+ def semantic_model_lookup(self) -> SemanticModelLookup: # noqa: D102
+ return self._semantic_model_lookup
+
+ @property
+ def metric_lookup(self) -> MetricLookup: # noqa: D102
+ return self._metric_lookup
diff --git a/metricflow/naming/__init__.py b/metricflow-semantics/metricflow_semantics/model/semantics/__init__.py
similarity index 100%
rename from metricflow/naming/__init__.py
rename to metricflow-semantics/metricflow_semantics/model/semantics/__init__.py
diff --git a/metricflow/model/semantics/element_group.py b/metricflow-semantics/metricflow_semantics/model/semantics/element_group.py
similarity index 100%
rename from metricflow/model/semantics/element_group.py
rename to metricflow-semantics/metricflow_semantics/model/semantics/element_group.py
diff --git a/metricflow/model/semantics/linkable_element.py b/metricflow-semantics/metricflow_semantics/model/semantics/linkable_element.py
similarity index 99%
rename from metricflow/model/semantics/linkable_element.py
rename to metricflow-semantics/metricflow_semantics/model/semantics/linkable_element.py
index 9f95b0cdd9..7167a784b1 100644
--- a/metricflow/model/semantics/linkable_element.py
+++ b/metricflow-semantics/metricflow_semantics/model/semantics/linkable_element.py
@@ -10,7 +10,7 @@
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-from metricflow.specs.specs import EntityReference
+from metricflow_semantics.specs.spec_classes import EntityReference
class LinkableElementType(Enum):
diff --git a/metricflow/model/semantics/linkable_element_set.py b/metricflow-semantics/metricflow_semantics/model/semantics/linkable_element_set.py
similarity index 98%
rename from metricflow/model/semantics/linkable_element_set.py
rename to metricflow-semantics/metricflow_semantics/model/semantics/linkable_element_set.py
index 7ef277b61f..3f3d6d09e5 100644
--- a/metricflow/model/semantics/linkable_element_set.py
+++ b/metricflow-semantics/metricflow_semantics/model/semantics/linkable_element_set.py
@@ -4,7 +4,7 @@
from dataclasses import dataclass, field
from typing import Dict, FrozenSet, List, Sequence, Set, Tuple
-from metricflow.model.semantics.linkable_element import (
+from metricflow_semantics.model.semantics.linkable_element import (
ElementPathKey,
LinkableDimension,
LinkableElementProperty,
@@ -12,7 +12,13 @@
LinkableEntity,
LinkableMetric,
)
-from metricflow.specs.specs import DimensionSpec, EntitySpec, GroupByMetricSpec, LinkableSpecSet, TimeDimensionSpec
+from metricflow_semantics.specs.spec_classes import (
+ DimensionSpec,
+ EntitySpec,
+ GroupByMetricSpec,
+ LinkableSpecSet,
+ TimeDimensionSpec,
+)
@dataclass(frozen=True)
diff --git a/metricflow/model/semantics/linkable_spec_resolver.py b/metricflow-semantics/metricflow_semantics/model/semantics/linkable_spec_resolver.py
similarity index 97%
rename from metricflow/model/semantics/linkable_spec_resolver.py
rename to metricflow-semantics/metricflow_semantics/model/semantics/linkable_spec_resolver.py
index 85429eb0d5..ce81cf8699 100644
--- a/metricflow/model/semantics/linkable_spec_resolver.py
+++ b/metricflow-semantics/metricflow_semantics/model/semantics/linkable_spec_resolver.py
@@ -18,11 +18,11 @@
from dbt_semantic_interfaces.type_enums import MetricType
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from dbt_semantic_interfaces.validations.unique_valid_name import MetricFlowReservedKeywords
-from metricflow.dataset.dataset import DataSet
-from metricflow.errors.errors import UnknownMetricLinkingError
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.model.semantics.linkable_element import (
+from metricflow_semantics.errors.error_classes import UnknownMetricLinkingError
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.semantics.linkable_element import (
ElementPathKey,
LinkableDimension,
LinkableElementProperty,
@@ -32,15 +32,15 @@
SemanticModelJoinPath,
SemanticModelJoinPathElement,
)
-from metricflow.model.semantics.linkable_element_set import LinkableElementSet
-from metricflow.model.semantics.semantic_model_join_evaluator import SemanticModelJoinEvaluator
-from metricflow.specs.specs import (
+from metricflow_semantics.model.semantics.linkable_element_set import LinkableElementSet
+from metricflow_semantics.model.semantics.semantic_model_join_evaluator import SemanticModelJoinEvaluator
+from metricflow_semantics.specs.spec_classes import (
DEFAULT_TIME_GRANULARITY,
EntityReference,
)
if TYPE_CHECKING:
- from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
+ from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
logger = logging.getLogger(__name__)
@@ -412,7 +412,7 @@ def _get_metric_time_elements(self, measure_reference: Optional[MeasureReference
for date_part in possible_date_parts:
path_key = ElementPathKey(
- element_name=DataSet.metric_time_dimension_name(),
+ element_name=MetricFlowReservedKeywords.METRIC_TIME.value,
element_type=LinkableElementType.TIME_DIMENSION,
entity_links=(),
time_granularity=time_granularity,
@@ -421,7 +421,7 @@ def _get_metric_time_elements(self, measure_reference: Optional[MeasureReference
path_key_to_linkable_dimensions[path_key].append(
LinkableDimension(
semantic_model_origin=measure_semantic_model.reference if measure_semantic_model else None,
- element_name=DataSet.metric_time_dimension_name(),
+ element_name=MetricFlowReservedKeywords.METRIC_TIME.value,
dimension_type=DimensionType.TIME,
entity_links=(),
join_path=(),
diff --git a/metricflow/model/semantics/metric_lookup.py b/metricflow-semantics/metricflow_semantics/model/semantics/metric_lookup.py
similarity index 93%
rename from metricflow/model/semantics/metric_lookup.py
rename to metricflow-semantics/metricflow_semantics/model/semantics/metric_lookup.py
index 4cc14b176a..0809a811ba 100644
--- a/metricflow/model/semantics/metric_lookup.py
+++ b/metricflow-semantics/metricflow_semantics/model/semantics/metric_lookup.py
@@ -8,15 +8,15 @@
from dbt_semantic_interfaces.protocols.semantic_manifest import SemanticManifest
from dbt_semantic_interfaces.references import MeasureReference, MetricReference
-from metricflow.errors.errors import DuplicateMetricError, MetricNotFoundError, NonExistentMeasureError
-from metricflow.model.semantics.linkable_element import LinkableElementProperty
-from metricflow.model.semantics.linkable_element_set import LinkableElementSet
-from metricflow.model.semantics.linkable_spec_resolver import (
+from metricflow_semantics.errors.error_classes import DuplicateMetricError, MetricNotFoundError, NonExistentMeasureError
+from metricflow_semantics.model.semantics.linkable_element import LinkableElementProperty
+from metricflow_semantics.model.semantics.linkable_element_set import LinkableElementSet
+from metricflow_semantics.model.semantics.linkable_spec_resolver import (
ValidLinkableSpecResolver,
)
-from metricflow.model.semantics.semantic_model_join_evaluator import MAX_JOIN_HOPS
-from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
-from metricflow.specs.specs import TimeDimensionSpec
+from metricflow_semantics.model.semantics.semantic_model_join_evaluator import MAX_JOIN_HOPS
+from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
+from metricflow_semantics.specs.spec_classes import TimeDimensionSpec
logger = logging.getLogger(__name__)
diff --git a/metricflow/model/semantics/semantic_model_container.py b/metricflow-semantics/metricflow_semantics/model/semantics/semantic_model_container.py
similarity index 100%
rename from metricflow/model/semantics/semantic_model_container.py
rename to metricflow-semantics/metricflow_semantics/model/semantics/semantic_model_container.py
diff --git a/metricflow/model/semantics/semantic_model_join_evaluator.py b/metricflow-semantics/metricflow_semantics/model/semantics/semantic_model_join_evaluator.py
similarity index 85%
rename from metricflow/model/semantics/semantic_model_join_evaluator.py
rename to metricflow-semantics/metricflow_semantics/model/semantics/semantic_model_join_evaluator.py
index ed8c3f7205..9ee52f2974 100644
--- a/metricflow/model/semantics/semantic_model_join_evaluator.py
+++ b/metricflow-semantics/metricflow_semantics/model/semantics/semantic_model_join_evaluator.py
@@ -10,11 +10,8 @@
SemanticModelReference,
)
-from metricflow.instances import EntityInstance, InstanceSet
-from metricflow.mf_logging.pretty_print import mf_pformat
-
if TYPE_CHECKING:
- from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
+ from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
MAX_JOIN_HOPS = 2
@@ -219,39 +216,3 @@ def is_valid_semantic_model_join(
)
is not None
)
-
- @staticmethod
- def _semantic_model_of_entity_in_instance_set(
- instance_set: InstanceSet,
- entity_reference: EntityReference,
- ) -> SemanticModelReference:
- """Return the semantic model where the entity was defined in the instance set."""
- matching_instances: List[EntityInstance] = []
- for entity_instance in instance_set.entity_instances:
- assert len(entity_instance.defined_from) == 1
- if len(entity_instance.spec.entity_links) == 0 and entity_instance.spec.reference == entity_reference:
- matching_instances.append(entity_instance)
-
- assert len(matching_instances) == 1, (
- f"Not exactly 1 matching entity instances found: {matching_instances} for {entity_reference} in "
- f"{mf_pformat(instance_set)}"
- )
- return matching_instances[0].origin_semantic_model_reference.semantic_model_reference
-
- def is_valid_instance_set_join(
- self,
- left_instance_set: InstanceSet,
- right_instance_set: InstanceSet,
- on_entity_reference: EntityReference,
- ) -> bool:
- """Return true if the instance sets can be joined using the given entity."""
- return self.is_valid_semantic_model_join(
- left_semantic_model_reference=SemanticModelJoinEvaluator._semantic_model_of_entity_in_instance_set(
- instance_set=left_instance_set, entity_reference=on_entity_reference
- ),
- right_semantic_model_reference=SemanticModelJoinEvaluator._semantic_model_of_entity_in_instance_set(
- instance_set=right_instance_set,
- entity_reference=on_entity_reference,
- ),
- on_entity_reference=on_entity_reference,
- )
diff --git a/metricflow/model/semantics/semantic_model_lookup.py b/metricflow-semantics/metricflow_semantics/model/semantics/semantic_model_lookup.py
similarity index 98%
rename from metricflow/model/semantics/semantic_model_lookup.py
rename to metricflow-semantics/metricflow_semantics/model/semantics/semantic_model_lookup.py
index 32fd9cddd9..b1ab506927 100644
--- a/metricflow/model/semantics/semantic_model_lookup.py
+++ b/metricflow-semantics/metricflow_semantics/model/semantics/semantic_model_lookup.py
@@ -21,11 +21,11 @@
from dbt_semantic_interfaces.type_enums import DimensionType, EntityType
from dbt_semantic_interfaces.type_enums.aggregation_type import AggregationType
-from metricflow.errors.errors import InvalidSemanticModelError
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.model.semantics.element_group import ElementGrouper
-from metricflow.model.spec_converters import MeasureConverter
-from metricflow.specs.specs import (
+from metricflow_semantics.errors.error_classes import InvalidSemanticModelError
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.semantics.element_group import ElementGrouper
+from metricflow_semantics.model.spec_converters import MeasureConverter
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
EntitySpec,
LinkableInstanceSpec,
diff --git a/metricflow/model/spec_converters.py b/metricflow-semantics/metricflow_semantics/model/spec_converters.py
similarity index 96%
rename from metricflow/model/spec_converters.py
rename to metricflow-semantics/metricflow_semantics/model/spec_converters.py
index 7e4e5e7f45..2db2d7e519 100644
--- a/metricflow/model/spec_converters.py
+++ b/metricflow-semantics/metricflow_semantics/model/spec_converters.py
@@ -12,7 +12,7 @@
from dbt_semantic_interfaces.protocols.measure import Measure
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.spec_classes import (
MeasureSpec,
NonAdditiveDimensionSpec,
)
diff --git a/metricflow/query/__init__.py b/metricflow-semantics/metricflow_semantics/model/transformations/__init__.py
similarity index 100%
rename from metricflow/query/__init__.py
rename to metricflow-semantics/metricflow_semantics/model/transformations/__init__.py
diff --git a/metricflow/model/transformations/dedupe_metric_input_measures.py b/metricflow-semantics/metricflow_semantics/model/transformations/dedupe_metric_input_measures.py
similarity index 100%
rename from metricflow/model/transformations/dedupe_metric_input_measures.py
rename to metricflow-semantics/metricflow_semantics/model/transformations/dedupe_metric_input_measures.py
diff --git a/metricflow/query/group_by_item/__init__.py b/metricflow-semantics/metricflow_semantics/naming/__init__.py
similarity index 100%
rename from metricflow/query/group_by_item/__init__.py
rename to metricflow-semantics/metricflow_semantics/naming/__init__.py
diff --git a/metricflow/naming/dunder_scheme.py b/metricflow-semantics/metricflow_semantics/naming/dunder_scheme.py
similarity index 96%
rename from metricflow/naming/dunder_scheme.py
rename to metricflow-semantics/metricflow_semantics/naming/dunder_scheme.py
index 35eb1f12e9..40c43f7a43 100644
--- a/metricflow/naming/dunder_scheme.py
+++ b/metricflow-semantics/metricflow_semantics/naming/dunder_scheme.py
@@ -9,13 +9,13 @@
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from typing_extensions import override
-from metricflow.naming.naming_scheme import QueryItemNamingScheme
-from metricflow.specs.patterns.entity_link_pattern import (
+from metricflow_semantics.naming.naming_scheme import QueryItemNamingScheme
+from metricflow_semantics.specs.patterns.entity_link_pattern import (
EntityLinkPattern,
EntityLinkPatternParameterSet,
ParameterSetField,
)
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.spec_classes import (
InstanceSpec,
InstanceSpecSet,
InstanceSpecSetTransform,
diff --git a/metricflow/naming/linkable_spec_name.py b/metricflow-semantics/metricflow_semantics/naming/linkable_spec_name.py
similarity index 100%
rename from metricflow/naming/linkable_spec_name.py
rename to metricflow-semantics/metricflow_semantics/naming/linkable_spec_name.py
diff --git a/metricflow/naming/metric_scheme.py b/metricflow-semantics/metricflow_semantics/naming/metric_scheme.py
similarity index 85%
rename from metricflow/naming/metric_scheme.py
rename to metricflow-semantics/metricflow_semantics/naming/metric_scheme.py
index fdc0244df4..8fc0cd7c48 100644
--- a/metricflow/naming/metric_scheme.py
+++ b/metricflow-semantics/metricflow_semantics/naming/metric_scheme.py
@@ -5,9 +5,9 @@
from dbt_semantic_interfaces.references import MetricReference
from typing_extensions import override
-from metricflow.naming.naming_scheme import QueryItemNamingScheme
-from metricflow.specs.patterns.metric_pattern import MetricSpecPattern
-from metricflow.specs.specs import (
+from metricflow_semantics.naming.naming_scheme import QueryItemNamingScheme
+from metricflow_semantics.specs.patterns.metric_pattern import MetricSpecPattern
+from metricflow_semantics.specs.spec_classes import (
InstanceSpec,
InstanceSpecSet,
)
diff --git a/metricflow/naming/naming_scheme.py b/metricflow-semantics/metricflow_semantics/naming/naming_scheme.py
similarity index 92%
rename from metricflow/naming/naming_scheme.py
rename to metricflow-semantics/metricflow_semantics/naming/naming_scheme.py
index 0d9ef861f9..75331d5894 100644
--- a/metricflow/naming/naming_scheme.py
+++ b/metricflow-semantics/metricflow_semantics/naming/naming_scheme.py
@@ -3,10 +3,10 @@
from abc import ABC, abstractmethod
from typing import TYPE_CHECKING, Optional
-from metricflow.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
if TYPE_CHECKING:
- from metricflow.specs.specs import InstanceSpec
+ from metricflow_semantics.specs.spec_classes import InstanceSpec
class QueryItemNamingScheme(ABC):
diff --git a/metricflow/naming/object_builder_scheme.py b/metricflow-semantics/metricflow_semantics/naming/object_builder_scheme.py
similarity index 93%
rename from metricflow/naming/object_builder_scheme.py
rename to metricflow-semantics/metricflow_semantics/naming/object_builder_scheme.py
index eebcb7fc0a..fdf472b225 100644
--- a/metricflow/naming/object_builder_scheme.py
+++ b/metricflow-semantics/metricflow_semantics/naming/object_builder_scheme.py
@@ -12,16 +12,16 @@
from dbt_semantic_interfaces.references import EntityReference
from typing_extensions import override
-from metricflow.naming.naming_scheme import QueryItemNamingScheme
-from metricflow.naming.object_builder_str import ObjectBuilderNameConverter
-from metricflow.specs.patterns.entity_link_pattern import (
+from metricflow_semantics.naming.naming_scheme import QueryItemNamingScheme
+from metricflow_semantics.naming.object_builder_str import ObjectBuilderNameConverter
+from metricflow_semantics.specs.patterns.entity_link_pattern import (
EntityLinkPattern,
EntityLinkPatternParameterSet,
ParameterSetField,
)
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.patterns.typed_patterns import DimensionPattern, TimeDimensionPattern
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.patterns.typed_patterns import DimensionPattern, TimeDimensionPattern
+from metricflow_semantics.specs.spec_classes import (
InstanceSpec,
)
diff --git a/metricflow/naming/object_builder_str.py b/metricflow-semantics/metricflow_semantics/naming/object_builder_str.py
similarity index 98%
rename from metricflow/naming/object_builder_str.py
rename to metricflow-semantics/metricflow_semantics/naming/object_builder_str.py
index ffbfcc84cd..ce20280268 100644
--- a/metricflow/naming/object_builder_str.py
+++ b/metricflow-semantics/metricflow_semantics/naming/object_builder_str.py
@@ -14,7 +14,7 @@
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from typing_extensions import override
-from metricflow.specs.specs import InstanceSpec, InstanceSpecSet, InstanceSpecSetTransform
+from metricflow_semantics.specs.spec_classes import InstanceSpec, InstanceSpecSet, InstanceSpecSetTransform
class ObjectBuilderNameConverter:
diff --git a/metricflow/query/group_by_item/candidate_push_down/__init__.py b/metricflow-semantics/metricflow_semantics/protocols/__init__.py
similarity index 100%
rename from metricflow/query/group_by_item/candidate_push_down/__init__.py
rename to metricflow-semantics/metricflow_semantics/protocols/__init__.py
diff --git a/metricflow/protocols/query_parameter.py b/metricflow-semantics/metricflow_semantics/protocols/query_parameter.py
similarity index 96%
rename from metricflow/protocols/query_parameter.py
rename to metricflow-semantics/metricflow_semantics/protocols/query_parameter.py
index 871f26223a..c8c15bfd87 100644
--- a/metricflow/protocols/query_parameter.py
+++ b/metricflow-semantics/metricflow_semantics/protocols/query_parameter.py
@@ -6,7 +6,7 @@
from dbt_semantic_interfaces.type_enums.date_part import DatePart
if TYPE_CHECKING:
- from metricflow.query.resolver_inputs.query_resolver_inputs import (
+ from metricflow_semantics.query.resolver_inputs.query_resolver_inputs import (
ResolverInputForGroupByItem,
ResolverInputForMetric,
ResolverInputForOrderByItem,
diff --git a/metricflow/query/group_by_item/filter_spec_resolution/__init__.py b/metricflow-semantics/metricflow_semantics/py.typed
similarity index 100%
rename from metricflow/query/group_by_item/filter_spec_resolution/__init__.py
rename to metricflow-semantics/metricflow_semantics/py.typed
diff --git a/metricflow/query/group_by_item/resolution_dag/__init__.py b/metricflow-semantics/metricflow_semantics/query/__init__.py
similarity index 100%
rename from metricflow/query/group_by_item/resolution_dag/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/__init__.py
diff --git a/metricflow/query/group_by_item/resolution_dag/resolution_nodes/__init__.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/__init__.py
similarity index 100%
rename from metricflow/query/group_by_item/resolution_dag/resolution_nodes/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/__init__.py
diff --git a/metricflow/query/issues/__init__.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/candidate_push_down/__init__.py
similarity index 100%
rename from metricflow/query/issues/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/candidate_push_down/__init__.py
diff --git a/metricflow/query/group_by_item/candidate_push_down/group_by_item_candidate.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/candidate_push_down/group_by_item_candidate.py
similarity index 91%
rename from metricflow/query/group_by_item/candidate_push_down/group_by_item_candidate.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/candidate_push_down/group_by_item_candidate.py
index 767df7f499..bedfe43650 100644
--- a/metricflow/query/group_by_item/candidate_push_down/group_by_item_candidate.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/candidate_push_down/group_by_item_candidate.py
@@ -6,10 +6,10 @@
from typing_extensions import override
-from metricflow.query.group_by_item.path_prefixable import PathPrefixable
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.specs import InstanceSpecSet, LinkableInstanceSpec, LinkableSpecSet
+from metricflow_semantics.query.group_by_item.path_prefixable import PathPrefixable
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet, LinkableInstanceSpec, LinkableSpecSet
@dataclass(frozen=True)
diff --git a/metricflow/query/group_by_item/candidate_push_down/push_down_visitor.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/candidate_push_down/push_down_visitor.py
similarity index 90%
rename from metricflow/query/group_by_item/candidate_push_down/push_down_visitor.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/candidate_push_down/push_down_visitor.py
index 7879e80514..7abca90066 100644
--- a/metricflow/query/group_by_item/candidate_push_down/push_down_visitor.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/candidate_push_down/push_down_visitor.py
@@ -9,43 +9,47 @@
from dbt_semantic_interfaces.type_enums import MetricType
from typing_extensions import override
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat, mf_pformat_many
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.model.semantics.linkable_element import LinkableElementProperty
-from metricflow.query.group_by_item.candidate_push_down.group_by_item_candidate import GroupByItemCandidateSet
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat, mf_pformat_many
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.model.semantics.linkable_element import LinkableElementProperty
+from metricflow_semantics.query.group_by_item.candidate_push_down.group_by_item_candidate import GroupByItemCandidateSet
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
GroupByItemResolutionNode,
GroupByItemResolutionNodeVisitor,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
MeasureGroupByItemSourceNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
MetricGroupByItemResolutionNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
NoMetricsGroupByItemSourceNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
QueryGroupByItemResolutionNode,
)
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.group_by_item_resolver.invalid_use_of_date_part import MetricExcludesDatePartIssue
-from metricflow.query.issues.group_by_item_resolver.no_common_items import NoCommonItemsInParents
-from metricflow.query.issues.group_by_item_resolver.no_matching_items_for_measure import NoMatchingItemsForMeasure
-from metricflow.query.issues.group_by_item_resolver.no_matching_items_for_no_metrics_query import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.group_by_item_resolver.invalid_use_of_date_part import (
+ MetricExcludesDatePartIssue,
+)
+from metricflow_semantics.query.issues.group_by_item_resolver.no_common_items import NoCommonItemsInParents
+from metricflow_semantics.query.issues.group_by_item_resolver.no_matching_items_for_measure import (
+ NoMatchingItemsForMeasure,
+)
+from metricflow_semantics.query.issues.group_by_item_resolver.no_matching_items_for_no_metrics_query import (
NoMatchingItemsForNoMetricsQuery,
)
-from metricflow.query.issues.group_by_item_resolver.no_parent_candidates import NoParentCandidates
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.issues.group_by_item_resolver.no_parent_candidates import NoParentCandidates
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryResolutionIssueSet,
)
-from metricflow.query.suggestion_generator import QueryItemSuggestionGenerator
-from metricflow.specs.patterns.base_time_grain import BaseTimeGrainPattern
-from metricflow.specs.patterns.none_date_part import NoneDatePartPattern
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.specs import InstanceSpecSet, LinkableInstanceSpec
+from metricflow_semantics.query.suggestion_generator import QueryItemSuggestionGenerator
+from metricflow_semantics.specs.patterns.base_time_grain import BaseTimeGrainPattern
+from metricflow_semantics.specs.patterns.none_date_part import NoneDatePartPattern
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet, LinkableInstanceSpec
logger = logging.getLogger(__name__)
diff --git a/metricflow/query/issues/filter_spec_resolver/__init__.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/__init__.py
similarity index 100%
rename from metricflow/query/issues/filter_spec_resolver/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/__init__.py
diff --git a/metricflow/query/group_by_item/filter_spec_resolution/filter_location.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/filter_location.py
similarity index 100%
rename from metricflow/query/group_by_item/filter_spec_resolution/filter_location.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/filter_location.py
diff --git a/metricflow/query/group_by_item/filter_spec_resolution/filter_pattern_factory.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/filter_pattern_factory.py
similarity index 94%
rename from metricflow/query/group_by_item/filter_spec_resolution/filter_pattern_factory.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/filter_pattern_factory.py
index 49b5ddcd66..22517bae53 100644
--- a/metricflow/query/group_by_item/filter_spec_resolution/filter_pattern_factory.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/filter_pattern_factory.py
@@ -10,8 +10,8 @@
)
from typing_extensions import override
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.patterns.typed_patterns import (
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.patterns.typed_patterns import (
DimensionPattern,
EntityPattern,
GroupByMetricPattern,
diff --git a/metricflow/query/group_by_item/filter_spec_resolution/filter_spec_lookup.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/filter_spec_lookup.py
similarity index 91%
rename from metricflow/query/group_by_item/filter_spec_resolution/filter_spec_lookup.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/filter_spec_lookup.py
index 53badfc7c4..2c6468a5f9 100644
--- a/metricflow/query/group_by_item/filter_spec_resolution/filter_spec_lookup.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/filter_spec_lookup.py
@@ -14,17 +14,17 @@
from dbt_semantic_interfaces.references import MetricReference
from typing_extensions import override
-from metricflow.collection_helpers.merger import Mergeable
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
-from metricflow.query.group_by_item.path_prefixable import PathPrefixable
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
-from metricflow.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.collection_helpers.merger import Mergeable
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
+from metricflow_semantics.query.group_by_item.path_prefixable import PathPrefixable
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
if TYPE_CHECKING:
- from metricflow.specs.specs import LinkableInstanceSpec
+ from metricflow_semantics.specs.spec_classes import LinkableInstanceSpec
logger = logging.getLogger(__name__)
diff --git a/metricflow/query/group_by_item/filter_spec_resolution/filter_spec_resolver.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/filter_spec_resolver.py
similarity index 90%
rename from metricflow/query/group_by_item/filter_spec_resolution/filter_spec_resolver.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/filter_spec_resolver.py
index e8c94cda41..c698ad5c99 100644
--- a/metricflow/query/group_by_item/filter_spec_resolution/filter_spec_resolver.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/filter_spec_resolution/filter_spec_resolver.py
@@ -10,39 +10,41 @@
from dbt_semantic_interfaces.references import EntityReference
from typing_extensions import override
-from metricflow.mf_logging.runtime import log_runtime
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.naming.object_builder_str import ObjectBuilderNameConverter
-from metricflow.query.group_by_item.candidate_push_down.push_down_visitor import DagTraversalPathTracker
-from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
-from metricflow.query.group_by_item.filter_spec_resolution.filter_pattern_factory import WhereFilterPatternFactory
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+from metricflow_semantics.mf_logging.runtime import log_runtime
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.naming.object_builder_str import ObjectBuilderNameConverter
+from metricflow_semantics.query.group_by_item.candidate_push_down.push_down_visitor import DagTraversalPathTracker
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_pattern_factory import (
+ WhereFilterPatternFactory,
+)
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
FilterSpecResolution,
FilterSpecResolutionLookUp,
NonParsableFilterResolution,
PatternAssociationForWhereFilterGroupByItem,
ResolvedSpecLookUpKey,
)
-from metricflow.query.group_by_item.group_by_item_resolver import GroupByItemResolver
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag, ResolutionDagSinkNode
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
+from metricflow_semantics.query.group_by_item.group_by_item_resolver import GroupByItemResolver
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag, ResolutionDagSinkNode
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
GroupByItemResolutionNodeVisitor,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
MeasureGroupByItemSourceNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
MetricGroupByItemResolutionNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
NoMetricsGroupByItemSourceNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
QueryGroupByItemResolutionNode,
)
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.filter_spec_resolver.invalid_where import WhereFilterParsingIssue
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.filter_spec_resolver.invalid_where import WhereFilterParsingIssue
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryResolutionIssueSet,
)
diff --git a/metricflow/query/group_by_item/group_by_item_resolver.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/group_by_item_resolver.py
similarity index 86%
rename from metricflow/query/group_by_item/group_by_item_resolver.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/group_by_item_resolver.py
index 7d05dbe619..e501b2a499 100644
--- a/metricflow/query/group_by_item/group_by_item_resolver.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/group_by_item_resolver.py
@@ -9,25 +9,25 @@
from dbt_semantic_interfaces.references import TimeDimensionReference
from dbt_semantic_interfaces.type_enums import TimeGranularity
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.query.group_by_item.candidate_push_down.push_down_visitor import (
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.query.group_by_item.candidate_push_down.push_down_visitor import (
PushDownResult,
_PushDownGroupByItemCandidatesVisitor,
)
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag, ResolutionDagSinkNode
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.group_by_item_resolver.ambiguous_group_by_item import AmbiguousGroupByItemIssue
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag, ResolutionDagSinkNode
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.group_by_item_resolver.ambiguous_group_by_item import AmbiguousGroupByItemIssue
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryResolutionIssueSet,
)
-from metricflow.query.suggestion_generator import QueryItemSuggestionGenerator
-from metricflow.specs.patterns.base_time_grain import BaseTimeGrainPattern
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.patterns.typed_patterns import TimeDimensionPattern
-from metricflow.specs.specs import LinkableInstanceSpec, LinkableSpecSet
+from metricflow_semantics.query.suggestion_generator import QueryItemSuggestionGenerator
+from metricflow_semantics.specs.patterns.base_time_grain import BaseTimeGrainPattern
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.patterns.typed_patterns import TimeDimensionPattern
+from metricflow_semantics.specs.spec_classes import LinkableInstanceSpec, LinkableSpecSet
logger = logging.getLogger(__name__)
diff --git a/metricflow/query/group_by_item/path_prefixable.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/path_prefixable.py
similarity index 90%
rename from metricflow/query/group_by_item/path_prefixable.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/path_prefixable.py
index 154f5c51c3..3533f42c80 100644
--- a/metricflow/query/group_by_item/path_prefixable.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/path_prefixable.py
@@ -5,7 +5,7 @@
from typing_extensions import TYPE_CHECKING, Self
if TYPE_CHECKING:
- from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+ from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
class PathPrefixable(ABC):
diff --git a/metricflow/query/issues/group_by_item_resolver/__init__.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/__init__.py
similarity index 100%
rename from metricflow/query/issues/group_by_item_resolver/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/__init__.py
diff --git a/metricflow/query/group_by_item/resolution_dag/dag.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/dag.py
similarity index 76%
rename from metricflow/query/group_by_item/resolution_dag/dag.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/dag.py
index f1d34f29a4..70257f7d2d 100644
--- a/metricflow/query/group_by_item/resolution_dag/dag.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/dag.py
@@ -2,13 +2,13 @@
from typing import Union
-from metricflow.dag.id_prefix import StaticIdPrefix
-from metricflow.dag.mf_dag import DagId, MetricFlowDag
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.base_node import GroupByItemResolutionNode
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
+from metricflow_semantics.dag.id_prefix import StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DagId, MetricFlowDag
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.base_node import GroupByItemResolutionNode
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
MetricGroupByItemResolutionNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
QueryGroupByItemResolutionNode,
)
diff --git a/metricflow/query/group_by_item/resolution_dag/dag_builder.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/dag_builder.py
similarity index 87%
rename from metricflow/query/group_by_item/resolution_dag/dag_builder.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/dag_builder.py
index e92950e014..c161722907 100644
--- a/metricflow/query/group_by_item/resolution_dag/dag_builder.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/dag_builder.py
@@ -8,19 +8,19 @@
from dbt_semantic_interfaces.references import MeasureReference, MetricReference
from dbt_semantic_interfaces.type_enums import MetricType
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
-from metricflow.query.group_by_item.resolution_dag.input_metric_location import InputMetricDefinitionLocation
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
+from metricflow_semantics.query.group_by_item.resolution_dag.input_metric_location import InputMetricDefinitionLocation
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
MeasureGroupByItemSourceNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
MetricGroupByItemResolutionNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
NoMetricsGroupByItemSourceNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
QueryGroupByItemResolutionNode,
)
diff --git a/metricflow/query/group_by_item/resolution_dag/input_metric_location.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/input_metric_location.py
similarity index 92%
rename from metricflow/query/group_by_item/resolution_dag/input_metric_location.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/input_metric_location.py
index e017756ca8..be4611a56c 100644
--- a/metricflow/query/group_by_item/resolution_dag/input_metric_location.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/input_metric_location.py
@@ -5,7 +5,7 @@
from dbt_semantic_interfaces.protocols import MetricInput
from dbt_semantic_interfaces.references import MetricReference
-from metricflow.model.semantics.metric_lookup import MetricLookup
+from metricflow_semantics.model.semantics.metric_lookup import MetricLookup
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/parsing/__init__.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/__init__.py
similarity index 100%
rename from metricflow/query/issues/parsing/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/__init__.py
diff --git a/metricflow/query/group_by_item/resolution_dag/resolution_nodes/base_node.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/base_node.py
similarity index 77%
rename from metricflow/query/group_by_item/resolution_dag/resolution_nodes/base_node.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/base_node.py
index 1b249675a1..ac3fef5c31 100644
--- a/metricflow/query/group_by_item/resolution_dag/resolution_nodes/base_node.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/base_node.py
@@ -3,20 +3,20 @@
from abc import ABC, abstractmethod
from typing import TYPE_CHECKING, Generic, Sequence
-from metricflow.dag.mf_dag import DagNode, NodeId
-from metricflow.visitor import Visitable, VisitorOutputT
+from metricflow_semantics.dag.mf_dag import DagNode, NodeId
+from metricflow_semantics.visitor import Visitable, VisitorOutputT
if TYPE_CHECKING:
- from metricflow.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
+ from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
MeasureGroupByItemSourceNode,
)
- from metricflow.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
+ from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
MetricGroupByItemResolutionNode,
)
- from metricflow.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
+ from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
NoMetricsGroupByItemSourceNode,
)
- from metricflow.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
+ from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
QueryGroupByItemResolutionNode,
)
diff --git a/metricflow/query/group_by_item/resolution_dag/resolution_nodes/measure_source_node.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/measure_source_node.py
similarity index 88%
rename from metricflow/query/group_by_item/resolution_dag/resolution_nodes/measure_source_node.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/measure_source_node.py
index 91a7518064..34502b4adb 100644
--- a/metricflow/query/group_by_item/resolution_dag/resolution_nodes/measure_source_node.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/measure_source_node.py
@@ -5,13 +5,13 @@
from dbt_semantic_interfaces.references import MeasureReference, MetricReference
from typing_extensions import override
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
GroupByItemResolutionNode,
GroupByItemResolutionNodeVisitor,
)
-from metricflow.visitor import VisitorOutputT
+from metricflow_semantics.visitor import VisitorOutputT
class MeasureGroupByItemSourceNode(GroupByItemResolutionNode):
diff --git a/metricflow/query/group_by_item/resolution_dag/resolution_nodes/metric_resolution_node.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/metric_resolution_node.py
similarity index 84%
rename from metricflow/query/group_by_item/resolution_dag/resolution_nodes/metric_resolution_node.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/metric_resolution_node.py
index 14cf6d121b..914cc69946 100644
--- a/metricflow/query/group_by_item/resolution_dag/resolution_nodes/metric_resolution_node.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/metric_resolution_node.py
@@ -5,17 +5,17 @@
from dbt_semantic_interfaces.references import MetricReference
from typing_extensions import Self, override
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
-from metricflow.query.group_by_item.resolution_dag.input_metric_location import InputMetricDefinitionLocation
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.query.group_by_item.resolution_dag.input_metric_location import InputMetricDefinitionLocation
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
GroupByItemResolutionNode,
GroupByItemResolutionNodeVisitor,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
MeasureGroupByItemSourceNode,
)
-from metricflow.visitor import VisitorOutputT
+from metricflow_semantics.visitor import VisitorOutputT
class MetricGroupByItemResolutionNode(GroupByItemResolutionNode):
diff --git a/metricflow/query/group_by_item/resolution_dag/resolution_nodes/no_metrics_query_source_node.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/no_metrics_query_source_node.py
similarity index 76%
rename from metricflow/query/group_by_item/resolution_dag/resolution_nodes/no_metrics_query_source_node.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/no_metrics_query_source_node.py
index 93e9055dd5..d1ba72470a 100644
--- a/metricflow/query/group_by_item/resolution_dag/resolution_nodes/no_metrics_query_source_node.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/no_metrics_query_source_node.py
@@ -4,15 +4,15 @@
from typing_extensions import override
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
GroupByItemResolutionNode,
GroupByItemResolutionNodeVisitor,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
MetricGroupByItemResolutionNode,
)
-from metricflow.visitor import VisitorOutputT
+from metricflow_semantics.visitor import VisitorOutputT
class NoMetricsGroupByItemSourceNode(GroupByItemResolutionNode):
diff --git a/metricflow/query/group_by_item/resolution_dag/resolution_nodes/query_resolution_node.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/query_resolution_node.py
similarity index 85%
rename from metricflow/query/group_by_item/resolution_dag/resolution_nodes/query_resolution_node.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/query_resolution_node.py
index 5b0f1e277d..684da6a2d6 100644
--- a/metricflow/query/group_by_item/resolution_dag/resolution_nodes/query_resolution_node.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_dag/resolution_nodes/query_resolution_node.py
@@ -6,19 +6,19 @@
from dbt_semantic_interfaces.references import MetricReference
from typing_extensions import override
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
GroupByItemResolutionNode,
GroupByItemResolutionNodeVisitor,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
MetricGroupByItemResolutionNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
NoMetricsGroupByItemSourceNode,
)
-from metricflow.visitor import VisitorOutputT
+from metricflow_semantics.visitor import VisitorOutputT
class QueryGroupByItemResolutionNode(GroupByItemResolutionNode):
diff --git a/metricflow/query/group_by_item/resolution_path.py b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_path.py
similarity index 87%
rename from metricflow/query/group_by_item/resolution_path.py
rename to metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_path.py
index 6967e0ec60..cc8dc2c4ef 100644
--- a/metricflow/query/group_by_item/resolution_path.py
+++ b/metricflow-semantics/metricflow_semantics/query/group_by_item/resolution_path.py
@@ -5,9 +5,9 @@
from typing_extensions import override
-from metricflow.mf_logging.formatting import indent
-from metricflow.query.group_by_item.path_prefixable import PathPrefixable
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.base_node import GroupByItemResolutionNode
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.query.group_by_item.path_prefixable import PathPrefixable
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.base_node import GroupByItemResolutionNode
@dataclass(frozen=True)
diff --git a/metricflow/query/resolver_inputs/__init__.py b/metricflow-semantics/metricflow_semantics/query/issues/__init__.py
similarity index 100%
rename from metricflow/query/resolver_inputs/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/issues/__init__.py
diff --git a/metricflow/query/validation_rules/__init__.py b/metricflow-semantics/metricflow_semantics/query/issues/filter_spec_resolver/__init__.py
similarity index 100%
rename from metricflow/query/validation_rules/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/issues/filter_spec_resolver/__init__.py
diff --git a/metricflow/query/issues/filter_spec_resolver/invalid_where.py b/metricflow-semantics/metricflow_semantics/query/issues/filter_spec_resolver/invalid_where.py
similarity index 85%
rename from metricflow/query/issues/filter_spec_resolver/invalid_where.py
rename to metricflow-semantics/metricflow_semantics/query/issues/filter_spec_resolver/invalid_where.py
index dc088f07b9..d0ca769b80 100644
--- a/metricflow/query/issues/filter_spec_resolver/invalid_where.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/filter_spec_resolver/invalid_where.py
@@ -6,13 +6,13 @@
from dbt_semantic_interfaces.protocols import WhereFilter
from typing_extensions import override
-from metricflow.mf_logging.formatting import indent
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/specs/__init__.py b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/__init__.py
similarity index 100%
rename from metricflow/specs/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/__init__.py
diff --git a/metricflow/query/issues/group_by_item_resolver/ambiguous_group_by_item.py b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/ambiguous_group_by_item.py
similarity index 77%
rename from metricflow/query/issues/group_by_item_resolver/ambiguous_group_by_item.py
rename to metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/ambiguous_group_by_item.py
index 35522ae621..7b95b58857 100644
--- a/metricflow/query/issues/group_by_item_resolver/ambiguous_group_by_item.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/ambiguous_group_by_item.py
@@ -5,16 +5,16 @@
from typing_extensions import override
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.query.group_by_item.candidate_push_down.group_by_item_candidate import GroupByItemCandidateSet
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.query.group_by_item.candidate_push_down.group_by_item_candidate import GroupByItemCandidateSet
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/group_by_item_resolver/invalid_use_of_date_part.py b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/invalid_use_of_date_part.py
similarity index 85%
rename from metricflow/query/issues/group_by_item_resolver/invalid_use_of_date_part.py
rename to metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/invalid_use_of_date_part.py
index 5826dd13f4..a53f178efe 100644
--- a/metricflow/query/issues/group_by_item_resolver/invalid_use_of_date_part.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/invalid_use_of_date_part.py
@@ -5,14 +5,14 @@
from typing_extensions import override
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
-from metricflow.specs.specs import LinkableInstanceSpec
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.specs.spec_classes import LinkableInstanceSpec
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/group_by_item_resolver/multiple_join_paths.py b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/multiple_join_paths.py
similarity index 79%
rename from metricflow/query/issues/group_by_item_resolver/multiple_join_paths.py
rename to metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/multiple_join_paths.py
index c989fdbd84..2a0bcaebeb 100644
--- a/metricflow/query/issues/group_by_item_resolver/multiple_join_paths.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/multiple_join_paths.py
@@ -5,16 +5,16 @@
from typing_extensions import override
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.query.group_by_item.candidate_push_down.group_by_item_candidate import GroupByItemCandidateSet
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.query.group_by_item.candidate_push_down.group_by_item_candidate import GroupByItemCandidateSet
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/group_by_item_resolver/no_common_items.py b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_common_items.py
similarity index 84%
rename from metricflow/query/issues/group_by_item_resolver/no_common_items.py
rename to metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_common_items.py
index 475acd9ce9..138d5ddfd6 100644
--- a/metricflow/query/issues/group_by_item_resolver/no_common_items.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_common_items.py
@@ -5,17 +5,17 @@
from typing_extensions import override
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.query.group_by_item.candidate_push_down.group_by_item_candidate import GroupByItemCandidateSet
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.base_node import GroupByItemResolutionNode
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.query.group_by_item.candidate_push_down.group_by_item_candidate import GroupByItemCandidateSet
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.base_node import GroupByItemResolutionNode
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/group_by_item_resolver/no_matching_items_for_measure.py b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_matching_items_for_measure.py
similarity index 85%
rename from metricflow/query/issues/group_by_item_resolver/no_matching_items_for_measure.py
rename to metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_matching_items_for_measure.py
index 9513cb0d55..8abab4bbf9 100644
--- a/metricflow/query/issues/group_by_item_resolver/no_matching_items_for_measure.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_matching_items_for_measure.py
@@ -6,14 +6,14 @@
from typing_extensions import override
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
logger = logging.getLogger(__name__)
diff --git a/metricflow/query/issues/group_by_item_resolver/no_matching_items_for_no_metrics_query.py b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_matching_items_for_no_metrics_query.py
similarity index 86%
rename from metricflow/query/issues/group_by_item_resolver/no_matching_items_for_no_metrics_query.py
rename to metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_matching_items_for_no_metrics_query.py
index 1a03d17b8e..5e5f12c905 100644
--- a/metricflow/query/issues/group_by_item_resolver/no_matching_items_for_no_metrics_query.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_matching_items_for_no_metrics_query.py
@@ -5,12 +5,12 @@
from typing_extensions import override
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/group_by_item_resolver/no_parent_candidates.py b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_parent_candidates.py
similarity index 88%
rename from metricflow/query/issues/group_by_item_resolver/no_parent_candidates.py
rename to metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_parent_candidates.py
index 641a378a23..74a213ee97 100644
--- a/metricflow/query/issues/group_by_item_resolver/no_parent_candidates.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/group_by_item_resolver/no_parent_candidates.py
@@ -4,12 +4,12 @@
from typing_extensions import override
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/issues_base.py b/metricflow-semantics/metricflow_semantics/query/issues/issues_base.py
similarity index 90%
rename from metricflow/query/issues/issues_base.py
rename to metricflow-semantics/metricflow_semantics/query/issues/issues_base.py
index 34276057bb..67be8fe6e4 100644
--- a/metricflow/query/issues/issues_base.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/issues_base.py
@@ -7,10 +7,10 @@
from typing_extensions import override
-from metricflow.collection_helpers.merger import Mergeable
-from metricflow.query.group_by_item.path_prefixable import PathPrefixable
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.collection_helpers.merger import Mergeable
+from metricflow_semantics.query.group_by_item.path_prefixable import PathPrefixable
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
class MetricFlowQueryIssueType(Enum):
diff --git a/metricflow/specs/patterns/__init__.py b/metricflow-semantics/metricflow_semantics/query/issues/parsing/__init__.py
similarity index 100%
rename from metricflow/specs/patterns/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/issues/parsing/__init__.py
diff --git a/metricflow/query/issues/parsing/cumulative_metric_requires_metric_time.py b/metricflow-semantics/metricflow_semantics/query/issues/parsing/cumulative_metric_requires_metric_time.py
similarity index 87%
rename from metricflow/query/issues/parsing/cumulative_metric_requires_metric_time.py
rename to metricflow-semantics/metricflow_semantics/query/issues/parsing/cumulative_metric_requires_metric_time.py
index 183977fed2..84bb9e3eb0 100644
--- a/metricflow/query/issues/parsing/cumulative_metric_requires_metric_time.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/parsing/cumulative_metric_requires_metric_time.py
@@ -6,12 +6,12 @@
from dbt_semantic_interfaces.references import MetricReference
from typing_extensions import override
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/parsing/duplicate_metric.py b/metricflow-semantics/metricflow_semantics/query/issues/parsing/duplicate_metric.py
similarity index 86%
rename from metricflow/query/issues/parsing/duplicate_metric.py
rename to metricflow-semantics/metricflow_semantics/query/issues/parsing/duplicate_metric.py
index 62b1c0b008..39c8763608 100644
--- a/metricflow/query/issues/parsing/duplicate_metric.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/parsing/duplicate_metric.py
@@ -6,12 +6,12 @@
from dbt_semantic_interfaces.references import MetricReference
from typing_extensions import override
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/parsing/invalid_limit.py b/metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_limit.py
similarity index 83%
rename from metricflow/query/issues/parsing/invalid_limit.py
rename to metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_limit.py
index 60f876290c..0ade37aa8e 100644
--- a/metricflow/query/issues/parsing/invalid_limit.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_limit.py
@@ -4,12 +4,12 @@
from typing_extensions import override
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/parsing/invalid_metric.py b/metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_metric.py
similarity index 80%
rename from metricflow/query/issues/parsing/invalid_metric.py
rename to metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_metric.py
index c3c6e13ffc..8447b6885b 100644
--- a/metricflow/query/issues/parsing/invalid_metric.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_metric.py
@@ -5,14 +5,14 @@
from typing_extensions import override
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/parsing/invalid_min_max_only.py b/metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_min_max_only.py
similarity index 84%
rename from metricflow/query/issues/parsing/invalid_min_max_only.py
rename to metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_min_max_only.py
index 2b9665570f..252b049fd6 100644
--- a/metricflow/query/issues/parsing/invalid_min_max_only.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_min_max_only.py
@@ -4,12 +4,12 @@
from typing_extensions import override
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/parsing/invalid_order.py b/metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_order.py
similarity index 82%
rename from metricflow/query/issues/parsing/invalid_order.py
rename to metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_order.py
index 28483e49c5..e5c303a251 100644
--- a/metricflow/query/issues/parsing/invalid_order.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/parsing/invalid_order.py
@@ -4,13 +4,13 @@
from typing_extensions import override
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
-from metricflow.query.resolver_inputs.query_resolver_inputs import (
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.query_resolver_inputs import (
ResolverInputForOrderByItem,
)
diff --git a/metricflow/query/issues/parsing/no_metric_or_group_by.py b/metricflow-semantics/metricflow_semantics/query/issues/parsing/no_metric_or_group_by.py
similarity index 80%
rename from metricflow/query/issues/parsing/no_metric_or_group_by.py
rename to metricflow-semantics/metricflow_semantics/query/issues/parsing/no_metric_or_group_by.py
index d7655a8b1d..f80f638eb1 100644
--- a/metricflow/query/issues/parsing/no_metric_or_group_by.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/parsing/no_metric_or_group_by.py
@@ -4,13 +4,13 @@
from typing_extensions import override
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
-from metricflow.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/parsing/offset_metric_requires_metric_time.py b/metricflow-semantics/metricflow_semantics/query/issues/parsing/offset_metric_requires_metric_time.py
similarity index 89%
rename from metricflow/query/issues/parsing/offset_metric_requires_metric_time.py
rename to metricflow-semantics/metricflow_semantics/query/issues/parsing/offset_metric_requires_metric_time.py
index f5db96a349..969e9b2dea 100644
--- a/metricflow/query/issues/parsing/offset_metric_requires_metric_time.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/parsing/offset_metric_requires_metric_time.py
@@ -8,12 +8,12 @@
from dbt_semantic_interfaces.references import MetricReference
from typing_extensions import override
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/issues/parsing/string_input_parsing_issue.py b/metricflow-semantics/metricflow_semantics/query/issues/parsing/string_input_parsing_issue.py
similarity index 83%
rename from metricflow/query/issues/parsing/string_input_parsing_issue.py
rename to metricflow-semantics/metricflow_semantics/query/issues/parsing/string_input_parsing_issue.py
index 9a1a4c65b3..29e3f9aad2 100644
--- a/metricflow/query/issues/parsing/string_input_parsing_issue.py
+++ b/metricflow-semantics/metricflow_semantics/query/issues/parsing/string_input_parsing_issue.py
@@ -4,12 +4,12 @@
from typing_extensions import override
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryIssueType,
MetricFlowQueryResolutionIssue,
)
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
@dataclass(frozen=True)
diff --git a/metricflow/query/query_exceptions.py b/metricflow-semantics/metricflow_semantics/query/query_exceptions.py
similarity index 100%
rename from metricflow/query/query_exceptions.py
rename to metricflow-semantics/metricflow_semantics/query/query_exceptions.py
diff --git a/metricflow/query/query_parser.py b/metricflow-semantics/metricflow_semantics/query/query_parser.py
similarity index 90%
rename from metricflow/query/query_parser.py
rename to metricflow-semantics/metricflow_semantics/query/query_parser.py
index 75dcd34ee2..63486319ce 100644
--- a/metricflow/query/query_parser.py
+++ b/metricflow-semantics/metricflow_semantics/query/query_parser.py
@@ -13,35 +13,35 @@
from dbt_semantic_interfaces.protocols.where_filter import WhereFilter
from dbt_semantic_interfaces.type_enums import TimeGranularity
-from metricflow.assert_one_arg import assert_at_most_one_arg_set
-from metricflow.filters.merge_where import merge_to_single_where_filter
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.mf_logging.runtime import log_runtime
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.naming.dunder_scheme import DunderNamingScheme
-from metricflow.naming.metric_scheme import MetricNamingScheme
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.protocols.query_parameter import (
+from metricflow_semantics.assert_one_arg import assert_at_most_one_arg_set
+from metricflow_semantics.filters.merge_where import merge_to_single_where_filter
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.mf_logging.runtime import log_runtime
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.naming.dunder_scheme import DunderNamingScheme
+from metricflow_semantics.naming.metric_scheme import MetricNamingScheme
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.protocols.query_parameter import (
GroupByParameter,
MetricQueryParameter,
OrderByQueryParameter,
SavedQueryParameter,
)
-from metricflow.query.group_by_item.filter_spec_resolution.filter_pattern_factory import (
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_pattern_factory import (
DefaultWhereFilterPatternFactory,
WhereFilterPatternFactory,
)
-from metricflow.query.group_by_item.group_by_item_resolver import GroupByItemResolver
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
-from metricflow.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
-from metricflow.query.issues.parsing.string_input_parsing_issue import StringInputParsingIssue
-from metricflow.query.query_exceptions import InvalidQueryException
-from metricflow.query.query_resolution import InputToIssueSetMapping, InputToIssueSetMappingItem
-from metricflow.query.query_resolver import MetricFlowQueryResolver
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
-from metricflow.query.resolver_inputs.query_resolver_inputs import (
+from metricflow_semantics.query.group_by_item.group_by_item_resolver import GroupByItemResolver
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
+from metricflow_semantics.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
+from metricflow_semantics.query.issues.parsing.string_input_parsing_issue import StringInputParsingIssue
+from metricflow_semantics.query.query_exceptions import InvalidQueryException
+from metricflow_semantics.query.query_resolution import InputToIssueSetMapping, InputToIssueSetMappingItem
+from metricflow_semantics.query.query_resolver import MetricFlowQueryResolver
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.query.resolver_inputs.query_resolver_inputs import (
InvalidStringInput,
ResolverInputForGroupByItem,
ResolverInputForLimit,
@@ -51,16 +51,16 @@
ResolverInputForQuery,
ResolverInputForQueryLevelWhereFilterIntersection,
)
-from metricflow.specs.patterns.base_time_grain import BaseTimeGrainPattern
-from metricflow.specs.patterns.metric_time_pattern import MetricTimePattern
-from metricflow.specs.patterns.none_date_part import NoneDatePartPattern
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.patterns.base_time_grain import BaseTimeGrainPattern
+from metricflow_semantics.specs.patterns.metric_time_pattern import MetricTimePattern
+from metricflow_semantics.specs.patterns.none_date_part import NoneDatePartPattern
+from metricflow_semantics.specs.spec_classes import (
InstanceSpec,
InstanceSpecSet,
MetricFlowQuerySpec,
TimeDimensionSpec,
)
-from metricflow.time.time_granularity import (
+from metricflow_semantics.time.time_granularity import (
adjust_to_end_of_period,
adjust_to_start_of_period,
is_period_end,
diff --git a/metricflow/query/query_resolution.py b/metricflow-semantics/metricflow_semantics/query/query_resolution.py
similarity index 83%
rename from metricflow/query/query_resolution.py
rename to metricflow-semantics/metricflow_semantics/query/query_resolution.py
index c15e3ef839..f715c048fd 100644
--- a/metricflow/query/query_resolution.py
+++ b/metricflow-semantics/metricflow_semantics/query/query_resolution.py
@@ -5,13 +5,15 @@
from typing_extensions import override
-from metricflow.collection_helpers.merger import Mergeable
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import FilterSpecResolutionLookUp
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
-from metricflow.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
-from metricflow.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
-from metricflow.specs.specs import MetricFlowQuerySpec
+from metricflow_semantics.collection_helpers.merger import Mergeable
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+ FilterSpecResolutionLookUp,
+)
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
+from metricflow_semantics.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import MetricFlowQueryResolverInput
+from metricflow_semantics.specs.spec_classes import MetricFlowQuerySpec
@dataclass(frozen=True)
diff --git a/metricflow/query/query_resolver.py b/metricflow-semantics/metricflow_semantics/query/query_resolver.py
similarity index 91%
rename from metricflow/query/query_resolver.py
rename to metricflow-semantics/metricflow_semantics/query/query_resolver.py
index 15ea3fb34c..45f4e0ff39 100644
--- a/metricflow/query/query_resolver.py
+++ b/metricflow-semantics/metricflow_semantics/query/query_resolver.py
@@ -6,36 +6,40 @@
from dbt_semantic_interfaces.references import MetricReference
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.mf_logging.runtime import log_runtime
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.naming.metric_scheme import MetricNamingScheme
-from metricflow.query.group_by_item.filter_spec_resolution.filter_pattern_factory import WhereFilterPatternFactory
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import FilterSpecResolutionLookUp
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_resolver import (
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.mf_logging.runtime import log_runtime
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.naming.metric_scheme import MetricNamingScheme
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_pattern_factory import (
+ WhereFilterPatternFactory,
+)
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+ FilterSpecResolutionLookUp,
+)
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_resolver import (
WhereFilterSpecResolver,
)
-from metricflow.query.group_by_item.group_by_item_resolver import GroupByItemResolution, GroupByItemResolver
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
-from metricflow.query.group_by_item.resolution_dag.dag_builder import GroupByItemResolutionDagBuilder
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
+from metricflow_semantics.query.group_by_item.group_by_item_resolver import GroupByItemResolution, GroupByItemResolver
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
+from metricflow_semantics.query.group_by_item.resolution_dag.dag_builder import GroupByItemResolutionDagBuilder
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
QueryGroupByItemResolutionNode,
)
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import (
MetricFlowQueryResolutionIssueSet,
)
-from metricflow.query.issues.parsing.invalid_limit import InvalidLimitIssue
-from metricflow.query.issues.parsing.invalid_metric import InvalidMetricIssue
-from metricflow.query.issues.parsing.invalid_min_max_only import InvalidMinMaxOnlyIssue
-from metricflow.query.issues.parsing.invalid_order import InvalidOrderByItemIssue
-from metricflow.query.issues.parsing.no_metric_or_group_by import NoMetricOrGroupByIssue
-from metricflow.query.query_resolution import (
+from metricflow_semantics.query.issues.parsing.invalid_limit import InvalidLimitIssue
+from metricflow_semantics.query.issues.parsing.invalid_metric import InvalidMetricIssue
+from metricflow_semantics.query.issues.parsing.invalid_min_max_only import InvalidMinMaxOnlyIssue
+from metricflow_semantics.query.issues.parsing.invalid_order import InvalidOrderByItemIssue
+from metricflow_semantics.query.issues.parsing.no_metric_or_group_by import NoMetricOrGroupByIssue
+from metricflow_semantics.query.query_resolution import (
InputToIssueSetMapping,
InputToIssueSetMappingItem,
MetricFlowQueryResolution,
)
-from metricflow.query.resolver_inputs.query_resolver_inputs import (
+from metricflow_semantics.query.resolver_inputs.query_resolver_inputs import (
ResolverInputForGroupByItem,
ResolverInputForLimit,
ResolverInputForMetric,
@@ -45,10 +49,10 @@
ResolverInputForQueryLevelWhereFilterIntersection,
ResolverInputForWhereFilterIntersection,
)
-from metricflow.query.suggestion_generator import QueryItemSuggestionGenerator
-from metricflow.query.validation_rules.query_validator import PostResolutionQueryValidator
-from metricflow.specs.patterns.match_list_pattern import MatchListSpecPattern
-from metricflow.specs.specs import (
+from metricflow_semantics.query.suggestion_generator import QueryItemSuggestionGenerator
+from metricflow_semantics.query.validation_rules.query_validator import PostResolutionQueryValidator
+from metricflow_semantics.specs.patterns.match_list_pattern import MatchListSpecPattern
+from metricflow_semantics.specs.spec_classes import (
InstanceSpec,
LinkableInstanceSpec,
LinkableSpecSet,
diff --git a/metricflow/time/__init__.py b/metricflow-semantics/metricflow_semantics/query/resolver_inputs/__init__.py
similarity index 100%
rename from metricflow/time/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/resolver_inputs/__init__.py
diff --git a/metricflow/query/resolver_inputs/base_resolver_inputs.py b/metricflow-semantics/metricflow_semantics/query/resolver_inputs/base_resolver_inputs.py
similarity index 89%
rename from metricflow/query/resolver_inputs/base_resolver_inputs.py
rename to metricflow-semantics/metricflow_semantics/query/resolver_inputs/base_resolver_inputs.py
index 6a46956ad3..ee6308ed2a 100644
--- a/metricflow/query/resolver_inputs/base_resolver_inputs.py
+++ b/metricflow-semantics/metricflow_semantics/query/resolver_inputs/base_resolver_inputs.py
@@ -4,8 +4,8 @@
from dataclasses import dataclass
from typing import Optional
-from metricflow.naming.naming_scheme import QueryItemNamingScheme
-from metricflow.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.naming.naming_scheme import QueryItemNamingScheme
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
@dataclass(frozen=True)
diff --git a/metricflow/query/resolver_inputs/query_resolver_inputs.py b/metricflow-semantics/metricflow_semantics/query/resolver_inputs/query_resolver_inputs.py
similarity index 89%
rename from metricflow/query/resolver_inputs/query_resolver_inputs.py
rename to metricflow-semantics/metricflow_semantics/query/resolver_inputs/query_resolver_inputs.py
index d775f03965..45a02b49b3 100644
--- a/metricflow/query/resolver_inputs/query_resolver_inputs.py
+++ b/metricflow-semantics/metricflow_semantics/query/resolver_inputs/query_resolver_inputs.py
@@ -11,15 +11,18 @@
from dbt_semantic_interfaces.protocols import WhereFilterIntersection
from typing_extensions import override
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.naming.metric_scheme import MetricNamingScheme
-from metricflow.naming.naming_scheme import QueryItemNamingScheme
-from metricflow.protocols.query_parameter import GroupByParameter, MetricQueryParameter, OrderByQueryParameter
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.resolver_inputs.base_resolver_inputs import InputPatternDescription, MetricFlowQueryResolverInput
-from metricflow.specs.patterns.metric_pattern import MetricSpecPattern
-from metricflow.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.naming.metric_scheme import MetricNamingScheme
+from metricflow_semantics.naming.naming_scheme import QueryItemNamingScheme
+from metricflow_semantics.protocols.query_parameter import GroupByParameter, MetricQueryParameter, OrderByQueryParameter
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.resolver_inputs.base_resolver_inputs import (
+ InputPatternDescription,
+ MetricFlowQueryResolverInput,
+)
+from metricflow_semantics.specs.patterns.metric_pattern import MetricSpecPattern
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
@dataclass(frozen=True)
diff --git a/metricflow/query/similarity.py b/metricflow-semantics/metricflow_semantics/query/similarity.py
similarity index 100%
rename from metricflow/query/similarity.py
rename to metricflow-semantics/metricflow_semantics/query/similarity.py
diff --git a/metricflow/query/suggestion_generator.py b/metricflow-semantics/metricflow_semantics/query/suggestion_generator.py
similarity index 83%
rename from metricflow/query/suggestion_generator.py
rename to metricflow-semantics/metricflow_semantics/query/suggestion_generator.py
index ed1d06918c..f89784ced7 100644
--- a/metricflow/query/suggestion_generator.py
+++ b/metricflow-semantics/metricflow_semantics/query/suggestion_generator.py
@@ -3,12 +3,12 @@
import logging
from typing import Sequence, Tuple
-from metricflow.naming.naming_scheme import QueryItemNamingScheme
-from metricflow.query.similarity import top_fuzzy_matches
-from metricflow.specs.patterns.base_time_grain import BaseTimeGrainPattern
-from metricflow.specs.patterns.none_date_part import NoneDatePartPattern
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.specs import InstanceSpec
+from metricflow_semantics.naming.naming_scheme import QueryItemNamingScheme
+from metricflow_semantics.query.similarity import top_fuzzy_matches
+from metricflow_semantics.specs.patterns.base_time_grain import BaseTimeGrainPattern
+from metricflow_semantics.specs.patterns.none_date_part import NoneDatePartPattern
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.spec_classes import InstanceSpec
logger = logging.getLogger(__name__)
diff --git a/tests/__init__.py b/metricflow-semantics/metricflow_semantics/query/validation_rules/__init__.py
similarity index 100%
rename from tests/__init__.py
rename to metricflow-semantics/metricflow_semantics/query/validation_rules/__init__.py
diff --git a/metricflow/query/validation_rules/base_validation_rule.py b/metricflow-semantics/metricflow_semantics/query/validation_rules/base_validation_rule.py
similarity index 81%
rename from metricflow/query/validation_rules/base_validation_rule.py
rename to metricflow-semantics/metricflow_semantics/query/validation_rules/base_validation_rule.py
index 3f2186e878..abfc9ab42f 100644
--- a/metricflow/query/validation_rules/base_validation_rule.py
+++ b/metricflow-semantics/metricflow_semantics/query/validation_rules/base_validation_rule.py
@@ -6,10 +6,10 @@
from dbt_semantic_interfaces.protocols import Metric, WhereFilterIntersection
from dbt_semantic_interfaces.references import MetricReference
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
-from metricflow.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
+from metricflow_semantics.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
class PostResolutionQueryValidationRule(ABC):
diff --git a/metricflow/query/validation_rules/duplicate_metric.py b/metricflow-semantics/metricflow_semantics/query/validation_rules/duplicate_metric.py
similarity index 76%
rename from metricflow/query/validation_rules/duplicate_metric.py
rename to metricflow-semantics/metricflow_semantics/query/validation_rules/duplicate_metric.py
index 923968016c..7a595f4be6 100644
--- a/metricflow/query/validation_rules/duplicate_metric.py
+++ b/metricflow-semantics/metricflow_semantics/query/validation_rules/duplicate_metric.py
@@ -7,12 +7,12 @@
from dbt_semantic_interfaces.references import MetricReference
from typing_extensions import override
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
-from metricflow.query.issues.parsing.duplicate_metric import DuplicateMetricIssue
-from metricflow.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
-from metricflow.query.validation_rules.base_validation_rule import PostResolutionQueryValidationRule
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
+from metricflow_semantics.query.issues.parsing.duplicate_metric import DuplicateMetricIssue
+from metricflow_semantics.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
+from metricflow_semantics.query.validation_rules.base_validation_rule import PostResolutionQueryValidationRule
logger = logging.getLogger(__name__)
diff --git a/metricflow/query/validation_rules/metric_time_requirements.py b/metricflow-semantics/metricflow_semantics/query/validation_rules/metric_time_requirements.py
similarity index 85%
rename from metricflow/query/validation_rules/metric_time_requirements.py
rename to metricflow-semantics/metricflow_semantics/query/validation_rules/metric_time_requirements.py
index ab8394a6a0..794fa2c769 100644
--- a/metricflow/query/validation_rules/metric_time_requirements.py
+++ b/metricflow-semantics/metricflow_semantics/query/validation_rules/metric_time_requirements.py
@@ -9,16 +9,18 @@
from dbt_semantic_interfaces.type_enums import MetricType
from typing_extensions import override
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
-from metricflow.query.issues.parsing.cumulative_metric_requires_metric_time import (
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
+from metricflow_semantics.query.issues.parsing.cumulative_metric_requires_metric_time import (
CumulativeMetricRequiresMetricTimeIssue,
)
-from metricflow.query.issues.parsing.offset_metric_requires_metric_time import OffsetMetricRequiresMetricTimeIssue
-from metricflow.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
-from metricflow.query.validation_rules.base_validation_rule import PostResolutionQueryValidationRule
-from metricflow.specs.specs import TimeDimensionSpec
+from metricflow_semantics.query.issues.parsing.offset_metric_requires_metric_time import (
+ OffsetMetricRequiresMetricTimeIssue,
+)
+from metricflow_semantics.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
+from metricflow_semantics.query.validation_rules.base_validation_rule import PostResolutionQueryValidationRule
+from metricflow_semantics.specs.spec_classes import TimeDimensionSpec
class MetricTimeQueryValidationRule(PostResolutionQueryValidationRule):
diff --git a/metricflow/query/validation_rules/query_validator.py b/metricflow-semantics/metricflow_semantics/query/validation_rules/query_validator.py
similarity index 75%
rename from metricflow/query/validation_rules/query_validator.py
rename to metricflow-semantics/metricflow_semantics/query/validation_rules/query_validator.py
index de87b2038e..2885ed0c74 100644
--- a/metricflow/query/validation_rules/query_validator.py
+++ b/metricflow-semantics/metricflow_semantics/query/validation_rules/query_validator.py
@@ -4,30 +4,30 @@
from typing_extensions import override
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.query.group_by_item.candidate_push_down.push_down_visitor import DagTraversalPathTracker
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.group_by_item.candidate_push_down.push_down_visitor import DagTraversalPathTracker
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.base_node import (
GroupByItemResolutionNode,
GroupByItemResolutionNodeVisitor,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.measure_source_node import (
MeasureGroupByItemSourceNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
MetricGroupByItemResolutionNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.no_metrics_query_source_node import (
NoMetricsGroupByItemSourceNode,
)
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.query_resolution_node import (
QueryGroupByItemResolutionNode,
)
-from metricflow.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
-from metricflow.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
-from metricflow.query.validation_rules.base_validation_rule import PostResolutionQueryValidationRule
-from metricflow.query.validation_rules.duplicate_metric import DuplicateMetricValidationRule
-from metricflow.query.validation_rules.metric_time_requirements import MetricTimeQueryValidationRule
+from metricflow_semantics.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
+from metricflow_semantics.query.resolver_inputs.query_resolver_inputs import ResolverInputForQuery
+from metricflow_semantics.query.validation_rules.base_validation_rule import PostResolutionQueryValidationRule
+from metricflow_semantics.query.validation_rules.duplicate_metric import DuplicateMetricValidationRule
+from metricflow_semantics.query.validation_rules.metric_time_requirements import MetricTimeQueryValidationRule
class PostResolutionQueryValidator:
diff --git a/metricflow/random_id.py b/metricflow-semantics/metricflow_semantics/random_id.py
similarity index 100%
rename from metricflow/random_id.py
rename to metricflow-semantics/metricflow_semantics/random_id.py
diff --git a/tests/cli/__init__.py b/metricflow-semantics/metricflow_semantics/specs/__init__.py
similarity index 100%
rename from tests/cli/__init__.py
rename to metricflow-semantics/metricflow_semantics/specs/__init__.py
diff --git a/metricflow/specs/column_assoc.py b/metricflow-semantics/metricflow_semantics/specs/column_assoc.py
similarity index 97%
rename from metricflow/specs/column_assoc.py
rename to metricflow-semantics/metricflow_semantics/specs/column_assoc.py
index 6231da5849..2b82580fb6 100644
--- a/metricflow/specs/column_assoc.py
+++ b/metricflow-semantics/metricflow_semantics/specs/column_assoc.py
@@ -6,7 +6,7 @@
from dbt_semantic_interfaces.dataclass_serialization import SerializableDataclass
-from metricflow.specs.specs import InstanceSpec
+from metricflow_semantics.specs.spec_classes import InstanceSpec
class ColumnCorrelationKey(ABC):
diff --git a/metricflow/specs/dimension_spec_resolver.py b/metricflow-semantics/metricflow_semantics/specs/dimension_spec_resolver.py
similarity index 96%
rename from metricflow/specs/dimension_spec_resolver.py
rename to metricflow-semantics/metricflow_semantics/specs/dimension_spec_resolver.py
index 25caa0ac6c..752e64b300 100644
--- a/metricflow/specs/dimension_spec_resolver.py
+++ b/metricflow-semantics/metricflow_semantics/specs/dimension_spec_resolver.py
@@ -12,7 +12,7 @@
from dbt_semantic_interfaces.type_enums import TimeGranularity
from dbt_semantic_interfaces.type_enums.date_part import DatePart
-from metricflow.specs.specs import DEFAULT_TIME_GRANULARITY, DimensionSpec, TimeDimensionSpec
+from metricflow_semantics.specs.spec_classes import DEFAULT_TIME_GRANULARITY, DimensionSpec, TimeDimensionSpec
class DimensionSpecResolver:
diff --git a/metricflow/plan_conversion/column_resolver.py b/metricflow-semantics/metricflow_semantics/specs/dunder_column_association_resolver.py
similarity index 93%
rename from metricflow/plan_conversion/column_resolver.py
rename to metricflow-semantics/metricflow_semantics/specs/dunder_column_association_resolver.py
index 323bbf2c83..d217067646 100644
--- a/metricflow/plan_conversion/column_resolver.py
+++ b/metricflow-semantics/metricflow_semantics/specs/dunder_column_association_resolver.py
@@ -1,15 +1,13 @@
from __future__ import annotations
-import logging
-
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.naming.linkable_spec_name import DUNDER, StructuredLinkableSpecName
-from metricflow.specs.column_assoc import (
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.naming.linkable_spec_name import DUNDER, StructuredLinkableSpecName
+from metricflow_semantics.specs.column_assoc import (
ColumnAssociation,
ColumnAssociationResolver,
SingleColumnCorrelationKey,
)
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
EntitySpec,
GroupByMetricSpec,
@@ -21,7 +19,24 @@
TimeDimensionSpec,
)
-logger = logging.getLogger(__name__)
+
+class DunderColumnAssociationResolver(ColumnAssociationResolver):
+ """Uses a double underscore to map specs to column names.
+
+ For example:
+
+ DimensionSpec(element_name='country', entity_links=['listing'])
+
+ ->
+
+ listing__country
+ """
+
+ def __init__(self, semantic_manifest_lookup: SemanticManifestLookup) -> None: # noqa: D107
+ self._visitor_helper = DunderColumnAssociationResolverVisitor(semantic_manifest_lookup)
+
+ def resolve_spec(self, spec: InstanceSpec) -> ColumnAssociation: # noqa: D102
+ return spec.accept(self._visitor_helper)
class DunderColumnAssociationResolverVisitor(InstanceSpecVisitor[ColumnAssociation]):
@@ -92,22 +107,3 @@ def visit_metadata_spec(self, metadata_spec: MetadataSpec) -> ColumnAssociation:
column_name=metadata_spec.qualified_name,
single_column_correlation_key=SingleColumnCorrelationKey(),
)
-
-
-class DunderColumnAssociationResolver(ColumnAssociationResolver):
- """Uses a double underscore to map specs to column names.
-
- For example:
-
- DimensionSpec(element_name='country', entity_links=['listing'])
-
- ->
-
- listing__country
- """
-
- def __init__(self, semantic_manifest_lookup: SemanticManifestLookup) -> None: # noqa: D107
- self._visitor_helper = DunderColumnAssociationResolverVisitor(semantic_manifest_lookup)
-
- def resolve_spec(self, spec: InstanceSpec) -> ColumnAssociation: # noqa: D102
- return spec.accept(self._visitor_helper)
diff --git a/tests/collection_helpers/__init__.py b/metricflow-semantics/metricflow_semantics/specs/patterns/__init__.py
similarity index 100%
rename from tests/collection_helpers/__init__.py
rename to metricflow-semantics/metricflow_semantics/specs/patterns/__init__.py
diff --git a/metricflow/specs/patterns/base_time_grain.py b/metricflow-semantics/metricflow_semantics/specs/patterns/base_time_grain.py
similarity index 94%
rename from metricflow/specs/patterns/base_time_grain.py
rename to metricflow-semantics/metricflow_semantics/specs/patterns/base_time_grain.py
index 26a45a33b1..fa23af1990 100644
--- a/metricflow/specs/patterns/base_time_grain.py
+++ b/metricflow-semantics/metricflow_semantics/specs/patterns/base_time_grain.py
@@ -6,9 +6,9 @@
from dbt_semantic_interfaces.type_enums import TimeGranularity
from typing_extensions import override
-from metricflow.specs.patterns.metric_time_pattern import MetricTimePattern
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.patterns.metric_time_pattern import MetricTimePattern
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.spec_classes import (
InstanceSpec,
InstanceSpecSet,
LinkableInstanceSpec,
diff --git a/metricflow/specs/patterns/entity_link_pattern.py b/metricflow-semantics/metricflow_semantics/specs/patterns/entity_link_pattern.py
similarity index 97%
rename from metricflow/specs/patterns/entity_link_pattern.py
rename to metricflow-semantics/metricflow_semantics/specs/patterns/entity_link_pattern.py
index 28d8adcdd3..5f152a07c4 100644
--- a/metricflow/specs/patterns/entity_link_pattern.py
+++ b/metricflow-semantics/metricflow_semantics/specs/patterns/entity_link_pattern.py
@@ -11,8 +11,8 @@
from more_itertools import is_sorted
from typing_extensions import override
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.specs import InstanceSpec, InstanceSpecSet, LinkableInstanceSpec
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.spec_classes import InstanceSpec, InstanceSpecSet, LinkableInstanceSpec
logger = logging.getLogger(__name__)
diff --git a/metricflow/specs/patterns/match_list_pattern.py b/metricflow-semantics/metricflow_semantics/specs/patterns/match_list_pattern.py
similarity index 82%
rename from metricflow/specs/patterns/match_list_pattern.py
rename to metricflow-semantics/metricflow_semantics/specs/patterns/match_list_pattern.py
index 7ac8d5824e..07bf3e2553 100644
--- a/metricflow/specs/patterns/match_list_pattern.py
+++ b/metricflow-semantics/metricflow_semantics/specs/patterns/match_list_pattern.py
@@ -4,8 +4,8 @@
from typing_extensions import override
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.specs import InstanceSpec
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.spec_classes import InstanceSpec
class MatchListSpecPattern(SpecPattern):
diff --git a/metricflow/specs/patterns/metric_pattern.py b/metricflow-semantics/metricflow_semantics/specs/patterns/metric_pattern.py
similarity index 85%
rename from metricflow/specs/patterns/metric_pattern.py
rename to metricflow-semantics/metricflow_semantics/specs/patterns/metric_pattern.py
index b08d73e5d7..0bbe31cbe4 100644
--- a/metricflow/specs/patterns/metric_pattern.py
+++ b/metricflow-semantics/metricflow_semantics/specs/patterns/metric_pattern.py
@@ -6,8 +6,8 @@
from dbt_semantic_interfaces.references import MetricReference
from typing_extensions import override
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.spec_classes import (
InstanceSpec,
InstanceSpecSet,
MetricSpec,
diff --git a/metricflow/specs/patterns/metric_time_pattern.py b/metricflow-semantics/metricflow_semantics/specs/patterns/metric_time_pattern.py
similarity index 88%
rename from metricflow/specs/patterns/metric_time_pattern.py
rename to metricflow-semantics/metricflow_semantics/specs/patterns/metric_time_pattern.py
index 85f7dca0fc..ff0337de10 100644
--- a/metricflow/specs/patterns/metric_time_pattern.py
+++ b/metricflow-semantics/metricflow_semantics/specs/patterns/metric_time_pattern.py
@@ -5,8 +5,8 @@
from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
from typing_extensions import override
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.spec_classes import (
InstanceSpec,
InstanceSpecSet,
LinkableSpecSet,
diff --git a/metricflow/specs/patterns/none_date_part.py b/metricflow-semantics/metricflow_semantics/specs/patterns/none_date_part.py
similarity index 88%
rename from metricflow/specs/patterns/none_date_part.py
rename to metricflow-semantics/metricflow_semantics/specs/patterns/none_date_part.py
index 539f57de84..5a30db5cff 100644
--- a/metricflow/specs/patterns/none_date_part.py
+++ b/metricflow-semantics/metricflow_semantics/specs/patterns/none_date_part.py
@@ -4,8 +4,8 @@
from typing_extensions import override
-from metricflow.specs.patterns.spec_pattern import SpecPattern
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.patterns.spec_pattern import SpecPattern
+from metricflow_semantics.specs.spec_classes import (
InstanceSpec,
InstanceSpecSet,
LinkableInstanceSpec,
diff --git a/metricflow/specs/patterns/spec_pattern.py b/metricflow-semantics/metricflow_semantics/specs/patterns/spec_pattern.py
similarity index 92%
rename from metricflow/specs/patterns/spec_pattern.py
rename to metricflow-semantics/metricflow_semantics/specs/patterns/spec_pattern.py
index 3315b81251..7a9071f08b 100644
--- a/metricflow/specs/patterns/spec_pattern.py
+++ b/metricflow-semantics/metricflow_semantics/specs/patterns/spec_pattern.py
@@ -4,7 +4,7 @@
from typing import TYPE_CHECKING, Sequence
if TYPE_CHECKING:
- from metricflow.specs.specs import InstanceSpec
+ from metricflow_semantics.specs.spec_classes import InstanceSpec
class SpecPattern(ABC):
diff --git a/metricflow/specs/patterns/typed_patterns.py b/metricflow-semantics/metricflow_semantics/specs/patterns/typed_patterns.py
similarity index 97%
rename from metricflow/specs/patterns/typed_patterns.py
rename to metricflow-semantics/metricflow_semantics/specs/patterns/typed_patterns.py
index e59dd1d6f6..cec6ef7859 100644
--- a/metricflow/specs/patterns/typed_patterns.py
+++ b/metricflow-semantics/metricflow_semantics/specs/patterns/typed_patterns.py
@@ -12,12 +12,12 @@
from dbt_semantic_interfaces.references import EntityReference
from typing_extensions import override
-from metricflow.specs.patterns.entity_link_pattern import (
+from metricflow_semantics.specs.patterns.entity_link_pattern import (
EntityLinkPattern,
EntityLinkPatternParameterSet,
ParameterSetField,
)
-from metricflow.specs.specs import InstanceSpec, InstanceSpecSet, LinkableInstanceSpec
+from metricflow_semantics.specs.spec_classes import InstanceSpec, InstanceSpecSet, LinkableInstanceSpec
@dataclass(frozen=True)
diff --git a/metricflow/specs/python_object.py b/metricflow-semantics/metricflow_semantics/specs/python_object.py
similarity index 91%
rename from metricflow/specs/python_object.py
rename to metricflow-semantics/metricflow_semantics/specs/python_object.py
index 9dc916daea..78d4b85bd2 100644
--- a/metricflow/specs/python_object.py
+++ b/metricflow-semantics/metricflow_semantics/specs/python_object.py
@@ -5,10 +5,10 @@
from dbt_semantic_interfaces.call_parameter_sets import ParseWhereFilterException
from dbt_semantic_interfaces.implementations.filters.where_filter import PydanticWhereFilter
-from metricflow.naming.linkable_spec_name import StructuredLinkableSpecName
-from metricflow.protocols.query_parameter import GroupByParameter
-from metricflow.query.query_exceptions import InvalidQueryException
-from metricflow.specs.query_param_implementations import DimensionOrEntityParameter, TimeDimensionParameter
+from metricflow_semantics.naming.linkable_spec_name import StructuredLinkableSpecName
+from metricflow_semantics.protocols.query_parameter import GroupByParameter
+from metricflow_semantics.query.query_exceptions import InvalidQueryException
+from metricflow_semantics.specs.query_param_implementations import DimensionOrEntityParameter, TimeDimensionParameter
def parse_object_builder_naming_scheme(group_by_item_name: str) -> GroupByParameter:
diff --git a/metricflow/specs/query_param_implementations.py b/metricflow-semantics/metricflow_semantics/specs/query_param_implementations.py
similarity index 89%
rename from metricflow/specs/query_param_implementations.py
rename to metricflow-semantics/metricflow_semantics/specs/query_param_implementations.py
index 7af21980f1..697b65db8f 100644
--- a/metricflow/specs/query_param_implementations.py
+++ b/metricflow-semantics/metricflow_semantics/specs/query_param_implementations.py
@@ -9,21 +9,21 @@
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
from typing_extensions import override
-from metricflow.naming.linkable_spec_name import StructuredLinkableSpecName
-from metricflow.naming.metric_scheme import MetricNamingScheme
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.protocols.query_parameter import (
+from metricflow_semantics.naming.linkable_spec_name import StructuredLinkableSpecName
+from metricflow_semantics.naming.metric_scheme import MetricNamingScheme
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.protocols.query_parameter import (
DimensionOrEntityQueryParameter,
InputOrderByParameter,
TimeDimensionQueryParameter,
)
-from metricflow.protocols.query_parameter import SavedQueryParameter as SavedQueryParameterProtocol
-from metricflow.query.resolver_inputs.query_resolver_inputs import (
+from metricflow_semantics.protocols.query_parameter import SavedQueryParameter as SavedQueryParameterProtocol
+from metricflow_semantics.query.resolver_inputs.query_resolver_inputs import (
ResolverInputForGroupByItem,
ResolverInputForMetric,
ResolverInputForOrderByItem,
)
-from metricflow.specs.patterns.entity_link_pattern import (
+from metricflow_semantics.specs.patterns.entity_link_pattern import (
EntityLinkPattern,
EntityLinkPatternParameterSet,
ParameterSetField,
diff --git a/metricflow/specs/rendered_spec_tracker.py b/metricflow-semantics/metricflow_semantics/specs/rendered_spec_tracker.py
similarity index 92%
rename from metricflow/specs/rendered_spec_tracker.py
rename to metricflow-semantics/metricflow_semantics/specs/rendered_spec_tracker.py
index 8582394149..cafe386503 100644
--- a/metricflow/specs/rendered_spec_tracker.py
+++ b/metricflow-semantics/metricflow_semantics/specs/rendered_spec_tracker.py
@@ -2,7 +2,7 @@
from typing import List, Sequence
-from metricflow.specs.specs import LinkableInstanceSpec
+from metricflow_semantics.specs.spec_classes import LinkableInstanceSpec
class RenderedSpecTracker:
diff --git a/metricflow/specs/specs.py b/metricflow-semantics/metricflow_semantics/specs/spec_classes.py
similarity index 97%
rename from metricflow/specs/specs.py
rename to metricflow-semantics/metricflow_semantics/specs/spec_classes.py
index 41ee7e6f38..573d48c6cb 100644
--- a/metricflow/specs/specs.py
+++ b/metricflow-semantics/metricflow_semantics/specs/spec_classes.py
@@ -35,19 +35,21 @@
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
from typing_extensions import override
-from metricflow.aggregation_properties import AggregationState
-from metricflow.collection_helpers.merger import Mergeable
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.naming.linkable_spec_name import StructuredLinkableSpecName
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import FilterSpecResolutionLookUp
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
-from metricflow.sql.sql_column_type import SqlColumnType
-from metricflow.sql.sql_plan import SqlJoinType
-from metricflow.visitor import VisitorOutputT
+from metricflow_semantics.aggregation_properties import AggregationState
+from metricflow_semantics.collection_helpers.merger import Mergeable
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.naming.linkable_spec_name import StructuredLinkableSpecName
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+ FilterSpecResolutionLookUp,
+)
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
+from metricflow_semantics.sql.sql_column_type import SqlColumnType
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.visitor import VisitorOutputT
if TYPE_CHECKING:
- from metricflow.model.semantics.metric_lookup import MetricLookup
- from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
+ from metricflow_semantics.model.semantics.metric_lookup import MetricLookup
+ from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
def hash_items(items: Sequence[SqlColumnType]) -> str:
diff --git a/metricflow/specs/spec_set_transforms.py b/metricflow-semantics/metricflow_semantics/specs/spec_set_transforms.py
similarity index 87%
rename from metricflow/specs/spec_set_transforms.py
rename to metricflow-semantics/metricflow_semantics/specs/spec_set_transforms.py
index fffebd0a45..991cacafc2 100644
--- a/metricflow/specs/spec_set_transforms.py
+++ b/metricflow-semantics/metricflow_semantics/specs/spec_set_transforms.py
@@ -2,7 +2,7 @@
from typing import Set
-from metricflow.specs.specs import InstanceSpecSet, InstanceSpecSetTransform
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet, InstanceSpecSetTransform
class ToElementNameSet(InstanceSpecSetTransform[Set[str]]):
diff --git a/metricflow/specs/where_filter_dimension.py b/metricflow-semantics/metricflow_semantics/specs/where_filter_dimension.py
similarity index 93%
rename from metricflow/specs/where_filter_dimension.py
rename to metricflow-semantics/metricflow_semantics/specs/where_filter_dimension.py
index 663c10f871..ca2dc8d3cb 100644
--- a/metricflow/specs/where_filter_dimension.py
+++ b/metricflow-semantics/metricflow_semantics/specs/where_filter_dimension.py
@@ -18,14 +18,14 @@
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from typing_extensions import override
-from metricflow.errors.errors import InvalidQuerySyntax
-from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+from metricflow_semantics.errors.error_classes import InvalidQuerySyntax
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
FilterSpecResolutionLookUp,
ResolvedSpecLookUpKey,
)
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.rendered_spec_tracker import RenderedSpecTracker
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.rendered_spec_tracker import RenderedSpecTracker
logger = logging.getLogger(__name__)
diff --git a/metricflow/specs/where_filter_entity.py b/metricflow-semantics/metricflow_semantics/specs/where_filter_entity.py
similarity index 90%
rename from metricflow/specs/where_filter_entity.py
rename to metricflow-semantics/metricflow_semantics/specs/where_filter_entity.py
index 507b4ef590..c73c9ffbff 100644
--- a/metricflow/specs/where_filter_entity.py
+++ b/metricflow-semantics/metricflow_semantics/specs/where_filter_entity.py
@@ -13,14 +13,14 @@
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from typing_extensions import override
-from metricflow.errors.errors import InvalidQuerySyntax
-from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+from metricflow_semantics.errors.error_classes import InvalidQuerySyntax
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
FilterSpecResolutionLookUp,
ResolvedSpecLookUpKey,
)
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.rendered_spec_tracker import RenderedSpecTracker
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.rendered_spec_tracker import RenderedSpecTracker
class WhereFilterEntity(ProtocolHint[QueryInterfaceEntity]):
diff --git a/metricflow/specs/where_filter_metric.py b/metricflow-semantics/metricflow_semantics/specs/where_filter_metric.py
similarity index 90%
rename from metricflow/specs/where_filter_metric.py
rename to metricflow-semantics/metricflow_semantics/specs/where_filter_metric.py
index b1e9307ef0..483fa36b39 100644
--- a/metricflow/specs/where_filter_metric.py
+++ b/metricflow-semantics/metricflow_semantics/specs/where_filter_metric.py
@@ -10,14 +10,14 @@
from dbt_semantic_interfaces.references import EntityReference, LinkableElementReference, MetricReference
from typing_extensions import override
-from metricflow.errors.errors import InvalidQuerySyntax
-from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+from metricflow_semantics.errors.error_classes import InvalidQuerySyntax
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
FilterSpecResolutionLookUp,
ResolvedSpecLookUpKey,
)
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.rendered_spec_tracker import RenderedSpecTracker
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.rendered_spec_tracker import RenderedSpecTracker
class WhereFilterMetric(ProtocolHint[QueryInterfaceMetric]):
diff --git a/metricflow/specs/where_filter_time_dimension.py b/metricflow-semantics/metricflow_semantics/specs/where_filter_time_dimension.py
similarity index 88%
rename from metricflow/specs/where_filter_time_dimension.py
rename to metricflow-semantics/metricflow_semantics/specs/where_filter_time_dimension.py
index e08ab6ac5f..03452936c1 100644
--- a/metricflow/specs/where_filter_time_dimension.py
+++ b/metricflow-semantics/metricflow_semantics/specs/where_filter_time_dimension.py
@@ -15,15 +15,15 @@
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from typing_extensions import override
-from metricflow.errors.errors import InvalidQuerySyntax
-from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+from metricflow_semantics.errors.error_classes import InvalidQuerySyntax
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
FilterSpecResolutionLookUp,
ResolvedSpecLookUpKey,
)
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.rendered_spec_tracker import RenderedSpecTracker
-from metricflow.specs.where_filter_dimension import WhereFilterDimension
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.rendered_spec_tracker import RenderedSpecTracker
+from metricflow_semantics.specs.where_filter_dimension import WhereFilterDimension
class WhereFilterTimeDimension(WhereFilterDimension):
diff --git a/metricflow/specs/where_filter_transform.py b/metricflow-semantics/metricflow_semantics/specs/where_filter_transform.py
similarity index 82%
rename from metricflow/specs/where_filter_transform.py
rename to metricflow-semantics/metricflow_semantics/specs/where_filter_transform.py
index 0ecb5bd6a9..d56676d912 100644
--- a/metricflow/specs/where_filter_transform.py
+++ b/metricflow-semantics/metricflow_semantics/specs/where_filter_transform.py
@@ -7,16 +7,18 @@
from dbt_semantic_interfaces.implementations.filters.where_filter import PydanticWhereFilterIntersection
from dbt_semantic_interfaces.protocols import WhereFilter, WhereFilterIntersection
-from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import FilterSpecResolutionLookUp
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.rendered_spec_tracker import RenderedSpecTracker
-from metricflow.specs.specs import LinkableSpecSet, WhereFilterSpec
-from metricflow.specs.where_filter_dimension import WhereFilterDimensionFactory
-from metricflow.specs.where_filter_entity import WhereFilterEntityFactory
-from metricflow.specs.where_filter_metric import WhereFilterMetricFactory
-from metricflow.specs.where_filter_time_dimension import WhereFilterTimeDimensionFactory
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+ FilterSpecResolutionLookUp,
+)
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.rendered_spec_tracker import RenderedSpecTracker
+from metricflow_semantics.specs.spec_classes import LinkableSpecSet, WhereFilterSpec
+from metricflow_semantics.specs.where_filter_dimension import WhereFilterDimensionFactory
+from metricflow_semantics.specs.where_filter_entity import WhereFilterEntityFactory
+from metricflow_semantics.specs.where_filter_metric import WhereFilterMetricFactory
+from metricflow_semantics.specs.where_filter_time_dimension import WhereFilterTimeDimensionFactory
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
logger = logging.getLogger(__name__)
diff --git a/tests/dataflow/__init__.py b/metricflow-semantics/metricflow_semantics/sql/__init__.py
similarity index 100%
rename from tests/dataflow/__init__.py
rename to metricflow-semantics/metricflow_semantics/sql/__init__.py
diff --git a/metricflow/sql/sql_bind_parameters.py b/metricflow-semantics/metricflow_semantics/sql/sql_bind_parameters.py
similarity index 97%
rename from metricflow/sql/sql_bind_parameters.py
rename to metricflow-semantics/metricflow_semantics/sql/sql_bind_parameters.py
index 9bd39c9788..05b7ee7e2d 100644
--- a/metricflow/sql/sql_bind_parameters.py
+++ b/metricflow-semantics/metricflow_semantics/sql/sql_bind_parameters.py
@@ -7,8 +7,8 @@
from dbt_semantic_interfaces.dataclass_serialization import SerializableDataclass
-from metricflow.assert_one_arg import assert_exactly_one_arg_set
-from metricflow.sql.sql_column_type import SqlColumnType
+from metricflow_semantics.assert_one_arg import assert_exactly_one_arg_set
+from metricflow_semantics.sql.sql_column_type import SqlColumnType
@dataclass(frozen=True)
diff --git a/metricflow/sql/sql_column_type.py b/metricflow-semantics/metricflow_semantics/sql/sql_column_type.py
similarity index 100%
rename from metricflow/sql/sql_column_type.py
rename to metricflow-semantics/metricflow_semantics/sql/sql_column_type.py
diff --git a/metricflow-semantics/metricflow_semantics/sql/sql_join_type.py b/metricflow-semantics/metricflow_semantics/sql/sql_join_type.py
new file mode 100644
index 0000000000..b547994484
--- /dev/null
+++ b/metricflow-semantics/metricflow_semantics/sql/sql_join_type.py
@@ -0,0 +1,18 @@
+from __future__ import annotations
+
+from enum import Enum
+
+
+class SqlJoinType(Enum):
+ """Enumerates the different kinds of SQL joins.
+
+ The value is the SQL string to be used when rendering the join.
+ """
+
+ LEFT_OUTER = "LEFT OUTER JOIN"
+ FULL_OUTER = "FULL OUTER JOIN"
+ INNER = "INNER JOIN"
+ CROSS_JOIN = "CROSS JOIN"
+
+ def __repr__(self) -> str: # noqa: D105
+ return f"{self.__class__.__name__}.{self.name}"
diff --git a/tests/dataflow/builder/__init__.py b/metricflow-semantics/metricflow_semantics/test_helpers/__init__.py
similarity index 100%
rename from tests/dataflow/builder/__init__.py
rename to metricflow-semantics/metricflow_semantics/test_helpers/__init__.py
diff --git a/metricflow-semantics/metricflow_semantics/test_helpers/config_helpers.py b/metricflow-semantics/metricflow_semantics/test_helpers/config_helpers.py
new file mode 100644
index 0000000000..3e2852badb
--- /dev/null
+++ b/metricflow-semantics/metricflow_semantics/test_helpers/config_helpers.py
@@ -0,0 +1,47 @@
+from __future__ import annotations
+
+import pathlib
+import traceback
+from dataclasses import dataclass
+
+from metricflow_semantics.test_helpers.snapshot_helpers import SnapshotConfiguration
+
+
+@dataclass(frozen=True)
+class MetricFlowTestConfiguration(SnapshotConfiguration):
+ """State that is shared between tests during a testing session."""
+
+ sql_engine_url: str
+ sql_engine_password: str
+ # Where MF system tables should be stored.
+ mf_system_schema: str
+ # Where tables for test data sets should be stored.
+ mf_source_schema: str
+
+ # Whether to display the graph associated with a test session in a browser window.
+ display_graphs: bool
+
+ # The source schema contains tables that are used for running tests. If this is set, a source schema in the SQL
+ # is created and persisted between runs. The source schema name includes a hash of the tables that should be in
+ # the schema, so
+ use_persistent_source_schema: bool
+
+
+class DirectoryPathAnchor:
+ """Defines a directory inside the repo.
+
+ Using this object allows you to avoid using hard-coded paths and instead use objects that will be handled properly
+ during refactoring.
+ """
+
+ def __init__(self) -> None:
+ """Initializer.
+
+ The directory associated this anchor is where it's initialized.
+ """
+ stack = traceback.extract_stack()
+ self._directory = pathlib.Path(stack[-2].filename).parent
+
+ @property
+ def directory(self) -> pathlib.Path: # noqa: D102
+ return self._directory
diff --git a/tests/fixtures/id_fixtures.py b/metricflow-semantics/metricflow_semantics/test_helpers/id_helpers.py
similarity index 78%
rename from tests/fixtures/id_fixtures.py
rename to metricflow-semantics/metricflow_semantics/test_helpers/id_helpers.py
index 0e0f6209eb..083cbb1a1d 100644
--- a/tests/fixtures/id_fixtures.py
+++ b/metricflow-semantics/metricflow_semantics/test_helpers/id_helpers.py
@@ -5,9 +5,27 @@
from typing import Generator
from unittest.mock import patch
-import pytest
+from metricflow_semantics.dag.sequential_id import SequentialIdGenerator
-from metricflow.dag.sequential_id import SequentialIdGenerator
+
+@contextmanager
+def patch_id_generators_helper(start_value: int) -> Generator[None, None, None]:
+ """Replace ID generators in IdGeneratorRegistry with one that has the given start value.
+
+ TODO: This method will be modified in a later PR.
+ """
+ # Create patch context managers for all ID generators in the registry with introspection magic.
+ patch_context_managers = [
+ patch.object(SequentialIdGenerator, "_prefix_to_next_value", {}),
+ patch.object(SequentialIdGenerator, "_default_start_value", start_value),
+ ]
+
+ # Enter the patch context for the patches above.
+ with ExitStack() as stack:
+ for patch_context_manager in patch_context_managers:
+ stack.enter_context(patch_context_manager) # type: ignore
+ # This will un-patch when done with the test.
+ yield None
@dataclass(frozen=True)
@@ -34,34 +52,3 @@ def for_block(block_index: int, block_size: int = 2000, first_block_offset: int
if not first_block_offset >= 0:
raise RuntimeError(f"first_block_offset should be >= 0. Got: {first_block_offset}")
return IdNumberSpace(first_block_offset + block_size * block_index)
-
-
-@pytest.fixture(autouse=True, scope="function")
-def patch_id_generators() -> Generator[None, None, None]:
- """Patch ID generators with a new one to get repeatability in plan outputs before every test.
-
- Plan outputs contain IDs, so if the IDs are not consistent from run to run, there will be diffs in the actual vs.
- expected outputs during a test.
- """
- with patch_id_generators_helper(start_value=IdNumberSpace.for_test_start().start_value):
- yield None
-
-
-@contextmanager
-def patch_id_generators_helper(start_value: int) -> Generator[None, None, None]:
- """Replace ID generators in IdGeneratorRegistry with one that has the given start value.
-
- TODO: This method will be modified in a later PR.
- """
- # Create patch context managers for all ID generators in the registry with introspection magic.
- patch_context_managers = [
- patch.object(SequentialIdGenerator, "_prefix_to_next_value", {}),
- patch.object(SequentialIdGenerator, "_default_start_value", start_value),
- ]
-
- # Enter the patch context for the patches above.
- with ExitStack() as stack:
- for patch_context_manager in patch_context_managers:
- stack.enter_context(patch_context_manager) # type: ignore
- # This will un-patch when done with the test.
- yield None
diff --git a/metricflow-semantics/metricflow_semantics/test_helpers/manifest_helpers.py b/metricflow-semantics/metricflow_semantics/test_helpers/manifest_helpers.py
new file mode 100644
index 0000000000..f7e3a8ae13
--- /dev/null
+++ b/metricflow-semantics/metricflow_semantics/test_helpers/manifest_helpers.py
@@ -0,0 +1,34 @@
+from __future__ import annotations
+
+from typing import Dict, Optional
+
+from dbt_semantic_interfaces.implementations.semantic_manifest import PydanticSemanticManifest
+from dbt_semantic_interfaces.parsing.dir_to_model import (
+ SemanticManifestBuildResult,
+ parse_directory_of_yaml_files_to_semantic_manifest,
+)
+from dbt_semantic_interfaces.validations.semantic_manifest_validator import SemanticManifestValidator
+
+from metricflow_semantics.test_helpers.semantic_manifest_yamls import SEMANTIC_MANIFEST_YAMLS_PATH_ANCHOR
+
+
+def load_semantic_manifest(
+ relative_manifest_path: str,
+ template_mapping: Optional[Dict[str, str]] = None,
+) -> SemanticManifestBuildResult:
+ """Reads the manifest YAMLs from the standard location, applies transformations, runs validations."""
+ yaml_file_directory = SEMANTIC_MANIFEST_YAMLS_PATH_ANCHOR.directory.joinpath(relative_manifest_path)
+ build_result = parse_directory_of_yaml_files_to_semantic_manifest(
+ str(yaml_file_directory), template_mapping=template_mapping
+ )
+ validator = SemanticManifestValidator[PydanticSemanticManifest]()
+ validator.checked_validations(build_result.semantic_manifest)
+ return build_result
+
+
+def load_named_manifest(template_mapping: Dict[str, str], manifest_name: str) -> PydanticSemanticManifest: # noqa: D103
+ try:
+ build_result = load_semantic_manifest(manifest_name, template_mapping)
+ return build_result.semantic_manifest
+ except Exception as e:
+ raise RuntimeError(f"Error while loading semantic manifest: {manifest_name}") from e
diff --git a/metricflow-semantics/metricflow_semantics/test_helpers/metric_time_dimension.py b/metricflow-semantics/metricflow_semantics/test_helpers/metric_time_dimension.py
new file mode 100644
index 0000000000..93a2928b8c
--- /dev/null
+++ b/metricflow-semantics/metricflow_semantics/test_helpers/metric_time_dimension.py
@@ -0,0 +1,26 @@
+from __future__ import annotations
+
+from dbt_semantic_interfaces.references import TimeDimensionReference
+from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from dbt_semantic_interfaces.validations.unique_valid_name import MetricFlowReservedKeywords
+
+from metricflow_semantics.specs.spec_classes import TimeDimensionSpec
+
+# Shortcuts for referring to the metric time dimension.
+MTD = MetricFlowReservedKeywords.METRIC_TIME.value
+MTD_REFERENCE = TimeDimensionReference(element_name=MetricFlowReservedKeywords.METRIC_TIME.value)
+MTD_SPEC_DAY = TimeDimensionSpec(
+ element_name=MetricFlowReservedKeywords.METRIC_TIME.value, entity_links=(), time_granularity=TimeGranularity.DAY
+)
+MTD_SPEC_WEEK = TimeDimensionSpec(
+ element_name=MetricFlowReservedKeywords.METRIC_TIME.value, entity_links=(), time_granularity=TimeGranularity.WEEK
+)
+MTD_SPEC_MONTH = TimeDimensionSpec(
+ element_name=MetricFlowReservedKeywords.METRIC_TIME.value, entity_links=(), time_granularity=TimeGranularity.MONTH
+)
+MTD_SPEC_QUARTER = TimeDimensionSpec(
+ element_name=MetricFlowReservedKeywords.METRIC_TIME.value, entity_links=(), time_granularity=TimeGranularity.QUARTER
+)
+MTD_SPEC_YEAR = TimeDimensionSpec(
+ element_name=MetricFlowReservedKeywords.METRIC_TIME.value, entity_links=(), time_granularity=TimeGranularity.YEAR
+)
diff --git a/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/__init__.py b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/__init__.py
new file mode 100644
index 0000000000..6761c31c38
--- /dev/null
+++ b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/__init__.py
@@ -0,0 +1,5 @@
+from __future__ import annotations
+
+from metricflow_semantics.test_helpers.config_helpers import DirectoryPathAnchor
+
+SEMANTIC_MANIFEST_YAMLS_PATH_ANCHOR = DirectoryPathAnchor()
diff --git a/tests/fixtures/semantic_manifest_yamls/ambiguous_resolution_manifest/metrics.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/ambiguous_resolution_manifest/metrics.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/ambiguous_resolution_manifest/metrics.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/ambiguous_resolution_manifest/metrics.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/ambiguous_resolution_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/ambiguous_resolution_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/ambiguous_resolution_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/ambiguous_resolution_manifest/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/ambiguous_resolution_manifest/semantic_models/monthly_measures_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/ambiguous_resolution_manifest/semantic_models/monthly_measures_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/ambiguous_resolution_manifest/semantic_models/monthly_measures_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/ambiguous_resolution_manifest/semantic_models/monthly_measures_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/ambiguous_resolution_manifest/semantic_models/yearly_measures_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/ambiguous_resolution_manifest/semantic_models/yearly_measures_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/ambiguous_resolution_manifest/semantic_models/yearly_measures_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/ambiguous_resolution_manifest/semantic_models/yearly_measures_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/config_linter_manifest/multiple_semantic_models_without_divider.yml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/config_linter_manifest/multiple_semantic_models_without_divider.yml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/config_linter_manifest/multiple_semantic_models_without_divider.yml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/config_linter_manifest/multiple_semantic_models_without_divider.yml
diff --git a/tests/fixtures/semantic_manifest_yamls/config_linter_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/config_linter_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/config_linter_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/config_linter_manifest/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/cyclic_join_manifest/listings_latest.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/cyclic_join_manifest/listings_latest.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/cyclic_join_manifest/listings_latest.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/cyclic_join_manifest/listings_latest.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/cyclic_join_manifest/listings_latest_cyclic.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/cyclic_join_manifest/listings_latest_cyclic.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/cyclic_join_manifest/listings_latest_cyclic.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/cyclic_join_manifest/listings_latest_cyclic.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/cyclic_join_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/cyclic_join_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/cyclic_join_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/cyclic_join_manifest/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/data_warehouse_validation_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/data_warehouse_validation_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/data_warehouse_validation_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/data_warehouse_validation_manifest/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/data_warehouse_validation_manifest/semantic_models/semantic_model1.yml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/data_warehouse_validation_manifest/semantic_models/semantic_model1.yml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/data_warehouse_validation_manifest/semantic_models/semantic_model1.yml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/data_warehouse_validation_manifest/semantic_models/semantic_model1.yml
diff --git a/tests/fixtures/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_cumulative.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_cumulative.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_cumulative.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_cumulative.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_last_month.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_last_month.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_last_month.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_last_month.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_monthly_cumulative.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_monthly_cumulative.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_monthly_cumulative.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/metrics/bookings_monthly_cumulative.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/extended_date_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/extended_date_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/extended_date_manifest/semantic_models/bookings_monthly_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/semantic_models/bookings_monthly_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/extended_date_manifest/semantic_models/bookings_monthly_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/semantic_models/bookings_monthly_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/extended_date_manifest/semantic_models/extended_bookings_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/semantic_models/extended_bookings_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/extended_date_manifest/semantic_models/extended_bookings_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/semantic_models/extended_bookings_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/extended_date_manifest/semantic_models/listings_extended_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/semantic_models/listings_extended_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/extended_date_manifest/semantic_models/listings_extended_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/extended_date_manifest/semantic_models/listings_extended_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/join_types_manifest/bookings_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/join_types_manifest/bookings_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/join_types_manifest/bookings_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/join_types_manifest/bookings_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/join_types_manifest/listings_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/join_types_manifest/listings_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/join_types_manifest/listings_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/join_types_manifest/listings_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/join_types_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/join_types_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/join_types_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/join_types_manifest/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/account_month_txns.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/account_month_txns.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/account_month_txns.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/account_month_txns.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/bridge_table.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/bridge_table.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/bridge_table.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/bridge_table.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/customer_other_data.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/customer_other_data.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/customer_other_data.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/customer_other_data.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/customer_table.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/customer_table.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/customer_table.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/customer_table.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/third_hop_table.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/third_hop_table.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/multi_hop_join_manifest/third_hop_table.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/multi_hop_join_manifest/third_hop_table.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/non_sm_manifest/bookings_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/non_sm_manifest/bookings_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/non_sm_manifest/bookings_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/non_sm_manifest/bookings_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/non_sm_manifest/listings_latest.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/non_sm_manifest/listings_latest.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/non_sm_manifest/listings_latest.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/non_sm_manifest/listings_latest.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/non_sm_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/non_sm_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/non_sm_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/non_sm_manifest/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/account_month_txns.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/account_month_txns.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/account_month_txns.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/account_month_txns.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/bridge_table.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/bridge_table.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/bridge_table.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/bridge_table.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/customer_other_data.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/customer_other_data.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/customer_other_data.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/customer_other_data.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/customer_table.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/customer_table.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/customer_table.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/customer_table.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/third_hop_table.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/third_hop_table.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/third_hop_table.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/partitioned_multi_hop_join_manifest/third_hop_table.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/scd_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/scd_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_accounts.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_accounts.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_accounts.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_accounts.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_bookings.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_bookings.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_bookings.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_bookings.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_companies.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_companies.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_companies.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_companies.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_listings.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_listings.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_listings.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_listings.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_lux_listings.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_lux_listings.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_lux_listings.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_lux_listings.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_metrics.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_metrics.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_metrics.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_metrics.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_users.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_users.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/scd_manifest/scd_users.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/scd_manifest/scd_users.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/shared/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/shared/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/shared/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/shared/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/metrics.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/metrics.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/metrics.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/metrics.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/project_configuration.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/saved_queries.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/saved_queries.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/saved_queries.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/saved_queries.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/accounts_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/accounts_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/accounts_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/accounts_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/bookings_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/bookings_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/bookings_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/bookings_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/buys_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/buys_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/buys_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/buys_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/companies.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/companies.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/companies.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/companies.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/id_verifications.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/id_verifications.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/id_verifications.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/id_verifications.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/listings_latest.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/listings_latest.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/listings_latest.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/listings_latest.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/lux_listing_mapping.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/lux_listing_mapping.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/lux_listing_mapping.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/lux_listing_mapping.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/revenue.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/revenue.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/revenue.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/revenue.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/user_sm_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/user_sm_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/user_sm_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/user_sm_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/users_latest.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/users_latest.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/users_latest.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/users_latest.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/views_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/views_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/views_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/views_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/visits_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/visits_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_manifest/semantic_models/visits_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_manifest/semantic_models/visits_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/all_entity_measure_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/all_entity_measure_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/all_entity_measure_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/all_entity_measure_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_0_dimension_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_0_dimension_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_0_dimension_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_0_dimension_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_0_measure_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_0_measure_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_0_measure_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_0_measure_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_and_entity_2_measure_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_and_entity_2_measure_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_and_entity_2_measure_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_and_entity_2_measure_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_dimension_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_dimension_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_dimension_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_dimension_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_measure_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_measure_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_measure_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_measure_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_to_entity_0_mapping_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_to_entity_0_mapping_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_to_entity_0_mapping_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_1_to_entity_0_mapping_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_2_to_entity_0_mapping_source.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_2_to_entity_0_mapping_source.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_2_to_entity_0_mapping_source.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/entity_2_to_entity_0_mapping_source.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/metrics.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/metrics.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/metrics.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/metrics.yaml
diff --git a/tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/project_configuration.yaml b/metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/project_configuration.yaml
similarity index 100%
rename from tests/fixtures/semantic_manifest_yamls/simple_multi_hop_join_manifest/project_configuration.yaml
rename to metricflow-semantics/metricflow_semantics/test_helpers/semantic_manifest_yamls/simple_multi_hop_join_manifest/project_configuration.yaml
diff --git a/tests/snapshot_utils.py b/metricflow-semantics/metricflow_semantics/test_helpers/snapshot_helpers.py
similarity index 52%
rename from tests/snapshot_utils.py
rename to metricflow-semantics/metricflow_semantics/test_helpers/snapshot_helpers.py
index d0e230c61d..4354c6eed4 100644
--- a/tests/snapshot_utils.py
+++ b/metricflow-semantics/metricflow_semantics/test_helpers/snapshot_helpers.py
@@ -1,33 +1,184 @@
from __future__ import annotations
+import difflib
import logging
+import os
import re
-from typing import Any, Callable, Optional, Tuple, TypeVar
+import webbrowser
+from dataclasses import dataclass
+from typing import Any, Callable, List, Optional, Tuple, TypeVar
+import _pytest.fixtures
import tabulate
from _pytest.fixtures import FixtureRequest
-from metricflow.dag.mf_dag import MetricFlowDag
-from metricflow.dataflow.dataflow_plan import DataflowPlan
-from metricflow.execution.execution_plan import ExecutionPlan
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.model.semantics.linkable_element_set import LinkableElementSet
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.protocols.sql_client import SqlClient, SqlEngine
-from metricflow.specs.specs import InstanceSpecSet, LinkableSpecSet
-from metricflow.test_helpers import assert_snapshot_text_equal
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration, check_sql_engine_snapshot_marker
+from metricflow_semantics.dag.mf_dag import MetricFlowDag
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.semantics.linkable_element_set import LinkableElementSet
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet, LinkableSpecSet
logger = logging.getLogger(__name__)
+@dataclass(frozen=True)
+class SnapshotConfiguration:
+ """Configuration for handling snapshots in a test session."""
+
+ # Whether to display the snapshot associated with a test session in a browser window.
+ display_snapshots: bool
+ # Whether to overwrite any text files that were generated.
+ overwrite_snapshots: bool
+
+
+def assert_snapshot_text_equal(
+ request: _pytest.fixtures.FixtureRequest,
+ mf_test_configuration: SnapshotConfiguration,
+ group_id: str,
+ snapshot_id: str,
+ snapshot_text: str,
+ snapshot_file_extension: str,
+ exclude_line_regex: Optional[str] = None,
+ incomparable_strings_replacement_function: Optional[Callable[[str], str]] = None,
+ additional_sub_directories_for_snapshots: Tuple[str, ...] = (),
+) -> None:
+ """Similar to assert_plan_snapshot_text_equal(), but with more controls on how the snapshot paths are generated."""
+ file_path = (
+ snapshot_path_prefix(
+ request=request,
+ snapshot_group=group_id,
+ snapshot_id=snapshot_id,
+ additional_sub_directories=additional_sub_directories_for_snapshots,
+ )
+ + snapshot_file_extension
+ )
+
+ if incomparable_strings_replacement_function is not None:
+ snapshot_text = incomparable_strings_replacement_function(snapshot_text)
+
+ # Add a new line at the end of the file so that PRs don't show the "no newline" symbol on Github.
+ if len(snapshot_text) > 1 and snapshot_text[-1] != "\n":
+ snapshot_text = snapshot_text + "\n"
+
+ # If we are in overwrite mode, make a new plan:
+ if mf_test_configuration.overwrite_snapshots:
+ # Create parent directory for the plan text files.
+ os.makedirs(os.path.dirname(file_path), exist_ok=True)
+ with open(file_path, "w") as snapshot_text_file:
+ snapshot_text_file.write(snapshot_text)
+
+ # Throw an exception if the plan is not there.
+ if not os.path.exists(file_path):
+ raise FileNotFoundError(
+ f"Could not find snapshot file at path {file_path}. Re-run with --overwrite-snapshots and check git status "
+ "to see what's new."
+ )
+
+ if mf_test_configuration.display_snapshots:
+ if not mf_test_configuration.overwrite_snapshots:
+ logger.warning(f"Not overwriting snapshots, so displaying existing snapshot at {file_path}")
+
+ if len(request.session.items) > 1:
+ raise ValueError("Displaying snapshots is only supported when there's a single item in a testing session.")
+ webbrowser.open("file://" + file_path)
+
+ # Read the existing plan from the file and compare with the actual plan
+ with open(file_path, "r") as snapshot_text_file:
+ expected_snapshot_text = snapshot_text_file.read()
+
+ if exclude_line_regex:
+ # Filter out lines that should be ignored.
+ expected_snapshot_text = _exclude_lines_matching_regex(
+ file_contents=expected_snapshot_text, exclude_line_regex=exclude_line_regex
+ )
+ snapshot_text = _exclude_lines_matching_regex(
+ file_contents=snapshot_text, exclude_line_regex=exclude_line_regex
+ )
+ # pytest should show a detailed diff with "assert actual_modified == expected_modified", but it's not, so doing
+ # this instead.
+ if snapshot_text != expected_snapshot_text:
+ differ = difflib.Differ()
+ diff = differ.compare(expected_snapshot_text.splitlines(), snapshot_text.splitlines())
+ assert False, f"Snapshot from {file_path} does not match. Diff from expected to actual:\n" + "\n".join(diff)
+
+
+def snapshot_path_prefix(
+ request: _pytest.fixtures.FixtureRequest,
+ snapshot_group: str,
+ snapshot_id: str,
+ additional_sub_directories: Tuple[str, ...] = (),
+) -> str:
+ """Returns a path prefix that can be used to build filenames for files associated with the snapshot.
+
+ The snapshot prefix is generated from the name of the test file, the name of the test, name of the snapshot class,
+ and the name of the snapshot.
+
+ e.g.
+ .../snapshots/test_file.py/DataflowPlan/test_name__plan1
+
+ which can be used to construct paths like
+
+ .../snapshots/test_file.py/DataflowPlan/test_name__plan1.xml
+ .../snapshots/test_file.py/DataflowPlan/test_name__plan1.svg
+ """
+ test_name = request.node.name
+
+ snapshot_file_name_parts = []
+ # Parameterized test names look like 'test_case[some_param]'. "[" and "]" are annoying to deal with in the shell,
+ # so replace them with dunders.
+ snapshot_file_name_parts.extend(re.split(r"[\[\]]", test_name))
+ # A trailing ] will produce an empty string in the list, so remove that.
+ snapshot_file_name_parts = [part for part in snapshot_file_name_parts if len(part) > 0]
+ snapshot_file_name_parts.append(snapshot_id)
+
+ snapshot_file_name = "__".join(snapshot_file_name_parts)
+
+ path_items: List[str] = []
+
+ test_file_path_items = os.path.normpath(request.node.fspath).split(os.sep)
+ test_file_name = test_file_path_items[-1]
+ # Default to where this is defined, but use more appropriate directories if found.
+ test_directory_root_index = -1
+ for i, path_item in enumerate(test_file_path_items):
+ if path_item in ("tests_metricflow", "tests_metricflow_semantics", "metricflow"):
+ test_directory_root_index = i + 1
+
+ path_to_store_snapshots = os.sep.join(test_file_path_items[:test_directory_root_index])
+ path_items.extend([path_to_store_snapshots, "snapshots", test_file_name, snapshot_group])
+
+ if additional_sub_directories:
+ path_items.extend(additional_sub_directories)
+ path_items.append(snapshot_file_name)
+
+ return os.path.abspath(os.path.join(*path_items))
+
+
+def _exclude_lines_matching_regex(file_contents: str, exclude_line_regex: str) -> str:
+ """Removes lines from file contents if the line matches exclude_regex."""
+ compiled_regex = re.compile(exclude_line_regex)
+ return "\n".join([line for line in file_contents.split("\n") if not compiled_regex.match(line)])
+
+
+DISPLAY_SNAPSHOTS_CLI_FLAG = "--display-snapshots"
+OVERWRITE_SNAPSHOTS_CLI_FLAG = "--overwrite-snapshots"
+
+
+def add_display_snapshots_cli_flag(parser: _pytest.config.argparsing.Parser) -> None: # noqa: D103
+ parser.addoption(DISPLAY_SNAPSHOTS_CLI_FLAG, action="store_true", help="Displays snapshots in a browser if set")
+
+
+def add_overwrite_snapshots_cli_flag(parser: _pytest.config.argparsing.Parser) -> None: # noqa: D103
+ parser.addoption(
+ OVERWRITE_SNAPSHOTS_CLI_FLAG,
+ action="store_true",
+ help="Overwrites existing snapshots by ones generated during this testing session",
+ )
+
+
# In plan outputs, replace strings that vary from run to run with this so that comparisons can be made
# consistently.
PLACEHOLDER_CHAR_FOR_INCOMPARABLE_STRINGS = "*"
-# Needed as the table alias can vary from run to run.
-_EXCLUDE_TABLE_ALIAS_REGEX = "^.*_src.*$"
-
def make_schema_replacement_function(system_schema: str, source_schema: str) -> Callable[[str], str]:
"""Generates a function to replace schema names in test outputs."""
@@ -65,7 +216,7 @@ def replace_dataset_id_hash(text: str) -> str:
def assert_plan_snapshot_text_equal(
request: FixtureRequest,
- mf_test_configuration: MetricFlowTestConfiguration,
+ mf_test_configuration: SnapshotConfiguration,
plan: PlanT,
plan_snapshot_text: str,
plan_snapshot_file_extension: str = ".xml",
@@ -97,114 +248,9 @@ def assert_plan_snapshot_text_equal(
)
-def assert_execution_plan_text_equal( # noqa: D103
- request: FixtureRequest,
- mf_test_configuration: MetricFlowTestConfiguration,
- sql_client: SqlClient,
- execution_plan: ExecutionPlan,
-) -> None:
- assert_plan_snapshot_text_equal(
- request=request,
- mf_test_configuration=mf_test_configuration,
- plan=execution_plan,
- plan_snapshot_text=execution_plan.structure_text(),
- incomparable_strings_replacement_function=make_schema_replacement_function(
- system_schema=mf_test_configuration.mf_system_schema,
- source_schema=mf_test_configuration.mf_source_schema,
- ),
- additional_sub_directories_for_snapshots=(sql_client.sql_engine_type.value,),
- )
-
-
-def assert_dataflow_plan_text_equal( # noqa: D103
- request: FixtureRequest,
- mf_test_configuration: MetricFlowTestConfiguration,
- dataflow_plan: DataflowPlan,
- sql_client: SqlClient,
-) -> None:
- assert_plan_snapshot_text_equal(
- request=request,
- mf_test_configuration=mf_test_configuration,
- plan=dataflow_plan,
- plan_snapshot_text=dataflow_plan.structure_text(),
- incomparable_strings_replacement_function=replace_dataset_id_hash,
- additional_sub_directories_for_snapshots=(sql_client.sql_engine_type.value,),
- )
-
-
-def assert_object_snapshot_equal( # type: ignore[misc]
- request: FixtureRequest,
- mf_test_configuration: MetricFlowTestConfiguration,
- obj_id: str,
- obj: Any,
- sql_client: Optional[SqlClient] = None,
-) -> None:
- """For tests to compare large objects, this can be used to snapshot a text representation of the object."""
- if sql_client is not None:
- check_sql_engine_snapshot_marker(request)
-
- assert_snapshot_text_equal(
- request=request,
- mf_test_configuration=mf_test_configuration,
- group_id=obj.__class__.__name__,
- snapshot_id=obj_id,
- snapshot_text=mf_pformat(obj),
- snapshot_file_extension=".txt",
- additional_sub_directories_for_snapshots=(sql_client.sql_engine_type.value,) if sql_client else (),
- )
-
-
-def assert_sql_snapshot_equal(
- request: FixtureRequest,
- mf_test_configuration: MetricFlowTestConfiguration,
- snapshot_id: str,
- sql: str,
- sql_engine: Optional[SqlEngine] = None,
-) -> None:
- """For tests that generate SQL, use this to write / check snapshots."""
- if sql_engine is not None:
- check_sql_engine_snapshot_marker(request)
-
- assert_snapshot_text_equal(
- request=request,
- mf_test_configuration=mf_test_configuration,
- group_id=sql.__class__.__name__,
- snapshot_id=snapshot_id,
- snapshot_text=sql,
- snapshot_file_extension=".sql",
- incomparable_strings_replacement_function=make_schema_replacement_function(
- system_schema=mf_test_configuration.mf_system_schema, source_schema=mf_test_configuration.mf_source_schema
- ),
- exclude_line_regex=_EXCLUDE_TABLE_ALIAS_REGEX,
- additional_sub_directories_for_snapshots=(sql_engine.value,) if sql_engine is not None else (),
- )
-
-
-def assert_str_snapshot_equal( # type: ignore[misc]
- request: FixtureRequest,
- mf_test_configuration: MetricFlowTestConfiguration,
- snapshot_id: str,
- snapshot_str: str,
- sql_engine: Optional[SqlEngine] = None,
-) -> None:
- """Write / compare a string snapshot."""
- if sql_engine is not None:
- check_sql_engine_snapshot_marker(request)
-
- assert_snapshot_text_equal(
- request=request,
- mf_test_configuration=mf_test_configuration,
- group_id=snapshot_str.__class__.__name__,
- snapshot_id=snapshot_id,
- snapshot_text=snapshot_str,
- snapshot_file_extension=".txt",
- additional_sub_directories_for_snapshots=(sql_engine.value,) if sql_engine is not None else (),
- )
-
-
def assert_linkable_element_set_snapshot_equal( # noqa: D103
request: FixtureRequest,
- mf_test_configuration: MetricFlowTestConfiguration,
+ mf_test_configuration: SnapshotConfiguration,
set_id: str,
linkable_element_set: LinkableElementSet,
) -> None:
@@ -267,7 +313,7 @@ def assert_linkable_element_set_snapshot_equal( # noqa: D103
def assert_spec_set_snapshot_equal( # noqa: D103
- request: FixtureRequest, mf_test_configuration: MetricFlowTestConfiguration, set_id: str, spec_set: InstanceSpecSet
+ request: FixtureRequest, mf_test_configuration: SnapshotConfiguration, set_id: str, spec_set: InstanceSpecSet
) -> None:
assert_object_snapshot_equal(
request=request,
@@ -278,7 +324,7 @@ def assert_spec_set_snapshot_equal( # noqa: D103
def assert_linkable_spec_set_snapshot_equal( # noqa: D103
- request: FixtureRequest, mf_test_configuration: MetricFlowTestConfiguration, set_id: str, spec_set: LinkableSpecSet
+ request: FixtureRequest, mf_test_configuration: SnapshotConfiguration, set_id: str, spec_set: LinkableSpecSet
) -> None:
# TODO: This will be used in a later PR and this message will be removed.
naming_scheme = ObjectBuilderNamingScheme()
@@ -291,3 +337,37 @@ def assert_linkable_spec_set_snapshot_equal( # noqa: D103
snapshot_file_extension=".txt",
additional_sub_directories_for_snapshots=(),
)
+
+
+def assert_object_snapshot_equal( # type: ignore[misc]
+ request: FixtureRequest,
+ mf_test_configuration: SnapshotConfiguration,
+ obj_id: str,
+ obj: Any,
+) -> None:
+ """For tests to compare large objects, this can be used to snapshot a text representation of the object."""
+ assert_snapshot_text_equal(
+ request=request,
+ mf_test_configuration=mf_test_configuration,
+ group_id=obj.__class__.__name__,
+ snapshot_id=obj_id,
+ snapshot_text=mf_pformat(obj),
+ snapshot_file_extension=".txt",
+ )
+
+
+def assert_str_snapshot_equal( # type: ignore[misc]
+ request: FixtureRequest,
+ mf_test_configuration: SnapshotConfiguration,
+ snapshot_id: str,
+ snapshot_str: str,
+) -> None:
+ """Write / compare a string snapshot."""
+ assert_snapshot_text_equal(
+ request=request,
+ mf_test_configuration=mf_test_configuration,
+ group_id=snapshot_str.__class__.__name__,
+ snapshot_id=snapshot_id,
+ snapshot_text=snapshot_str,
+ snapshot_file_extension=".txt",
+ )
diff --git a/metricflow-semantics/metricflow_semantics/test_helpers/time_helpers.py b/metricflow-semantics/metricflow_semantics/test_helpers/time_helpers.py
new file mode 100644
index 0000000000..bcccdc1870
--- /dev/null
+++ b/metricflow-semantics/metricflow_semantics/test_helpers/time_helpers.py
@@ -0,0 +1,19 @@
+from __future__ import annotations
+
+import datetime
+
+from metricflow_semantics.time.time_source import TimeSource
+
+
+class ConfigurableTimeSource(TimeSource):
+ """A time source that can be configured so that scheduled operations can be simulated in testing."""
+
+ def __init__(self, configured_time: datetime.datetime) -> None: # noqa: D107
+ self._configured_time = configured_time
+
+ def get_time(self) -> datetime.datetime: # noqa: D102
+ return self._configured_time
+
+ def set_time(self, new_time: datetime.datetime) -> datetime.datetime: # noqa: D102
+ self._configured_time = new_time
+ return new_time
diff --git a/tests/dataflow/optimizer/__init__.py b/metricflow-semantics/metricflow_semantics/time/__init__.py
similarity index 100%
rename from tests/dataflow/optimizer/__init__.py
rename to metricflow-semantics/metricflow_semantics/time/__init__.py
diff --git a/metricflow/time/time_constants.py b/metricflow-semantics/metricflow_semantics/time/time_constants.py
similarity index 100%
rename from metricflow/time/time_constants.py
rename to metricflow-semantics/metricflow_semantics/time/time_constants.py
diff --git a/metricflow/time/time_granularity.py b/metricflow-semantics/metricflow_semantics/time/time_granularity.py
similarity index 100%
rename from metricflow/time/time_granularity.py
rename to metricflow-semantics/metricflow_semantics/time/time_granularity.py
diff --git a/metricflow/time/time_source.py b/metricflow-semantics/metricflow_semantics/time/time_source.py
similarity index 100%
rename from metricflow/time/time_source.py
rename to metricflow-semantics/metricflow_semantics/time/time_source.py
diff --git a/metricflow/visitor.py b/metricflow-semantics/metricflow_semantics/visitor.py
similarity index 100%
rename from metricflow/visitor.py
rename to metricflow-semantics/metricflow_semantics/visitor.py
diff --git a/metricflow-semantics/pyproject.toml b/metricflow-semantics/pyproject.toml
new file mode 100644
index 0000000000..88dc2bf5ce
--- /dev/null
+++ b/metricflow-semantics/pyproject.toml
@@ -0,0 +1,62 @@
+[build-system]
+requires = ["hatchling~=1.14.0"]
+build-backend = "hatchling.build"
+
+[project]
+name = "metricflow-semantics"
+version = "0.1.0"
+description = "Modules for semantic understanding of a MetricFlow query."
+readme = "README.md"
+requires-python = ">=3.8,<3.12"
+license = "BUSL-1.1"
+authors = [
+ { name = "dbt Labs", email = "info@dbtlabs.com" },
+]
+
+classifiers = [
+ "Development Status :: 4 - Beta",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: Implementation :: CPython",
+ "Programming Language :: Python :: Implementation :: PyPy",
+]
+
+dependencies = [
+ "dbt-semantic-interfaces>=0.5.1, <0.6.0",
+ "pandas>=1.5.0, <1.6.0",
+ "rapidfuzz>=3.0, <4.0",
+]
+
+[project.optional-dependencies]
+dev-packages = [
+ # Developer tools
+ "mypy>=1.7.0, <1.8.0",
+ "pre-commit>=3.2.2, <3.3.0",
+ "pytest-mock>=3.7.0, <3.8.0",
+ "pytest-xdist>=3.2.1, <3.3.0",
+ "pytest>=7.1.1, < 7.2.0",
+ "tabulate>=0.8.9",
+ "types-PyYAML",
+ "types-python-dateutil",
+ "types-tabulate",
+]
+
+[tool.hatch.envs.dev-env]
+description = "Environment for development. Includes a DuckDB-backed client."
+
+features = [
+ "dev-packages",
+]
+
+
+[project.urls]
+"Source Code" = "https://github.com/dbt-labs/metricflow/tree/main/metricflow-semanitcs"
+
+[tool.hatch.build.targets.sdist]
+packages = ["metricflow_semantics"]
+
+[tool.hatch.build.targets.wheel]
+packages = ["metricflow_semantics"]
diff --git a/tests/dataflow/optimizer/source_scan/__init__.py b/metricflow-semantics/tests_metricflow_semantics/__init__.py
similarity index 100%
rename from tests/dataflow/optimizer/source_scan/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/__init__.py
diff --git a/tests/dataset/__init__.py b/metricflow-semantics/tests_metricflow_semantics/collection_helpers/__init__.py
similarity index 100%
rename from tests/dataset/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/collection_helpers/__init__.py
diff --git a/tests/collection_helpers/test_merger.py b/metricflow-semantics/tests_metricflow_semantics/collection_helpers/test_merger.py
similarity index 91%
rename from tests/collection_helpers/test_merger.py
rename to metricflow-semantics/tests_metricflow_semantics/collection_helpers/test_merger.py
index c0d43abbf7..cce814af71 100644
--- a/tests/collection_helpers/test_merger.py
+++ b/metricflow-semantics/tests_metricflow_semantics/collection_helpers/test_merger.py
@@ -3,10 +3,9 @@
from dataclasses import dataclass, field
from typing import List, Tuple
+from metricflow_semantics.collection_helpers.merger import Mergeable
from typing_extensions import override
-from metricflow.collection_helpers.merger import Mergeable
-
@dataclass(frozen=True)
class NumberTuple(Mergeable): # noqa: D101
diff --git a/tests/collection_helpers/test_pretty_print.py b/metricflow-semantics/tests_metricflow_semantics/collection_helpers/test_pretty_print.py
similarity index 95%
rename from tests/collection_helpers/test_pretty_print.py
rename to metricflow-semantics/tests_metricflow_semantics/collection_helpers/test_pretty_print.py
index 5fbacf5be1..462a7d4f7b 100644
--- a/tests/collection_helpers/test_pretty_print.py
+++ b/metricflow-semantics/tests_metricflow_semantics/collection_helpers/test_pretty_print.py
@@ -5,10 +5,9 @@
from dbt_semantic_interfaces.implementations.elements.dimension import PydanticDimension
from dbt_semantic_interfaces.type_enums import DimensionType
-
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat, mf_pformat_many
-from tests.time.metric_time_dimension import MTD_SPEC_DAY
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat, mf_pformat_many
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD_SPEC_DAY
logger = logging.getLogger(__name__)
diff --git a/metricflow-semantics/tests_metricflow_semantics/conftest.py b/metricflow-semantics/tests_metricflow_semantics/conftest.py
new file mode 100644
index 0000000000..1adfb60cd8
--- /dev/null
+++ b/metricflow-semantics/tests_metricflow_semantics/conftest.py
@@ -0,0 +1,6 @@
+# These imports are required to properly set up pytest fixtures.
+from __future__ import annotations
+
+from tests_metricflow_semantics.fixtures.id_fixtures import * # noqa: F401, F403
+from tests_metricflow_semantics.fixtures.manifest_fixtures import * # noqa: F401, F403
+from tests_metricflow_semantics.fixtures.setup_fixtures import * # noqa: F401, F403
diff --git a/tests/execution/__init__.py b/metricflow-semantics/tests_metricflow_semantics/fixtures/__init__.py
similarity index 100%
rename from tests/execution/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/fixtures/__init__.py
diff --git a/metricflow-semantics/tests_metricflow_semantics/fixtures/id_fixtures.py b/metricflow-semantics/tests_metricflow_semantics/fixtures/id_fixtures.py
new file mode 100644
index 0000000000..cec3c0131a
--- /dev/null
+++ b/metricflow-semantics/tests_metricflow_semantics/fixtures/id_fixtures.py
@@ -0,0 +1,17 @@
+from __future__ import annotations
+
+from typing import Generator
+
+import pytest
+from metricflow_semantics.test_helpers.id_helpers import IdNumberSpace, patch_id_generators_helper
+
+
+@pytest.fixture(autouse=True, scope="function")
+def patch_id_generators() -> Generator[None, None, None]:
+ """Patch ID generators with a new one to get repeatability in plan outputs before every test.
+
+ Plan outputs contain IDs, so if the IDs are not consistent from run to run, there will be diffs in the actual vs.
+ expected outputs during a test.
+ """
+ with patch_id_generators_helper(start_value=IdNumberSpace.for_test_start().start_value):
+ yield None
diff --git a/metricflow-semantics/tests_metricflow_semantics/fixtures/manifest_fixtures.py b/metricflow-semantics/tests_metricflow_semantics/fixtures/manifest_fixtures.py
new file mode 100644
index 0000000000..accd99015c
--- /dev/null
+++ b/metricflow-semantics/tests_metricflow_semantics/fixtures/manifest_fixtures.py
@@ -0,0 +1,103 @@
+from __future__ import annotations
+
+import logging
+from typing import Dict
+
+import pytest
+from dbt_semantic_interfaces.implementations.semantic_manifest import PydanticSemanticManifest
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.manifest_helpers import load_named_manifest
+
+logger = logging.getLogger(__name__)
+
+
+@pytest.fixture(scope="session")
+def template_mapping(mf_test_configuration: MetricFlowTestConfiguration) -> Dict[str, str]:
+ """Mapping for template variables in the model YAML files."""
+ return {"source_schema": mf_test_configuration.mf_source_schema}
+
+
+@pytest.fixture(scope="session")
+def simple_semantic_manifest(template_mapping: Dict[str, str]) -> PydanticSemanticManifest:
+ """Manifest used for many tests."""
+ return load_named_manifest(template_mapping, "simple_manifest")
+
+
+@pytest.fixture(scope="session")
+def simple_semantic_manifest_lookup( # noqa: D103
+ simple_semantic_manifest: PydanticSemanticManifest,
+) -> SemanticManifestLookup:
+ return SemanticManifestLookup(simple_semantic_manifest)
+
+
+@pytest.fixture(scope="session")
+def simple_multi_hop_join_manifest(template_mapping: Dict[str, str]) -> PydanticSemanticManifest:
+ """Manifest used for many tests."""
+ return load_named_manifest(template_mapping, "simple_multi_hop_join_manifest")
+
+
+@pytest.fixture(scope="session")
+def simple_multi_hop_join_manifest_lookup( # noqa: D103
+ simple_multi_hop_join_manifest: PydanticSemanticManifest,
+) -> SemanticManifestLookup:
+ return SemanticManifestLookup(simple_multi_hop_join_manifest)
+
+
+@pytest.fixture(scope="session")
+def partitioned_multi_hop_join_semantic_manifest( # noqa: D103
+ template_mapping: Dict[str, str]
+) -> PydanticSemanticManifest:
+ return load_named_manifest(template_mapping, "partitioned_multi_hop_join_manifest")
+
+
+@pytest.fixture(scope="session")
+def partitioned_multi_hop_join_semantic_manifest_lookup( # noqa: D103
+ partitioned_multi_hop_join_semantic_manifest: PydanticSemanticManifest,
+) -> SemanticManifestLookup:
+ return SemanticManifestLookup(partitioned_multi_hop_join_semantic_manifest)
+
+
+@pytest.fixture(scope="session")
+def scd_semantic_manifest(template_mapping: Dict[str, str]) -> PydanticSemanticManifest: # noqa: D103
+ return load_named_manifest(template_mapping, "scd_manifest")
+
+
+@pytest.fixture(scope="session")
+def scd_semantic_manifest_lookup( # noqa: D103
+ scd_semantic_manifest: PydanticSemanticManifest,
+) -> SemanticManifestLookup:
+ return SemanticManifestLookup(scd_semantic_manifest)
+
+
+@pytest.fixture(scope="session")
+def ambiguous_resolution_manifest(template_mapping: Dict[str, str]) -> PydanticSemanticManifest: # noqa: D103
+ return load_named_manifest(template_mapping, "ambiguous_resolution_manifest")
+
+
+@pytest.fixture(scope="session")
+def ambiguous_resolution_manifest_lookup( # noqa: D103
+ ambiguous_resolution_manifest: PydanticSemanticManifest,
+) -> SemanticManifestLookup:
+ return SemanticManifestLookup(ambiguous_resolution_manifest)
+
+
+@pytest.fixture(scope="session")
+def cyclic_join_manifest(template_mapping: Dict[str, str]) -> PydanticSemanticManifest: # noqa: D103
+ return load_named_manifest(template_mapping, "cyclic_join_manifest")
+
+
+@pytest.fixture(scope="session")
+def cyclic_join_semantic_manifest_lookup( # noqa: D103
+ cyclic_join_manifest: PydanticSemanticManifest,
+) -> SemanticManifestLookup:
+ return SemanticManifestLookup(cyclic_join_manifest)
+
+
+@pytest.fixture(scope="session")
+def column_association_resolver( # noqa: D103
+ simple_semantic_manifest_lookup: SemanticManifestLookup,
+) -> ColumnAssociationResolver:
+ return DunderColumnAssociationResolver(simple_semantic_manifest_lookup)
diff --git a/metricflow-semantics/tests_metricflow_semantics/fixtures/setup_fixtures.py b/metricflow-semantics/tests_metricflow_semantics/fixtures/setup_fixtures.py
new file mode 100644
index 0000000000..572536772e
--- /dev/null
+++ b/metricflow-semantics/tests_metricflow_semantics/fixtures/setup_fixtures.py
@@ -0,0 +1,38 @@
+from __future__ import annotations
+
+import logging
+
+import _pytest.config
+import pytest
+from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import (
+ DISPLAY_SNAPSHOTS_CLI_FLAG,
+ OVERWRITE_SNAPSHOTS_CLI_FLAG,
+ add_display_snapshots_cli_flag,
+ add_overwrite_snapshots_cli_flag,
+)
+
+logger = logging.getLogger(__name__)
+
+
+def pytest_addoption(parser: _pytest.config.argparsing.Parser) -> None:
+ """Add options for running pytest through the CLI."""
+ add_overwrite_snapshots_cli_flag(parser)
+ add_display_snapshots_cli_flag(parser)
+
+
+@pytest.fixture(scope="session")
+def mf_test_configuration( # noqa: D103
+ request: FixtureRequest,
+) -> MetricFlowTestConfiguration:
+ return MetricFlowTestConfiguration(
+ sql_engine_url="N/A",
+ sql_engine_password="N/A",
+ mf_system_schema="N/A",
+ mf_source_schema="N/A",
+ display_snapshots=bool(request.config.getoption(DISPLAY_SNAPSHOTS_CLI_FLAG, default=False)),
+ display_graphs=False,
+ overwrite_snapshots=bool(request.config.getoption(OVERWRITE_SNAPSHOTS_CLI_FLAG, default=False)),
+ use_persistent_source_schema=False,
+ )
diff --git a/tests/fixtures/__init__.py b/metricflow-semantics/tests_metricflow_semantics/model/__init__.py
similarity index 100%
rename from tests/fixtures/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/model/__init__.py
diff --git a/tests/model/example_project_configuration.py b/metricflow-semantics/tests_metricflow_semantics/model/example_project_configuration.py
similarity index 100%
rename from tests/model/example_project_configuration.py
rename to metricflow-semantics/tests_metricflow_semantics/model/example_project_configuration.py
diff --git a/tests/fixtures/sql_clients/__init__.py b/metricflow-semantics/tests_metricflow_semantics/model/modify/__init__.py
similarity index 100%
rename from tests/fixtures/sql_clients/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/model/modify/__init__.py
diff --git a/tests/model/modify/modify_input_measure_filter.py b/metricflow-semantics/tests_metricflow_semantics/model/modify/modify_input_measure_filter.py
similarity index 100%
rename from tests/model/modify/modify_input_measure_filter.py
rename to metricflow-semantics/tests_metricflow_semantics/model/modify/modify_input_measure_filter.py
diff --git a/tests/model/modify/modify_input_metric_filter.py b/metricflow-semantics/tests_metricflow_semantics/model/modify/modify_input_metric_filter.py
similarity index 100%
rename from tests/model/modify/modify_input_metric_filter.py
rename to metricflow-semantics/tests_metricflow_semantics/model/modify/modify_input_metric_filter.py
diff --git a/tests/model/modify/modify_manifest.py b/metricflow-semantics/tests_metricflow_semantics/model/modify/modify_manifest.py
similarity index 100%
rename from tests/model/modify/modify_manifest.py
rename to metricflow-semantics/tests_metricflow_semantics/model/modify/modify_manifest.py
diff --git a/tests/model/modify/modify_metric_filter.py b/metricflow-semantics/tests_metricflow_semantics/model/modify/modify_metric_filter.py
similarity index 100%
rename from tests/model/modify/modify_metric_filter.py
rename to metricflow-semantics/tests_metricflow_semantics/model/modify/modify_metric_filter.py
diff --git a/tests/integration/__init__.py b/metricflow-semantics/tests_metricflow_semantics/model/semantics/__init__.py
similarity index 100%
rename from tests/integration/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/model/semantics/__init__.py
diff --git a/tests/model/semantics/test_linkable_element_set.py b/metricflow-semantics/tests_metricflow_semantics/model/semantics/test_linkable_element_set.py
similarity index 99%
rename from tests/model/semantics/test_linkable_element_set.py
rename to metricflow-semantics/tests_metricflow_semantics/model/semantics/test_linkable_element_set.py
index 578e5dcd8d..925e5ed8b7 100644
--- a/tests/model/semantics/test_linkable_element_set.py
+++ b/metricflow-semantics/tests_metricflow_semantics/model/semantics/test_linkable_element_set.py
@@ -20,16 +20,15 @@
TimeDimensionReference,
)
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-from more_itertools import bucket
-
-from metricflow.model.semantics.linkable_element import (
+from metricflow_semantics.model.semantics.linkable_element import (
LinkableDimension,
LinkableElementProperty,
LinkableEntity,
LinkableMetric,
SemanticModelJoinPathElement,
)
-from metricflow.model.semantics.linkable_element_set import LinkableElementSet
+from metricflow_semantics.model.semantics.linkable_element_set import LinkableElementSet
+from more_itertools import bucket
AMBIGUOUS_NAME = "ambiguous"
# Common references
diff --git a/tests/model/semantics/test_linkable_spec_resolver.py b/metricflow-semantics/tests_metricflow_semantics/model/semantics/test_linkable_spec_resolver.py
similarity index 93%
rename from tests/model/semantics/test_linkable_spec_resolver.py
rename to metricflow-semantics/tests_metricflow_semantics/model/semantics/test_linkable_spec_resolver.py
index b6d26c141a..cce2e574c7 100644
--- a/tests/model/semantics/test_linkable_spec_resolver.py
+++ b/metricflow-semantics/tests_metricflow_semantics/model/semantics/test_linkable_spec_resolver.py
@@ -10,19 +10,21 @@
MetricReference,
SemanticModelReference,
)
-
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.model.semantics.linkable_element import (
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.model.semantics.linkable_element import (
LinkableElementProperty,
SemanticModelJoinPath,
SemanticModelJoinPathElement,
)
-from metricflow.model.semantics.linkable_spec_resolver import (
+from metricflow_semantics.model.semantics.linkable_spec_resolver import (
ValidLinkableSpecResolver,
)
-from metricflow.model.semantics.semantic_model_join_evaluator import MAX_JOIN_HOPS
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import assert_linkable_element_set_snapshot_equal, assert_spec_set_snapshot_equal
+from metricflow_semantics.model.semantics.semantic_model_join_evaluator import MAX_JOIN_HOPS
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import (
+ assert_linkable_element_set_snapshot_equal,
+ assert_spec_set_snapshot_equal,
+)
logger = logging.getLogger(__name__)
diff --git a/tests/model/semantics/test_semantic_model_join_evaluator.py b/metricflow-semantics/tests_metricflow_semantics/model/semantics/test_semantic_model_join_evaluator.py
similarity index 67%
rename from tests/model/semantics/test_semantic_model_join_evaluator.py
rename to metricflow-semantics/tests_metricflow_semantics/model/semantics/test_semantic_model_join_evaluator.py
index 27dc6be340..a54ccc3e67 100644
--- a/tests/model/semantics/test_semantic_model_join_evaluator.py
+++ b/metricflow-semantics/tests_metricflow_semantics/model/semantics/test_semantic_model_join_evaluator.py
@@ -1,19 +1,17 @@
from __future__ import annotations
-from typing import Dict, Mapping, Sequence
+from typing import Dict, Sequence
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
from dbt_semantic_interfaces.protocols.entity import EntityType
from dbt_semantic_interfaces.references import EntityReference, SemanticModelReference
-
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.model.semantics.semantic_model_join_evaluator import (
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.model.semantics.semantic_model_join_evaluator import (
SemanticModelEntityJoin,
SemanticModelEntityJoinType,
SemanticModelJoinEvaluator,
SemanticModelLink,
)
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
def _get_join_types_for_entity_type(entity_type: EntityType) -> Sequence[SemanticModelEntityJoinType]:
@@ -207,124 +205,6 @@ def test_semantic_model_join_validation_on_missing_entity(
)
-def test_distinct_target_instance_set_join_validation(
- mf_engine_test_fixture_mapping: Mapping[SemanticManifestSetup, MetricFlowEngineTestFixture],
- simple_semantic_manifest_lookup: SemanticManifestLookup,
-) -> None:
- """Tests instance set join validation to a PRIMARY or UNIQUE entity."""
- foreign_user_instance_set = (
- mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST]
- .data_set_mapping["listings_latest"]
- .instance_set
- )
- primary_user_instance_set = (
- mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST]
- .data_set_mapping["users_latest"]
- .instance_set
- )
- unique_user_instance_set = (
- mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST].data_set_mapping["companies"].instance_set
- )
- user_entity_reference = EntityReference(element_name="user")
- join_evaluator = SemanticModelJoinEvaluator(
- semantic_model_lookup=simple_semantic_manifest_lookup.semantic_model_lookup
- )
-
- foreign_primary = join_evaluator.is_valid_instance_set_join(
- left_instance_set=foreign_user_instance_set,
- right_instance_set=primary_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- primary_primary = join_evaluator.is_valid_instance_set_join(
- left_instance_set=primary_user_instance_set,
- right_instance_set=primary_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- unique_primary = join_evaluator.is_valid_instance_set_join(
- left_instance_set=unique_user_instance_set,
- right_instance_set=primary_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- foreign_unique = join_evaluator.is_valid_instance_set_join(
- left_instance_set=foreign_user_instance_set,
- right_instance_set=unique_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- primary_unique = join_evaluator.is_valid_instance_set_join(
- left_instance_set=primary_user_instance_set,
- right_instance_set=unique_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- unique_unique = join_evaluator.is_valid_instance_set_join(
- left_instance_set=unique_user_instance_set,
- right_instance_set=unique_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
-
- results = {
- "foreign to primary": foreign_primary,
- "primary to primary": primary_primary,
- "unique to primary": unique_primary,
- "foreign to unique": foreign_unique,
- "primary to unique": primary_unique,
- "unique to unique": unique_unique,
- }
- assert all(results.values()), (
- f"All instance set level join types for primary and unique targets should be valid, but we found "
- f"at least one that was not! Incorrectly failing types: {[k for k,v in results.items() if not v]}."
- )
-
-
-def test_foreign_target_instance_set_join_validation(
- mf_engine_test_fixture_mapping: Mapping[SemanticManifestSetup, MetricFlowEngineTestFixture],
- simple_semantic_manifest_lookup: SemanticManifestLookup,
-) -> None:
- """Tests semantic model join validation to FOREIGN entity types."""
- foreign_user_instance_set = (
- mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST]
- .data_set_mapping["listings_latest"]
- .instance_set
- )
- primary_user_instance_set = (
- mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST]
- .data_set_mapping["users_latest"]
- .instance_set
- )
- unique_user_instance_set = (
- mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST].data_set_mapping["companies"].instance_set
- )
- user_entity_reference = EntityReference(element_name="user")
- join_evaluator = SemanticModelJoinEvaluator(
- semantic_model_lookup=simple_semantic_manifest_lookup.semantic_model_lookup
- )
-
- foreign_foreign = join_evaluator.is_valid_instance_set_join(
- left_instance_set=foreign_user_instance_set,
- right_instance_set=foreign_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- primary_foreign = join_evaluator.is_valid_instance_set_join(
- left_instance_set=primary_user_instance_set,
- right_instance_set=foreign_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- unique_foreign = join_evaluator.is_valid_instance_set_join(
- left_instance_set=unique_user_instance_set,
- right_instance_set=foreign_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
-
- results = {
- "foreign to foreign": foreign_foreign,
- "primary to foreign": primary_foreign,
- "unique to foreign": unique_foreign,
- }
- assert not any(results.values()), (
- f"All semantic model level joins against foreign targets should be invalid, but we found at least one "
- f"that was not! Incorrectly passing types: {[k for k,v in results.items() if v]}."
- )
-
-
def test_get_joinable_semantic_models_single_hop( # noqa: D103
partitioned_multi_hop_join_semantic_manifest_lookup: SemanticManifestLookup,
) -> None:
@@ -498,88 +378,3 @@ def test_natural_entity_semantic_model_validation(scd_semantic_manifest_lookup:
f"joins marked invalid: {[k for k,v in valid_joins.items() if not v]}. Invalid joins marked valid: "
f"{[k for k, v in invalid_joins.items() if v]}."
)
-
-
-def test_natural_entity_instance_set_validation(
- mf_engine_test_fixture_mapping: Mapping[SemanticManifestSetup, MetricFlowEngineTestFixture],
- scd_semantic_manifest_lookup: SemanticManifestLookup,
-) -> None:
- """Tests instance set validation for NATURAL target entity types.
-
- These tests rely on the scd_semantic_manifest_lookup, which makes extensive use of NATURAL key types.
- """
- natural_user_instance_set = (
- mf_engine_test_fixture_mapping[SemanticManifestSetup.SCD_MANIFEST]
- .data_set_mapping["primary_accounts"]
- .instance_set
- )
- primary_user_instance_set = (
- mf_engine_test_fixture_mapping[SemanticManifestSetup.SCD_MANIFEST].data_set_mapping["users_latest"].instance_set
- )
- foreign_user_instance_set = (
- mf_engine_test_fixture_mapping[SemanticManifestSetup.SCD_MANIFEST]
- .data_set_mapping["bookings_source"]
- .instance_set
- )
- unique_user_instance_set = (
- mf_engine_test_fixture_mapping[SemanticManifestSetup.SCD_MANIFEST].data_set_mapping["companies"].instance_set
- )
- user_entity_reference = EntityReference(element_name="user")
- join_evaluator = SemanticModelJoinEvaluator(
- semantic_model_lookup=scd_semantic_manifest_lookup.semantic_model_lookup
- )
-
- # Valid cases
- natural_primary = join_evaluator.is_valid_instance_set_join(
- left_instance_set=natural_user_instance_set,
- right_instance_set=primary_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- natural_unique = join_evaluator.is_valid_instance_set_join(
- left_instance_set=natural_user_instance_set,
- right_instance_set=unique_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- foreign_natural = join_evaluator.is_valid_instance_set_join(
- left_instance_set=foreign_user_instance_set,
- right_instance_set=natural_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- primary_natural = join_evaluator.is_valid_instance_set_join(
- left_instance_set=primary_user_instance_set,
- right_instance_set=natural_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- unique_natural = join_evaluator.is_valid_instance_set_join(
- left_instance_set=unique_user_instance_set,
- right_instance_set=natural_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- # Invalid cases
- natural_foreign = join_evaluator.is_valid_instance_set_join(
- left_instance_set=natural_user_instance_set,
- right_instance_set=foreign_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
- natural_natural = join_evaluator.is_valid_instance_set_join(
- left_instance_set=natural_user_instance_set,
- right_instance_set=natural_user_instance_set,
- on_entity_reference=user_entity_reference,
- )
-
- valid_joins = {
- "natural to primary": natural_primary,
- "natural to unique": natural_unique,
- "foreign to natural": foreign_natural,
- "primary to natural": primary_natural,
- "unique to natural": unique_natural,
- }
- invalid_joins = {
- "natural to foreign": natural_foreign,
- "natural to natural": natural_natural,
- }
- assert all(valid_joins.values()) and not any(invalid_joins.values()), (
- f"Found unexpected join validator results when validating joins involving natural key comparisons! Valid "
- f"joins marked invalid: {[k for k,v in valid_joins.items() if not v]}. Invalid joins marked valid: "
- f"{[k for k, v in invalid_joins.items() if v]}."
- )
diff --git a/tests/model/test_semantic_model_container.py b/metricflow-semantics/tests_metricflow_semantics/model/test_semantic_model_container.py
similarity index 94%
rename from tests/model/test_semantic_model_container.py
rename to metricflow-semantics/tests_metricflow_semantics/model/test_semantic_model_container.py
index 53b877c603..69f8c5ec0c 100644
--- a/tests/model/test_semantic_model_container.py
+++ b/metricflow-semantics/tests_metricflow_semantics/model/test_semantic_model_container.py
@@ -6,12 +6,14 @@
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.protocols.semantic_manifest import SemanticManifest
from dbt_semantic_interfaces.references import EntityReference, MeasureReference, MetricReference
-
-from metricflow.model.semantics.linkable_element import LinkableElementProperty
-from metricflow.model.semantics.metric_lookup import MetricLookup
-from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import assert_linkable_element_set_snapshot_equal, assert_object_snapshot_equal
+from metricflow_semantics.model.semantics.linkable_element import LinkableElementProperty
+from metricflow_semantics.model.semantics.metric_lookup import MetricLookup
+from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import (
+ assert_linkable_element_set_snapshot_equal,
+ assert_object_snapshot_equal,
+)
logger = logging.getLogger(__name__)
diff --git a/tests/model/test_where_filter_spec.py b/metricflow-semantics/tests_metricflow_semantics/model/test_where_filter_spec.py
similarity index 95%
rename from tests/model/test_where_filter_spec.py
rename to metricflow-semantics/tests_metricflow_semantics/model/test_where_filter_spec.py
index a4df031e72..5e234f104c 100644
--- a/tests/model/test_where_filter_spec.py
+++ b/metricflow-semantics/tests_metricflow_semantics/model/test_where_filter_spec.py
@@ -23,19 +23,18 @@
)
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
CallParameterSet,
FilterSpecResolution,
FilterSpecResolutionLookUp,
ResolvedSpecLookUpKey,
)
-from metricflow.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
-from metricflow.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.specs import (
+from metricflow_semantics.query.group_by_item.resolution_path import MetricFlowQueryResolutionPath
+from metricflow_semantics.query.issues.issues_base import MetricFlowQueryResolutionIssueSet
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
EntitySpec,
GroupByMetricSpec,
@@ -44,8 +43,9 @@
TimeDimensionSpec,
WhereFilterSpec,
)
-from metricflow.specs.where_filter_transform import WhereSpecFactory
-from tests.specs.conftest import EXAMPLE_FILTER_LOCATION
+from metricflow_semantics.specs.where_filter_transform import WhereSpecFactory
+
+from tests_metricflow_semantics.specs.conftest import EXAMPLE_FILTER_LOCATION
logger = logging.getLogger(__name__)
diff --git a/tests/integration/query_output/__init__.py b/metricflow-semantics/tests_metricflow_semantics/naming/__init__.py
similarity index 100%
rename from tests/integration/query_output/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/naming/__init__.py
diff --git a/tests/naming/conftest.py b/metricflow-semantics/tests_metricflow_semantics/naming/conftest.py
similarity index 86%
rename from tests/naming/conftest.py
rename to metricflow-semantics/tests_metricflow_semantics/naming/conftest.py
index 5bd2701b22..3dac120add 100644
--- a/tests/naming/conftest.py
+++ b/metricflow-semantics/tests_metricflow_semantics/naming/conftest.py
@@ -6,9 +6,14 @@
from dbt_semantic_interfaces.references import EntityReference
from dbt_semantic_interfaces.type_enums import TimeGranularity
from dbt_semantic_interfaces.type_enums.date_part import DatePart
-
-from metricflow.specs.specs import DimensionSpec, EntitySpec, GroupByMetricSpec, LinkableInstanceSpec, TimeDimensionSpec
-from tests.time.metric_time_dimension import MTD_SPEC_MONTH, MTD_SPEC_WEEK, MTD_SPEC_YEAR
+from metricflow_semantics.specs.spec_classes import (
+ DimensionSpec,
+ EntitySpec,
+ GroupByMetricSpec,
+ LinkableInstanceSpec,
+ TimeDimensionSpec,
+)
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD_SPEC_MONTH, MTD_SPEC_WEEK, MTD_SPEC_YEAR
@pytest.fixture(scope="session")
diff --git a/tests/naming/test_dunder_naming_scheme.py b/metricflow-semantics/tests_metricflow_semantics/naming/test_dunder_naming_scheme.py
similarity index 92%
rename from tests/naming/test_dunder_naming_scheme.py
rename to metricflow-semantics/tests_metricflow_semantics/naming/test_dunder_naming_scheme.py
index b3c206fa26..99c329f034 100644
--- a/tests/naming/test_dunder_naming_scheme.py
+++ b/metricflow-semantics/tests_metricflow_semantics/naming/test_dunder_naming_scheme.py
@@ -6,10 +6,9 @@
from dbt_semantic_interfaces.references import EntityReference
from dbt_semantic_interfaces.type_enums import TimeGranularity
from dbt_semantic_interfaces.type_enums.date_part import DatePart
-
-from metricflow.naming.dunder_scheme import DunderNamingScheme
-from metricflow.specs.specs import DimensionSpec, EntitySpec, LinkableInstanceSpec, TimeDimensionSpec
-from tests.time.metric_time_dimension import MTD_SPEC_MONTH, MTD_SPEC_WEEK, MTD_SPEC_YEAR
+from metricflow_semantics.naming.dunder_scheme import DunderNamingScheme
+from metricflow_semantics.specs.spec_classes import DimensionSpec, EntitySpec, LinkableInstanceSpec, TimeDimensionSpec
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD_SPEC_MONTH, MTD_SPEC_WEEK, MTD_SPEC_YEAR
@pytest.fixture(scope="session")
diff --git a/tests/naming/test_metric_name_scheme.py b/metricflow-semantics/tests_metricflow_semantics/naming/test_metric_name_scheme.py
similarity index 87%
rename from tests/naming/test_metric_name_scheme.py
rename to metricflow-semantics/tests_metricflow_semantics/naming/test_metric_name_scheme.py
index 03ac5086d0..6912c306a2 100644
--- a/tests/naming/test_metric_name_scheme.py
+++ b/metricflow-semantics/tests_metricflow_semantics/naming/test_metric_name_scheme.py
@@ -3,9 +3,8 @@
from typing import Sequence
import pytest
-
-from metricflow.naming.metric_scheme import MetricNamingScheme
-from metricflow.specs.specs import DimensionSpec, InstanceSpec, MetricSpec
+from metricflow_semantics.naming.metric_scheme import MetricNamingScheme
+from metricflow_semantics.specs.spec_classes import DimensionSpec, InstanceSpec, MetricSpec
@pytest.fixture(scope="session")
diff --git a/tests/naming/test_object_builder_naming_scheme.py b/metricflow-semantics/tests_metricflow_semantics/naming/test_object_builder_naming_scheme.py
similarity index 92%
rename from tests/naming/test_object_builder_naming_scheme.py
rename to metricflow-semantics/tests_metricflow_semantics/naming/test_object_builder_naming_scheme.py
index 2bebc6c5b5..d5abdfcb27 100644
--- a/tests/naming/test_object_builder_naming_scheme.py
+++ b/metricflow-semantics/tests_metricflow_semantics/naming/test_object_builder_naming_scheme.py
@@ -6,10 +6,15 @@
from dbt_semantic_interfaces.references import EntityReference
from dbt_semantic_interfaces.type_enums import TimeGranularity
from dbt_semantic_interfaces.type_enums.date_part import DatePart
-
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.specs.specs import DimensionSpec, EntitySpec, GroupByMetricSpec, LinkableInstanceSpec, TimeDimensionSpec
-from tests.time.metric_time_dimension import MTD_SPEC_MONTH, MTD_SPEC_WEEK, MTD_SPEC_YEAR
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.specs.spec_classes import (
+ DimensionSpec,
+ EntitySpec,
+ GroupByMetricSpec,
+ LinkableInstanceSpec,
+ TimeDimensionSpec,
+)
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD_SPEC_MONTH, MTD_SPEC_WEEK, MTD_SPEC_YEAR
@pytest.fixture(scope="session")
diff --git a/tests/mf_logging/__init__.py b/metricflow-semantics/tests_metricflow_semantics/query/__init__.py
similarity index 100%
rename from tests/mf_logging/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/query/__init__.py
diff --git a/tests/model/__init__.py b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/__init__.py
similarity index 100%
rename from tests/model/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/query/group_by_item/__init__.py
diff --git a/tests/query/group_by_item/ambiguous_resolution_query_id.py b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/ambiguous_resolution_query_id.py
similarity index 100%
rename from tests/query/group_by_item/ambiguous_resolution_query_id.py
rename to metricflow-semantics/tests_metricflow_semantics/query/group_by_item/ambiguous_resolution_query_id.py
diff --git a/tests/query/group_by_item/conftest.py b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/conftest.py
similarity index 84%
rename from tests/query/group_by_item/conftest.py
rename to metricflow-semantics/tests_metricflow_semantics/query/group_by_item/conftest.py
index b70cb6d770..280c18d3eb 100644
--- a/tests/query/group_by_item/conftest.py
+++ b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/conftest.py
@@ -10,14 +10,14 @@
from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
from dbt_semantic_interfaces.protocols import WhereFilterIntersection
from dbt_semantic_interfaces.references import MetricReference
-
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.naming.naming_scheme import QueryItemNamingScheme
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
-from metricflow.query.group_by_item.resolution_dag.dag_builder import GroupByItemResolutionDagBuilder
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query.group_by_item.ambiguous_resolution_query_id import AmbiguousResolutionQueryId
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.naming.naming_scheme import QueryItemNamingScheme
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
+from metricflow_semantics.query.group_by_item.resolution_dag.dag_builder import GroupByItemResolutionDagBuilder
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+
+from tests_metricflow_semantics.query.group_by_item.ambiguous_resolution_query_id import AmbiguousResolutionQueryId
def _build_resolution_dag(
diff --git a/tests/model/modify/__init__.py b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/filter_spec_resolution/__init__.py
similarity index 100%
rename from tests/model/modify/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/query/group_by_item/filter_spec_resolution/__init__.py
diff --git a/tests/query/group_by_item/filter_spec_resolution/test_spec_lookup.py b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/filter_spec_resolution/test_spec_lookup.py
similarity index 88%
rename from tests/query/group_by_item/filter_spec_resolution/test_spec_lookup.py
rename to metricflow-semantics/tests_metricflow_semantics/query/group_by_item/filter_spec_resolution/test_spec_lookup.py
index c38fbf1178..e77068305c 100644
--- a/tests/query/group_by_item/filter_spec_resolution/test_spec_lookup.py
+++ b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/filter_spec_resolution/test_spec_lookup.py
@@ -19,24 +19,24 @@
from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
from dbt_semantic_interfaces.references import MetricReference
from dbt_semantic_interfaces.transformations.transform_rule import SemanticManifestTransformRule
-
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.naming.naming_scheme import QueryItemNamingScheme
-from metricflow.query.group_by_item.filter_spec_resolution.filter_pattern_factory import (
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.naming.naming_scheme import QueryItemNamingScheme
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_pattern_factory import (
DefaultWhereFilterPatternFactory,
)
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
FilterSpecResolutionLookUp,
)
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_resolver import WhereFilterSpecResolver
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.model.modify.modify_input_metric_filter import ModifyInputMetricFilterTransform
-from tests.model.modify.modify_manifest import modify_manifest
-from tests.model.modify.modify_metric_filter import ModifyMetricFilterTransform
-from tests.query.group_by_item.conftest import AmbiguousResolutionQueryId, _build_resolution_dag
-from tests.snapshot_utils import assert_str_snapshot_equal
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_resolver import WhereFilterSpecResolver
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_str_snapshot_equal
+
+from tests_metricflow_semantics.model.modify.modify_input_metric_filter import ModifyInputMetricFilterTransform
+from tests_metricflow_semantics.model.modify.modify_manifest import modify_manifest
+from tests_metricflow_semantics.model.modify.modify_metric_filter import ModifyMetricFilterTransform
+from tests_metricflow_semantics.query.group_by_item.conftest import AmbiguousResolutionQueryId, _build_resolution_dag
logger = logging.getLogger(__name__)
diff --git a/tests/model/semantics/__init__.py b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/resolution_dag/__init__.py
similarity index 100%
rename from tests/model/semantics/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/query/group_by_item/resolution_dag/__init__.py
diff --git a/tests/query/group_by_item/resolution_dag/test_resolution_dags.py b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/resolution_dag/test_resolution_dags.py
similarity index 66%
rename from tests/query/group_by_item/resolution_dag/test_resolution_dags.py
rename to metricflow-semantics/tests_metricflow_semantics/query/group_by_item/resolution_dag/test_resolution_dags.py
index e9f2e3deb5..e0f27e02c1 100644
--- a/tests/query/group_by_item/resolution_dag/test_resolution_dags.py
+++ b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/resolution_dag/test_resolution_dags.py
@@ -5,12 +5,12 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_plan_snapshot_text_equal
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query.group_by_item.ambiguous_resolution_query_id import AmbiguousResolutionQueryId
-from tests.snapshot_utils import assert_plan_snapshot_text_equal
+from tests_metricflow_semantics.query.group_by_item.ambiguous_resolution_query_id import AmbiguousResolutionQueryId
logger = logging.getLogger(__name__)
diff --git a/tests/query/group_by_item/test_available_group_by_items.py b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/test_available_group_by_items.py
similarity index 63%
rename from tests/query/group_by_item/test_available_group_by_items.py
rename to metricflow-semantics/tests_metricflow_semantics/query/group_by_item/test_available_group_by_items.py
index 711ffc1c50..ffb7af27ff 100644
--- a/tests/query/group_by_item/test_available_group_by_items.py
+++ b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/test_available_group_by_items.py
@@ -5,14 +5,14 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.group_by_item.group_by_item_resolver import GroupByItemResolver
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
+from metricflow_semantics.specs.spec_classes import LinkableSpecSet
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_linkable_spec_set_snapshot_equal
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.query.group_by_item.group_by_item_resolver import GroupByItemResolver
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
-from metricflow.specs.specs import LinkableSpecSet
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query.group_by_item.conftest import AmbiguousResolutionQueryId
-from tests.snapshot_utils import assert_linkable_spec_set_snapshot_equal
+from tests_metricflow_semantics.query.group_by_item.conftest import AmbiguousResolutionQueryId
logger = logging.getLogger(__name__)
diff --git a/tests/query/group_by_item/test_matching_item_for_filters.py b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/test_matching_item_for_filters.py
similarity index 67%
rename from tests/query/group_by_item/test_matching_item_for_filters.py
rename to metricflow-semantics/tests_metricflow_semantics/query/group_by_item/test_matching_item_for_filters.py
index e2b0f11e2a..76b5f61169 100644
--- a/tests/query/group_by_item/test_matching_item_for_filters.py
+++ b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/test_matching_item_for_filters.py
@@ -6,15 +6,15 @@
import pytest
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
-
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.naming.naming_scheme import QueryItemNamingScheme
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.query.group_by_item.group_by_item_resolver import GroupByItemResolver
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query.group_by_item.conftest import AmbiguousResolutionQueryId
-from tests.snapshot_utils import assert_object_snapshot_equal
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.naming.naming_scheme import QueryItemNamingScheme
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.query.group_by_item.group_by_item_resolver import GroupByItemResolver
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_object_snapshot_equal
+
+from tests_metricflow_semantics.query.group_by_item.conftest import AmbiguousResolutionQueryId
logger = logging.getLogger(__name__)
diff --git a/tests/query/group_by_item/test_matching_item_for_querying.py b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/test_matching_item_for_querying.py
similarity index 85%
rename from tests/query/group_by_item/test_matching_item_for_querying.py
rename to metricflow-semantics/tests_metricflow_semantics/query/group_by_item/test_matching_item_for_querying.py
index 8626bf3eaa..41c0cf6afc 100644
--- a/tests/query/group_by_item/test_matching_item_for_querying.py
+++ b/metricflow-semantics/tests_metricflow_semantics/query/group_by_item/test_matching_item_for_querying.py
@@ -8,19 +8,19 @@
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
from dbt_semantic_interfaces.references import MetricReference
-
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.naming.naming_scheme import QueryItemNamingScheme
-from metricflow.naming.object_builder_scheme import ObjectBuilderNamingScheme
-from metricflow.query.group_by_item.group_by_item_resolver import GroupByItemResolver
-from metricflow.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
-from metricflow.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.naming.naming_scheme import QueryItemNamingScheme
+from metricflow_semantics.naming.object_builder_scheme import ObjectBuilderNamingScheme
+from metricflow_semantics.query.group_by_item.group_by_item_resolver import GroupByItemResolver
+from metricflow_semantics.query.group_by_item.resolution_dag.dag import GroupByItemResolutionDag
+from metricflow_semantics.query.group_by_item.resolution_dag.resolution_nodes.metric_resolution_node import (
MetricGroupByItemResolutionNode,
)
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query.group_by_item.conftest import AmbiguousResolutionQueryId
-from tests.snapshot_utils import assert_object_snapshot_equal
-from tests.time.metric_time_dimension import MTD_SPEC_DAY, MTD_SPEC_MONTH, MTD_SPEC_YEAR
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD_SPEC_DAY, MTD_SPEC_MONTH, MTD_SPEC_YEAR
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_object_snapshot_equal
+
+from tests_metricflow_semantics.query.group_by_item.conftest import AmbiguousResolutionQueryId
logger = logging.getLogger(__name__)
diff --git a/tests/query/test_ambiguous_entity_path.py b/metricflow-semantics/tests_metricflow_semantics/query/test_ambiguous_entity_path.py
similarity index 86%
rename from tests/query/test_ambiguous_entity_path.py
rename to metricflow-semantics/tests_metricflow_semantics/query/test_ambiguous_entity_path.py
index b9a08a87f4..e4b6caa1cc 100644
--- a/tests/query/test_ambiguous_entity_path.py
+++ b/metricflow-semantics/tests_metricflow_semantics/query/test_ambiguous_entity_path.py
@@ -4,15 +4,14 @@
import pytest
from _pytest.fixtures import FixtureRequest
-
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.query.group_by_item.filter_spec_resolution.filter_pattern_factory import (
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_pattern_factory import (
DefaultWhereFilterPatternFactory,
)
-from metricflow.query.query_exceptions import InvalidQueryException
-from metricflow.query.query_parser import MetricFlowQueryParser
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import assert_object_snapshot_equal, assert_str_snapshot_equal
+from metricflow_semantics.query.query_exceptions import InvalidQueryException
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_object_snapshot_equal, assert_str_snapshot_equal
logger = logging.getLogger(__name__)
diff --git a/tests/query/test_query_parser.py b/metricflow-semantics/tests_metricflow_semantics/query/test_query_parser.py
similarity index 97%
rename from tests/query/test_query_parser.py
rename to metricflow-semantics/tests_metricflow_semantics/query/test_query_parser.py
index 0fc888e68f..d5f82d4927 100644
--- a/tests/query/test_query_parser.py
+++ b/metricflow-semantics/tests_metricflow_semantics/query/test_query_parser.py
@@ -13,26 +13,28 @@
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
from dbt_semantic_interfaces.validations.semantic_manifest_validator import SemanticManifestValidator
-
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.query.query_exceptions import InvalidQueryException
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.specs.query_param_implementations import (
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.query_exceptions import InvalidQueryException
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.specs.query_param_implementations import (
DimensionOrEntityParameter,
MetricParameter,
OrderByParameter,
TimeDimensionParameter,
)
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
EntitySpec,
MetricSpec,
OrderBySpec,
TimeDimensionSpec,
)
-from tests.model.example_project_configuration import EXAMPLE_PROJECT_CONFIGURATION_YAML_CONFIG_FILE
-from tests.time.metric_time_dimension import MTD
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD
+
+from tests_metricflow_semantics.model.example_project_configuration import (
+ EXAMPLE_PROJECT_CONFIGURATION_YAML_CONFIG_FILE,
+)
logger = logging.getLogger(__name__)
diff --git a/tests/query/test_suggestions.py b/metricflow-semantics/tests_metricflow_semantics/query/test_suggestions.py
similarity index 86%
rename from tests/query/test_suggestions.py
rename to metricflow-semantics/tests_metricflow_semantics/query/test_suggestions.py
index 6200e38461..8ab94aa9c5 100644
--- a/tests/query/test_suggestions.py
+++ b/metricflow-semantics/tests_metricflow_semantics/query/test_suggestions.py
@@ -11,19 +11,23 @@
from dbt_semantic_interfaces.implementations.semantic_manifest import PydanticSemanticManifest
from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
from dbt_semantic_interfaces.references import MetricReference
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.query_exceptions import InvalidQueryException
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_str_snapshot_equal
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
-from metricflow.query.query_exceptions import InvalidQueryException
-from metricflow.query.query_parser import MetricFlowQueryParser
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.model.modify.modify_manifest import modify_manifest
-from tests.model.modify.modify_metric_filter import ModifyMetricFilterTransform
-from tests.snapshot_utils import assert_str_snapshot_equal
+from tests_metricflow_semantics.model.modify.modify_manifest import modify_manifest
+from tests_metricflow_semantics.model.modify.modify_metric_filter import ModifyMetricFilterTransform
logger = logging.getLogger(__name__)
+@pytest.fixture
+def query_parser(simple_semantic_manifest_lookup: SemanticManifestLookup) -> MetricFlowQueryParser: # noqa: D103
+ return MetricFlowQueryParser(simple_semantic_manifest_lookup)
+
+
def test_suggestions_for_group_by_item( # noqa: D103
request: FixtureRequest, mf_test_configuration: MetricFlowTestConfiguration, query_parser: MetricFlowQueryParser
) -> None:
@@ -130,7 +134,6 @@ def test_suggestions_for_defined_filters_in_multi_metric_query(
)
semantic_manifest_lookup = SemanticManifestLookup(modified_manifest)
- DunderColumnAssociationResolver(modified_manifest)
query_parser = MetricFlowQueryParser(
semantic_manifest_lookup=semantic_manifest_lookup,
diff --git a/tests/snapshots/test_ambiguous_entity_path.py/MetricFlowQuerySpec/test_ambiguous_entity_path_resolves_to_shortest_entity_path_item__result_0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_ambiguous_entity_path.py/MetricFlowQuerySpec/test_ambiguous_entity_path_resolves_to_shortest_entity_path_item__result_0.txt
similarity index 100%
rename from tests/snapshots/test_ambiguous_entity_path.py/MetricFlowQuerySpec/test_ambiguous_entity_path_resolves_to_shortest_entity_path_item__result_0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_ambiguous_entity_path.py/MetricFlowQuerySpec/test_ambiguous_entity_path_resolves_to_shortest_entity_path_item__result_0.txt
diff --git a/tests/snapshots/test_ambiguous_entity_path.py/MetricFlowQuerySpec/test_resolvable_ambiguous_entity_path__result_0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_ambiguous_entity_path.py/MetricFlowQuerySpec/test_resolvable_ambiguous_entity_path__result_0.txt
similarity index 100%
rename from tests/snapshots/test_ambiguous_entity_path.py/MetricFlowQuerySpec/test_resolvable_ambiguous_entity_path__result_0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_ambiguous_entity_path.py/MetricFlowQuerySpec/test_resolvable_ambiguous_entity_path__result_0.txt
diff --git a/tests/snapshots/test_ambiguous_entity_path.py/str/test_non_resolvable_ambiguous_entity_path_due_to_mismatch__result_0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_ambiguous_entity_path.py/str/test_non_resolvable_ambiguous_entity_path_due_to_mismatch__result_0.txt
similarity index 100%
rename from tests/snapshots/test_ambiguous_entity_path.py/str/test_non_resolvable_ambiguous_entity_path_due_to_mismatch__result_0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_ambiguous_entity_path.py/str/test_non_resolvable_ambiguous_entity_path_due_to_mismatch__result_0.txt
diff --git a/tests/snapshots/test_ambiguous_entity_path.py/str/test_non_resolvable_ambiguous_entity_path_due_to_multiple_matches__result_0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_ambiguous_entity_path.py/str/test_non_resolvable_ambiguous_entity_path_due_to_multiple_matches__result_0.txt
similarity index 100%
rename from tests/snapshots/test_ambiguous_entity_path.py/str/test_non_resolvable_ambiguous_entity_path_due_to_multiple_matches__result_0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_ambiguous_entity_path.py/str/test_non_resolvable_ambiguous_entity_path_due_to_multiple_matches__result_0.txt
diff --git a/tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__accumulate_last_2_months_metric__set0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__accumulate_last_2_months_metric__set0.txt
similarity index 100%
rename from tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__accumulate_last_2_months_metric__set0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__accumulate_last_2_months_metric__set0.txt
diff --git a/tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__derived_metric_with_different_parent_time_grains__set0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__derived_metric_with_different_parent_time_grains__set0.txt
similarity index 100%
rename from tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__derived_metric_with_different_parent_time_grains__set0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__derived_metric_with_different_parent_time_grains__set0.txt
diff --git a/tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__derived_metric_with_same_parent_time_grains__set0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__derived_metric_with_same_parent_time_grains__set0.txt
similarity index 100%
rename from tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__derived_metric_with_same_parent_time_grains__set0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__derived_metric_with_same_parent_time_grains__set0.txt
diff --git a/tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__metrics_with_different_time_grains__set0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__metrics_with_different_time_grains__set0.txt
similarity index 100%
rename from tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__metrics_with_different_time_grains__set0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__metrics_with_different_time_grains__set0.txt
diff --git a/tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__metrics_with_same_time_grains__set0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__metrics_with_same_time_grains__set0.txt
similarity index 100%
rename from tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__metrics_with_same_time_grains__set0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__metrics_with_same_time_grains__set0.txt
diff --git a/tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__no_metrics__set0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__no_metrics__set0.txt
similarity index 100%
rename from tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__no_metrics__set0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__no_metrics__set0.txt
diff --git a/tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__simple_metric__set0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__simple_metric__set0.txt
similarity index 100%
rename from tests/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__simple_metric__set0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_available_group_by_items.py/LinkableSpecSet/test_available_group_by_items__simple_metric__set0.txt
diff --git a/tests/snapshots/test_linkable_spec_resolver.py/list/test_linkable_element_set_as_spec_set__set0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/list/test_linkable_element_set_as_spec_set__set0.txt
similarity index 100%
rename from tests/snapshots/test_linkable_spec_resolver.py/list/test_linkable_element_set_as_spec_set__set0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/list/test_linkable_element_set_as_spec_set__set0.txt
diff --git a/tests/snapshots/test_linkable_spec_resolver.py/str/test_all_properties__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_all_properties__result0.txt
similarity index 100%
rename from tests/snapshots/test_linkable_spec_resolver.py/str/test_all_properties__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_all_properties__result0.txt
diff --git a/tests/snapshots/test_linkable_spec_resolver.py/str/test_create_linkable_element_set_from_join_path__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_create_linkable_element_set_from_join_path__result0.txt
similarity index 100%
rename from tests/snapshots/test_linkable_spec_resolver.py/str/test_create_linkable_element_set_from_join_path__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_create_linkable_element_set_from_join_path__result0.txt
diff --git a/tests/snapshots/test_linkable_spec_resolver.py/str/test_create_linkable_element_set_from_join_path_multi_hop__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_create_linkable_element_set_from_join_path_multi_hop__result0.txt
similarity index 100%
rename from tests/snapshots/test_linkable_spec_resolver.py/str/test_create_linkable_element_set_from_join_path_multi_hop__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_create_linkable_element_set_from_join_path_multi_hop__result0.txt
diff --git a/tests/snapshots/test_linkable_spec_resolver.py/str/test_cyclic_join_manifest__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_cyclic_join_manifest__result0.txt
similarity index 100%
rename from tests/snapshots/test_linkable_spec_resolver.py/str/test_cyclic_join_manifest__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_cyclic_join_manifest__result0.txt
diff --git a/tests/snapshots/test_linkable_spec_resolver.py/str/test_metric_time_property_for_cumulative_metric__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_metric_time_property_for_cumulative_metric__result0.txt
similarity index 100%
rename from tests/snapshots/test_linkable_spec_resolver.py/str/test_metric_time_property_for_cumulative_metric__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_metric_time_property_for_cumulative_metric__result0.txt
diff --git a/tests/snapshots/test_linkable_spec_resolver.py/str/test_metric_time_property_for_derived_metrics__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_metric_time_property_for_derived_metrics__result0.txt
similarity index 100%
rename from tests/snapshots/test_linkable_spec_resolver.py/str/test_metric_time_property_for_derived_metrics__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_metric_time_property_for_derived_metrics__result0.txt
diff --git a/tests/snapshots/test_linkable_spec_resolver.py/str/test_one_property__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_one_property__result0.txt
similarity index 100%
rename from tests/snapshots/test_linkable_spec_resolver.py/str/test_one_property__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_linkable_spec_resolver.py/str/test_one_property__result0.txt
diff --git a/tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__accumulate_last_2_months_metric__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__accumulate_last_2_months_metric__result.txt
similarity index 100%
rename from tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__accumulate_last_2_months_metric__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__accumulate_last_2_months_metric__result.txt
diff --git a/tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__derived_metric_with_different_parent_time_grains__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__derived_metric_with_different_parent_time_grains__result.txt
similarity index 100%
rename from tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__derived_metric_with_different_parent_time_grains__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__derived_metric_with_different_parent_time_grains__result.txt
diff --git a/tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__derived_metric_with_same_parent_time_grains__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__derived_metric_with_same_parent_time_grains__result.txt
similarity index 100%
rename from tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__derived_metric_with_same_parent_time_grains__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__derived_metric_with_same_parent_time_grains__result.txt
diff --git a/tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__metrics_with_different_time_grains__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__metrics_with_different_time_grains__result.txt
similarity index 100%
rename from tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__metrics_with_different_time_grains__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__metrics_with_different_time_grains__result.txt
diff --git a/tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__metrics_with_same_time_grains__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__metrics_with_same_time_grains__result.txt
similarity index 100%
rename from tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__metrics_with_same_time_grains__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__metrics_with_same_time_grains__result.txt
diff --git a/tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__no_metrics__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__no_metrics__result.txt
similarity index 100%
rename from tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__no_metrics__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__no_metrics__result.txt
diff --git a/tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__simple_metric__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__simple_metric__result.txt
similarity index 100%
rename from tests/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__simple_metric__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_filters.py/GroupByItemResolution/test_ambiguous_metric_time_in_query_filter__simple_metric__result.txt
diff --git a/tests/snapshots/test_matching_item_for_querying.py/AvailableGroupByItemsResolution/test_missing_parent_for_metric__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_querying.py/AvailableGroupByItemsResolution/test_missing_parent_for_metric__result.txt
similarity index 100%
rename from tests/snapshots/test_matching_item_for_querying.py/AvailableGroupByItemsResolution/test_missing_parent_for_metric__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_querying.py/AvailableGroupByItemsResolution/test_missing_parent_for_metric__result.txt
diff --git a/tests/snapshots/test_matching_item_for_querying.py/GroupByItemResolution/test_invalid_group_by_item__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_querying.py/GroupByItemResolution/test_invalid_group_by_item__result.txt
similarity index 100%
rename from tests/snapshots/test_matching_item_for_querying.py/GroupByItemResolution/test_invalid_group_by_item__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_querying.py/GroupByItemResolution/test_invalid_group_by_item__result.txt
diff --git a/tests/snapshots/test_matching_item_for_querying.py/GroupByItemResolution/test_unavailable_group_by_item_in_derived_metric_parent__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_querying.py/GroupByItemResolution/test_unavailable_group_by_item_in_derived_metric_parent__result.txt
similarity index 100%
rename from tests/snapshots/test_matching_item_for_querying.py/GroupByItemResolution/test_unavailable_group_by_item_in_derived_metric_parent__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_matching_item_for_querying.py/GroupByItemResolution/test_unavailable_group_by_item_in_derived_metric_parent__result.txt
diff --git a/tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__accumulate_last_2_months_metric__gbir_6.xml b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__accumulate_last_2_months_metric__gbir_6.xml
similarity index 100%
rename from tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__accumulate_last_2_months_metric__gbir_6.xml
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__accumulate_last_2_months_metric__gbir_6.xml
diff --git a/tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__derived_metric_with_different_parent_time_grains__gbir_5.xml b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__derived_metric_with_different_parent_time_grains__gbir_5.xml
similarity index 100%
rename from tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__derived_metric_with_different_parent_time_grains__gbir_5.xml
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__derived_metric_with_different_parent_time_grains__gbir_5.xml
diff --git a/tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__derived_metric_with_same_parent_time_grains__gbir_4.xml b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__derived_metric_with_same_parent_time_grains__gbir_4.xml
similarity index 100%
rename from tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__derived_metric_with_same_parent_time_grains__gbir_4.xml
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__derived_metric_with_same_parent_time_grains__gbir_4.xml
diff --git a/tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__metrics_with_different_time_grains__gbir_3.xml b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__metrics_with_different_time_grains__gbir_3.xml
similarity index 100%
rename from tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__metrics_with_different_time_grains__gbir_3.xml
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__metrics_with_different_time_grains__gbir_3.xml
diff --git a/tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__metrics_with_same_time_grains__gbir_2.xml b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__metrics_with_same_time_grains__gbir_2.xml
similarity index 100%
rename from tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__metrics_with_same_time_grains__gbir_2.xml
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__metrics_with_same_time_grains__gbir_2.xml
diff --git a/tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__no_metrics__gbir_0.xml b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__no_metrics__gbir_0.xml
similarity index 100%
rename from tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__no_metrics__gbir_0.xml
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__no_metrics__gbir_0.xml
diff --git a/tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__simple_metric__gbir_1.xml b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__simple_metric__gbir_1.xml
similarity index 100%
rename from tests/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__simple_metric__gbir_1.xml
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_resolution_dags.py/GroupByItemResolutionDag/test_snapshot__simple_metric__gbir_1.xml
diff --git a/tests/snapshots/test_semantic_model_container.py/dict/test_get_names__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/dict/test_get_names__result0.txt
similarity index 100%
rename from tests/snapshots/test_semantic_model_container.py/dict/test_get_names__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/dict/test_get_names__result0.txt
diff --git a/tests/snapshots/test_semantic_model_container.py/str/test_linkable_elements_for_measure__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/str/test_linkable_elements_for_measure__result0.txt
similarity index 100%
rename from tests/snapshots/test_semantic_model_container.py/str/test_linkable_elements_for_measure__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/str/test_linkable_elements_for_measure__result0.txt
diff --git a/tests/snapshots/test_semantic_model_container.py/str/test_linkable_elements_for_metrics__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/str/test_linkable_elements_for_metrics__result0.txt
similarity index 100%
rename from tests/snapshots/test_semantic_model_container.py/str/test_linkable_elements_for_metrics__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/str/test_linkable_elements_for_metrics__result0.txt
diff --git a/tests/snapshots/test_semantic_model_container.py/str/test_linkable_set_for_common_dimensions_in_different_models__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/str/test_linkable_set_for_common_dimensions_in_different_models__result0.txt
similarity index 100%
rename from tests/snapshots/test_semantic_model_container.py/str/test_linkable_set_for_common_dimensions_in_different_models__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/str/test_linkable_set_for_common_dimensions_in_different_models__result0.txt
diff --git a/tests/snapshots/test_semantic_model_container.py/tuple/test_linkable_elements_for_no_metrics_query__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/tuple/test_linkable_elements_for_no_metrics_query__result0.txt
similarity index 100%
rename from tests/snapshots/test_semantic_model_container.py/tuple/test_linkable_elements_for_no_metrics_query__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/tuple/test_linkable_elements_for_no_metrics_query__result0.txt
diff --git a/tests/snapshots/test_semantic_model_container.py/tuple/test_local_linked_elements_for_metric__result0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/tuple/test_local_linked_elements_for_metric__result0.txt
similarity index 100%
rename from tests/snapshots/test_semantic_model_container.py/tuple/test_local_linked_elements_for_metric__result0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_semantic_model_container.py/tuple/test_local_linked_elements_for_metric__result0.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_derived_metrics_with_common_filtered_metric__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_derived_metrics_with_common_filtered_metric__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_derived_metrics_with_common_filtered_metric__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_derived_metrics_with_common_filtered_metric__result.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_invalid_metric_filter__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_invalid_metric_filter__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_invalid_metric_filter__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_invalid_metric_filter__result.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_invalid_metric_input_filter__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_invalid_metric_input_filter__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_invalid_metric_input_filter__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_invalid_metric_input_filter__result.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_valid_metric_filter__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_valid_metric_filter__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_valid_metric_filter__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_valid_metric_filter__result.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_valid_metric_input_filter__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_valid_metric_input_filter__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_valid_metric_input_filter__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_resolution_for_valid_metric_input_filter__result.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__accumulate_last_2_months_metric__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__accumulate_last_2_months_metric__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__accumulate_last_2_months_metric__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__accumulate_last_2_months_metric__result.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__derived_metric_with_different_parent_time_grains__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__derived_metric_with_different_parent_time_grains__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__derived_metric_with_different_parent_time_grains__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__derived_metric_with_different_parent_time_grains__result.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__derived_metric_with_same_parent_time_grains__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__derived_metric_with_same_parent_time_grains__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__derived_metric_with_same_parent_time_grains__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__derived_metric_with_same_parent_time_grains__result.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__metrics_with_different_time_grains__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__metrics_with_different_time_grains__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__metrics_with_different_time_grains__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__metrics_with_different_time_grains__result.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__metrics_with_same_time_grains__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__metrics_with_same_time_grains__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__metrics_with_same_time_grains__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__metrics_with_same_time_grains__result.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__no_metrics__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__no_metrics__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__no_metrics__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__no_metrics__result.txt
diff --git a/tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__simple_metric__result.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__simple_metric__result.txt
similarity index 100%
rename from tests/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__simple_metric__result.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_spec_lookup.py/str/test_filter_spec_resolution__simple_metric__result.txt
diff --git a/tests/snapshots/test_suggestions.py/str/test_suggestions_for_defined_filters_in_multi_metric_query__result_0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_suggestions.py/str/test_suggestions_for_defined_filters_in_multi_metric_query__result_0.txt
similarity index 100%
rename from tests/snapshots/test_suggestions.py/str/test_suggestions_for_defined_filters_in_multi_metric_query__result_0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_suggestions.py/str/test_suggestions_for_defined_filters_in_multi_metric_query__result_0.txt
diff --git a/tests/snapshots/test_suggestions.py/str/test_suggestions_for_defined_where_filter__result_0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_suggestions.py/str/test_suggestions_for_defined_where_filter__result_0.txt
similarity index 100%
rename from tests/snapshots/test_suggestions.py/str/test_suggestions_for_defined_where_filter__result_0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_suggestions.py/str/test_suggestions_for_defined_where_filter__result_0.txt
diff --git a/tests/snapshots/test_suggestions.py/str/test_suggestions_for_group_by_item__result_0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_suggestions.py/str/test_suggestions_for_group_by_item__result_0.txt
similarity index 100%
rename from tests/snapshots/test_suggestions.py/str/test_suggestions_for_group_by_item__result_0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_suggestions.py/str/test_suggestions_for_group_by_item__result_0.txt
diff --git a/tests/snapshots/test_suggestions.py/str/test_suggestions_for_metric__result_0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_suggestions.py/str/test_suggestions_for_metric__result_0.txt
similarity index 100%
rename from tests/snapshots/test_suggestions.py/str/test_suggestions_for_metric__result_0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_suggestions.py/str/test_suggestions_for_metric__result_0.txt
diff --git a/tests/snapshots/test_suggestions.py/str/test_suggestions_for_multiple_metrics__result_0.txt b/metricflow-semantics/tests_metricflow_semantics/snapshots/test_suggestions.py/str/test_suggestions_for_multiple_metrics__result_0.txt
similarity index 100%
rename from tests/snapshots/test_suggestions.py/str/test_suggestions_for_multiple_metrics__result_0.txt
rename to metricflow-semantics/tests_metricflow_semantics/snapshots/test_suggestions.py/str/test_suggestions_for_multiple_metrics__result_0.txt
diff --git a/tests/naming/__init__.py b/metricflow-semantics/tests_metricflow_semantics/specs/__init__.py
similarity index 100%
rename from tests/naming/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/specs/__init__.py
diff --git a/tests/specs/conftest.py b/metricflow-semantics/tests_metricflow_semantics/specs/conftest.py
similarity index 63%
rename from tests/specs/conftest.py
rename to metricflow-semantics/tests_metricflow_semantics/specs/conftest.py
index 41d99423ce..c5d20ec3a2 100644
--- a/tests/specs/conftest.py
+++ b/metricflow-semantics/tests_metricflow_semantics/specs/conftest.py
@@ -1,7 +1,6 @@
from __future__ import annotations
from dbt_semantic_interfaces.references import MetricReference
-
-from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
EXAMPLE_FILTER_LOCATION = WhereFilterLocation.for_metric(MetricReference("example_metric"))
diff --git a/tests/plan_conversion/__init__.py b/metricflow-semantics/tests_metricflow_semantics/specs/patterns/__init__.py
similarity index 100%
rename from tests/plan_conversion/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/specs/patterns/__init__.py
diff --git a/tests/specs/patterns/test_entity_link_pattern.py b/metricflow-semantics/tests_metricflow_semantics/specs/patterns/test_entity_link_pattern.py
similarity index 95%
rename from tests/specs/patterns/test_entity_link_pattern.py
rename to metricflow-semantics/tests_metricflow_semantics/specs/patterns/test_entity_link_pattern.py
index aea60bc2c0..cfb1c4da16 100644
--- a/tests/specs/patterns/test_entity_link_pattern.py
+++ b/metricflow-semantics/tests_metricflow_semantics/specs/patterns/test_entity_link_pattern.py
@@ -9,14 +9,19 @@
from dbt_semantic_interfaces.references import EntityReference
from dbt_semantic_interfaces.type_enums import TimeGranularity
from dbt_semantic_interfaces.type_enums.date_part import DatePart
-
-from metricflow.specs.patterns.entity_link_pattern import (
+from metricflow_semantics.specs.patterns.entity_link_pattern import (
EntityLinkPattern,
EntityLinkPatternParameterSet,
ParameterSetField,
)
-from metricflow.specs.specs import DimensionSpec, EntitySpec, GroupByMetricSpec, LinkableInstanceSpec, TimeDimensionSpec
-from tests.time.metric_time_dimension import MTD_SPEC_MONTH, MTD_SPEC_WEEK, MTD_SPEC_YEAR
+from metricflow_semantics.specs.spec_classes import (
+ DimensionSpec,
+ EntitySpec,
+ GroupByMetricSpec,
+ LinkableInstanceSpec,
+ TimeDimensionSpec,
+)
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD_SPEC_MONTH, MTD_SPEC_WEEK, MTD_SPEC_YEAR
logger = logging.getLogger(__name__)
diff --git a/tests/specs/patterns/test_typed_patterns.py b/metricflow-semantics/tests_metricflow_semantics/specs/patterns/test_typed_patterns.py
similarity index 95%
rename from tests/specs/patterns/test_typed_patterns.py
rename to metricflow-semantics/tests_metricflow_semantics/specs/patterns/test_typed_patterns.py
index 754a06d660..4c16d8f016 100644
--- a/tests/specs/patterns/test_typed_patterns.py
+++ b/metricflow-semantics/tests_metricflow_semantics/specs/patterns/test_typed_patterns.py
@@ -18,14 +18,19 @@
)
from dbt_semantic_interfaces.type_enums import TimeGranularity
from dbt_semantic_interfaces.type_enums.date_part import DatePart
-
-from metricflow.specs.patterns.typed_patterns import (
+from metricflow_semantics.specs.patterns.typed_patterns import (
DimensionPattern,
EntityPattern,
GroupByMetricPattern,
TimeDimensionPattern,
)
-from metricflow.specs.specs import DimensionSpec, EntitySpec, GroupByMetricSpec, LinkableInstanceSpec, TimeDimensionSpec
+from metricflow_semantics.specs.spec_classes import (
+ DimensionSpec,
+ EntitySpec,
+ GroupByMetricSpec,
+ LinkableInstanceSpec,
+ TimeDimensionSpec,
+)
logger = logging.getLogger(__name__)
diff --git a/tests/specs/test_time_dimension_spec.py b/metricflow-semantics/tests_metricflow_semantics/specs/test_time_dimension_spec.py
similarity index 93%
rename from tests/specs/test_time_dimension_spec.py
rename to metricflow-semantics/tests_metricflow_semantics/specs/test_time_dimension_spec.py
index 9939458891..7bcba39570 100644
--- a/tests/specs/test_time_dimension_spec.py
+++ b/metricflow-semantics/tests_metricflow_semantics/specs/test_time_dimension_spec.py
@@ -4,8 +4,7 @@
from dbt_semantic_interfaces.references import EntityReference
from dbt_semantic_interfaces.type_enums import TimeGranularity
-
-from metricflow.specs.specs import TimeDimensionSpec, TimeDimensionSpecField
+from metricflow_semantics.specs.spec_classes import TimeDimensionSpec, TimeDimensionSpecField
logger = logging.getLogger(__name__)
diff --git a/tests/specs/test_where_filter_entity.py b/metricflow-semantics/tests_metricflow_semantics/specs/test_where_filter_entity.py
similarity index 53%
rename from tests/specs/test_where_filter_entity.py
rename to metricflow-semantics/tests_metricflow_semantics/specs/test_where_filter_entity.py
index 1e7606554c..21890fcb8b 100644
--- a/tests/specs/test_where_filter_entity.py
+++ b/metricflow-semantics/tests_metricflow_semantics/specs/test_where_filter_entity.py
@@ -1,13 +1,15 @@
from __future__ import annotations
import pytest
+from metricflow_semantics.errors.error_classes import InvalidQuerySyntax
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+ FilterSpecResolutionLookUp,
+)
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.rendered_spec_tracker import RenderedSpecTracker
+from metricflow_semantics.specs.where_filter_entity import WhereFilterEntity
-from metricflow.errors.errors import InvalidQuerySyntax
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import FilterSpecResolutionLookUp
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.rendered_spec_tracker import RenderedSpecTracker
-from metricflow.specs.where_filter_entity import WhereFilterEntity
-from tests.specs.conftest import EXAMPLE_FILTER_LOCATION
+from tests_metricflow_semantics.specs.conftest import EXAMPLE_FILTER_LOCATION
def test_descending_cannot_be_set( # noqa
diff --git a/tests/plan_conversion/dataflow_to_sql/__init__.py b/metricflow-semantics/tests_metricflow_semantics/sql/__init__.py
similarity index 100%
rename from tests/plan_conversion/dataflow_to_sql/__init__.py
rename to metricflow-semantics/tests_metricflow_semantics/sql/__init__.py
diff --git a/tests/sql/test_bind_parameter_serialization.py b/metricflow-semantics/tests_metricflow_semantics/sql/test_bind_parameter_serialization.py
similarity index 89%
rename from tests/sql/test_bind_parameter_serialization.py
rename to metricflow-semantics/tests_metricflow_semantics/sql/test_bind_parameter_serialization.py
index 9d0c4d9a81..7d4d8b3953 100644
--- a/tests/sql/test_bind_parameter_serialization.py
+++ b/metricflow-semantics/tests_metricflow_semantics/sql/test_bind_parameter_serialization.py
@@ -2,8 +2,7 @@
import pytest
from dbt_semantic_interfaces.dataclass_serialization import DataClassDeserializer, DataclassSerializer
-
-from metricflow.sql.sql_bind_parameters import SqlBindParameter, SqlBindParameters, SqlBindParameterValue
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameter, SqlBindParameters, SqlBindParameterValue
@pytest.fixture
diff --git a/tests/test_specs.py b/metricflow-semantics/tests_metricflow_semantics/test_specs.py
similarity index 99%
rename from tests/test_specs.py
rename to metricflow-semantics/tests_metricflow_semantics/test_specs.py
index da922e61c9..41ffb13ba7 100644
--- a/tests/test_specs.py
+++ b/metricflow-semantics/tests_metricflow_semantics/test_specs.py
@@ -4,8 +4,7 @@
import pytest
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
EntityReference,
EntitySpec,
diff --git a/metricflow/dataflow/builder/dataflow_plan_builder.py b/metricflow/dataflow/builder/dataflow_plan_builder.py
index d825701242..6f87ce0636 100644
--- a/metricflow/dataflow/builder/dataflow_plan_builder.py
+++ b/metricflow/dataflow/builder/dataflow_plan_builder.py
@@ -21,9 +21,41 @@
)
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
from dbt_semantic_interfaces.validations.unique_valid_name import MetricFlowReservedKeywords
+from metricflow_semantics.dag.id_prefix import StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DagId
+from metricflow_semantics.errors.error_classes import UnableToSatisfyQueryError
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.mf_logging.runtime import log_runtime
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
+from metricflow_semantics.query.group_by_item.filter_spec_resolution.filter_spec_lookup import (
+ FilterSpecResolutionLookUp,
+)
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
+ ConstantPropertySpec,
+ CumulativeMeasureDescription,
+ EntitySpec,
+ InstanceSpecSet,
+ JoinToTimeSpineDescription,
+ LinkableInstanceSpec,
+ LinkableSpecSet,
+ LinklessEntitySpec,
+ MeasureSpec,
+ MetadataSpec,
+ MetricFlowQuerySpec,
+ MetricInputMeasureSpec,
+ MetricSpec,
+ NonAdditiveDimensionSpec,
+ OrderBySpec,
+ TimeDimensionSpec,
+ WhereFilterSpec,
+)
+from metricflow_semantics.specs.where_filter_transform import WhereSpecFactory
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
-from metricflow.dag.id_prefix import StaticIdPrefix
-from metricflow.dag.mf_dag import DagId
from metricflow.dataflow.builder.node_data_set import DataflowPlanNodeOutputDataSetResolver
from metricflow.dataflow.builder.node_evaluator import (
JoinLinkableInstancesRecipe,
@@ -53,38 +85,8 @@
from metricflow.dataflow.nodes.write_to_dataframe import WriteToResultDataframeNode
from metricflow.dataflow.nodes.write_to_table import WriteToResultTableNode
from metricflow.dataflow.optimizer.dataflow_plan_optimizer import DataflowPlanOptimizer
-from metricflow.dataset.dataset import DataSet
-from metricflow.errors.errors import UnableToSatisfyQueryError
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.mf_logging.runtime import log_runtime
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow.dataset.dataset_classes import DataSet
from metricflow.plan_conversion.node_processor import PreJoinNodeProcessor
-from metricflow.query.group_by_item.filter_spec_resolution.filter_location import WhereFilterLocation
-from metricflow.query.group_by_item.filter_spec_resolution.filter_spec_lookup import FilterSpecResolutionLookUp
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.specs import (
- ConstantPropertySpec,
- CumulativeMeasureDescription,
- EntitySpec,
- InstanceSpecSet,
- JoinToTimeSpineDescription,
- LinkableInstanceSpec,
- LinkableSpecSet,
- LinklessEntitySpec,
- MeasureSpec,
- MetadataSpec,
- MetricFlowQuerySpec,
- MetricInputMeasureSpec,
- MetricSpec,
- NonAdditiveDimensionSpec,
- OrderBySpec,
- TimeDimensionSpec,
- WhereFilterSpec,
-)
-from metricflow.specs.where_filter_transform import WhereSpecFactory
-from metricflow.sql.sql_plan import SqlJoinType
from metricflow.sql.sql_table import SqlTable
logger = logging.getLogger(__name__)
diff --git a/metricflow/dataflow/builder/measure_additiveness.py b/metricflow/dataflow/builder/measure_additiveness.py
index ad805870bf..2eb0c9a877 100644
--- a/metricflow/dataflow/builder/measure_additiveness.py
+++ b/metricflow/dataflow/builder/measure_additiveness.py
@@ -4,7 +4,7 @@
from dataclasses import dataclass
from typing import Dict, Optional, Sequence, Tuple
-from metricflow.specs.specs import MeasureSpec, NonAdditiveDimensionSpec
+from metricflow_semantics.specs.spec_classes import MeasureSpec, NonAdditiveDimensionSpec
@dataclass(frozen=True)
diff --git a/metricflow/dataflow/builder/node_data_set.py b/metricflow/dataflow/builder/node_data_set.py
index 303a1a6e35..46e7d80921 100644
--- a/metricflow/dataflow/builder/node_data_set.py
+++ b/metricflow/dataflow/builder/node_data_set.py
@@ -2,16 +2,17 @@
from typing import TYPE_CHECKING, Dict, Optional, Sequence
+from metricflow_semantics.mf_logging.runtime import log_block_runtime
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+
from metricflow.dataflow.dataflow_plan import (
DataflowPlanNode,
)
from metricflow.dataset.sql_dataset import SqlDataSet
-from metricflow.mf_logging.runtime import log_block_runtime
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
-from metricflow.specs.column_assoc import ColumnAssociationResolver
if TYPE_CHECKING:
- from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
+ from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
class DataflowPlanNodeOutputDataSetResolver(DataflowToSqlQueryPlanConverter):
diff --git a/metricflow/dataflow/builder/node_evaluator.py b/metricflow/dataflow/builder/node_evaluator.py
index 995d7fca29..858f320059 100644
--- a/metricflow/dataflow/builder/node_evaluator.py
+++ b/metricflow/dataflow/builder/node_evaluator.py
@@ -22,6 +22,17 @@
from typing import List, Optional, Sequence, Tuple
from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
+from metricflow_semantics.instances import InstanceSet
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.semantics.semantic_model_join_evaluator import SemanticModelJoinEvaluator
+from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
+from metricflow_semantics.specs.spec_classes import (
+ InstanceSpecSet,
+ LinkableInstanceSpec,
+ LinkableSpecSet,
+ LinklessEntitySpec,
+)
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
from metricflow.dataflow.builder.node_data_set import DataflowPlanNodeOutputDataSetResolver
from metricflow.dataflow.builder.partitions import (
@@ -34,15 +45,9 @@
from metricflow.dataflow.nodes.filter_elements import FilterElementsNode
from metricflow.dataflow.nodes.join_to_base import JoinDescription, ValidityWindowJoinDescription
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
-from metricflow.dataset.dataset import DataSet
+from metricflow.dataset.dataset_classes import DataSet
from metricflow.dataset.sql_dataset import SqlDataSet
-from metricflow.instances import InstanceSet
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.model.semantics.semantic_model_join_evaluator import SemanticModelJoinEvaluator
-from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
from metricflow.plan_conversion.instance_converters import CreateValidityWindowJoinDescription
-from metricflow.specs.specs import InstanceSpecSet, LinkableInstanceSpec, LinkableSpecSet, LinklessEntitySpec
-from metricflow.sql.sql_plan import SqlJoinType
logger = logging.getLogger(__name__)
diff --git a/metricflow/dataflow/builder/partitions.py b/metricflow/dataflow/builder/partitions.py
index 00c7d0bd66..0d65e7f76f 100644
--- a/metricflow/dataflow/builder/partitions.py
+++ b/metricflow/dataflow/builder/partitions.py
@@ -4,15 +4,16 @@
from dataclasses import dataclass
from typing import List, Sequence, Tuple
-from metricflow.dataset.dataset import DataSet
-from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
-from metricflow.specs.specs import (
+from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
InstanceSpecSet,
PartitionSpecSet,
TimeDimensionSpec,
)
+from metricflow.dataset.dataset_classes import DataSet
+
@dataclass(frozen=True)
class PartitionDimensionJoinDescription:
diff --git a/metricflow/dataflow/builder/source_node.py b/metricflow/dataflow/builder/source_node.py
index b893518cbd..0777cf000b 100644
--- a/metricflow/dataflow/builder/source_node.py
+++ b/metricflow/dataflow/builder/source_node.py
@@ -4,6 +4,8 @@
from typing import List, Sequence, Tuple
from dbt_semantic_interfaces.references import TimeDimensionReference
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
from metricflow.dataflow.dataflow_plan import (
BaseOutput,
@@ -12,8 +14,7 @@
from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
from metricflow.dataset.convert_semantic_model import SemanticModelToDataSetConverter
from metricflow.dataset.semantic_model_adapter import SemanticModelDataSet
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.specs.column_assoc import ColumnAssociationResolver
+from metricflow.plan_conversion.time_spine import TimeSpineSource
@dataclass(frozen=True)
@@ -54,7 +55,7 @@ def __init__( # noqa: D107
) -> None:
self._semantic_manifest_lookup = semantic_manifest_lookup
data_set_converter = SemanticModelToDataSetConverter(column_association_resolver)
- time_spine_source = self._semantic_manifest_lookup.time_spine_source
+ time_spine_source = TimeSpineSource.create_from_manifest(semantic_manifest_lookup.semantic_manifest)
time_spine_data_set = data_set_converter.build_time_spine_source_data_set(time_spine_source)
time_dim_reference = TimeDimensionReference(element_name=time_spine_source.time_column_name)
self._time_spine_source_node = MetricTimeDimensionTransformNode(
diff --git a/metricflow/dataflow/dataflow_plan.py b/metricflow/dataflow/dataflow_plan.py
index fcfa0d6b24..6032012948 100644
--- a/metricflow/dataflow/dataflow_plan.py
+++ b/metricflow/dataflow/dataflow_plan.py
@@ -7,9 +7,9 @@
from abc import ABC, abstractmethod
from typing import Generic, Optional, Sequence, Type, TypeVar
-from metricflow.dag.id_prefix import StaticIdPrefix
-from metricflow.dag.mf_dag import DagId, DagNode, MetricFlowDag, NodeId
-from metricflow.visitor import Visitable, VisitorOutputT
+from metricflow_semantics.dag.id_prefix import StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DagId, DagNode, MetricFlowDag, NodeId
+from metricflow_semantics.visitor import Visitable, VisitorOutputT
if typing.TYPE_CHECKING:
from metricflow.dataflow.nodes.add_generated_uuid import AddGeneratedUuidColumnNode
diff --git a/metricflow/dataflow/nodes/add_generated_uuid.py b/metricflow/dataflow/nodes/add_generated_uuid.py
index cebb7bdcd4..eb39bed52f 100644
--- a/metricflow/dataflow/nodes/add_generated_uuid.py
+++ b/metricflow/dataflow/nodes/add_generated_uuid.py
@@ -2,10 +2,11 @@
from typing import Sequence
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
-from metricflow.visitor import VisitorOutputT
class AddGeneratedUuidColumnNode(BaseOutput):
diff --git a/metricflow/dataflow/nodes/aggregate_measures.py b/metricflow/dataflow/nodes/aggregate_measures.py
index cacaa13800..ea567fb16b 100644
--- a/metricflow/dataflow/nodes/aggregate_measures.py
+++ b/metricflow/dataflow/nodes/aggregate_measures.py
@@ -3,10 +3,11 @@
from abc import ABC
from typing import Sequence, Tuple
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.specs.spec_classes import MetricInputMeasureSpec
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
-from metricflow.specs.specs import MetricInputMeasureSpec
-from metricflow.visitor import VisitorOutputT
class AggregatedMeasuresOutput(BaseOutput, ABC):
diff --git a/metricflow/dataflow/nodes/combine_aggregated_outputs.py b/metricflow/dataflow/nodes/combine_aggregated_outputs.py
index ffbe66cbe4..e9fc415e42 100644
--- a/metricflow/dataflow/nodes/combine_aggregated_outputs.py
+++ b/metricflow/dataflow/nodes/combine_aggregated_outputs.py
@@ -2,14 +2,15 @@
from typing import Sequence, Union
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.dataflow_plan import (
BaseOutput,
ComputedMetricsOutput,
DataflowPlanNode,
DataflowPlanNodeVisitor,
)
-from metricflow.visitor import VisitorOutputT
class CombineAggregatedOutputsNode(ComputedMetricsOutput):
diff --git a/metricflow/dataflow/nodes/compute_metrics.py b/metricflow/dataflow/nodes/compute_metrics.py
index ab36ad9e1c..873816b2d2 100644
--- a/metricflow/dataflow/nodes/compute_metrics.py
+++ b/metricflow/dataflow/nodes/compute_metrics.py
@@ -2,16 +2,17 @@
from typing import Sequence
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.specs.spec_classes import MetricSpec
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.dataflow_plan import (
BaseOutput,
ComputedMetricsOutput,
DataflowPlanNode,
DataflowPlanNodeVisitor,
)
-from metricflow.specs.specs import MetricSpec
-from metricflow.visitor import VisitorOutputT
class ComputeMetricsNode(ComputedMetricsOutput):
diff --git a/metricflow/dataflow/nodes/constrain_time.py b/metricflow/dataflow/nodes/constrain_time.py
index 6a0ddbc16f..66711a1b14 100644
--- a/metricflow/dataflow/nodes/constrain_time.py
+++ b/metricflow/dataflow/nodes/constrain_time.py
@@ -2,12 +2,13 @@
from typing import Sequence
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
from metricflow.dataflow.nodes.aggregate_measures import AggregatedMeasuresOutput
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.visitor import VisitorOutputT
class ConstrainTimeRangeNode(AggregatedMeasuresOutput, BaseOutput):
diff --git a/metricflow/dataflow/nodes/filter_elements.py b/metricflow/dataflow/nodes/filter_elements.py
index aff60197c0..3d110e7e9f 100644
--- a/metricflow/dataflow/nodes/filter_elements.py
+++ b/metricflow/dataflow/nodes/filter_elements.py
@@ -2,12 +2,13 @@
from typing import Optional, Sequence, Tuple
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.specs.specs import InstanceSpecSet
-from metricflow.visitor import VisitorOutputT
class FilterElementsNode(BaseOutput):
diff --git a/metricflow/dataflow/nodes/join_conversion_events.py b/metricflow/dataflow/nodes/join_conversion_events.py
index 825005dbc8..fe029a4b05 100644
--- a/metricflow/dataflow/nodes/join_conversion_events.py
+++ b/metricflow/dataflow/nodes/join_conversion_events.py
@@ -3,12 +3,18 @@
from typing import Optional, Sequence
from dbt_semantic_interfaces.protocols import MetricTimeWindow
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.specs.spec_classes import (
+ ConstantPropertySpec,
+ EntitySpec,
+ InstanceSpec,
+ MeasureSpec,
+ TimeDimensionSpec,
+)
+from metricflow_semantics.visitor import VisitorOutputT
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
-from metricflow.specs.specs import ConstantPropertySpec, EntitySpec, InstanceSpec, MeasureSpec, TimeDimensionSpec
-from metricflow.visitor import VisitorOutputT
class JoinConversionEventsNode(BaseOutput):
diff --git a/metricflow/dataflow/nodes/join_over_time.py b/metricflow/dataflow/nodes/join_over_time.py
index 7e6736a7ec..3b2b51f0b2 100644
--- a/metricflow/dataflow/nodes/join_over_time.py
+++ b/metricflow/dataflow/nodes/join_over_time.py
@@ -4,13 +4,13 @@
from dbt_semantic_interfaces.protocols import MetricTimeWindow
from dbt_semantic_interfaces.type_enums import TimeGranularity
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty, NodeId
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.specs.spec_classes import TimeDimensionSpec
+from metricflow_semantics.visitor import VisitorOutputT
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty, NodeId
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.specs.specs import TimeDimensionSpec
-from metricflow.visitor import VisitorOutputT
class JoinOverTimeRangeNode(BaseOutput):
diff --git a/metricflow/dataflow/nodes/join_to_base.py b/metricflow/dataflow/nodes/join_to_base.py
index 751159dcc0..870fe3fb38 100644
--- a/metricflow/dataflow/nodes/join_to_base.py
+++ b/metricflow/dataflow/nodes/join_to_base.py
@@ -3,16 +3,17 @@
from dataclasses import dataclass
from typing import List, Optional, Sequence, Tuple
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty, NodeId
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty, NodeId
+from metricflow_semantics.specs.spec_classes import LinklessEntitySpec, TimeDimensionSpec
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.builder.partitions import (
PartitionDimensionJoinDescription,
PartitionTimeDimensionJoinDescription,
)
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
-from metricflow.specs.specs import LinklessEntitySpec, TimeDimensionSpec
-from metricflow.sql.sql_plan import SqlJoinType
-from metricflow.visitor import VisitorOutputT
@dataclass(frozen=True)
diff --git a/metricflow/dataflow/nodes/join_to_time_spine.py b/metricflow/dataflow/nodes/join_to_time_spine.py
index 0ec4daec3f..309320a1d3 100644
--- a/metricflow/dataflow/nodes/join_to_time_spine.py
+++ b/metricflow/dataflow/nodes/join_to_time_spine.py
@@ -5,14 +5,14 @@
from dbt_semantic_interfaces.protocols import MetricTimeWindow
from dbt_semantic_interfaces.type_enums import TimeGranularity
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.specs.spec_classes import TimeDimensionSpec
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.visitor import VisitorOutputT
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.specs.specs import TimeDimensionSpec
-from metricflow.sql.sql_plan import SqlJoinType
-from metricflow.visitor import VisitorOutputT
class JoinToTimeSpineNode(BaseOutput, ABC):
diff --git a/metricflow/dataflow/nodes/metric_time_transform.py b/metricflow/dataflow/nodes/metric_time_transform.py
index 882f1e11fb..08e46336e3 100644
--- a/metricflow/dataflow/nodes/metric_time_transform.py
+++ b/metricflow/dataflow/nodes/metric_time_transform.py
@@ -3,11 +3,11 @@
from typing import Sequence
from dbt_semantic_interfaces.references import TimeDimensionReference
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.visitor import VisitorOutputT
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
-from metricflow.visitor import VisitorOutputT
class MetricTimeDimensionTransformNode(BaseOutput):
diff --git a/metricflow/dataflow/nodes/min_max.py b/metricflow/dataflow/nodes/min_max.py
index 08e54b718c..6825175e2a 100644
--- a/metricflow/dataflow/nodes/min_max.py
+++ b/metricflow/dataflow/nodes/min_max.py
@@ -2,9 +2,10 @@
from typing import Sequence
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
-from metricflow.visitor import VisitorOutputT
class MinMaxNode(BaseOutput):
diff --git a/metricflow/dataflow/nodes/order_by_limit.py b/metricflow/dataflow/nodes/order_by_limit.py
index 8e838a773f..be4643e773 100644
--- a/metricflow/dataflow/nodes/order_by_limit.py
+++ b/metricflow/dataflow/nodes/order_by_limit.py
@@ -2,16 +2,17 @@
from typing import Optional, Sequence, Union
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.specs.spec_classes import OrderBySpec
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.dataflow_plan import (
BaseOutput,
ComputedMetricsOutput,
DataflowPlanNode,
DataflowPlanNodeVisitor,
)
-from metricflow.specs.specs import OrderBySpec
-from metricflow.visitor import VisitorOutputT
class OrderByLimitNode(ComputedMetricsOutput):
diff --git a/metricflow/dataflow/nodes/read_sql_source.py b/metricflow/dataflow/nodes/read_sql_source.py
index 9c6233f374..8c0ce2cc5d 100644
--- a/metricflow/dataflow/nodes/read_sql_source.py
+++ b/metricflow/dataflow/nodes/read_sql_source.py
@@ -4,12 +4,12 @@
from typing import Sequence
import jinja2
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.visitor import VisitorOutputT
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
from metricflow.dataset.sql_dataset import SqlDataSet
-from metricflow.visitor import VisitorOutputT
class ReadSqlSourceNode(BaseOutput):
diff --git a/metricflow/dataflow/nodes/semi_additive_join.py b/metricflow/dataflow/nodes/semi_additive_join.py
index 5e4822d951..3641e7f813 100644
--- a/metricflow/dataflow/nodes/semi_additive_join.py
+++ b/metricflow/dataflow/nodes/semi_additive_join.py
@@ -3,12 +3,12 @@
from typing import Optional, Sequence
from dbt_semantic_interfaces.type_enums import AggregationType
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.specs.spec_classes import LinklessEntitySpec, TimeDimensionSpec
+from metricflow_semantics.visitor import VisitorOutputT
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
-from metricflow.specs.specs import LinklessEntitySpec, TimeDimensionSpec
-from metricflow.visitor import VisitorOutputT
class SemiAdditiveJoinNode(BaseOutput):
diff --git a/metricflow/dataflow/nodes/where_filter.py b/metricflow/dataflow/nodes/where_filter.py
index 679f3ec6b3..e76d67bca4 100644
--- a/metricflow/dataflow/nodes/where_filter.py
+++ b/metricflow/dataflow/nodes/where_filter.py
@@ -2,12 +2,13 @@
from typing import Sequence
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DisplayedProperty
+from metricflow_semantics.specs.spec_classes import WhereFilterSpec
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.dataflow_plan import BaseOutput, DataflowPlanNode, DataflowPlanNodeVisitor
from metricflow.dataflow.nodes.aggregate_measures import AggregatedMeasuresOutput
-from metricflow.specs.specs import WhereFilterSpec
-from metricflow.visitor import VisitorOutputT
class WhereConstraintNode(AggregatedMeasuresOutput):
diff --git a/metricflow/dataflow/nodes/write_to_dataframe.py b/metricflow/dataflow/nodes/write_to_dataframe.py
index 867523bde7..f3de8050c4 100644
--- a/metricflow/dataflow/nodes/write_to_dataframe.py
+++ b/metricflow/dataflow/nodes/write_to_dataframe.py
@@ -2,7 +2,9 @@
from typing import Sequence
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.dataflow_plan import (
BaseOutput,
DataflowPlanNode,
@@ -10,7 +12,6 @@
SinkNodeVisitor,
SinkOutput,
)
-from metricflow.visitor import VisitorOutputT
class WriteToResultDataframeNode(SinkOutput):
diff --git a/metricflow/dataflow/nodes/write_to_table.py b/metricflow/dataflow/nodes/write_to_table.py
index d62647cfc2..72860e946e 100644
--- a/metricflow/dataflow/nodes/write_to_table.py
+++ b/metricflow/dataflow/nodes/write_to_table.py
@@ -2,7 +2,9 @@
from typing import Sequence
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.visitor import VisitorOutputT
+
from metricflow.dataflow.dataflow_plan import (
BaseOutput,
DataflowPlanNode,
@@ -11,7 +13,6 @@
SinkOutput,
)
from metricflow.sql.sql_table import SqlTable
-from metricflow.visitor import VisitorOutputT
class WriteToResultTableNode(SinkOutput):
diff --git a/metricflow/dataflow/optimizer/source_scan/cm_branch_combiner.py b/metricflow/dataflow/optimizer/source_scan/cm_branch_combiner.py
index d7a9b89a82..f21f984514 100644
--- a/metricflow/dataflow/optimizer/source_scan/cm_branch_combiner.py
+++ b/metricflow/dataflow/optimizer/source_scan/cm_branch_combiner.py
@@ -4,6 +4,8 @@
from dataclasses import dataclass
from typing import List, Optional, Sequence
+from metricflow_semantics.specs.spec_classes import MetricSpec
+
from metricflow.dataflow.dataflow_plan import (
BaseOutput,
DataflowPlanNode,
@@ -28,7 +30,6 @@
from metricflow.dataflow.nodes.write_to_dataframe import WriteToResultDataframeNode
from metricflow.dataflow.nodes.write_to_table import WriteToResultTableNode
from metricflow.dataflow.optimizer.source_scan.matching_linkable_specs import MatchingLinkableSpecsTransform
-from metricflow.specs.specs import MetricSpec
logger = logging.getLogger(__name__)
diff --git a/metricflow/dataflow/optimizer/source_scan/matching_linkable_specs.py b/metricflow/dataflow/optimizer/source_scan/matching_linkable_specs.py
index f3292eaeab..e5b3c7da47 100644
--- a/metricflow/dataflow/optimizer/source_scan/matching_linkable_specs.py
+++ b/metricflow/dataflow/optimizer/source_scan/matching_linkable_specs.py
@@ -1,6 +1,6 @@
from __future__ import annotations
-from metricflow.specs.specs import InstanceSpecSet, InstanceSpecSetTransform
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet, InstanceSpecSetTransform
class MatchingLinkableSpecsTransform(InstanceSpecSetTransform[bool]):
diff --git a/metricflow/dataflow/optimizer/source_scan/source_scan_optimizer.py b/metricflow/dataflow/optimizer/source_scan/source_scan_optimizer.py
index 6d604e0fbb..640f0735bd 100644
--- a/metricflow/dataflow/optimizer/source_scan/source_scan_optimizer.py
+++ b/metricflow/dataflow/optimizer/source_scan/source_scan_optimizer.py
@@ -4,8 +4,9 @@
from dataclasses import dataclass
from typing import List, Optional, Sequence
-from metricflow.dag.id_prefix import StaticIdPrefix
-from metricflow.dag.mf_dag import DagId
+from metricflow_semantics.dag.id_prefix import StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DagId
+
from metricflow.dataflow.dataflow_plan import (
BaseOutput,
DataflowPlan,
diff --git a/metricflow/dataset/convert_semantic_model.py b/metricflow/dataset/convert_semantic_model.py
index d384c79636..964d0d4b50 100644
--- a/metricflow/dataset/convert_semantic_model.py
+++ b/metricflow/dataset/convert_semantic_model.py
@@ -15,30 +15,30 @@
)
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-
-from metricflow.aggregation_properties import AggregationState
-from metricflow.dag.id_prefix import DynamicIdPrefix, StaticIdPrefix
-from metricflow.dag.sequential_id import SequentialIdGenerator
-from metricflow.dataset.semantic_model_adapter import SemanticModelDataSet
-from metricflow.dataset.sql_dataset import SqlDataSet
-from metricflow.instances import (
+from metricflow_semantics.aggregation_properties import AggregationState
+from metricflow_semantics.dag.id_prefix import DynamicIdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.sequential_id import SequentialIdGenerator
+from metricflow_semantics.instances import (
DimensionInstance,
EntityInstance,
InstanceSet,
MeasureInstance,
TimeDimensionInstance,
)
-from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
-from metricflow.model.spec_converters import MeasureConverter
-from metricflow.plan_conversion.time_spine import TIME_SPINE_DATA_SET_DESCRIPTION, TimeSpineSource
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.specs import (
+from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
+from metricflow_semantics.model.spec_converters import MeasureConverter
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
DEFAULT_TIME_GRANULARITY,
DimensionSpec,
EntityReference,
EntitySpec,
TimeDimensionSpec,
)
+
+from metricflow.dataset.semantic_model_adapter import SemanticModelDataSet
+from metricflow.dataset.sql_dataset import SqlDataSet
+from metricflow.plan_conversion.time_spine import TIME_SPINE_DATA_SET_DESCRIPTION, TimeSpineSource
from metricflow.sql.sql_exprs import (
SqlColumnReference,
SqlColumnReferenceExpression,
diff --git a/metricflow/dataset/dataset.py b/metricflow/dataset/dataset_classes.py
similarity index 95%
rename from metricflow/dataset/dataset.py
rename to metricflow/dataset/dataset_classes.py
index 2d7b2fd86e..2a7ab1bbfe 100644
--- a/metricflow/dataset/dataset.py
+++ b/metricflow/dataset/dataset_classes.py
@@ -8,9 +8,8 @@
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
from dbt_semantic_interfaces.validations.unique_valid_name import MetricFlowReservedKeywords
-
-from metricflow.instances import InstanceSet, TimeDimensionInstance
-from metricflow.specs.specs import TimeDimensionSpec
+from metricflow_semantics.instances import InstanceSet, TimeDimensionInstance
+from metricflow_semantics.specs.spec_classes import TimeDimensionSpec
logger = logging.getLogger(__name__)
diff --git a/metricflow/dataset/semantic_model_adapter.py b/metricflow/dataset/semantic_model_adapter.py
index efe24dc035..bb3a54142d 100644
--- a/metricflow/dataset/semantic_model_adapter.py
+++ b/metricflow/dataset/semantic_model_adapter.py
@@ -1,10 +1,10 @@
from __future__ import annotations
from dbt_semantic_interfaces.references import SemanticModelReference
+from metricflow_semantics.instances import InstanceSet
from typing_extensions import override
from metricflow.dataset.sql_dataset import SqlDataSet
-from metricflow.instances import InstanceSet
from metricflow.sql.sql_plan import SqlSelectStatementNode
diff --git a/metricflow/dataset/sql_dataset.py b/metricflow/dataset/sql_dataset.py
index c59b1c48f4..ed358cb138 100644
--- a/metricflow/dataset/sql_dataset.py
+++ b/metricflow/dataset/sql_dataset.py
@@ -3,15 +3,15 @@
from typing import Optional, Sequence
from dbt_semantic_interfaces.references import SemanticModelReference
-from typing_extensions import override
-
-from metricflow.assert_one_arg import assert_exactly_one_arg_set
-from metricflow.dataset.dataset import DataSet
-from metricflow.instances import (
+from metricflow_semantics.assert_one_arg import assert_exactly_one_arg_set
+from metricflow_semantics.instances import (
InstanceSet,
)
-from metricflow.specs.column_assoc import ColumnAssociation
-from metricflow.specs.specs import DimensionSpec, EntitySpec, TimeDimensionSpec
+from metricflow_semantics.specs.column_assoc import ColumnAssociation
+from metricflow_semantics.specs.spec_classes import DimensionSpec, EntitySpec, TimeDimensionSpec
+from typing_extensions import override
+
+from metricflow.dataset.dataset_classes import DataSet
from metricflow.sql.sql_plan import (
SqlQueryPlanNode,
SqlSelectStatementNode,
diff --git a/metricflow/engine/metricflow_engine.py b/metricflow/engine/metricflow_engine.py
index 24318affe9..eb0e011623 100644
--- a/metricflow/engine/metricflow_engine.py
+++ b/metricflow/engine/metricflow_engine.py
@@ -12,8 +12,28 @@
from dbt_semantic_interfaces.implementations.filters.where_filter import PydanticWhereFilter
from dbt_semantic_interfaces.references import EntityReference, MeasureReference, MetricReference
from dbt_semantic_interfaces.type_enums import DimensionType
+from metricflow_semantics.dag.sequential_id import SequentialIdGenerator
+from metricflow_semantics.errors.error_classes import ExecutionException
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.model.semantics.linkable_element import (
+ LinkableDimension,
+ LinkableElementProperty,
+)
+from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
+from metricflow_semantics.naming.linkable_spec_name import StructuredLinkableSpecName
+from metricflow_semantics.protocols.query_parameter import GroupByParameter, MetricQueryParameter, OrderByQueryParameter
+from metricflow_semantics.query.query_exceptions import InvalidQueryException
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.random_id import random_id
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.specs.query_param_implementations import SavedQueryParameter
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet, MetricFlowQuerySpec
+from metricflow_semantics.time.time_source import TimeSource
-from metricflow.dag.sequential_id import SequentialIdGenerator
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
from metricflow.dataflow.builder.node_data_set import DataflowPlanNodeOutputDataSetResolver
from metricflow.dataflow.builder.source_node import SourceNodeBuilder
@@ -22,42 +42,23 @@
SourceScanOptimizer,
)
from metricflow.dataset.convert_semantic_model import SemanticModelToDataSetConverter
-from metricflow.dataset.dataset import DataSet
+from metricflow.dataset.dataset_classes import DataSet
from metricflow.dataset.semantic_model_adapter import SemanticModelDataSet
from metricflow.engine.models import Dimension, Entity, Measure, Metric, SavedQuery
from metricflow.engine.time_source import ServerTimeSource
-from metricflow.errors.errors import ExecutionException
-from metricflow.execution.execution_plan import ExecutionPlan, SqlQuery
-from metricflow.execution.executor import SequentialPlanExecutor
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.model.semantics.linkable_element import (
- LinkableDimension,
- LinkableElementProperty,
-)
-from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
-from metricflow.naming.linkable_spec_name import StructuredLinkableSpecName
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
-from metricflow.plan_conversion.convert_to_execution_plan import ConvertToExecutionPlanResult
-from metricflow.plan_conversion.dataflow_to_execution import (
+from metricflow.execution.convert_to_execution_plan import ConvertToExecutionPlanResult
+from metricflow.execution.dataflow_to_execution import (
DataflowToExecutionPlanConverter,
)
+from metricflow.execution.execution_plan import ExecutionPlan, SqlQuery
+from metricflow.execution.executor import SequentialPlanExecutor
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
-from metricflow.protocols.query_parameter import GroupByParameter, MetricQueryParameter, OrderByQueryParameter
+from metricflow.plan_conversion.time_spine import TimeSpineSource
from metricflow.protocols.sql_client import SqlClient
-from metricflow.query.query_exceptions import InvalidQueryException
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.random_id import random_id
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.query_param_implementations import SavedQueryParameter
-from metricflow.specs.specs import InstanceSpecSet, MetricFlowQuerySpec
from metricflow.sql.optimizer.optimization_levels import SqlQueryOptimizationLevel
from metricflow.sql.sql_table import SqlTable
from metricflow.telemetry.models import TelemetryLevel
from metricflow.telemetry.reporter import TelemetryReporter, log_call
-from metricflow.time.time_source import TimeSource
logger = logging.getLogger(__name__)
_telemetry_reporter = TelemetryReporter(report_levels_higher_or_equal_to=TelemetryLevel.USAGE)
@@ -365,7 +366,7 @@ def __init__(
DunderColumnAssociationResolver(semantic_manifest_lookup)
)
self._time_source = time_source
- self._time_spine_source = semantic_manifest_lookup.time_spine_source
+ self._time_spine_source = TimeSpineSource.create_from_manifest(semantic_manifest_lookup.semantic_manifest)
self._source_data_sets: List[SemanticModelDataSet] = []
converter = SemanticModelToDataSetConverter(column_association_resolver=self._column_association_resolver)
for semantic_model in sorted(
diff --git a/metricflow/engine/models.py b/metricflow/engine/models.py
index 6586d508d2..40aa85c45b 100644
--- a/metricflow/engine/models.py
+++ b/metricflow/engine/models.py
@@ -27,9 +27,8 @@
from dbt_semantic_interfaces.transformations.add_input_metric_measures import AddInputMetricMeasuresRule
from dbt_semantic_interfaces.type_enums.aggregation_type import AggregationType
from dbt_semantic_interfaces.type_enums.entity_type import EntityType
-
-from metricflow.naming.linkable_spec_name import StructuredLinkableSpecName
-from metricflow.specs.specs import DimensionSpec, EntityReference
+from metricflow_semantics.naming.linkable_spec_name import StructuredLinkableSpecName
+from metricflow_semantics.specs.spec_classes import DimensionSpec, EntityReference
@dataclass(frozen=True)
diff --git a/metricflow/engine/time_source.py b/metricflow/engine/time_source.py
index 7b021f2736..a8f0171dd8 100644
--- a/metricflow/engine/time_source.py
+++ b/metricflow/engine/time_source.py
@@ -2,7 +2,7 @@
import datetime as dt
-from metricflow.time.time_source import TimeSource
+from metricflow_semantics.time.time_source import TimeSource
class ServerTimeSource(TimeSource):
diff --git a/metricflow/plan_conversion/convert_to_execution_plan.py b/metricflow/execution/convert_to_execution_plan.py
similarity index 100%
rename from metricflow/plan_conversion/convert_to_execution_plan.py
rename to metricflow/execution/convert_to_execution_plan.py
diff --git a/metricflow/plan_conversion/dataflow_to_execution.py b/metricflow/execution/dataflow_to_execution.py
similarity index 97%
rename from metricflow/plan_conversion/dataflow_to_execution.py
rename to metricflow/execution/dataflow_to_execution.py
index f0c83b0481..1773e0ce39 100644
--- a/metricflow/plan_conversion/dataflow_to_execution.py
+++ b/metricflow/execution/dataflow_to_execution.py
@@ -11,12 +11,12 @@
)
from metricflow.dataflow.nodes.write_to_dataframe import WriteToResultDataframeNode
from metricflow.dataflow.nodes.write_to_table import WriteToResultTableNode
+from metricflow.execution.convert_to_execution_plan import ConvertToExecutionPlanResult
from metricflow.execution.execution_plan import (
ExecutionPlan,
SelectSqlQueryToDataFrameTask,
SelectSqlQueryToTableTask,
)
-from metricflow.plan_conversion.convert_to_execution_plan import ConvertToExecutionPlanResult
from metricflow.plan_conversion.convert_to_sql_plan import ConvertToSqlPlanResult
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
diff --git a/metricflow/execution/execution_plan.py b/metricflow/execution/execution_plan.py
index 6f8e973706..0f03c25834 100644
--- a/metricflow/execution/execution_plan.py
+++ b/metricflow/execution/execution_plan.py
@@ -7,13 +7,13 @@
from typing import List, Optional, Sequence, Tuple
import pandas as pd
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DagId, DagNode, DisplayedProperty, MetricFlowDag, NodeId
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
+from metricflow_semantics.visitor import Visitable
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DagId, DagNode, DisplayedProperty, MetricFlowDag, NodeId
from metricflow.protocols.sql_client import SqlClient
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_table import SqlTable
-from metricflow.visitor import Visitable
logger = logging.getLogger(__name__)
diff --git a/metricflow/execution/executor.py b/metricflow/execution/executor.py
index 2663019120..ea8ba04595 100644
--- a/metricflow/execution/executor.py
+++ b/metricflow/execution/executor.py
@@ -5,7 +5,8 @@
from collections import OrderedDict
from typing import Dict
-from metricflow.dag.mf_dag import NodeId
+from metricflow_semantics.dag.mf_dag import NodeId
+
from metricflow.execution.execution_plan import ExecutionPlan, ExecutionPlanTask, TaskExecutionResult
logger = logging.getLogger(__name__)
diff --git a/tests/plan_conversion/instance_converters/__init__.py b/metricflow/inference/rule/__init__.py
similarity index 100%
rename from tests/plan_conversion/instance_converters/__init__.py
rename to metricflow/inference/rule/__init__.py
diff --git a/metricflow/mf_logging/__init__.py b/metricflow/mf_logging/__init__.py
deleted file mode 100644
index 482d894b76..0000000000
--- a/metricflow/mf_logging/__init__.py
+++ /dev/null
@@ -1,4 +0,0 @@
-"""Contains logging-related classes / functions.
-
-Named with the 'mf_' prefix to avoid collision with the built-in module.
-"""
diff --git a/metricflow/model/semantic_manifest_lookup.py b/metricflow/model/semantic_manifest_lookup.py
deleted file mode 100644
index 6d47938975..0000000000
--- a/metricflow/model/semantic_manifest_lookup.py
+++ /dev/null
@@ -1,58 +0,0 @@
-from __future__ import annotations
-
-import logging
-
-from dbt_semantic_interfaces.protocols.semantic_manifest import SemanticManifest
-from dbt_semantic_interfaces.type_enums import TimeGranularity
-
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.model.semantics.metric_lookup import MetricLookup
-from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
-from metricflow.plan_conversion.time_spine import TimeSpineSource
-from metricflow.sql.sql_table import SqlTable
-
-logger = logging.getLogger(__name__)
-
-
-class SemanticManifestLookup:
- """Adds semantics information to the user configured model."""
-
- def __init__(self, semantic_manifest: SemanticManifest) -> None: # noqa: D107
- self._semantic_manifest = semantic_manifest
- self._semantic_model_lookup = SemanticModelLookup(semantic_manifest)
- self._metric_lookup = MetricLookup(self._semantic_manifest, self._semantic_model_lookup)
-
- @property
- def semantic_manifest(self) -> SemanticManifest: # noqa: D102
- return self._semantic_manifest
-
- @property
- def semantic_model_lookup(self) -> SemanticModelLookup: # noqa: D102
- return self._semantic_model_lookup
-
- @property
- def metric_lookup(self) -> MetricLookup: # noqa: D102
- return self._metric_lookup
-
- @property
- def time_spine_source(self) -> TimeSpineSource: # noqa: D102
- time_spine_table_configurations = self._semantic_manifest.project_configuration.time_spine_table_configurations
-
- if not (
- len(time_spine_table_configurations) == 1
- and time_spine_table_configurations[0].grain == TimeGranularity.DAY
- ):
- raise NotImplementedError(
- f"Only a single time spine table configuration with {TimeGranularity.DAY} is currently "
- f"supported. Got:\n"
- f"{mf_pformat(time_spine_table_configurations)}"
- )
-
- time_spine_table_configuration = time_spine_table_configurations[0]
- time_spine_table = SqlTable.from_string(time_spine_table_configuration.location)
- return TimeSpineSource(
- schema_name=time_spine_table.schema_name,
- table_name=time_spine_table.table_name,
- time_column_name=time_spine_table_configuration.column_name,
- time_column_granularity=time_spine_table_configuration.grain,
- )
diff --git a/metricflow/plan_conversion/convert_to_sql_plan.py b/metricflow/plan_conversion/convert_to_sql_plan.py
index ae36364572..7b9eacfbb6 100644
--- a/metricflow/plan_conversion/convert_to_sql_plan.py
+++ b/metricflow/plan_conversion/convert_to_sql_plan.py
@@ -2,7 +2,8 @@
from dataclasses import dataclass
-from metricflow.instances import InstanceSet
+from metricflow_semantics.instances import InstanceSet
+
from metricflow.sql.sql_plan import SqlQueryPlan
diff --git a/metricflow/plan_conversion/dataflow_to_sql.py b/metricflow/plan_conversion/dataflow_to_sql.py
index 05ff5212e4..c4cacfd692 100644
--- a/metricflow/plan_conversion/dataflow_to_sql.py
+++ b/metricflow/plan_conversion/dataflow_to_sql.py
@@ -11,11 +11,36 @@
from dbt_semantic_interfaces.type_enums.aggregation_type import AggregationType
from dbt_semantic_interfaces.type_enums.conversion_calculation_type import ConversionCalculationType
from dbt_semantic_interfaces.validations.unique_valid_name import MetricFlowReservedKeywords
+from metricflow_semantics.aggregation_properties import AggregationState
+from metricflow_semantics.dag.id_prefix import StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DagId
+from metricflow_semantics.dag.sequential_id import SequentialIdGenerator
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.instances import (
+ GroupByMetricInstance,
+ InstanceSet,
+ MetadataInstance,
+ MetricInstance,
+ TimeDimensionInstance,
+)
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.column_assoc import (
+ ColumnAssociation,
+ ColumnAssociationResolver,
+ SingleColumnCorrelationKey,
+)
+from metricflow_semantics.specs.spec_classes import (
+ GroupByMetricSpec,
+ InstanceSpecSet,
+ MeasureSpec,
+ MetadataSpec,
+ MetricSpec,
+ TimeDimensionSpec,
+)
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.time.time_constants import ISO8601_PYTHON_FORMAT
-from metricflow.aggregation_properties import AggregationState
-from metricflow.dag.id_prefix import StaticIdPrefix
-from metricflow.dag.mf_dag import DagId
-from metricflow.dag.sequential_id import SequentialIdGenerator
from metricflow.dataflow.dataflow_plan import (
BaseOutput,
DataflowPlanNode,
@@ -39,18 +64,8 @@
from metricflow.dataflow.nodes.where_filter import WhereConstraintNode
from metricflow.dataflow.nodes.write_to_dataframe import WriteToResultDataframeNode
from metricflow.dataflow.nodes.write_to_table import WriteToResultTableNode
-from metricflow.dataset.dataset import DataSet
+from metricflow.dataset.dataset_classes import DataSet
from metricflow.dataset.sql_dataset import SqlDataSet
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.instances import (
- GroupByMetricInstance,
- InstanceSet,
- MetadataInstance,
- MetricInstance,
- TimeDimensionInstance,
-)
-from metricflow.mf_logging.formatting import indent
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
from metricflow.plan_conversion.convert_to_sql_plan import ConvertToSqlPlanResult
from metricflow.plan_conversion.instance_converters import (
AddGroupByMetrics,
@@ -87,15 +102,6 @@
)
from metricflow.plan_conversion.time_spine import TIME_SPINE_DATA_SET_DESCRIPTION, TimeSpineSource
from metricflow.protocols.sql_client import SqlEngine
-from metricflow.specs.column_assoc import ColumnAssociation, ColumnAssociationResolver, SingleColumnCorrelationKey
-from metricflow.specs.specs import (
- GroupByMetricSpec,
- InstanceSpecSet,
- MeasureSpec,
- MetadataSpec,
- MetricSpec,
- TimeDimensionSpec,
-)
from metricflow.sql.optimizer.optimization_levels import (
SqlQueryOptimizationLevel,
SqlQueryOptimizerConfiguration,
@@ -125,7 +131,6 @@
from metricflow.sql.sql_plan import (
SqlCreateTableAsNode,
SqlJoinDescription,
- SqlJoinType,
SqlOrderByDescription,
SqlQueryPlan,
SqlQueryPlanNode,
@@ -133,7 +138,6 @@
SqlSelectStatementNode,
SqlTableFromClauseNode,
)
-from metricflow.time.time_constants import ISO8601_PYTHON_FORMAT
logger = logging.getLogger(__name__)
@@ -178,7 +182,7 @@ def __init__(
self._semantic_manifest_lookup = semantic_manifest_lookup
self._metric_lookup = semantic_manifest_lookup.metric_lookup
self._semantic_model_lookup = semantic_manifest_lookup.semantic_model_lookup
- self._time_spine_source = semantic_manifest_lookup.time_spine_source
+ self._time_spine_source = TimeSpineSource.create_from_manifest(semantic_manifest_lookup.semantic_manifest)
@property
def column_association_resolver(self) -> ColumnAssociationResolver: # noqa: D102
diff --git a/metricflow/plan_conversion/instance_converters.py b/metricflow/plan_conversion/instance_converters.py
index c60fba87be..1139d07831 100644
--- a/metricflow/plan_conversion/instance_converters.py
+++ b/metricflow/plan_conversion/instance_converters.py
@@ -12,12 +12,9 @@
from dbt_semantic_interfaces.type_enums.aggregation_type import AggregationType
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-from more_itertools import bucket
-
-from metricflow.aggregation_properties import AggregationState
-from metricflow.assert_one_arg import assert_exactly_one_arg_set
-from metricflow.dataflow.nodes.join_to_base import ValidityWindowJoinDescription
-from metricflow.instances import (
+from metricflow_semantics.aggregation_properties import AggregationState
+from metricflow_semantics.assert_one_arg import assert_exactly_one_arg_set
+from metricflow_semantics.instances import (
DimensionInstance,
EntityInstance,
GroupByMetricInstance,
@@ -29,11 +26,10 @@
MetricInstance,
TimeDimensionInstance,
)
-from metricflow.model.semantics.metric_lookup import MetricLookup
-from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
-from metricflow.plan_conversion.select_column_gen import SelectColumnSet
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.specs import (
+from metricflow_semantics.model.semantics.metric_lookup import MetricLookup
+from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
EntityReference,
EntitySpec,
@@ -46,6 +42,10 @@
MetricInputMeasureSpec,
TimeDimensionSpec,
)
+from more_itertools import bucket
+
+from metricflow.dataflow.nodes.join_to_base import ValidityWindowJoinDescription
+from metricflow.plan_conversion.select_column_gen import SelectColumnSet
from metricflow.sql.sql_exprs import (
SqlAggregateFunctionExpression,
SqlColumnReference,
diff --git a/metricflow/plan_conversion/node_processor.py b/metricflow/plan_conversion/node_processor.py
index d3bdcd5afe..f58756542d 100644
--- a/metricflow/plan_conversion/node_processor.py
+++ b/metricflow/plan_conversion/node_processor.py
@@ -5,6 +5,13 @@
from typing import List, Optional, Sequence, Set
from dbt_semantic_interfaces.references import EntityReference, TimeDimensionReference
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.semantics.semantic_model_join_evaluator import MAX_JOIN_HOPS
+from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet, LinkableInstanceSpec, LinklessEntitySpec
+from metricflow_semantics.specs.spec_set_transforms import ToElementNameSet
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
from metricflow.dataflow.builder.node_data_set import DataflowPlanNodeOutputDataSetResolver
from metricflow.dataflow.builder.partitions import PartitionJoinResolver
@@ -15,13 +22,7 @@
from metricflow.dataflow.nodes.filter_elements import FilterElementsNode
from metricflow.dataflow.nodes.join_to_base import JoinDescription, JoinToBaseOutputNode
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.model.semantics.semantic_model_join_evaluator import MAX_JOIN_HOPS, SemanticModelJoinEvaluator
-from metricflow.model.semantics.semantic_model_lookup import SemanticModelLookup
-from metricflow.specs.spec_set_transforms import ToElementNameSet
-from metricflow.specs.specs import InstanceSpecSet, LinkableInstanceSpec, LinklessEntitySpec
-from metricflow.sql.sql_plan import SqlJoinType
+from metricflow.validation.dataflow_join_validator import JoinDataflowOutputValidator
logger = logging.getLogger(__name__)
@@ -84,7 +85,7 @@ def __init__( # noqa: D107
self._node_data_set_resolver = node_data_set_resolver
self._partition_resolver = PartitionJoinResolver(semantic_model_lookup)
self._semantic_model_lookup = semantic_model_lookup
- self._join_evaluator = SemanticModelJoinEvaluator(semantic_model_lookup)
+ self._join_evaluator = JoinDataflowOutputValidator(semantic_model_lookup)
def add_time_range_constraint(
self,
diff --git a/metricflow/plan_conversion/spec_transforms.py b/metricflow/plan_conversion/spec_transforms.py
index ec562ec7c5..9cdab81984 100644
--- a/metricflow/plan_conversion/spec_transforms.py
+++ b/metricflow/plan_conversion/spec_transforms.py
@@ -2,13 +2,14 @@
from typing import List, Sequence
-from metricflow.plan_conversion.select_column_gen import SelectColumnSet
-from metricflow.plan_conversion.sql_expression_builders import make_coalesced_expr
-from metricflow.specs.column_assoc import ColumnAssociation, ColumnAssociationResolver
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.column_assoc import ColumnAssociation, ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
InstanceSpecSet,
InstanceSpecSetTransform,
)
+
+from metricflow.plan_conversion.select_column_gen import SelectColumnSet
+from metricflow.plan_conversion.sql_expression_builders import make_coalesced_expr
from metricflow.sql.sql_plan import SqlSelectColumn
diff --git a/metricflow/plan_conversion/sql_join_builder.py b/metricflow/plan_conversion/sql_join_builder.py
index 5407f0c98a..7a58689b67 100644
--- a/metricflow/plan_conversion/sql_join_builder.py
+++ b/metricflow/plan_conversion/sql_join_builder.py
@@ -5,8 +5,9 @@
from dbt_semantic_interfaces.protocols.metric import MetricTimeWindow
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.assert_one_arg import assert_exactly_one_arg_set
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
-from metricflow.assert_one_arg import assert_exactly_one_arg_set
from metricflow.dataflow.nodes.join_conversion_events import JoinConversionEventsNode
from metricflow.dataflow.nodes.join_over_time import JoinOverTimeRangeNode
from metricflow.dataflow.nodes.join_to_base import JoinDescription
@@ -24,7 +25,7 @@
SqlLogicalOperator,
SqlSubtractTimeIntervalExpression,
)
-from metricflow.sql.sql_plan import SqlExpressionNode, SqlJoinDescription, SqlJoinType, SqlSelectStatementNode
+from metricflow.sql.sql_plan import SqlExpressionNode, SqlJoinDescription, SqlSelectStatementNode
@dataclass(frozen=True)
diff --git a/metricflow/plan_conversion/time_spine.py b/metricflow/plan_conversion/time_spine.py
index 927753a058..38669b4e3e 100644
--- a/metricflow/plan_conversion/time_spine.py
+++ b/metricflow/plan_conversion/time_spine.py
@@ -3,7 +3,9 @@
import logging
from dataclasses import dataclass
+from dbt_semantic_interfaces.protocols import SemanticManifest
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
from metricflow.sql.sql_table import SqlTable
@@ -27,3 +29,27 @@ class TimeSpineSource:
def spine_table(self) -> SqlTable:
"""Table containing all dates."""
return SqlTable(schema_name=self.schema_name, table_name=self.table_name)
+
+ @staticmethod
+ def create_from_manifest(semantic_manifest: SemanticManifest) -> TimeSpineSource:
+ """Creates a time spine source based on what's in the manifest."""
+ time_spine_table_configurations = semantic_manifest.project_configuration.time_spine_table_configurations
+
+ if not (
+ len(time_spine_table_configurations) == 1
+ and time_spine_table_configurations[0].grain == TimeGranularity.DAY
+ ):
+ raise NotImplementedError(
+ f"Only a single time spine table configuration with {TimeGranularity.DAY} is currently "
+ f"supported. Got:\n"
+ f"{mf_pformat(time_spine_table_configurations)}"
+ )
+
+ time_spine_table_configuration = time_spine_table_configurations[0]
+ time_spine_table = SqlTable.from_string(time_spine_table_configuration.location)
+ return TimeSpineSource(
+ schema_name=time_spine_table.schema_name,
+ table_name=time_spine_table.table_name,
+ time_column_name=time_spine_table_configuration.column_name,
+ time_column_granularity=time_spine_table_configuration.grain,
+ )
diff --git a/metricflow/protocols/sql_client.py b/metricflow/protocols/sql_client.py
index 6f026eff21..06ca36b350 100644
--- a/metricflow/protocols/sql_client.py
+++ b/metricflow/protocols/sql_client.py
@@ -4,10 +4,10 @@
from enum import Enum
from typing import Protocol
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
from pandas import DataFrame
from metricflow.sql.render.sql_plan_renderer import SqlQueryPlanRenderer
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
class SqlEngine(Enum):
diff --git a/metricflow/sql/optimizer/rewriting_sub_query_reducer.py b/metricflow/sql/optimizer/rewriting_sub_query_reducer.py
index 5e2056820b..5f14734b4c 100644
--- a/metricflow/sql/optimizer/rewriting_sub_query_reducer.py
+++ b/metricflow/sql/optimizer/rewriting_sub_query_reducer.py
@@ -4,7 +4,8 @@
from dataclasses import dataclass
from typing import List, Optional, Sequence, Tuple
-from metricflow.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.formatting import indent
+
from metricflow.sql.optimizer.sql_query_plan_optimizer import SqlQueryPlanOptimizer
from metricflow.sql.sql_exprs import (
SqlColumnAliasReferenceExpression,
diff --git a/metricflow/sql/render/big_query.py b/metricflow/sql/render/big_query.py
index 7b78bad9ed..0bc4222e66 100644
--- a/metricflow/sql/render/big_query.py
+++ b/metricflow/sql/render/big_query.py
@@ -6,16 +6,16 @@
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.errors.error_classes import UnsupportedEngineFeatureError
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
from typing_extensions import override
-from metricflow.errors.errors import UnsupportedEngineFeatureError
from metricflow.sql.render.expr_renderer import (
DefaultSqlExpressionRenderer,
SqlExpressionRenderer,
SqlExpressionRenderResult,
)
from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_exprs import (
SqlCastToTimestampExpression,
SqlDateTruncExpression,
diff --git a/metricflow/sql/render/databricks.py b/metricflow/sql/render/databricks.py
index 0a9d2de899..01ffd9d219 100644
--- a/metricflow/sql/render/databricks.py
+++ b/metricflow/sql/render/databricks.py
@@ -4,9 +4,9 @@
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
from dbt_semantic_interfaces.type_enums.date_part import DatePart
+from metricflow_semantics.errors.error_classes import UnsupportedEngineFeatureError
from typing_extensions import override
-from metricflow.errors.errors import UnsupportedEngineFeatureError
from metricflow.sql.render.expr_renderer import (
DefaultSqlExpressionRenderer,
SqlExpressionRenderer,
diff --git a/metricflow/sql/render/duckdb_renderer.py b/metricflow/sql/render/duckdb_renderer.py
index 451fb05398..ad90f2c53d 100644
--- a/metricflow/sql/render/duckdb_renderer.py
+++ b/metricflow/sql/render/duckdb_renderer.py
@@ -4,6 +4,7 @@
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
from typing_extensions import override
from metricflow.sql.render.expr_renderer import (
@@ -12,7 +13,6 @@
SqlExpressionRenderResult,
)
from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_exprs import (
SqlGenerateUuidExpression,
SqlPercentileExpression,
diff --git a/metricflow/sql/render/expr_renderer.py b/metricflow/sql/render/expr_renderer.py
index 96661841ac..795ea02b9e 100644
--- a/metricflow/sql/render/expr_renderer.py
+++ b/metricflow/sql/render/expr_renderer.py
@@ -10,11 +10,11 @@
import jinja2
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
from typing_extensions import override
-from metricflow.mf_logging.formatting import indent
from metricflow.sql.render.rendering_constants import SqlRenderingConstants
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_exprs import (
SqlAggregateFunctionExpression,
SqlBetweenExpression,
diff --git a/metricflow/sql/render/postgres.py b/metricflow/sql/render/postgres.py
index 9ffc08dbf1..57dbf1dfd2 100644
--- a/metricflow/sql/render/postgres.py
+++ b/metricflow/sql/render/postgres.py
@@ -4,16 +4,16 @@
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.errors.error_classes import UnsupportedEngineFeatureError
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
from typing_extensions import override
-from metricflow.errors.errors import UnsupportedEngineFeatureError
from metricflow.sql.render.expr_renderer import (
DefaultSqlExpressionRenderer,
SqlExpressionRenderer,
SqlExpressionRenderResult,
)
from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_exprs import (
SqlGenerateUuidExpression,
SqlPercentileExpression,
diff --git a/metricflow/sql/render/redshift.py b/metricflow/sql/render/redshift.py
index 251227c209..1306c5080b 100644
--- a/metricflow/sql/render/redshift.py
+++ b/metricflow/sql/render/redshift.py
@@ -4,16 +4,16 @@
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
from dbt_semantic_interfaces.type_enums.date_part import DatePart
+from metricflow_semantics.errors.error_classes import UnsupportedEngineFeatureError
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
from typing_extensions import override
-from metricflow.errors.errors import UnsupportedEngineFeatureError
from metricflow.sql.render.expr_renderer import (
DefaultSqlExpressionRenderer,
SqlExpressionRenderer,
SqlExpressionRenderResult,
)
from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_exprs import (
SqlExtractExpression,
SqlGenerateUuidExpression,
diff --git a/metricflow/sql/render/snowflake.py b/metricflow/sql/render/snowflake.py
index c6328feefe..402aff0a45 100644
--- a/metricflow/sql/render/snowflake.py
+++ b/metricflow/sql/render/snowflake.py
@@ -4,17 +4,21 @@
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
from dbt_semantic_interfaces.type_enums.date_part import DatePart
+from metricflow_semantics.errors.error_classes import UnsupportedEngineFeatureError
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
from typing_extensions import override
-from metricflow.errors.errors import UnsupportedEngineFeatureError
from metricflow.sql.render.expr_renderer import (
DefaultSqlExpressionRenderer,
SqlExpressionRenderer,
SqlExpressionRenderResult,
)
from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
-from metricflow.sql.sql_exprs import SqlGenerateUuidExpression, SqlPercentileExpression, SqlPercentileFunctionType
+from metricflow.sql.sql_exprs import (
+ SqlGenerateUuidExpression,
+ SqlPercentileExpression,
+ SqlPercentileFunctionType,
+)
class SnowflakeSqlExpressionRenderer(DefaultSqlExpressionRenderer):
diff --git a/metricflow/sql/render/sql_plan_renderer.py b/metricflow/sql/render/sql_plan_renderer.py
index fcfbfe40b3..6ee1d34d07 100644
--- a/metricflow/sql/render/sql_plan_renderer.py
+++ b/metricflow/sql/render/sql_plan_renderer.py
@@ -7,14 +7,15 @@
from string import Template
from typing import List, Optional, Sequence, Tuple
-from metricflow.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
+
from metricflow.sql.render.expr_renderer import (
DefaultSqlExpressionRenderer,
SqlExpressionRenderer,
SqlExpressionRenderResult,
)
from metricflow.sql.render.rendering_constants import SqlRenderingConstants
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_plan import (
SqlCreateTableAsNode,
SqlJoinDescription,
diff --git a/metricflow/sql/render/trino.py b/metricflow/sql/render/trino.py
index b767240f21..8445b294ea 100644
--- a/metricflow/sql/render/trino.py
+++ b/metricflow/sql/render/trino.py
@@ -6,6 +6,7 @@
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
from typing_extensions import override
from metricflow.sql.render.expr_renderer import (
@@ -14,7 +15,6 @@
SqlExpressionRenderResult,
)
from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_exprs import (
SqlBetweenExpression,
SqlGenerateUuidExpression,
diff --git a/metricflow/sql/sql_exprs.py b/metricflow/sql/sql_exprs.py
index 778d40836b..481be5123d 100644
--- a/metricflow/sql/sql_exprs.py
+++ b/metricflow/sql/sql_exprs.py
@@ -14,11 +14,10 @@
from dbt_semantic_interfaces.type_enums.aggregation_type import AggregationType
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DagNode, DisplayedProperty, NodeId
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
-from metricflow.visitor import Visitable, VisitorOutputT
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DagNode, DisplayedProperty, NodeId
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
+from metricflow_semantics.visitor import Visitable, VisitorOutputT
class SqlExpressionNode(DagNode, Visitable, ABC):
diff --git a/metricflow/sql/sql_plan.py b/metricflow/sql/sql_plan.py
index 9031819e2d..b2aa434900 100644
--- a/metricflow/sql/sql_plan.py
+++ b/metricflow/sql/sql_plan.py
@@ -5,16 +5,16 @@
import logging
from abc import ABC, abstractmethod
from dataclasses import dataclass
-from enum import Enum
from typing import Generic, List, Optional, Sequence, Tuple
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DagId, DagNode, DisplayedProperty, MetricFlowDag, NodeId
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.visitor import VisitorOutputT
from typing_extensions import override
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
-from metricflow.dag.mf_dag import DagId, DagNode, DisplayedProperty, MetricFlowDag, NodeId
from metricflow.sql.sql_exprs import SqlExpressionNode
from metricflow.sql.sql_table import SqlTable
-from metricflow.visitor import VisitorOutputT
logger = logging.getLogger(__name__)
@@ -91,21 +91,6 @@ class SqlSelectColumn:
column_alias: str
-class SqlJoinType(Enum):
- """Enumerates the different kinds of SQL joins.
-
- The value is the SQL string to be used when rendering the join.
- """
-
- LEFT_OUTER = "LEFT OUTER JOIN"
- FULL_OUTER = "FULL OUTER JOIN"
- INNER = "INNER JOIN"
- CROSS_JOIN = "CROSS JOIN"
-
- def __repr__(self) -> str: # noqa: D105
- return f"{self.__class__.__name__}.{self.name}"
-
-
@dataclass(frozen=True)
class SqlJoinDescription:
"""Describes how sources should be joined together."""
diff --git a/metricflow/telemetry/handlers/python_log.py b/metricflow/telemetry/handlers/python_log.py
index a9664178e2..5f9af25a05 100644
--- a/metricflow/telemetry/handlers/python_log.py
+++ b/metricflow/telemetry/handlers/python_log.py
@@ -3,7 +3,8 @@
import logging
import textwrap
-from metricflow.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+
from metricflow.telemetry.handlers.handlers import PayloadType, TelemetryHandler
logger = logging.getLogger(__name__)
diff --git a/metricflow/telemetry/reporter.py b/metricflow/telemetry/reporter.py
index 8f4ffa9fe6..bcd325526d 100644
--- a/metricflow/telemetry/reporter.py
+++ b/metricflow/telemetry/reporter.py
@@ -12,9 +12,9 @@
from hashlib import sha256
from typing import Callable, List, Optional, TypeVar
+from metricflow_semantics.random_id import random_id
from typing_extensions import ParamSpec
-from metricflow.random_id import random_id
from metricflow.telemetry.handlers.handlers import (
TelemetryHandler,
ToMemoryTelemetryHandler,
diff --git a/metricflow/test_helpers.py b/metricflow/test_helpers.py
deleted file mode 100644
index fd0386c392..0000000000
--- a/metricflow/test_helpers.py
+++ /dev/null
@@ -1,204 +0,0 @@
-from __future__ import annotations
-
-import datetime
-import difflib
-import logging
-import os
-import re
-import webbrowser
-from dataclasses import dataclass
-from typing import Callable, List, Optional, Tuple
-
-import _pytest
-import _pytest.fixtures
-
-from metricflow.time.time_source import TimeSource
-
-logger = logging.getLogger(__name__)
-
-DISPLAY_SNAPSHOTS_CLI_FLAG = "--display-snapshots"
-OVERWRITE_SNAPSHOTS_CLI_FLAG = "--overwrite-snapshots"
-
-
-def add_display_snapshots_cli_flag(parser: _pytest.config.argparsing.Parser) -> None: # noqa: D103
- parser.addoption(DISPLAY_SNAPSHOTS_CLI_FLAG, action="store_true", help="Displays snapshots in a browser if set")
-
-
-def add_overwrite_snapshots_cli_flag(parser: _pytest.config.argparsing.Parser) -> None: # noqa: D103
- parser.addoption(
- OVERWRITE_SNAPSHOTS_CLI_FLAG,
- action="store_true",
- help="Overwrites existing snapshots by ones generated during this testing session",
- )
-
-
-@dataclass(frozen=True)
-class SnapshotConfiguration:
- """Configuration for handling snapshots in a test session."""
-
- # Whether to display the snapshot associated with a test session in a browser window.
- display_snapshots: bool
- # Whether to overwrite any text files that were generated.
- overwrite_snapshots: bool
-
-
-@dataclass(frozen=True)
-class MetricFlowTestConfiguration(SnapshotConfiguration):
- """State that is shared between tests during a testing session."""
-
- sql_engine_url: str
- sql_engine_password: str
- # Where MF system tables should be stored.
- mf_system_schema: str
- # Where tables for test data sets should be stored.
- mf_source_schema: str
-
- # Whether to display the graph associated with a test session in a browser window.
- display_graphs: bool
-
- # The source schema contains tables that are used for running tests. If this is set, a source schema in the SQL
- # is created and persisted between runs. The source schema name includes a hash of the tables that should be in
- # the schema, so
- use_persistent_source_schema: bool
-
-
-def assert_snapshot_text_equal(
- request: _pytest.fixtures.FixtureRequest,
- mf_test_configuration: MetricFlowTestConfiguration,
- group_id: str,
- snapshot_id: str,
- snapshot_text: str,
- snapshot_file_extension: str,
- exclude_line_regex: Optional[str] = None,
- incomparable_strings_replacement_function: Optional[Callable[[str], str]] = None,
- additional_sub_directories_for_snapshots: Tuple[str, ...] = (),
-) -> None:
- """Similar to assert_plan_snapshot_text_equal(), but with more controls on how the snapshot paths are generated."""
- file_path = (
- snapshot_path_prefix(
- request=request,
- snapshot_group=group_id,
- snapshot_id=snapshot_id,
- additional_sub_directories=additional_sub_directories_for_snapshots,
- )
- + snapshot_file_extension
- )
-
- if incomparable_strings_replacement_function is not None:
- snapshot_text = incomparable_strings_replacement_function(snapshot_text)
-
- # Add a new line at the end of the file so that PRs don't show the "no newline" symbol on Github.
- if len(snapshot_text) > 1 and snapshot_text[-1] != "\n":
- snapshot_text = snapshot_text + "\n"
-
- # If we are in overwrite mode, make a new plan:
- if mf_test_configuration.overwrite_snapshots:
- # Create parent directory for the plan text files.
- os.makedirs(os.path.dirname(file_path), exist_ok=True)
- with open(file_path, "w") as snapshot_text_file:
- snapshot_text_file.write(snapshot_text)
-
- # Throw an exception if the plan is not there.
- if not os.path.exists(file_path):
- raise FileNotFoundError(
- f"Could not find snapshot file at path {file_path}. Re-run with --overwrite-snapshots and check git status "
- "to see what's new."
- )
-
- if mf_test_configuration.display_snapshots:
- if not mf_test_configuration.overwrite_snapshots:
- logger.warning(f"Not overwriting snapshots, so displaying existing snapshot at {file_path}")
-
- if len(request.session.items) > 1:
- raise ValueError("Displaying snapshots is only supported when there's a single item in a testing session.")
- webbrowser.open("file://" + file_path)
-
- # Read the existing plan from the file and compare with the actual plan
- with open(file_path, "r") as snapshot_text_file:
- expected_snapshot_text = snapshot_text_file.read()
-
- if exclude_line_regex:
- # Filter out lines that should be ignored.
- expected_snapshot_text = _exclude_lines_matching_regex(
- file_contents=expected_snapshot_text, exclude_line_regex=exclude_line_regex
- )
- snapshot_text = _exclude_lines_matching_regex(
- file_contents=snapshot_text, exclude_line_regex=exclude_line_regex
- )
- # pytest should show a detailed diff with "assert actual_modified == expected_modified", but it's not, so doing
- # this instead.
- if snapshot_text != expected_snapshot_text:
- differ = difflib.Differ()
- diff = differ.compare(expected_snapshot_text.splitlines(), snapshot_text.splitlines())
- assert False, f"Snapshot from {file_path} does not match. Diff from expected to actual:\n" + "\n".join(diff)
-
-
-def snapshot_path_prefix(
- request: _pytest.fixtures.FixtureRequest,
- snapshot_group: str,
- snapshot_id: str,
- additional_sub_directories: Tuple[str, ...] = (),
-) -> str:
- """Returns a path prefix that can be used to build filenames for files associated with the snapshot.
-
- The snapshot prefix is generated from the name of the test file, the name of the test, name of the snapshot class,
- and the name of the snapshot.
-
- e.g.
- .../snapshots/test_file.py/DataflowPlan/test_name__plan1
-
- which can be used to construct paths like
-
- .../snapshots/test_file.py/DataflowPlan/test_name__plan1.xml
- .../snapshots/test_file.py/DataflowPlan/test_name__plan1.svg
- """
- test_name = request.node.name
-
- snapshot_file_name_parts = []
- # Parameterized test names look like 'test_case[some_param]'. "[" and "]" are annoying to deal with in the shell,
- # so replace them with dunders.
- snapshot_file_name_parts.extend(re.split(r"[\[\]]", test_name))
- # A trailing ] will produce an empty string in the list, so remove that.
- snapshot_file_name_parts = [part for part in snapshot_file_name_parts if len(part) > 0]
- snapshot_file_name_parts.append(snapshot_id)
-
- snapshot_file_name = "__".join(snapshot_file_name_parts)
-
- path_items: List[str] = []
-
- test_file_path_items = os.path.normpath(request.node.fspath).split(os.sep)
- test_file_name = test_file_path_items[-1]
- # Default to where this is defined, but use more appropriate directories if found.
- test_directory_root_index = -1
- for i, path_item in enumerate(test_file_path_items):
- if path_item in ("tests", "metricflow"):
- test_directory_root_index = i + 1
-
- path_to_store_snapshots = os.sep.join(test_file_path_items[:test_directory_root_index])
- path_items.extend([path_to_store_snapshots, "snapshots", test_file_name, snapshot_group])
-
- if additional_sub_directories:
- path_items.extend(additional_sub_directories)
- path_items.append(snapshot_file_name)
-
- return os.path.abspath(os.path.join(*path_items))
-
-
-def _exclude_lines_matching_regex(file_contents: str, exclude_line_regex: str) -> str:
- """Removes lines from file contents if the line matches exclude_regex."""
- compiled_regex = re.compile(exclude_line_regex)
- return "\n".join([line for line in file_contents.split("\n") if not compiled_regex.match(line)])
-
-
-class ConfigurableTimeSource(TimeSource):
- """A time source that can be configured so that scheduled operations can be simulated in testing."""
-
- def __init__(self, configured_time: datetime.datetime) -> None: # noqa: D107
- self._configured_time = configured_time
-
- def get_time(self) -> datetime.datetime: # noqa: D102
- return self._configured_time
-
- def set_time(self, new_time: datetime.datetime) -> datetime.datetime: # noqa: D102
- self._configured_time = new_time
- return new_time
diff --git a/tests/query/__init__.py b/metricflow/validation/__init__.py
similarity index 100%
rename from tests/query/__init__.py
rename to metricflow/validation/__init__.py
diff --git a/metricflow/model/data_warehouse_model_validator.py b/metricflow/validation/data_warehouse_model_validator.py
similarity index 98%
rename from metricflow/model/data_warehouse_model_validator.py
rename to metricflow/validation/data_warehouse_model_validator.py
index e700eb8850..7d43e34e11 100644
--- a/metricflow/model/data_warehouse_model_validator.py
+++ b/metricflow/validation/data_warehouse_model_validator.py
@@ -28,21 +28,21 @@
ValidationIssue,
ValidationWarning,
)
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet, LinkableInstanceSpec, MeasureSpec
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
from metricflow.dataflow.builder.node_data_set import DataflowPlanNodeOutputDataSetResolver
from metricflow.dataflow.builder.source_node import SourceNodeBuilder
from metricflow.dataflow.dataflow_plan import BaseOutput
from metricflow.dataflow.nodes.filter_elements import FilterElementsNode
from metricflow.dataset.convert_semantic_model import SemanticModelToDataSetConverter
-from metricflow.dataset.dataset import DataSet
+from metricflow.dataset.dataset_classes import DataSet
from metricflow.engine.metricflow_engine import MetricFlowEngine, MetricFlowExplainResult, MetricFlowQueryRequest
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.plan_conversion.time_spine import TimeSpineSource
from metricflow.protocols.sql_client import SqlClient
-from metricflow.specs.specs import InstanceSpecSet, LinkableInstanceSpec, MeasureSpec
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
@dataclass
@@ -65,7 +65,7 @@ def __init__(self, manifest: SemanticManifest) -> None: # noqa: D107
column_association_resolver=DunderColumnAssociationResolver(self.semantic_manifest_lookup),
semantic_manifest_lookup=self.semantic_manifest_lookup,
)
- self.time_spine_source = self.semantic_manifest_lookup.time_spine_source
+ self.time_spine_source = TimeSpineSource.create_from_manifest(manifest)
self.converter = SemanticModelToDataSetConverter(
column_association_resolver=DunderColumnAssociationResolver(
semantic_manifest_lookup=self.semantic_manifest_lookup
diff --git a/metricflow/validation/dataflow_join_validator.py b/metricflow/validation/dataflow_join_validator.py
new file mode 100644
index 0000000000..88c08dcf06
--- /dev/null
+++ b/metricflow/validation/dataflow_join_validator.py
@@ -0,0 +1,57 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING, List
+
+from dbt_semantic_interfaces.references import (
+ EntityReference,
+ SemanticModelReference,
+)
+from metricflow_semantics.instances import EntityInstance, InstanceSet
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.semantics.semantic_model_join_evaluator import SemanticModelJoinEvaluator
+
+if TYPE_CHECKING:
+ from metricflow_semantics.model.semantics.semantic_model_lookup import SemanticModelLookup
+
+
+class JoinDataflowOutputValidator:
+ """Checks that the instances in the output of a join dataflow node is valid."""
+
+ def __init__(self, semantic_model_lookup: SemanticModelLookup) -> None: # noqa: D107
+ self._join_evaluator = SemanticModelJoinEvaluator(semantic_model_lookup)
+
+ @staticmethod
+ def _semantic_model_of_entity_in_instance_set(
+ instance_set: InstanceSet,
+ entity_reference: EntityReference,
+ ) -> SemanticModelReference:
+ """Return the semantic model where the entity was defined in the instance set."""
+ matching_instances: List[EntityInstance] = []
+ for entity_instance in instance_set.entity_instances:
+ assert len(entity_instance.defined_from) == 1
+ if len(entity_instance.spec.entity_links) == 0 and entity_instance.spec.reference == entity_reference:
+ matching_instances.append(entity_instance)
+
+ assert len(matching_instances) == 1, (
+ f"Not exactly 1 matching entity instances found: {matching_instances} for {entity_reference} in "
+ f"{mf_pformat(instance_set)}"
+ )
+ return matching_instances[0].origin_semantic_model_reference.semantic_model_reference
+
+ def is_valid_instance_set_join(
+ self,
+ left_instance_set: InstanceSet,
+ right_instance_set: InstanceSet,
+ on_entity_reference: EntityReference,
+ ) -> bool:
+ """Return true if the instance sets can be joined using the given entity."""
+ return self._join_evaluator.is_valid_semantic_model_join(
+ left_semantic_model_reference=JoinDataflowOutputValidator._semantic_model_of_entity_in_instance_set(
+ instance_set=left_instance_set, entity_reference=on_entity_reference
+ ),
+ right_semantic_model_reference=JoinDataflowOutputValidator._semantic_model_of_entity_in_instance_set(
+ instance_set=right_instance_set,
+ entity_reference=on_entity_reference,
+ ),
+ on_entity_reference=on_entity_reference,
+ )
diff --git a/pyproject.toml b/pyproject.toml
index 9e6b915513..ae627388f6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -85,20 +85,13 @@ trino-sql-client-packages = [
"trino>=0.327.0, <0.328.0",
]
+# There are files that hatch will always include as well (e.g. the LICENSE file).
+# See hatch build docs for more details.
[tool.hatch.build.targets.sdist]
-exclude = [
- "/.github",
- "/.changes",
- ".changie.yaml",
- ".gitignore",
- ".pre-commit-config.yaml",
- "CONTRIBUTING.md",
- "Makefile",
- "/dbt-metricflow",
- "/local-data-warehouses",
- "/scripts",
- "/tests",
-]
+packages = ["metricflow", "metricflow-semantics/metricflow_semantics"]
+
+[tool.hatch.build.targets.wheel]
+packages = ["metricflow", "metricflow-semantics/metricflow_semantics"]
# Environment setup
@@ -112,7 +105,8 @@ exclude = [
description = "Environment for development. Includes a DuckDB-backed client."
pre-install-commands = [
- "pip install -e ./dbt-metricflow[duckdb]"
+ "pip install -e ./metricflow-semantics",
+ "pip install -e ./dbt-metricflow[duckdb]",
]
features = [
@@ -133,6 +127,7 @@ MF_TEST_ADAPTER_TYPE="postgres"
description = "Dev environment for working with Postgres adapter"
pre-install-commands = [
+ "pip install -e ./metricflow-semantics",
"pip install -e ./dbt-metricflow[postgres]"
]
@@ -151,6 +146,7 @@ MF_TEST_ADAPTER_TYPE="bigquery"
description = "Dev environment for working with the BigQuery adapter"
pre-install-commands = [
+ "pip install -e ./metricflow-semantics",
"pip install -e ./dbt-metricflow[bigquery]"
]
@@ -166,6 +162,7 @@ MF_TEST_ADAPTER_TYPE="databricks"
description = "Dev environment for working with the Databricks adapter"
pre-install-commands = [
+ "pip install -e ./metricflow-semantics",
"pip install -e ./dbt-metricflow[databricks]"
]
@@ -181,6 +178,7 @@ MF_TEST_ADAPTER_TYPE="redshift"
description = "Dev environment for working with the Redshift adapter"
pre-install-commands = [
+ "pip install -e ./metricflow-semantics",
"pip install -e ./dbt-metricflow[redshift]"
]
@@ -196,6 +194,7 @@ MF_TEST_ADAPTER_TYPE="snowflake"
description = "Dev environment for working with Snowflake adapter"
pre-install-commands = [
+ "pip install -e ./metricflow-semantics",
"pip install -e ./dbt-metricflow[snowflake]"
]
@@ -213,6 +212,7 @@ DBT_ENV_SECRET_CATALOG="memory"
description = "Dev environment for working with the Trino adapter"
pre-install-commands = [
+ "pip install -e ./metricflow-semantics",
"pip install -e ./dbt-metricflow[trino]"
]
diff --git a/scripts/ci_tests/metricflow_package_test.py b/scripts/ci_tests/metricflow_package_test.py
new file mode 100644
index 0000000000..0d85c3f53a
--- /dev/null
+++ b/scripts/ci_tests/metricflow_package_test.py
@@ -0,0 +1,180 @@
+from __future__ import annotations
+
+import logging
+import textwrap
+from collections import OrderedDict
+from typing import Sequence
+
+from dbt_semantic_interfaces.implementations.semantic_manifest import PydanticSemanticManifest
+from dbt_semantic_interfaces.parsing.dir_to_model import parse_yaml_files_to_validation_ready_semantic_manifest
+from dbt_semantic_interfaces.parsing.objects import YamlConfigFile
+from dbt_semantic_interfaces.protocols import SemanticManifest, SemanticModel
+from dbt_semantic_interfaces.validations.semantic_manifest_validator import SemanticManifestValidator
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
+ DimensionSpec,
+ EntityReference,
+ MetricFlowQuerySpec,
+ MetricSpec,
+)
+
+from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
+from metricflow.dataflow.builder.node_data_set import DataflowPlanNodeOutputDataSetResolver
+from metricflow.dataflow.builder.source_node import SourceNodeBuilder, SourceNodeSet
+from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
+from metricflow.dataset.convert_semantic_model import SemanticModelToDataSetConverter
+from metricflow.dataset.semantic_model_adapter import SemanticModelDataSet
+from metricflow.engine.metricflow_engine import MetricFlowEngine
+
+logger = logging.getLogger(__name__)
+
+
+def _data_set_to_read_nodes(data_sets: OrderedDict[str, SemanticModelDataSet]) -> OrderedDict[str, ReadSqlSourceNode]:
+ """Return a mapping from the name of the semantic model to the dataflow plan node that reads from it."""
+ # Moved from model_fixtures.py.
+ return_dict: OrderedDict[str, ReadSqlSourceNode] = OrderedDict()
+ for semantic_model_name, data_set in data_sets.items():
+ return_dict[semantic_model_name] = ReadSqlSourceNode(data_set)
+
+ return return_dict
+
+
+def _data_set_to_source_node_set(
+ column_association_resolver: ColumnAssociationResolver,
+ semantic_manifest_lookup: SemanticManifestLookup,
+ data_sets: OrderedDict[str, SemanticModelDataSet],
+) -> SourceNodeSet:
+ # Moved from model_fixtures.py.
+ source_node_builder = SourceNodeBuilder(column_association_resolver, semantic_manifest_lookup)
+ return source_node_builder.create_from_data_sets(list(data_sets.values()))
+
+
+def _create_data_sets(
+ semantic_manifest_lookup: SemanticManifestLookup,
+) -> OrderedDict[str, SemanticModelDataSet]:
+ """Convert the SemanticModels in the model to SqlDataSets.
+
+ Key is the name of the semantic model, value is the associated data set.
+ """
+ # Moved from model_fixtures.py.
+
+ # Use ordered dict and sort by name to get consistency when running tests.
+ data_sets = OrderedDict()
+ semantic_models: Sequence[SemanticModel] = semantic_manifest_lookup.semantic_manifest.semantic_models
+ semantic_models = sorted(semantic_models, key=lambda x: x.name)
+
+ converter = SemanticModelToDataSetConverter(
+ column_association_resolver=DunderColumnAssociationResolver(semantic_manifest_lookup)
+ )
+
+ for semantic_model in semantic_models:
+ data_sets[semantic_model.name] = converter.create_sql_source_data_set(semantic_model)
+
+ return data_sets
+
+
+def _semantic_manifest() -> PydanticSemanticManifest:
+ bookings_yaml_file = YamlConfigFile(
+ filepath="dummy_path_0",
+ contents=textwrap.dedent(
+ """\
+ semantic_model:
+ name: bookings_source
+
+ node_relation:
+ schema_name: some_schema
+ alias: bookings_source_table
+
+ defaults:
+ agg_time_dimension: ds
+
+ measures:
+ - name: bookings
+ expr: "1"
+ agg: sum
+ create_metric: true
+
+ dimensions:
+ - name: is_instant
+ type: categorical
+ - name: ds
+ type: time
+ type_params:
+ time_granularity: day
+
+ primary_entity: booking
+
+ entities:
+ - name: listing
+ type: foreign
+ expr: listing_id
+ """
+ ),
+ )
+
+ project_configuration_yaml_file = YamlConfigFile(
+ filepath="projection_configuration_yaml_file_path",
+ contents=textwrap.dedent(
+ """\
+ project_configuration:
+ time_spine_table_configurations:
+ - location: example_schema.example_table
+ column_name: ds
+ grain: day
+ """
+ ),
+ )
+
+ semantic_manifest = parse_yaml_files_to_validation_ready_semantic_manifest(
+ [bookings_yaml_file, project_configuration_yaml_file], apply_transformations=True
+ ).semantic_manifest
+
+ SemanticManifestValidator[SemanticManifest]().checked_validations(semantic_manifest)
+ return semantic_manifest
+
+
+def log_dataflow_plan() -> None: # noqa: D103
+ semantic_manifest = _semantic_manifest()
+ semantic_manifest_lookup = SemanticManifestLookup(semantic_manifest)
+ data_set_mapping = _create_data_sets(semantic_manifest_lookup)
+ column_association_resolver = DunderColumnAssociationResolver(semantic_manifest_lookup)
+
+ source_node_builder = SourceNodeBuilder(column_association_resolver, semantic_manifest_lookup)
+ source_node_set = source_node_builder.create_from_data_sets(list(data_set_mapping.values()))
+ node_output_resolver = DataflowPlanNodeOutputDataSetResolver(
+ column_association_resolver=column_association_resolver,
+ semantic_manifest_lookup=semantic_manifest_lookup,
+ )
+ node_output_resolver.cache_output_data_sets(source_node_set.all_nodes)
+
+ dataflow_plan_builder = DataflowPlanBuilder(
+ source_node_set=source_node_set,
+ semantic_manifest_lookup=semantic_manifest_lookup,
+ node_output_resolver=node_output_resolver,
+ column_association_resolver=column_association_resolver,
+ )
+
+ dataflow_plan = dataflow_plan_builder.build_plan(
+ MetricFlowQuerySpec(
+ metric_specs=(MetricSpec(element_name="bookings"),),
+ dimension_specs=(
+ DimensionSpec(
+ element_name="is_instant",
+ entity_links=(EntityReference("booking"),),
+ ),
+ ),
+ )
+ )
+
+ logger.info(f"Dataflow plan is:\n{dataflow_plan.structure_text()}")
+
+
+def check_engine_import(metricflow_engine: MetricFlowEngine) -> None:
+ """Doesn't need to run, but having this here means that the import is tested."""
+ logger.info(f"Engine is {metricflow_engine}")
+
+
+logging.basicConfig(format="%(asctime)s - %(levelname)s - %(message)s", level=logging.INFO)
+log_dataflow_plan()
diff --git a/scripts/ci_tests/metricflow_package_test.sh b/scripts/ci_tests/metricflow_package_test.sh
new file mode 100644
index 0000000000..54d5fdcdf8
--- /dev/null
+++ b/scripts/ci_tests/metricflow_package_test.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+# Tests that the `metricflow` package works properly.
+# TODO: Consolidate the boiler plate.
+
+# Root directory where `hatch build`, relative to the repo root.
+RELATIVE_PACKAGE_DIR="."
+
+# Show each command and fail the script if any command fails.
+set -e
+set -x
+
+# Switch to the repo directory.
+SCRIPT_DIR=`dirname "$0"`
+echo "SCRIPT_DIR=$SCRIPT_DIR"
+REAL_SCRIPT_DIR=`REAL_SCRIPT_DIR=$REAL_SCRIPT_DIR`
+REAL_REPO_DIR=`realpath "$SCRIPT_DIR/../.."`
+echo "REAL_REPO_DIR=$REAL_REPO_DIR"
+cd "$REAL_REPO_DIR"
+
+# Build the wheels.
+PACKAGE_DIR="$REAL_REPO_DIR/$RELATIVE_PACKAGE_DIR"
+cd "$PACKAGE_DIR"
+hatch clean
+hatch build
+
+# Create a temporary directory and switch to it.
+TEMP_DIR=`mktemp -d`
+echo "TEMP_DIR=$TEMP_DIR"
+cd "$TEMP_DIR"
+
+# Create a Python virtual env.
+python3 -m venv venv
+source venv/bin/activate
+
+# Install the wheel.
+pip3 install "$PACKAGE_DIR/dist/"*.whl
+
+# Run the test
+python3 "$REAL_REPO_DIR/scripts/ci_tests/metricflow_package_test.py"
diff --git a/scripts/ci_tests/metricflow_semantics_package_test.py b/scripts/ci_tests/metricflow_semantics_package_test.py
new file mode 100644
index 0000000000..f2499bfb95
--- /dev/null
+++ b/scripts/ci_tests/metricflow_semantics_package_test.py
@@ -0,0 +1,89 @@
+from __future__ import annotations
+
+import logging
+import textwrap
+
+from dbt_semantic_interfaces.implementations.semantic_manifest import PydanticSemanticManifest
+from dbt_semantic_interfaces.parsing.dir_to_model import parse_yaml_files_to_validation_ready_semantic_manifest
+from dbt_semantic_interfaces.parsing.objects import YamlConfigFile
+from dbt_semantic_interfaces.protocols import SemanticManifest
+from dbt_semantic_interfaces.validations.semantic_manifest_validator import SemanticManifestValidator
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+
+logger = logging.getLogger(__name__)
+
+
+def _semantic_manifest() -> PydanticSemanticManifest:
+ bookings_yaml_file = YamlConfigFile(
+ filepath="dummy_path_0",
+ contents=textwrap.dedent(
+ """\
+ semantic_model:
+ name: bookings_source
+
+ node_relation:
+ schema_name: some_schema
+ alias: bookings_source_table
+
+ defaults:
+ agg_time_dimension: ds
+
+ measures:
+ - name: bookings
+ expr: "1"
+ agg: sum
+ create_metric: true
+
+ dimensions:
+ - name: is_instant
+ type: categorical
+ - name: ds
+ type: time
+ type_params:
+ time_granularity: day
+
+ primary_entity: booking
+
+ entities:
+ - name: listing
+ type: foreign
+ expr: listing_id
+ """
+ ),
+ )
+
+ project_configuration_yaml_file = YamlConfigFile(
+ filepath="projection_configuration_yaml_file_path",
+ contents=textwrap.dedent(
+ """\
+ project_configuration:
+ time_spine_table_configurations:
+ - location: example_schema.example_table
+ column_name: ds
+ grain: day
+ """
+ ),
+ )
+
+ semantic_manifest = parse_yaml_files_to_validation_ready_semantic_manifest(
+ [bookings_yaml_file, project_configuration_yaml_file], apply_transformations=True
+ ).semantic_manifest
+
+ SemanticManifestValidator[SemanticManifest]().checked_validations(semantic_manifest)
+ return semantic_manifest
+
+
+def log_query_spec() -> None: # noqa: D103
+ semantic_manifest = _semantic_manifest()
+ query_parser = MetricFlowQueryParser(SemanticManifestLookup(semantic_manifest))
+ query_spec = query_parser.parse_and_validate_query(
+ metric_names=["bookings"], group_by_names=["booking__is_instant"]
+ )
+
+ logger.info(f"{query_spec.__class__.__name__}:\n{mf_pformat(query_spec)}")
+
+
+logging.basicConfig(format="%(asctime)s - %(levelname)s - %(message)s", level=logging.INFO)
+log_query_spec()
diff --git a/scripts/ci_tests/metricflow_semantics_package_test.sh b/scripts/ci_tests/metricflow_semantics_package_test.sh
new file mode 100644
index 0000000000..85cdf8d189
--- /dev/null
+++ b/scripts/ci_tests/metricflow_semantics_package_test.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+# Tests that the `metricflow` package works properly.
+# TODO: Consolidate the boiler plate.
+
+# Root directory where `hatch build`, relative to the repo root.
+RELATIVE_PACKAGE_DIR="metricflow-semantics"
+
+# Show each command and fail the script if any command fails.
+set -e
+set -x
+
+# Switch to the repo directory.
+SCRIPT_DIR=`dirname "$0"`
+echo "SCRIPT_DIR=$SCRIPT_DIR"
+REAL_SCRIPT_DIR=`REAL_SCRIPT_DIR=$REAL_SCRIPT_DIR`
+REAL_REPO_DIR=`realpath "$SCRIPT_DIR/../.."`
+echo "REAL_REPO_DIR=$REAL_REPO_DIR"
+cd "$REAL_REPO_DIR"
+
+# Build the wheels.
+PACKAGE_DIR="$REAL_REPO_DIR/$RELATIVE_PACKAGE_DIR"
+cd "$PACKAGE_DIR"
+hatch clean
+hatch build
+
+# Create a temporary directory and switch to it.
+TEMP_DIR=`mktemp -d`
+echo "TEMP_DIR=$TEMP_DIR"
+cd "$TEMP_DIR"
+
+# Create a Python virtual env.
+python3 -m venv venv
+source venv/bin/activate
+
+# Install the wheel.
+pip3 install "$PACKAGE_DIR/dist/"*.whl
+
+# Run the test
+python3 "$REAL_REPO_DIR/scripts/ci_tests/metricflow_semantics_package_test.py"
diff --git a/tests/conftest.py b/tests/conftest.py
deleted file mode 100644
index 9ee2fb5b23..0000000000
--- a/tests/conftest.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# These imports are required to properly set up pytest fixtures.
-from __future__ import annotations
-
-from tests.fixtures.cli_fixtures import * # noqa: F401, F403
-from tests.fixtures.dataflow_fixtures import * # noqa: F401, F403
-from tests.fixtures.id_fixtures import * # noqa: F401, F403
-from tests.fixtures.manifest_fixtures import * # noqa: F401, F403
-from tests.fixtures.setup_fixtures import * # noqa: F401, F403
-from tests.fixtures.sql_client_fixtures import * # noqa: F401, F403
-from tests.fixtures.sql_fixtures import * # noqa: F401, F403
-from tests.fixtures.table_fixtures import * # noqa: F401, F403
diff --git a/tests/snapshots/test_semantic_model_container.py/tuple/test_elements_for_metric__result0.txt b/tests/snapshots/test_semantic_model_container.py/tuple/test_elements_for_metric__result0.txt
deleted file mode 100644
index d71c87b9a5..0000000000
--- a/tests/snapshots/test_semantic_model_container.py/tuple/test_elements_for_metric__result0.txt
+++ /dev/null
@@ -1,103 +0,0 @@
-(
- 'listing',
- 'listing__capacity_latest',
- 'listing__country_latest',
- 'listing__created_at__day',
- 'listing__created_at__extract_day',
- 'listing__created_at__extract_dow',
- 'listing__created_at__extract_doy',
- 'listing__created_at__extract_month',
- 'listing__created_at__extract_quarter',
- 'listing__created_at__extract_year',
- 'listing__ds__day',
- 'listing__ds__extract_day',
- 'listing__ds__extract_dow',
- 'listing__ds__extract_doy',
- 'listing__ds__extract_month',
- 'listing__ds__extract_quarter',
- 'listing__ds__extract_year',
- 'listing__is_lux_latest',
- 'listing__lux_listing',
- 'listing__user',
- 'listing__user__company',
- 'listing__user__company_name',
- 'listing__user__created_at__day',
- 'listing__user__created_at__extract_day',
- 'listing__user__created_at__extract_dow',
- 'listing__user__created_at__extract_doy',
- 'listing__user__created_at__extract_month',
- 'listing__user__created_at__extract_quarter',
- 'listing__user__created_at__extract_year',
- 'listing__user__ds__day',
- 'listing__user__ds__extract_day',
- 'listing__user__ds__extract_dow',
- 'listing__user__ds__extract_doy',
- 'listing__user__ds__extract_month',
- 'listing__user__ds__extract_quarter',
- 'listing__user__ds__extract_year',
- 'listing__user__ds_latest__day',
- 'listing__user__ds_latest__extract_day',
- 'listing__user__ds_latest__extract_dow',
- 'listing__user__ds_latest__extract_doy',
- 'listing__user__ds_latest__extract_month',
- 'listing__user__ds_latest__extract_quarter',
- 'listing__user__ds_latest__extract_year',
- 'listing__user__ds_partitioned__day',
- 'listing__user__ds_partitioned__extract_day',
- 'listing__user__ds_partitioned__extract_dow',
- 'listing__user__ds_partitioned__extract_doy',
- 'listing__user__ds_partitioned__extract_month',
- 'listing__user__ds_partitioned__extract_quarter',
- 'listing__user__ds_partitioned__extract_year',
- 'listing__user__home_state',
- 'listing__user__home_state_latest',
- 'user',
- 'user__company',
- 'user__company_name',
- 'user__created_at__day',
- 'user__created_at__extract_day',
- 'user__created_at__extract_dow',
- 'user__created_at__extract_doy',
- 'user__created_at__extract_month',
- 'user__created_at__extract_quarter',
- 'user__created_at__extract_year',
- 'user__ds__day',
- 'user__ds__extract_day',
- 'user__ds__extract_dow',
- 'user__ds__extract_doy',
- 'user__ds__extract_month',
- 'user__ds__extract_quarter',
- 'user__ds__extract_year',
- 'user__ds_latest__day',
- 'user__ds_latest__extract_day',
- 'user__ds_latest__extract_dow',
- 'user__ds_latest__extract_doy',
- 'user__ds_latest__extract_month',
- 'user__ds_latest__extract_quarter',
- 'user__ds_latest__extract_year',
- 'user__ds_partitioned__day',
- 'user__ds_partitioned__extract_day',
- 'user__ds_partitioned__extract_dow',
- 'user__ds_partitioned__extract_doy',
- 'user__ds_partitioned__extract_month',
- 'user__ds_partitioned__extract_quarter',
- 'user__ds_partitioned__extract_year',
- 'user__home_state',
- 'user__home_state_latest',
- 'view__ds__day',
- 'view__ds__extract_day',
- 'view__ds__extract_dow',
- 'view__ds__extract_doy',
- 'view__ds__extract_month',
- 'view__ds__extract_quarter',
- 'view__ds__extract_year',
- 'view__ds_partitioned__day',
- 'view__ds_partitioned__extract_day',
- 'view__ds_partitioned__extract_dow',
- 'view__ds_partitioned__extract_doy',
- 'view__ds_partitioned__extract_month',
- 'view__ds_partitioned__extract_quarter',
- 'view__ds_partitioned__extract_year',
- 'view__listing',
- 'view__user',
-)
diff --git a/tests/time/metric_time_dimension.py b/tests/time/metric_time_dimension.py
deleted file mode 100644
index 737185e63b..0000000000
--- a/tests/time/metric_time_dimension.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from __future__ import annotations
-
-from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-
-from metricflow.dataset.dataset import DataSet
-
-# Shortcuts for referring to the metric time dimension.
-MTD = DataSet.metric_time_dimension_name()
-MTD_REFERENCE = DataSet.metric_time_dimension_reference()
-MTD_SPEC_DAY = DataSet.metric_time_dimension_spec(TimeGranularity.DAY)
-MTD_SPEC_WEEK = DataSet.metric_time_dimension_spec(TimeGranularity.WEEK)
-MTD_SPEC_MONTH = DataSet.metric_time_dimension_spec(TimeGranularity.MONTH)
-MTD_SPEC_QUARTER = DataSet.metric_time_dimension_spec(TimeGranularity.QUARTER)
-MTD_SPEC_YEAR = DataSet.metric_time_dimension_spec(TimeGranularity.YEAR)
diff --git a/tests/query/group_by_item/__init__.py b/tests_metricflow/__init__.py
similarity index 100%
rename from tests/query/group_by_item/__init__.py
rename to tests_metricflow/__init__.py
diff --git a/tests/query/group_by_item/filter_spec_resolution/__init__.py b/tests_metricflow/cli/__init__.py
similarity index 100%
rename from tests/query/group_by_item/filter_spec_resolution/__init__.py
rename to tests_metricflow/cli/__init__.py
diff --git a/tests/cli/test_cli.py b/tests_metricflow/cli/test_cli.py
similarity index 96%
rename from tests/cli/test_cli.py
rename to tests_metricflow/cli/test_cli.py
index f39cf9154a..4af7d79b6a 100644
--- a/tests/cli/test_cli.py
+++ b/tests_metricflow/cli/test_cli.py
@@ -14,6 +14,10 @@
)
from dbt_semantic_interfaces.parsing.objects import YamlConfigFile
from dbt_semantic_interfaces.test_utils import base_semantic_manifest_file
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from tests_metricflow_semantics.model.example_project_configuration import (
+ EXAMPLE_PROJECT_CONFIGURATION_YAML_CONFIG_FILE,
+)
from dbt_metricflow.cli.cli_context import CLIContext
from dbt_metricflow.cli.main import (
@@ -27,10 +31,8 @@
validate_configs,
)
from metricflow.protocols.sql_client import SqlClient, SqlEngine
-from tests.fixtures.cli_fixtures import MetricFlowCliRunner
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.model.example_project_configuration import EXAMPLE_PROJECT_CONFIGURATION_YAML_CONFIG_FILE
-from tests.snapshot_utils import assert_str_snapshot_equal
+from tests_metricflow.fixtures.cli_fixtures import MetricFlowCliRunner
+from tests_metricflow.snapshot_utils import assert_str_snapshot_equal
logger = logging.getLogger(__name__)
diff --git a/tests/cli/test_custom_click_types.py b/tests_metricflow/cli/test_custom_click_types.py
similarity index 100%
rename from tests/cli/test_custom_click_types.py
rename to tests_metricflow/cli/test_custom_click_types.py
diff --git a/tests/compare_df.py b/tests_metricflow/compare_df.py
similarity index 100%
rename from tests/compare_df.py
rename to tests_metricflow/compare_df.py
diff --git a/tests_metricflow/conftest.py b/tests_metricflow/conftest.py
new file mode 100644
index 0000000000..46f268c40f
--- /dev/null
+++ b/tests_metricflow/conftest.py
@@ -0,0 +1,11 @@
+# These imports are required to properly set up pytest fixtures.
+from __future__ import annotations
+
+from tests_metricflow.fixtures.cli_fixtures import * # noqa: F401, F403
+from tests_metricflow.fixtures.dataflow_fixtures import * # noqa: F401, F403
+from tests_metricflow.fixtures.id_fixtures import * # noqa: F401, F403
+from tests_metricflow.fixtures.manifest_fixtures import * # noqa: F401, F403
+from tests_metricflow.fixtures.setup_fixtures import * # noqa: F401, F403
+from tests_metricflow.fixtures.sql_client_fixtures import * # noqa: F401, F403
+from tests_metricflow.fixtures.sql_fixtures import * # noqa: F401, F403
+from tests_metricflow.fixtures.table_fixtures import * # noqa: F401, F403
diff --git a/tests/query/group_by_item/resolution_dag/__init__.py b/tests_metricflow/dataflow/__init__.py
similarity index 100%
rename from tests/query/group_by_item/resolution_dag/__init__.py
rename to tests_metricflow/dataflow/__init__.py
diff --git a/tests/query_rendering/__init__.py b/tests_metricflow/dataflow/builder/__init__.py
similarity index 100%
rename from tests/query_rendering/__init__.py
rename to tests_metricflow/dataflow/builder/__init__.py
diff --git a/tests/dataflow/builder/test_cyclic_join.py b/tests_metricflow/dataflow/builder/test_cyclic_join.py
similarity index 77%
rename from tests/dataflow/builder/test_cyclic_join.py
rename to tests_metricflow/dataflow/builder/test_cyclic_join.py
index ea61641051..10eb9758b9 100644
--- a/tests/dataflow/builder/test_cyclic_join.py
+++ b/tests_metricflow/dataflow/builder/test_cyclic_join.py
@@ -6,18 +6,18 @@
import pytest
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.references import EntityReference
-
-from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
MetricFlowQuerySpec,
MetricSpec,
)
-from tests.dataflow_plan_to_svg import display_graph_if_requested
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.fixtures.sql_client_fixtures import sql_client # noqa: F401, F403
-from tests.snapshot_utils import assert_plan_snapshot_text_equal
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_plan_snapshot_text_equal
+
+from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
+from tests_metricflow.dataflow_plan_to_svg import display_graph_if_requested
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+from tests_metricflow.fixtures.sql_client_fixtures import sql_client # noqa: F401, F403
logger = logging.getLogger(__name__)
diff --git a/tests/dataflow/builder/test_dataflow_plan_builder.py b/tests_metricflow/dataflow/builder/test_dataflow_plan_builder.py
similarity index 98%
rename from tests/dataflow/builder/test_dataflow_plan_builder.py
rename to tests_metricflow/dataflow/builder/test_dataflow_plan_builder.py
index 1d319ea2e3..24c60296e7 100644
--- a/tests/dataflow/builder/test_dataflow_plan_builder.py
+++ b/tests_metricflow/dataflow/builder/test_dataflow_plan_builder.py
@@ -8,14 +8,11 @@
from dbt_semantic_interfaces.implementations.filters.where_filter import PydanticWhereFilter
from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-
-from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
-from metricflow.dataset.dataset import DataSet
-from metricflow.errors.errors import UnableToSatisfyQueryError
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.specs import (
+from metricflow_semantics.errors.error_classes import UnableToSatisfyQueryError
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
EntityReference,
MetricFlowQuerySpec,
@@ -23,10 +20,18 @@
OrderBySpec,
TimeDimensionSpec,
)
-from tests.dataflow_plan_to_svg import display_graph_if_requested
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import assert_plan_snapshot_text_equal
-from tests.time.metric_time_dimension import MTD_SPEC_DAY, MTD_SPEC_MONTH, MTD_SPEC_QUARTER, MTD_SPEC_WEEK
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.metric_time_dimension import (
+ MTD_SPEC_DAY,
+ MTD_SPEC_MONTH,
+ MTD_SPEC_QUARTER,
+ MTD_SPEC_WEEK,
+)
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_plan_snapshot_text_equal
+
+from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
+from metricflow.dataset.dataset_classes import DataSet
+from tests_metricflow.dataflow_plan_to_svg import display_graph_if_requested
logger = logging.getLogger(__name__)
diff --git a/tests/dataflow/builder/test_measure_additiveness.py b/tests_metricflow/dataflow/builder/test_measure_additiveness.py
similarity index 94%
rename from tests/dataflow/builder/test_measure_additiveness.py
rename to tests_metricflow/dataflow/builder/test_measure_additiveness.py
index 6b049e71c2..64893e16a3 100644
--- a/tests/dataflow/builder/test_measure_additiveness.py
+++ b/tests_metricflow/dataflow/builder/test_measure_additiveness.py
@@ -1,9 +1,9 @@
from __future__ import annotations
from dbt_semantic_interfaces.type_enums.aggregation_type import AggregationType
+from metricflow_semantics.specs.spec_classes import MeasureSpec, NonAdditiveDimensionSpec
from metricflow.dataflow.builder.measure_additiveness import group_measure_specs_by_additiveness
-from metricflow.specs.specs import MeasureSpec, NonAdditiveDimensionSpec
def test_bucket_measure_specs_by_additiveness() -> None: # noqa: D103
diff --git a/tests/dataflow/builder/test_node_data_set.py b/tests_metricflow/dataflow/builder/test_node_data_set.py
similarity index 83%
rename from tests/dataflow/builder/test_node_data_set.py
rename to tests_metricflow/dataflow/builder/test_node_data_set.py
index b786e6e4dc..30267070a5 100644
--- a/tests/dataflow/builder/test_node_data_set.py
+++ b/tests_metricflow/dataflow/builder/test_node_data_set.py
@@ -5,30 +5,35 @@
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.references import SemanticModelElementReference
-
-from metricflow.aggregation_properties import AggregationState
-from metricflow.dataflow.builder.node_data_set import DataflowPlanNodeOutputDataSetResolver
-from metricflow.dataflow.nodes.join_to_base import JoinDescription, JoinToBaseOutputNode
-from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
-from metricflow.dataset.sql_dataset import SqlDataSet
-from metricflow.instances import (
+from metricflow_semantics.aggregation_properties import AggregationState
+from metricflow_semantics.instances import (
InstanceSet,
MeasureInstance,
)
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
-from metricflow.plan_conversion.time_spine import TimeSpineSource
-from metricflow.specs.column_assoc import ColumnAssociation, SingleColumnCorrelationKey
-from metricflow.specs.specs import (
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.column_assoc import ColumnAssociation, SingleColumnCorrelationKey
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
LinklessEntitySpec,
MeasureSpec,
)
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_spec_set_snapshot_equal
+
+from metricflow.dataflow.builder.node_data_set import DataflowPlanNodeOutputDataSetResolver
+from metricflow.dataflow.nodes.join_to_base import JoinDescription, JoinToBaseOutputNode
+from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
+from metricflow.dataset.sql_dataset import SqlDataSet
+from metricflow.plan_conversion.time_spine import TimeSpineSource
from metricflow.sql.sql_exprs import SqlColumnReference, SqlColumnReferenceExpression
-from metricflow.sql.sql_plan import SqlJoinType, SqlSelectColumn, SqlSelectStatementNode, SqlTableFromClauseNode
+from metricflow.sql.sql_plan import (
+ SqlSelectColumn,
+ SqlSelectStatementNode,
+ SqlTableFromClauseNode,
+)
from metricflow.sql.sql_table import SqlTable
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import assert_spec_set_snapshot_equal
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
logger = logging.getLogger(__name__)
diff --git a/tests/dataflow/builder/test_node_evaluator.py b/tests_metricflow/dataflow/builder/test_node_evaluator.py
similarity index 98%
rename from tests/dataflow/builder/test_node_evaluator.py
rename to tests_metricflow/dataflow/builder/test_node_evaluator.py
index 0176780fe7..07245d1257 100644
--- a/tests/dataflow/builder/test_node_evaluator.py
+++ b/tests_metricflow/dataflow/builder/test_node_evaluator.py
@@ -5,6 +5,17 @@
import pytest
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
+ DimensionSpec,
+ EntityReference,
+ EntitySpec,
+ LinkableInstanceSpec,
+ LinklessEntitySpec,
+ TimeDimensionSpec,
+)
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
from metricflow.dataflow.builder.node_data_set import DataflowPlanNodeOutputDataSetResolver
from metricflow.dataflow.builder.node_evaluator import (
@@ -15,20 +26,9 @@
from metricflow.dataflow.builder.partitions import PartitionTimeDimensionJoinDescription
from metricflow.dataflow.builder.source_node import SourceNodeSet
from metricflow.dataflow.nodes.join_to_base import ValidityWindowJoinDescription
-from metricflow.dataset.dataset import DataSet
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
+from metricflow.dataset.dataset_classes import DataSet
from metricflow.plan_conversion.node_processor import PreJoinNodeProcessor
-from metricflow.specs.specs import (
- DimensionSpec,
- EntityReference,
- EntitySpec,
- LinkableInstanceSpec,
- LinklessEntitySpec,
- TimeDimensionSpec,
-)
-from metricflow.sql.sql_plan import SqlJoinType
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
logger = logging.getLogger(__name__)
diff --git a/tests/specs/__init__.py b/tests_metricflow/dataflow/optimizer/__init__.py
similarity index 100%
rename from tests/specs/__init__.py
rename to tests_metricflow/dataflow/optimizer/__init__.py
diff --git a/tests/specs/patterns/__init__.py b/tests_metricflow/dataflow/optimizer/source_scan/__init__.py
similarity index 100%
rename from tests/specs/patterns/__init__.py
rename to tests_metricflow/dataflow/optimizer/source_scan/__init__.py
diff --git a/tests/dataflow/optimizer/source_scan/test_cm_branch_combiner.py b/tests_metricflow/dataflow/optimizer/source_scan/test_cm_branch_combiner.py
similarity index 85%
rename from tests/dataflow/optimizer/source_scan/test_cm_branch_combiner.py
rename to tests_metricflow/dataflow/optimizer/source_scan/test_cm_branch_combiner.py
index 220c377c8b..56aca18e6c 100644
--- a/tests/dataflow/optimizer/source_scan/test_cm_branch_combiner.py
+++ b/tests_metricflow/dataflow/optimizer/source_scan/test_cm_branch_combiner.py
@@ -4,9 +4,12 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.dag.id_prefix import StaticIdPrefix
+from metricflow_semantics.dag.mf_dag import DagId
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet, MeasureSpec
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_plan_snapshot_text_equal
-from metricflow.dag.id_prefix import StaticIdPrefix
-from metricflow.dag.mf_dag import DagId
from metricflow.dataflow.dataflow_plan import (
BaseOutput,
DataflowPlan,
@@ -17,11 +20,8 @@
ComputeMetricsBranchCombiner,
ComputeMetricsBranchCombinerResult,
)
-from metricflow.specs.specs import InstanceSpecSet, MeasureSpec
-from tests.dataflow_plan_to_svg import display_graph_if_requested
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import assert_plan_snapshot_text_equal
+from tests_metricflow.dataflow_plan_to_svg import display_graph_if_requested
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
def make_dataflow_plan(node: BaseOutput) -> DataflowPlan: # noqa: D103
diff --git a/tests/dataflow/optimizer/source_scan/test_source_scan_optimizer.py b/tests_metricflow/dataflow/optimizer/source_scan/test_source_scan_optimizer.py
similarity index 96%
rename from tests/dataflow/optimizer/source_scan/test_source_scan_optimizer.py
rename to tests_metricflow/dataflow/optimizer/source_scan/test_source_scan_optimizer.py
index 622fc67eae..1cb33ee108 100644
--- a/tests/dataflow/optimizer/source_scan/test_source_scan_optimizer.py
+++ b/tests_metricflow/dataflow/optimizer/source_scan/test_source_scan_optimizer.py
@@ -6,6 +6,16 @@
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
+ DimensionSpec,
+ EntityReference,
+ MetricFlowQuerySpec,
+ MetricSpec,
+)
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_plan_snapshot_text_equal
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
from metricflow.dataflow.dataflow_plan import (
@@ -32,18 +42,8 @@
from metricflow.dataflow.nodes.write_to_dataframe import WriteToResultDataframeNode
from metricflow.dataflow.nodes.write_to_table import WriteToResultTableNode
from metricflow.dataflow.optimizer.source_scan.source_scan_optimizer import SourceScanOptimizer
-from metricflow.dataset.dataset import DataSet
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.specs import (
- DimensionSpec,
- EntityReference,
- MetricFlowQuerySpec,
- MetricSpec,
-)
-from tests.dataflow_plan_to_svg import display_graph_if_requested
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import assert_plan_snapshot_text_equal
+from metricflow.dataset.dataset_classes import DataSet
+from tests_metricflow.dataflow_plan_to_svg import display_graph_if_requested
logger = logging.getLogger(__name__)
diff --git a/tests/dataflow/test_sql_column.py b/tests_metricflow/dataflow/test_sql_column.py
similarity index 100%
rename from tests/dataflow/test_sql_column.py
rename to tests_metricflow/dataflow/test_sql_column.py
diff --git a/tests/dataflow/test_sql_table.py b/tests_metricflow/dataflow/test_sql_table.py
similarity index 100%
rename from tests/dataflow/test_sql_table.py
rename to tests_metricflow/dataflow/test_sql_table.py
diff --git a/tests/dataflow_plan_to_svg.py b/tests_metricflow/dataflow_plan_to_svg.py
similarity index 78%
rename from tests/dataflow_plan_to_svg.py
rename to tests_metricflow/dataflow_plan_to_svg.py
index 8f7432dc01..f018a63540 100644
--- a/tests/dataflow_plan_to_svg.py
+++ b/tests_metricflow/dataflow_plan_to_svg.py
@@ -3,10 +3,9 @@
import os
from _pytest.fixtures import FixtureRequest
-
-from metricflow.dag.dag_visualization import DagGraphT, render_via_graphviz
-from metricflow.test_helpers import snapshot_path_prefix
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
+from metricflow_semantics.dag.dag_visualization import DagGraphT, render_via_graphviz
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import snapshot_path_prefix
def display_graph_if_requested(
diff --git a/tests/sql/__init__.py b/tests_metricflow/dataset/__init__.py
similarity index 100%
rename from tests/sql/__init__.py
rename to tests_metricflow/dataset/__init__.py
diff --git a/tests/dataset/test_convert_semantic_model.py b/tests_metricflow/dataset/test_convert_semantic_model.py
similarity index 90%
rename from tests/dataset/test_convert_semantic_model.py
rename to tests_metricflow/dataset/test_convert_semantic_model.py
index ee7ac80d25..1a3b2e5c74 100644
--- a/tests/dataset/test_convert_semantic_model.py
+++ b/tests_metricflow/dataset/test_convert_semantic_model.py
@@ -6,12 +6,12 @@
import pytest
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.references import SemanticModelReference
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_spec_set_snapshot_equal
from metricflow.protocols.sql_client import SqlClient
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import assert_spec_set_snapshot_equal
-from tests.sql.compare_sql_plan import assert_rendered_sql_equal
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+from tests_metricflow.sql.compare_sql_plan import assert_rendered_sql_equal
logger = logging.getLogger(__name__)
diff --git a/tests/examples/__init__.py b/tests_metricflow/examples/__init__.py
similarity index 100%
rename from tests/examples/__init__.py
rename to tests_metricflow/examples/__init__.py
diff --git a/tests/examples/test_node_sql.py b/tests_metricflow/examples/test_node_sql.py
similarity index 92%
rename from tests/examples/test_node_sql.py
rename to tests_metricflow/examples/test_node_sql.py
index c0d3b0382b..cd6e517563 100644
--- a/tests/examples/test_node_sql.py
+++ b/tests_metricflow/examples/test_node_sql.py
@@ -5,18 +5,18 @@
import pytest
from dbt_semantic_interfaces.references import SemanticModelReference
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet, TimeDimensionReference, TimeDimensionSpec
from metricflow.dataflow.builder.node_data_set import DataflowPlanNodeOutputDataSetResolver
from metricflow.dataflow.nodes.filter_elements import FilterElementsNode
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
from metricflow.dataflow.nodes.read_sql_source import ReadSqlSourceNode
from metricflow.dataset.convert_semantic_model import SemanticModelToDataSetConverter
-from metricflow.mf_logging.pretty_print import mf_pformat
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
-from metricflow.specs.specs import InstanceSpecSet, TimeDimensionReference, TimeDimensionSpec
from metricflow.sql.optimizer.optimization_levels import SqlQueryOptimizationLevel
from metricflow.sql.render.sql_plan_renderer import SqlQueryPlanRenderer
diff --git a/tests/sql/optimizer/__init__.py b/tests_metricflow/execution/__init__.py
similarity index 100%
rename from tests/sql/optimizer/__init__.py
rename to tests_metricflow/execution/__init__.py
diff --git a/tests/execution/noop_task.py b/tests_metricflow/execution/noop_task.py
similarity index 95%
rename from tests/execution/noop_task.py
rename to tests_metricflow/execution/noop_task.py
index d5e8d855bf..563d16feaa 100644
--- a/tests/execution/noop_task.py
+++ b/tests_metricflow/execution/noop_task.py
@@ -4,7 +4,8 @@
import time
from typing import Optional, Sequence
-from metricflow.dag.id_prefix import IdPrefix, StaticIdPrefix
+from metricflow_semantics.dag.id_prefix import IdPrefix, StaticIdPrefix
+
from metricflow.execution.execution_plan import (
ExecutionPlanTask,
SqlQuery,
diff --git a/tests/execution/test_sequential_executor.py b/tests_metricflow/execution/test_sequential_executor.py
similarity index 95%
rename from tests/execution/test_sequential_executor.py
rename to tests_metricflow/execution/test_sequential_executor.py
index c3e5ca2835..84f29b6461 100644
--- a/tests/execution/test_sequential_executor.py
+++ b/tests_metricflow/execution/test_sequential_executor.py
@@ -1,9 +1,10 @@
from __future__ import annotations
-from metricflow.dag.mf_dag import DagId
+from metricflow_semantics.dag.mf_dag import DagId
+
from metricflow.execution.execution_plan import ExecutionPlan
from metricflow.execution.executor import SequentialPlanExecutor
-from tests.execution.noop_task import NoOpExecutionPlanTask
+from tests_metricflow.execution.noop_task import NoOpExecutionPlanTask
def test_single_task() -> None:
diff --git a/tests/execution/test_tasks.py b/tests_metricflow/execution/test_tasks.py
similarity index 86%
rename from tests/execution/test_tasks.py
rename to tests_metricflow/execution/test_tasks.py
index 8009ac18cc..4ee893e5d3 100644
--- a/tests/execution/test_tasks.py
+++ b/tests_metricflow/execution/test_tasks.py
@@ -1,8 +1,11 @@
from __future__ import annotations
import pandas as pd
+from metricflow_semantics.dag.mf_dag import DagId
+from metricflow_semantics.random_id import random_id
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
-from metricflow.dag.mf_dag import DagId
from metricflow.execution.execution_plan import (
ExecutionPlan,
SelectSqlQueryToDataFrameTask,
@@ -10,11 +13,8 @@
)
from metricflow.execution.executor import SequentialPlanExecutor
from metricflow.protocols.sql_client import SqlClient, SqlEngine
-from metricflow.random_id import random_id
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_table import SqlTable
-from tests.compare_df import assert_dataframes_equal
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
+from tests_metricflow.compare_df import assert_dataframes_equal
def test_read_sql_task(sql_client: SqlClient) -> None: # noqa: D103
diff --git a/tests/sql_clients/__init__.py b/tests_metricflow/fixtures/__init__.py
similarity index 100%
rename from tests/sql_clients/__init__.py
rename to tests_metricflow/fixtures/__init__.py
diff --git a/tests/fixtures/cli_fixtures.py b/tests_metricflow/fixtures/cli_fixtures.py
similarity index 92%
rename from tests/fixtures/cli_fixtures.py
rename to tests_metricflow/fixtures/cli_fixtures.py
index 6768a93205..5416c75366 100644
--- a/tests/fixtures/cli_fixtures.py
+++ b/tests_metricflow/fixtures/cli_fixtures.py
@@ -10,16 +10,16 @@
from click.testing import CliRunner, Result
from dbt_semantic_interfaces.protocols.semantic_manifest import SemanticManifest
from dbt_semantic_interfaces.test_utils import as_datetime
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.test_helpers.time_helpers import ConfigurableTimeSource
from typing_extensions import override
from dbt_metricflow.cli.cli_context import CLIContext
from dbt_metricflow.cli.dbt_connectors.dbt_config_accessor import dbtArtifacts, dbtProjectMetadata
from metricflow.engine.metricflow_engine import MetricFlowEngine
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
from metricflow.protocols.sql_client import SqlClient
-from metricflow.test_helpers import ConfigurableTimeSource
-from tests.fixtures.setup_fixtures import dbt_project_dir
+from tests_metricflow.fixtures.setup_fixtures import dbt_project_dir
class FakeCLIContext(CLIContext):
diff --git a/tests/fixtures/dataflow_fixtures.py b/tests_metricflow/fixtures/dataflow_fixtures.py
similarity index 88%
rename from tests/fixtures/dataflow_fixtures.py
rename to tests_metricflow/fixtures/dataflow_fixtures.py
index dc47725968..540065b162 100644
--- a/tests/fixtures/dataflow_fixtures.py
+++ b/tests_metricflow/fixtures/dataflow_fixtures.py
@@ -3,15 +3,15 @@
from typing import Mapping
import pytest
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
from metricflow.plan_conversion.time_spine import TimeSpineSource
from metricflow.protocols.sql_client import SqlClient
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.fixtures.sql_client_fixtures import sql_client # noqa: F401, F403
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+from tests_metricflow.fixtures.sql_client_fixtures import sql_client # noqa: F401, F403
"""
Using 'function' scope to make ID generation more deterministic for the dataflow plan builder fixtures..
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/.gitignore b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/.gitignore
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/.gitignore
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/.gitignore
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/.user.yml b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/.user.yml
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/.user.yml
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/.user.yml
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/README.md b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/README.md
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/README.md
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/README.md
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/analyses/.gitkeep b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/analyses/.gitkeep
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/analyses/.gitkeep
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/analyses/.gitkeep
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/dbt_project.yml b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/dbt_project.yml
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/dbt_project.yml
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/dbt_project.yml
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/macros/.gitkeep b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/macros/.gitkeep
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/macros/.gitkeep
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/macros/.gitkeep
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/models/example/my_first_dbt_model.sql b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/models/example/my_first_dbt_model.sql
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/models/example/my_first_dbt_model.sql
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/models/example/my_first_dbt_model.sql
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/models/example/my_second_dbt_model.sql b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/models/example/my_second_dbt_model.sql
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/models/example/my_second_dbt_model.sql
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/models/example/my_second_dbt_model.sql
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/models/example/schema.yml b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/models/example/schema.yml
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/models/example/schema.yml
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/models/example/schema.yml
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/profiles.yml b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/profiles.yml
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/profiles.yml
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/profiles.yml
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/seeds/.gitkeep b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/seeds/.gitkeep
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/seeds/.gitkeep
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/seeds/.gitkeep
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/snapshots/.gitkeep b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/snapshots/.gitkeep
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/snapshots/.gitkeep
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/snapshots/.gitkeep
diff --git a/tests/fixtures/dbt_projects/metricflow_testing/tests/.gitkeep b/tests_metricflow/fixtures/dbt_projects/metricflow_testing/tests/.gitkeep
similarity index 100%
rename from tests/fixtures/dbt_projects/metricflow_testing/tests/.gitkeep
rename to tests_metricflow/fixtures/dbt_projects/metricflow_testing/tests/.gitkeep
diff --git a/tests_metricflow/fixtures/id_fixtures.py b/tests_metricflow/fixtures/id_fixtures.py
new file mode 100644
index 0000000000..cec3c0131a
--- /dev/null
+++ b/tests_metricflow/fixtures/id_fixtures.py
@@ -0,0 +1,17 @@
+from __future__ import annotations
+
+from typing import Generator
+
+import pytest
+from metricflow_semantics.test_helpers.id_helpers import IdNumberSpace, patch_id_generators_helper
+
+
+@pytest.fixture(autouse=True, scope="function")
+def patch_id_generators() -> Generator[None, None, None]:
+ """Patch ID generators with a new one to get repeatability in plan outputs before every test.
+
+ Plan outputs contain IDs, so if the IDs are not consistent from run to run, there will be diffs in the actual vs.
+ expected outputs during a test.
+ """
+ with patch_id_generators_helper(start_value=IdNumberSpace.for_test_start().start_value):
+ yield None
diff --git a/tests/fixtures/manifest_fixtures.py b/tests_metricflow/fixtures/manifest_fixtures.py
similarity index 91%
rename from tests/fixtures/manifest_fixtures.py
rename to tests_metricflow/fixtures/manifest_fixtures.py
index 28c04219d4..20da7ab6e9 100644
--- a/tests/fixtures/manifest_fixtures.py
+++ b/tests_metricflow/fixtures/manifest_fixtures.py
@@ -1,21 +1,23 @@
from __future__ import annotations
import logging
-import os
from collections import OrderedDict
from dataclasses import dataclass
from enum import Enum
-from typing import Dict, Mapping, Optional, Sequence
+from typing import Dict, Mapping, Sequence
import pytest
from dbt_semantic_interfaces.implementations.semantic_manifest import PydanticSemanticManifest
-from dbt_semantic_interfaces.parsing.dir_to_model import (
- SemanticManifestBuildResult,
- parse_directory_of_yaml_files_to_semantic_manifest,
-)
from dbt_semantic_interfaces.protocols import SemanticModel
from dbt_semantic_interfaces.test_utils import as_datetime
-from dbt_semantic_interfaces.validations.semantic_manifest_validator import SemanticManifestValidator
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.id_helpers import IdNumberSpace, patch_id_generators_helper
+from metricflow_semantics.test_helpers.manifest_helpers import load_semantic_manifest
+from metricflow_semantics.test_helpers.time_helpers import ConfigurableTimeSource
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
from metricflow.dataflow.builder.node_data_set import DataflowPlanNodeOutputDataSetResolver
@@ -24,15 +26,8 @@
from metricflow.dataset.convert_semantic_model import SemanticModelToDataSetConverter
from metricflow.dataset.semantic_model_adapter import SemanticModelDataSet
from metricflow.engine.metricflow_engine import MetricFlowEngine
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.test_helpers import ConfigurableTimeSource
-from tests.fixtures.id_fixtures import IdNumberSpace, patch_id_generators_helper
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
logger = logging.getLogger(__name__)
@@ -236,20 +231,6 @@ def mf_engine_test_fixture_mapping(
return fixture_mapping
-def load_semantic_manifest(
- relative_manifest_path: str,
- template_mapping: Optional[Dict[str, str]] = None,
-) -> SemanticManifestBuildResult:
- """Reads the manifest YAMLs from the standard location, applies transformations, runs validations."""
- yaml_file_directory = os.path.join(os.path.dirname(__file__), f"semantic_manifest_yamls/{relative_manifest_path}")
- build_result = parse_directory_of_yaml_files_to_semantic_manifest(
- yaml_file_directory, template_mapping=template_mapping
- )
- validator = SemanticManifestValidator[PydanticSemanticManifest]()
- validator.checked_validations(build_result.semantic_manifest)
- return build_result
-
-
@pytest.fixture(scope="session")
def template_mapping(mf_test_configuration: MetricFlowTestConfiguration) -> Dict[str, str]:
"""Mapping for template variables in the model YAML files."""
diff --git a/tests/fixtures/setup_fixtures.py b/tests_metricflow/fixtures/setup_fixtures.py
similarity index 77%
rename from tests/fixtures/setup_fixtures.py
rename to tests_metricflow/fixtures/setup_fixtures.py
index c095df5cb4..3d441d9c83 100644
--- a/tests/fixtures/setup_fixtures.py
+++ b/tests_metricflow/fixtures/setup_fixtures.py
@@ -3,25 +3,23 @@
import datetime
import logging
import os
-import warnings
from pathlib import Path
import _pytest.config
import pytest
-import sqlalchemy.util
from _pytest.fixtures import FixtureRequest
-from sqlalchemy.engine import make_url
-
-from metricflow.random_id import random_id
-from metricflow.test_helpers import (
+from metricflow_semantics.random_id import random_id
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import (
DISPLAY_SNAPSHOTS_CLI_FLAG,
OVERWRITE_SNAPSHOTS_CLI_FLAG,
- MetricFlowTestConfiguration,
add_display_snapshots_cli_flag,
add_overwrite_snapshots_cli_flag,
)
-from tests.fixtures.sql_clients.common_client import SqlDialect
-from tests.table_snapshot.table_snapshots import SqlTableSnapshotHash, SqlTableSnapshotRepository
+from sqlalchemy.engine import make_url
+
+from tests_metricflow.fixtures.sql_clients.common_client import SqlDialect
+from tests_metricflow.table_snapshot.table_snapshots import SqlTableSnapshotHash, SqlTableSnapshotRepository
logger = logging.getLogger(__name__)
@@ -165,44 +163,3 @@ def dbt_project_dir() -> str:
This is necessary for configuring both the dbt adapter for integration tests and the project location for CLI tests.
"""
return os.path.join(os.path.dirname(__file__), Path("dbt_projects", "metricflow_testing"))
-
-
-@pytest.fixture(scope="session", autouse=True)
-def warn_user_about_slow_tests_without_parallelism( # noqa: D103
- request: FixtureRequest,
- mf_test_configuration: MetricFlowTestConfiguration,
-) -> None:
- worker_count_env_var = os.environ.get("PYTEST_XDIST_WORKER_COUNT", "1")
- try:
- num_workers = int(worker_count_env_var)
- except ValueError as e:
- raise ValueError(
- f"Could not convert environment variable PYTEST_XDIST_WORKER_COUNT to int! "
- f"Value in environ was: {worker_count_env_var}"
- ) from e
-
- num_items = len(request.session.items)
- dialect = dialect_from_url(mf_test_configuration.sql_engine_url)
-
- # If already running in parallel or if there's not many test items, no need to print the warning. Picking 10/30 as
- # the thresholds, but not much thought has been put into it.
- if num_workers > 1 or num_items < 10:
- return
-
- # Since DuckDB / Postgres is fast, use 30 as the threshold.
- if (dialect is SqlDialect.DUCKDB or dialect is SqlDialect.POSTGRESQL) and num_items < 30:
- return
-
- if num_items > 10:
- warnings.warn(
- f"This test session with {dialect.name} and {num_items} item(s) is running with {num_workers} worker(s). "
- f'Consider using the pytest-xdist option "-n " to parallelize execution and speed '
- f"up the session."
- )
-
-
-@pytest.fixture(scope="session", autouse=True)
-def disable_sql_alchemy_deprecation_warning() -> None:
- """Since MF is tied to using SQLAlchemy 1.x.x due to the Snowflake connector, silence 2.0 deprecation warnings."""
- # Seeing 'error: Module has no attribute "SILENCE_UBER_WARNING"' in the type checker, but this seems to work.
- sqlalchemy.util.deprecations.SILENCE_UBER_WARNING = True # type:ignore
diff --git a/tests/fixtures/source_table_snapshots/data_warehouse_validation_model/fct_animals.yaml b/tests_metricflow/fixtures/source_table_snapshots/data_warehouse_validation_model/fct_animals.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/data_warehouse_validation_model/fct_animals.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/data_warehouse_validation_model/fct_animals.yaml
diff --git a/tests/fixtures/source_table_snapshots/extended_date_model/dim_listings_extended.yaml b/tests_metricflow/fixtures/source_table_snapshots/extended_date_model/dim_listings_extended.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/extended_date_model/dim_listings_extended.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/extended_date_model/dim_listings_extended.yaml
diff --git a/tests/fixtures/source_table_snapshots/extended_date_model/fct_bookings_extended.yaml b/tests_metricflow/fixtures/source_table_snapshots/extended_date_model/fct_bookings_extended.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/extended_date_model/fct_bookings_extended.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/extended_date_model/fct_bookings_extended.yaml
diff --git a/tests/fixtures/source_table_snapshots/extended_date_model/fct_bookings_extended_monthly.yaml b/tests_metricflow/fixtures/source_table_snapshots/extended_date_model/fct_bookings_extended_monthly.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/extended_date_model/fct_bookings_extended_monthly.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/extended_date_model/fct_bookings_extended_monthly.yaml
diff --git a/tests/fixtures/source_table_snapshots/multi_hop_join_model/account_month_txns.yaml b/tests_metricflow/fixtures/source_table_snapshots/multi_hop_join_model/account_month_txns.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/multi_hop_join_model/account_month_txns.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/multi_hop_join_model/account_month_txns.yaml
diff --git a/tests/fixtures/source_table_snapshots/multi_hop_join_model/bridge_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/multi_hop_join_model/bridge_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/multi_hop_join_model/bridge_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/multi_hop_join_model/bridge_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/multi_hop_join_model/customer_other_data.yaml b/tests_metricflow/fixtures/source_table_snapshots/multi_hop_join_model/customer_other_data.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/multi_hop_join_model/customer_other_data.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/multi_hop_join_model/customer_other_data.yaml
diff --git a/tests/fixtures/source_table_snapshots/multi_hop_join_model/customer_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/multi_hop_join_model/customer_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/multi_hop_join_model/customer_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/multi_hop_join_model/customer_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/multi_hop_join_model/third_hop_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/multi_hop_join_model/third_hop_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/multi_hop_join_model/third_hop_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/multi_hop_join_model/third_hop_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/dim_companies.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_companies.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/dim_companies.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_companies.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/dim_listings.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_listings.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/dim_listings.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_listings.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/dim_listings_latest.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_listings_latest.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/dim_listings_latest.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_listings_latest.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/dim_lux_listing_id_mapping.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_lux_listing_id_mapping.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/dim_lux_listing_id_mapping.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_lux_listing_id_mapping.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/dim_lux_listings.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_lux_listings.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/dim_lux_listings.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_lux_listings.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/dim_primary_accounts.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_primary_accounts.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/dim_primary_accounts.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_primary_accounts.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/dim_users.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_users.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/dim_users.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_users.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/dim_users_latest.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_users_latest.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/dim_users_latest.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/dim_users_latest.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/fct_accounts.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_accounts.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/fct_accounts.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_accounts.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/fct_bookings.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_bookings.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/fct_bookings.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_bookings.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/fct_bookings_dt.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_bookings_dt.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/fct_bookings_dt.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_bookings_dt.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/fct_buys.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_buys.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/fct_buys.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_buys.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/fct_id_verifications.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_id_verifications.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/fct_id_verifications.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_id_verifications.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/fct_revenue.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_revenue.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/fct_revenue.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_revenue.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/fct_views.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_views.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/fct_views.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_views.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_model/fct_visits.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_visits.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_model/fct_visits.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_model/fct_visits.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/all_entity_measure_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/all_entity_measure_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/all_entity_measure_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/all_entity_measure_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_0_dimension_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_0_dimension_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_0_dimension_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_0_dimension_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_0_measure_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_0_measure_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_0_measure_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_0_measure_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_and_entity_2_measure_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_and_entity_2_measure_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_and_entity_2_measure_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_and_entity_2_measure_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_dimension_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_dimension_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_dimension_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_dimension_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_measure_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_measure_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_measure_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_measure_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_to_entity_0_mapping_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_to_entity_0_mapping_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_to_entity_0_mapping_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_1_to_entity_0_mapping_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_2_measure_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_2_measure_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_2_measure_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_2_measure_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_2_to_entity_0_mapping_table.yaml b/tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_2_to_entity_0_mapping_table.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_2_to_entity_0_mapping_table.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/simple_multi_hop_join_manifest/entity_2_to_entity_0_mapping_table.yaml
diff --git a/tests/fixtures/source_table_snapshots/time_spine_table/mf_time_spine.yaml b/tests_metricflow/fixtures/source_table_snapshots/time_spine_table/mf_time_spine.yaml
similarity index 100%
rename from tests/fixtures/source_table_snapshots/time_spine_table/mf_time_spine.yaml
rename to tests_metricflow/fixtures/source_table_snapshots/time_spine_table/mf_time_spine.yaml
diff --git a/tests/fixtures/sql_client_fixtures.py b/tests_metricflow/fixtures/sql_client_fixtures.py
similarity index 80%
rename from tests/fixtures/sql_client_fixtures.py
rename to tests_metricflow/fixtures/sql_client_fixtures.py
index 6a15a3c8c9..428578e527 100644
--- a/tests/fixtures/sql_client_fixtures.py
+++ b/tests_metricflow/fixtures/sql_client_fixtures.py
@@ -3,18 +3,22 @@
import json
import logging
import os
+import warnings
from typing import Generator
import pytest
import sqlalchemy
+import sqlalchemy.util
+from _pytest.fixtures import FixtureRequest
from dbt.adapters.factory import get_adapter_by_type
from dbt.cli.main import dbtRunner
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.protocols.sql_client import SqlClient
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration, dbt_project_dir, dialect_from_url
-from tests.fixtures.sql_clients.adapter_backed_ddl_client import AdapterBackedDDLSqlClient
-from tests.fixtures.sql_clients.common_client import SqlDialect
-from tests.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
+from tests_metricflow.fixtures.setup_fixtures import dbt_project_dir, dialect_from_url
+from tests_metricflow.fixtures.sql_clients.adapter_backed_ddl_client import AdapterBackedDDLSqlClient
+from tests_metricflow.fixtures.sql_clients.common_client import SqlDialect
+from tests_metricflow.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
logger = logging.getLogger(__name__)
@@ -216,3 +220,44 @@ def sql_client(ddl_sql_client: SqlClientWithDDLMethods) -> SqlClient:
Unless the test case itself requires the DDL methods, this is the fixture we should use.
"""
return ddl_sql_client
+
+
+@pytest.fixture(scope="session", autouse=True)
+def warn_user_about_slow_tests_without_parallelism( # noqa: D103
+ request: FixtureRequest,
+ mf_test_configuration: MetricFlowTestConfiguration,
+) -> None:
+ worker_count_env_var = os.environ.get("PYTEST_XDIST_WORKER_COUNT", "1")
+ try:
+ num_workers = int(worker_count_env_var)
+ except ValueError as e:
+ raise ValueError(
+ f"Could not convert environment variable PYTEST_XDIST_WORKER_COUNT to int! "
+ f"Value in environ was: {worker_count_env_var}"
+ ) from e
+
+ num_items = len(request.session.items)
+ dialect = dialect_from_url(mf_test_configuration.sql_engine_url)
+
+ # If already running in parallel or if there's not many test items, no need to print the warning. Picking 10/30 as
+ # the thresholds, but not much thought has been put into it.
+ if num_workers > 1 or num_items < 10:
+ return
+
+ # Since DuckDB / Postgres is fast, use 30 as the threshold.
+ if (dialect is SqlDialect.DUCKDB or dialect is SqlDialect.POSTGRESQL) and num_items < 30:
+ return
+
+ if num_items > 10:
+ warnings.warn(
+ f"This test session with {dialect.name} and {num_items} item(s) is running with {num_workers} worker(s). "
+ f'Consider using the pytest-xdist option "-n " to parallelize execution and speed '
+ f"up the session."
+ )
+
+
+@pytest.fixture(scope="session", autouse=True)
+def disable_sql_alchemy_deprecation_warning() -> None:
+ """Since MF is tied to using SQLAlchemy 1.x.x due to the Snowflake connector, silence 2.0 deprecation warnings."""
+ # Seeing 'error: Module has no attribute "SILENCE_UBER_WARNING"' in the type checker, but this seems to work.
+ sqlalchemy.util.deprecations.SILENCE_UBER_WARNING = True # type:ignore
diff --git a/tests/table_snapshot/__init__.py b/tests_metricflow/fixtures/sql_clients/__init__.py
similarity index 100%
rename from tests/table_snapshot/__init__.py
rename to tests_metricflow/fixtures/sql_clients/__init__.py
diff --git a/tests/fixtures/sql_clients/adapter_backed_ddl_client.py b/tests_metricflow/fixtures/sql_clients/adapter_backed_ddl_client.py
similarity index 100%
rename from tests/fixtures/sql_clients/adapter_backed_ddl_client.py
rename to tests_metricflow/fixtures/sql_clients/adapter_backed_ddl_client.py
diff --git a/tests/fixtures/sql_clients/base_sql_client_implementation.py b/tests_metricflow/fixtures/sql_clients/base_sql_client_implementation.py
similarity index 95%
rename from tests/fixtures/sql_clients/base_sql_client_implementation.py
rename to tests_metricflow/fixtures/sql_clients/base_sql_client_implementation.py
index eaa621b878..8f7df405fb 100644
--- a/tests/fixtures/sql_clients/base_sql_client_implementation.py
+++ b/tests_metricflow/fixtures/sql_clients/base_sql_client_implementation.py
@@ -6,14 +6,14 @@
from typing import Optional
import pandas as pd
+from metricflow_semantics.mf_logging.formatting import indent
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.random_id import random_id
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
-from metricflow.mf_logging.formatting import indent
-from metricflow.mf_logging.pretty_print import mf_pformat
from metricflow.protocols.sql_client import (
SqlClient,
)
-from metricflow.random_id import random_id
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_table import SqlTable
from metricflow.sql_request.sql_request_attributes import SqlRequestId
diff --git a/tests/fixtures/sql_clients/common_client.py b/tests_metricflow/fixtures/sql_clients/common_client.py
similarity index 100%
rename from tests/fixtures/sql_clients/common_client.py
rename to tests_metricflow/fixtures/sql_clients/common_client.py
diff --git a/tests/fixtures/sql_clients/ddl_sql_client.py b/tests_metricflow/fixtures/sql_clients/ddl_sql_client.py
similarity index 100%
rename from tests/fixtures/sql_clients/ddl_sql_client.py
rename to tests_metricflow/fixtures/sql_clients/ddl_sql_client.py
diff --git a/tests/fixtures/sql_clients/sqlalchemy_dialect.py b/tests_metricflow/fixtures/sql_clients/sqlalchemy_dialect.py
similarity index 96%
rename from tests/fixtures/sql_clients/sqlalchemy_dialect.py
rename to tests_metricflow/fixtures/sql_clients/sqlalchemy_dialect.py
index 885d5726c7..b5ea8f2440 100644
--- a/tests/fixtures/sql_clients/sqlalchemy_dialect.py
+++ b/tests_metricflow/fixtures/sql_clients/sqlalchemy_dialect.py
@@ -8,10 +8,10 @@
import pandas as pd
import sqlalchemy
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_table import SqlTable
-from tests.fixtures.sql_clients.base_sql_client_implementation import BaseSqlClientImplementation
+from tests_metricflow.fixtures.sql_clients.base_sql_client_implementation import BaseSqlClientImplementation
logger = logging.getLogger(__name__)
diff --git a/tests/fixtures/sql_fixtures.py b/tests_metricflow/fixtures/sql_fixtures.py
similarity index 94%
rename from tests/fixtures/sql_fixtures.py
rename to tests_metricflow/fixtures/sql_fixtures.py
index c14a5fd78e..f825a9d30e 100644
--- a/tests/fixtures/sql_fixtures.py
+++ b/tests_metricflow/fixtures/sql_fixtures.py
@@ -6,7 +6,7 @@
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer, SqlQueryPlanRenderer
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
@pytest.fixture
diff --git a/tests/fixtures/table_fixtures.py b/tests_metricflow/fixtures/table_fixtures.py
similarity index 83%
rename from tests/fixtures/table_fixtures.py
rename to tests_metricflow/fixtures/table_fixtures.py
index e020e4660a..27e1e4bcad 100644
--- a/tests/fixtures/table_fixtures.py
+++ b/tests_metricflow/fixtures/table_fixtures.py
@@ -5,12 +5,13 @@
from pathlib import Path
import pytest
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
-from tests.source_schema_tools import create_tables_listed_in_table_snapshot_repository
-from tests.table_snapshot.table_snapshots import (
+from metricflow.plan_conversion.time_spine import TimeSpineSource
+from tests_metricflow.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
+from tests_metricflow.source_schema_tools import create_tables_listed_in_table_snapshot_repository
+from tests_metricflow.table_snapshot.table_snapshots import (
SqlTableSnapshotRepository,
)
@@ -40,7 +41,7 @@ def check_time_spine_source(
The time spine table is defined in a table snapshot YAML file and is restored to the source schema based on that
definition. The definition in the YAML should align with the definition in the time_spine_source fixture.
"""
- time_spine_source = simple_semantic_manifest_lookup.time_spine_source
+ time_spine_source = TimeSpineSource.create_from_manifest(simple_semantic_manifest_lookup.semantic_manifest)
assert (
time_spine_source.schema_name == mf_test_configuration.mf_source_schema
), "The time spine source table should be in the source schema"
diff --git a/tests/generate_snapshots.py b/tests_metricflow/generate_snapshots.py
similarity index 98%
rename from tests/generate_snapshots.py
rename to tests_metricflow/generate_snapshots.py
index eac0b674e6..3da97d76f1 100644
--- a/tests/generate_snapshots.py
+++ b/tests_metricflow/generate_snapshots.py
@@ -48,12 +48,12 @@
from dbt_semantic_interfaces.implementations.base import FrozenBaseModel
from metricflow.protocols.sql_client import SqlEngine
-from tests.fixtures.setup_fixtures import SQL_ENGINE_SNAPSHOT_MARKER_NAME
+from tests_metricflow.fixtures.setup_fixtures import SQL_ENGINE_SNAPSHOT_MARKER_NAME
logger = logging.getLogger(__name__)
-TEST_DIRECTORY = "tests"
+TEST_DIRECTORY = "tests_metricflow"
class MetricFlowTestCredentialSet(FrozenBaseModel): # noqa: D101
diff --git a/tests/telemetry/__init__.py b/tests_metricflow/inference/__init__.py
similarity index 100%
rename from tests/telemetry/__init__.py
rename to tests_metricflow/inference/__init__.py
diff --git a/tests/time/__init__.py b/tests_metricflow/inference/context/__init__.py
similarity index 100%
rename from tests/time/__init__.py
rename to tests_metricflow/inference/context/__init__.py
diff --git a/tests/inference/context/test_data_warehouse.py b/tests_metricflow/inference/context/test_data_warehouse.py
similarity index 100%
rename from tests/inference/context/test_data_warehouse.py
rename to tests_metricflow/inference/context/test_data_warehouse.py
diff --git a/tests/inference/context/test_snowflake.py b/tests_metricflow/inference/context/test_snowflake.py
similarity index 100%
rename from tests/inference/context/test_snowflake.py
rename to tests_metricflow/inference/context/test_snowflake.py
diff --git a/tests/prototype_utils.py b/tests_metricflow/inference/renderer/__init__.py
similarity index 100%
rename from tests/prototype_utils.py
rename to tests_metricflow/inference/renderer/__init__.py
diff --git a/tests/inference/renderer/test_config_file.py b/tests_metricflow/inference/renderer/test_config_file.py
similarity index 100%
rename from tests/inference/renderer/test_config_file.py
rename to tests_metricflow/inference/renderer/test_config_file.py
diff --git a/tests_metricflow/inference/rule/__init__.py b/tests_metricflow/inference/rule/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/inference/rule/conftest.py b/tests_metricflow/inference/rule/conftest.py
similarity index 100%
rename from tests/inference/rule/conftest.py
rename to tests_metricflow/inference/rule/conftest.py
diff --git a/tests/inference/rule/test_defaults.py b/tests_metricflow/inference/rule/test_defaults.py
similarity index 100%
rename from tests/inference/rule/test_defaults.py
rename to tests_metricflow/inference/rule/test_defaults.py
diff --git a/tests/inference/rule/test_rules.py b/tests_metricflow/inference/rule/test_rules.py
similarity index 100%
rename from tests/inference/rule/test_rules.py
rename to tests_metricflow/inference/rule/test_rules.py
diff --git a/tests_metricflow/inference/solver/__init__.py b/tests_metricflow/inference/solver/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/inference/solver/test_weighted_tree.py b/tests_metricflow/inference/solver/test_weighted_tree.py
similarity index 100%
rename from tests/inference/solver/test_weighted_tree.py
rename to tests_metricflow/inference/solver/test_weighted_tree.py
diff --git a/tests/inference/test_models.py b/tests_metricflow/inference/test_models.py
similarity index 100%
rename from tests/inference/test_models.py
rename to tests_metricflow/inference/test_models.py
diff --git a/tests_metricflow/integration/__init__.py b/tests_metricflow/integration/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/integration/configured_test_case.py b/tests_metricflow/integration/configured_test_case.py
similarity index 100%
rename from tests/integration/configured_test_case.py
rename to tests_metricflow/integration/configured_test_case.py
diff --git a/tests/integration/conftest.py b/tests_metricflow/integration/conftest.py
similarity index 79%
rename from tests/integration/conftest.py
rename to tests_metricflow/integration/conftest.py
index 7c71de699b..19e0d13edc 100644
--- a/tests/integration/conftest.py
+++ b/tests_metricflow/integration/conftest.py
@@ -4,14 +4,14 @@
import pytest
from dbt_semantic_interfaces.test_utils import as_datetime
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.time_helpers import ConfigurableTimeSource
from metricflow.engine.metricflow_engine import MetricFlowEngine
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
from metricflow.plan_conversion.time_spine import TimeSpineSource
from metricflow.protocols.sql_client import SqlClient
-from metricflow.test_helpers import ConfigurableTimeSource
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
@dataclass(frozen=True)
diff --git a/tests_metricflow/integration/query_output/__init__.py b/tests_metricflow/integration/query_output/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/integration/query_output/test_cumulative_metrics.py b/tests_metricflow/integration/query_output/test_cumulative_metrics.py
similarity index 96%
rename from tests/integration/query_output/test_cumulative_metrics.py
rename to tests_metricflow/integration/query_output/test_cumulative_metrics.py
index f32b6d8270..a09e051b2a 100644
--- a/tests/integration/query_output/test_cumulative_metrics.py
+++ b/tests_metricflow/integration/query_output/test_cumulative_metrics.py
@@ -5,12 +5,12 @@
import pytest
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.test_utils import as_datetime
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.engine.metricflow_engine import MetricFlowQueryRequest
from metricflow.protocols.sql_client import SqlClient
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.integration.conftest import IntegrationTestHelpers
-from tests.snapshot_utils import assert_str_snapshot_equal
+from tests_metricflow.integration.conftest import IntegrationTestHelpers
+from tests_metricflow.snapshot_utils import assert_str_snapshot_equal
@pytest.mark.sql_engine_snapshot
diff --git a/tests/integration/query_output/test_fill_nulls_with_0.py b/tests_metricflow/integration/query_output/test_fill_nulls_with_0.py
similarity index 95%
rename from tests/integration/query_output/test_fill_nulls_with_0.py
rename to tests_metricflow/integration/query_output/test_fill_nulls_with_0.py
index dd1acb1b0b..60ed835d01 100644
--- a/tests/integration/query_output/test_fill_nulls_with_0.py
+++ b/tests_metricflow/integration/query_output/test_fill_nulls_with_0.py
@@ -4,12 +4,12 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.engine.metricflow_engine import MetricFlowQueryRequest
from metricflow.protocols.sql_client import SqlClient
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.integration.conftest import IntegrationTestHelpers
-from tests.snapshot_utils import assert_str_snapshot_equal
+from tests_metricflow.integration.conftest import IntegrationTestHelpers
+from tests_metricflow.snapshot_utils import assert_str_snapshot_equal
@pytest.mark.sql_engine_snapshot
diff --git a/tests/integration/query_output/test_metric_filter_output.py b/tests_metricflow/integration/query_output/test_metric_filter_output.py
similarity index 89%
rename from tests/integration/query_output/test_metric_filter_output.py
rename to tests_metricflow/integration/query_output/test_metric_filter_output.py
index f0c383372e..2c8868604e 100644
--- a/tests/integration/query_output/test_metric_filter_output.py
+++ b/tests_metricflow/integration/query_output/test_metric_filter_output.py
@@ -2,12 +2,12 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.engine.metricflow_engine import MetricFlowQueryRequest
from metricflow.protocols.sql_client import SqlClient
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.integration.conftest import IntegrationTestHelpers
-from tests.snapshot_utils import assert_str_snapshot_equal
+from tests_metricflow.integration.conftest import IntegrationTestHelpers
+from tests_metricflow.snapshot_utils import assert_str_snapshot_equal
@pytest.mark.sql_engine_snapshot
diff --git a/tests/integration/query_output/test_offset_metrics.py b/tests_metricflow/integration/query_output/test_offset_metrics.py
similarity index 89%
rename from tests/integration/query_output/test_offset_metrics.py
rename to tests_metricflow/integration/query_output/test_offset_metrics.py
index 987f657d16..0e1c793a52 100644
--- a/tests/integration/query_output/test_offset_metrics.py
+++ b/tests_metricflow/integration/query_output/test_offset_metrics.py
@@ -2,12 +2,12 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.engine.metricflow_engine import MetricFlowQueryRequest
from metricflow.protocols.sql_client import SqlClient
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.integration.conftest import IntegrationTestHelpers
-from tests.snapshot_utils import assert_str_snapshot_equal
+from tests_metricflow.integration.conftest import IntegrationTestHelpers
+from tests_metricflow.snapshot_utils import assert_str_snapshot_equal
@pytest.mark.sql_engine_snapshot
diff --git a/tests/integration/test_cases/itest_constraints.yaml b/tests_metricflow/integration/test_cases/itest_constraints.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_constraints.yaml
rename to tests_metricflow/integration/test_cases/itest_constraints.yaml
diff --git a/tests/integration/test_cases/itest_conversion_metric.yaml b/tests_metricflow/integration/test_cases/itest_conversion_metric.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_conversion_metric.yaml
rename to tests_metricflow/integration/test_cases/itest_conversion_metric.yaml
diff --git a/tests/integration/test_cases/itest_cumulative_metric.yaml b/tests_metricflow/integration/test_cases/itest_cumulative_metric.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_cumulative_metric.yaml
rename to tests_metricflow/integration/test_cases/itest_cumulative_metric.yaml
diff --git a/tests/integration/test_cases/itest_dimensions.yaml b/tests_metricflow/integration/test_cases/itest_dimensions.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_dimensions.yaml
rename to tests_metricflow/integration/test_cases/itest_dimensions.yaml
diff --git a/tests/integration/test_cases/itest_dundered_identifiers.yaml b/tests_metricflow/integration/test_cases/itest_dundered_identifiers.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_dundered_identifiers.yaml
rename to tests_metricflow/integration/test_cases/itest_dundered_identifiers.yaml
diff --git a/tests/integration/test_cases/itest_granularity.yaml b/tests_metricflow/integration/test_cases/itest_granularity.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_granularity.yaml
rename to tests_metricflow/integration/test_cases/itest_granularity.yaml
diff --git a/tests/integration/test_cases/itest_joins.yaml b/tests_metricflow/integration/test_cases/itest_joins.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_joins.yaml
rename to tests_metricflow/integration/test_cases/itest_joins.yaml
diff --git a/tests/integration/test_cases/itest_measure_aggregations.yaml b/tests_metricflow/integration/test_cases/itest_measure_aggregations.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_measure_aggregations.yaml
rename to tests_metricflow/integration/test_cases/itest_measure_aggregations.yaml
diff --git a/tests/integration/test_cases/itest_measure_constraints.yaml b/tests_metricflow/integration/test_cases/itest_measure_constraints.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_measure_constraints.yaml
rename to tests_metricflow/integration/test_cases/itest_measure_constraints.yaml
diff --git a/tests/integration/test_cases/itest_metric_queries_no_dimensions.yaml b/tests_metricflow/integration/test_cases/itest_metric_queries_no_dimensions.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_metric_queries_no_dimensions.yaml
rename to tests_metricflow/integration/test_cases/itest_metric_queries_no_dimensions.yaml
diff --git a/tests/integration/test_cases/itest_metrics.yaml b/tests_metricflow/integration/test_cases/itest_metrics.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_metrics.yaml
rename to tests_metricflow/integration/test_cases/itest_metrics.yaml
diff --git a/tests/integration/test_cases/itest_multi_hop_join.yaml b/tests_metricflow/integration/test_cases/itest_multi_hop_join.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_multi_hop_join.yaml
rename to tests_metricflow/integration/test_cases/itest_multi_hop_join.yaml
diff --git a/tests/integration/test_cases/itest_order_limit.yaml b/tests_metricflow/integration/test_cases/itest_order_limit.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_order_limit.yaml
rename to tests_metricflow/integration/test_cases/itest_order_limit.yaml
diff --git a/tests/integration/test_cases/itest_partitions.yaml b/tests_metricflow/integration/test_cases/itest_partitions.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_partitions.yaml
rename to tests_metricflow/integration/test_cases/itest_partitions.yaml
diff --git a/tests/integration/test_cases/itest_scd.yaml b/tests_metricflow/integration/test_cases/itest_scd.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_scd.yaml
rename to tests_metricflow/integration/test_cases/itest_scd.yaml
diff --git a/tests/integration/test_cases/itest_semi_additive_measure.yaml b/tests_metricflow/integration/test_cases/itest_semi_additive_measure.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_semi_additive_measure.yaml
rename to tests_metricflow/integration/test_cases/itest_semi_additive_measure.yaml
diff --git a/tests/integration/test_cases/itest_simple.yaml b/tests_metricflow/integration/test_cases/itest_simple.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_simple.yaml
rename to tests_metricflow/integration/test_cases/itest_simple.yaml
diff --git a/tests/integration/test_cases/itest_simple_non_sm.yaml b/tests_metricflow/integration/test_cases/itest_simple_non_sm.yaml
similarity index 100%
rename from tests/integration/test_cases/itest_simple_non_sm.yaml
rename to tests_metricflow/integration/test_cases/itest_simple_non_sm.yaml
diff --git a/tests/integration/test_configured_cases.py b/tests_metricflow/integration/test_configured_cases.py
similarity index 93%
rename from tests/integration/test_configured_cases.py
rename to tests_metricflow/integration/test_configured_cases.py
index 2af09222b0..dab436efb5 100644
--- a/tests/integration/test_configured_cases.py
+++ b/tests_metricflow/integration/test_configured_cases.py
@@ -13,15 +13,16 @@
from dbt_semantic_interfaces.test_utils import as_datetime
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.protocols.query_parameter import DimensionOrEntityQueryParameter
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.specs.query_param_implementations import DimensionOrEntityParameter, TimeDimensionParameter
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.time_helpers import ConfigurableTimeSource
from metricflow.engine.metricflow_engine import MetricFlowEngine, MetricFlowQueryRequest
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import (
- DunderColumnAssociationResolver,
-)
-from metricflow.protocols.query_parameter import DimensionOrEntityQueryParameter
+from metricflow.plan_conversion.time_spine import TimeSpineSource
from metricflow.protocols.sql_client import SqlClient
-from metricflow.specs.query_param_implementations import DimensionOrEntityParameter, TimeDimensionParameter
from metricflow.sql.sql_exprs import (
SqlCastToTimestampExpression,
SqlColumnReference,
@@ -35,12 +36,8 @@
SqlStringExpression,
SqlSubtractTimeIntervalExpression,
)
-from metricflow.test_helpers import (
- ConfigurableTimeSource,
-)
-from tests.compare_df import assert_dataframes_equal
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.integration.configured_test_case import (
+from tests_metricflow.compare_df import assert_dataframes_equal
+from tests_metricflow.integration.configured_test_case import (
CONFIGURED_INTEGRATION_TESTS_REPOSITORY,
IntegrationTestModel,
RequiredDwEngineFeature,
@@ -319,7 +316,9 @@ def test_case(
render_date_trunc=check_query_helpers.render_date_trunc,
render_extract=check_query_helpers.render_extract,
render_percentile_expr=check_query_helpers.render_percentile_expr,
- mf_time_spine_source=semantic_manifest_lookup.time_spine_source.spine_table.sql,
+ mf_time_spine_source=TimeSpineSource.create_from_manifest(
+ semantic_manifest_lookup.semantic_manifest
+ ).spine_table.sql,
double_data_type_name=check_query_helpers.double_data_type_name,
render_dimension_template=check_query_helpers.render_dimension_template,
render_entity_template=check_query_helpers.render_entity_template,
@@ -352,7 +351,9 @@ def test_case(
render_date_trunc=check_query_helpers.render_date_trunc,
render_extract=check_query_helpers.render_extract,
render_percentile_expr=check_query_helpers.render_percentile_expr,
- mf_time_spine_source=semantic_manifest_lookup.time_spine_source.spine_table.sql,
+ mf_time_spine_source=TimeSpineSource.create_from_manifest(
+ semantic_manifest_lookup.semantic_manifest
+ ).spine_table.sql,
double_data_type_name=check_query_helpers.double_data_type_name,
generate_random_uuid=check_query_helpers.generate_random_uuid,
cast_to_ts=check_query_helpers.cast_to_ts,
diff --git a/tests/integration/test_mf_engine.py b/tests_metricflow/integration/test_mf_engine.py
similarity index 67%
rename from tests/integration/test_mf_engine.py
rename to tests_metricflow/integration/test_mf_engine.py
index 39364ce7d5..9aa1373701 100644
--- a/tests/integration/test_mf_engine.py
+++ b/tests_metricflow/integration/test_mf_engine.py
@@ -1,10 +1,10 @@
from __future__ import annotations
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.integration.conftest import IntegrationTestHelpers
-from tests.snapshot_utils import assert_object_snapshot_equal
+from tests_metricflow.integration.conftest import IntegrationTestHelpers
+from tests_metricflow.snapshot_utils import assert_object_snapshot_equal
def test_list_dimensions( # noqa: D103
diff --git a/tests/integration/test_rendered_query.py b/tests_metricflow/integration/test_rendered_query.py
similarity index 84%
rename from tests/integration/test_rendered_query.py
rename to tests_metricflow/integration/test_rendered_query.py
index 17a53fb6eb..ec5d1c6563 100644
--- a/tests/integration/test_rendered_query.py
+++ b/tests_metricflow/integration/test_rendered_query.py
@@ -3,15 +3,15 @@
import pytest
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.test_utils import as_datetime
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.time_helpers import ConfigurableTimeSource
from metricflow.engine.metricflow_engine import MetricFlowEngine, MetricFlowQueryRequest
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
from metricflow.protocols.sql_client import SqlClient
-from metricflow.test_helpers import ConfigurableTimeSource
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.integration.conftest import IntegrationTestHelpers
-from tests.snapshot_utils import (
+from tests_metricflow.integration.conftest import IntegrationTestHelpers
+from tests_metricflow.snapshot_utils import (
assert_sql_snapshot_equal,
)
diff --git a/tests_metricflow/mf_logging/__init__.py b/tests_metricflow/mf_logging/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/mf_logging/test_dag_to_text.py b/tests_metricflow/mf_logging/test_dag_to_text.py
similarity index 91%
rename from tests/mf_logging/test_dag_to_text.py
rename to tests_metricflow/mf_logging/test_dag_to_text.py
index d5d5c4c521..a3216bc63f 100644
--- a/tests/mf_logging/test_dag_to_text.py
+++ b/tests_metricflow/mf_logging/test_dag_to_text.py
@@ -6,13 +6,19 @@
import time
from typing import List
-from metricflow.dag.dag_to_text import MetricFlowDagTextFormatter
-from metricflow.dag.mf_dag import DagId
-from metricflow.mf_logging.formatting import indent
+from metricflow_semantics.dag.dag_to_text import MetricFlowDagTextFormatter
+from metricflow_semantics.dag.mf_dag import DagId
+from metricflow_semantics.mf_logging.formatting import indent
+
from metricflow.sql.sql_exprs import (
SqlStringExpression,
)
-from metricflow.sql.sql_plan import SqlQueryPlan, SqlSelectColumn, SqlSelectStatementNode, SqlTableFromClauseNode
+from metricflow.sql.sql_plan import (
+ SqlQueryPlan,
+ SqlSelectColumn,
+ SqlSelectStatementNode,
+ SqlTableFromClauseNode,
+)
from metricflow.sql.sql_table import SqlTable
logger = logging.getLogger(__name__)
diff --git a/tests_metricflow/plan_conversion/__init__.py b/tests_metricflow/plan_conversion/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests_metricflow/plan_conversion/dataflow_to_sql/__init__.py b/tests_metricflow/plan_conversion/dataflow_to_sql/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/plan_conversion/dataflow_to_sql/test_conversion_metrics_to_sql.py b/tests_metricflow/plan_conversion/dataflow_to_sql/test_conversion_metrics_to_sql.py
similarity index 96%
rename from tests/plan_conversion/dataflow_to_sql/test_conversion_metrics_to_sql.py
rename to tests_metricflow/plan_conversion/dataflow_to_sql/test_conversion_metrics_to_sql.py
index c7f71fd906..fc3138738a 100644
--- a/tests/plan_conversion/dataflow_to_sql/test_conversion_metrics_to_sql.py
+++ b/tests_metricflow/plan_conversion/dataflow_to_sql/test_conversion_metrics_to_sql.py
@@ -4,18 +4,18 @@
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.references import EntityReference
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-
-from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
-from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
-from metricflow.protocols.sql_client import SqlClient
-from metricflow.specs.specs import (
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
MetricFlowQuerySpec,
MetricSpec,
TimeDimensionSpec,
)
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.plan_conversion.test_dataflow_to_sql_plan import convert_and_check
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+
+from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
+from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
+from metricflow.protocols.sql_client import SqlClient
+from tests_metricflow.plan_conversion.test_dataflow_to_sql_plan import convert_and_check
@pytest.mark.sql_engine_snapshot
diff --git a/tests/plan_conversion/dataflow_to_sql/test_distinct_values_to_sql.py b/tests_metricflow/plan_conversion/dataflow_to_sql/test_distinct_values_to_sql.py
similarity index 86%
rename from tests/plan_conversion/dataflow_to_sql/test_distinct_values_to_sql.py
rename to tests_metricflow/plan_conversion/dataflow_to_sql/test_distinct_values_to_sql.py
index 10824a4255..a7771e4c97 100644
--- a/tests/plan_conversion/dataflow_to_sql/test_distinct_values_to_sql.py
+++ b/tests_metricflow/plan_conversion/dataflow_to_sql/test_distinct_values_to_sql.py
@@ -4,15 +4,15 @@
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.implementations.filters.where_filter import PydanticWhereFilter
from dbt_semantic_interfaces.references import EntityReference
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import DimensionSpec, MetricFlowQuerySpec
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.specs import DimensionSpec, MetricFlowQuerySpec
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.plan_conversion.test_dataflow_to_sql_plan import convert_and_check
+from tests_metricflow.plan_conversion.test_dataflow_to_sql_plan import convert_and_check
@pytest.mark.sql_engine_snapshot
diff --git a/tests/plan_conversion/dataflow_to_sql/test_metric_time_dimension_to_sql.py b/tests_metricflow/plan_conversion/dataflow_to_sql/test_metric_time_dimension_to_sql.py
similarity index 89%
rename from tests/plan_conversion/dataflow_to_sql/test_metric_time_dimension_to_sql.py
rename to tests_metricflow/plan_conversion/dataflow_to_sql/test_metric_time_dimension_to_sql.py
index 3b9abcb090..ae53da1509 100644
--- a/tests/plan_conversion/dataflow_to_sql/test_metric_time_dimension_to_sql.py
+++ b/tests_metricflow/plan_conversion/dataflow_to_sql/test_metric_time_dimension_to_sql.py
@@ -5,16 +5,16 @@
import pytest
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.references import TimeDimensionReference
+from metricflow_semantics.specs.spec_classes import MetricFlowQuerySpec, MetricSpec
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD_SPEC_DAY
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
from metricflow.dataflow.nodes.metric_time_transform import MetricTimeDimensionTransformNode
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
-from metricflow.specs.specs import MetricFlowQuerySpec, MetricSpec
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.plan_conversion.test_dataflow_to_sql_plan import convert_and_check
-from tests.time.metric_time_dimension import MTD_SPEC_DAY
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+from tests_metricflow.plan_conversion.test_dataflow_to_sql_plan import convert_and_check
@pytest.mark.sql_engine_snapshot
diff --git a/tests_metricflow/plan_conversion/instance_converters/__init__.py b/tests_metricflow/plan_conversion/instance_converters/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/plan_conversion/instance_converters/test_create_select_columns_with_measures_aggregated.py b/tests_metricflow/plan_conversion/instance_converters/test_create_select_columns_with_measures_aggregated.py
similarity index 95%
rename from tests/plan_conversion/instance_converters/test_create_select_columns_with_measures_aggregated.py
rename to tests_metricflow/plan_conversion/instance_converters/test_create_select_columns_with_measures_aggregated.py
index 5bcc426c10..fbd9f7eb10 100644
--- a/tests/plan_conversion/instance_converters/test_create_select_columns_with_measures_aggregated.py
+++ b/tests_metricflow/plan_conversion/instance_converters/test_create_select_columns_with_measures_aggregated.py
@@ -2,21 +2,22 @@
from typing import Mapping
-from metricflow.instances import InstanceSet
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.instances import InstanceSet
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import InstanceSpecSet, MeasureSpec, MetricInputMeasureSpec
+
from metricflow.plan_conversion.instance_converters import (
CreateSelectColumnsWithMeasuresAggregated,
FilterElements,
)
from metricflow.plan_conversion.select_column_gen import SelectColumnSet
-from metricflow.specs.specs import InstanceSpecSet, MeasureSpec, MetricInputMeasureSpec
from metricflow.sql.sql_exprs import (
SqlAggregateFunctionExpression,
SqlFunction,
SqlPercentileExpression,
)
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
__SOURCE_TABLE_ALIAS = "a"
diff --git a/tests/plan_conversion/instance_converters/test_create_validity_window_join_description.py b/tests_metricflow/plan_conversion/instance_converters/test_create_validity_window_join_description.py
similarity index 92%
rename from tests/plan_conversion/instance_converters/test_create_validity_window_join_description.py
rename to tests_metricflow/plan_conversion/instance_converters/test_create_validity_window_join_description.py
index 7aa9fe0c48..3e3738f77a 100644
--- a/tests/plan_conversion/instance_converters/test_create_validity_window_join_description.py
+++ b/tests_metricflow/plan_conversion/instance_converters/test_create_validity_window_join_description.py
@@ -4,13 +4,13 @@
import pytest
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.instances import InstanceSet
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.spec_classes import TimeDimensionSpec
from metricflow.dataflow.nodes.join_to_base import ValidityWindowJoinDescription
-from metricflow.instances import InstanceSet
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
from metricflow.plan_conversion.instance_converters import CreateValidityWindowJoinDescription
-from metricflow.specs.specs import TimeDimensionSpec
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
def test_no_validity_dims(
diff --git a/tests/plan_conversion/test_dataflow_to_execution.py b/tests_metricflow/plan_conversion/test_dataflow_to_execution.py
similarity index 92%
rename from tests/plan_conversion/test_dataflow_to_execution.py
rename to tests_metricflow/plan_conversion/test_dataflow_to_execution.py
index c2ed0d9fed..925c7b22e7 100644
--- a/tests/plan_conversion/test_dataflow_to_execution.py
+++ b/tests_metricflow/plan_conversion/test_dataflow_to_execution.py
@@ -2,23 +2,23 @@
import pytest
from _pytest.fixtures import FixtureRequest
-
-from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
-from metricflow.plan_conversion.column_resolver import DunderColumnAssociationResolver
-from metricflow.plan_conversion.dataflow_to_execution import DataflowToExecutionPlanConverter
-from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
-from metricflow.protocols.sql_client import SqlClient
-from metricflow.specs.specs import (
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.specs.dunder_column_association_resolver import DunderColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
EntityReference,
MetricFlowQuerySpec,
MetricSpec,
TimeDimensionSpec,
)
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+
+from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
+from metricflow.execution.dataflow_to_execution import DataflowToExecutionPlanConverter
+from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
+from metricflow.protocols.sql_client import SqlClient
from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import assert_execution_plan_text_equal
+from tests_metricflow.snapshot_utils import assert_execution_plan_text_equal
def make_execution_plan_converter( # noqa: D103
diff --git a/tests/plan_conversion/test_dataflow_to_sql_plan.py b/tests_metricflow/plan_conversion/test_dataflow_to_sql_plan.py
similarity index 97%
rename from tests/plan_conversion/test_dataflow_to_sql_plan.py
rename to tests_metricflow/plan_conversion/test_dataflow_to_sql_plan.py
index 7cfe2223dd..a007d72765 100644
--- a/tests/plan_conversion/test_dataflow_to_sql_plan.py
+++ b/tests_metricflow/plan_conversion/test_dataflow_to_sql_plan.py
@@ -9,8 +9,30 @@
from dbt_semantic_interfaces.test_utils import as_datetime
from dbt_semantic_interfaces.type_enums.aggregation_type import AggregationType
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.dag.mf_dag import DagId
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
+ DimensionSpec,
+ InstanceSpecSet,
+ LinkableSpecSet,
+ LinklessEntitySpec,
+ MeasureSpec,
+ MetricFlowQuerySpec,
+ MetricInputMeasureSpec,
+ MetricSpec,
+ NonAdditiveDimensionSpec,
+ OrderBySpec,
+ TimeDimensionSpec,
+ WhereFilterSpec,
+)
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD_SPEC_DAY
+from metricflow_semantics.test_helpers.snapshot_helpers import assert_plan_snapshot_text_equal
-from metricflow.dag.mf_dag import DagId
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
from metricflow.dataflow.dataflow_plan import (
BaseOutput,
@@ -28,34 +50,12 @@
from metricflow.dataflow.nodes.semi_additive_join import SemiAdditiveJoinNode
from metricflow.dataflow.nodes.where_filter import WhereConstraintNode
from metricflow.dataflow.nodes.write_to_dataframe import WriteToResultDataframeNode
-from metricflow.filters.time_constraint import TimeRangeConstraint
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.specs import (
- DimensionSpec,
- InstanceSpecSet,
- LinkableSpecSet,
- LinklessEntitySpec,
- MeasureSpec,
- MetricFlowQuerySpec,
- MetricInputMeasureSpec,
- MetricSpec,
- NonAdditiveDimensionSpec,
- OrderBySpec,
- TimeDimensionSpec,
- WhereFilterSpec,
-)
from metricflow.sql.optimizer.optimization_levels import SqlQueryOptimizationLevel
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
-from metricflow.sql.sql_plan import SqlJoinType
-from tests.dataflow_plan_to_svg import display_graph_if_requested
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import assert_plan_snapshot_text_equal
-from tests.sql.compare_sql_plan import assert_rendered_sql_from_plan_equal, assert_sql_plan_text_equal
-from tests.time.metric_time_dimension import MTD_SPEC_DAY
+from tests_metricflow.dataflow_plan_to_svg import display_graph_if_requested
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+from tests_metricflow.sql.compare_sql_plan import assert_rendered_sql_from_plan_equal, assert_sql_plan_text_equal
def convert_and_check(
diff --git a/tests/plan_conversion/test_time_spine.py b/tests_metricflow/plan_conversion/test_time_spine.py
similarity index 69%
rename from tests/plan_conversion/test_time_spine.py
rename to tests_metricflow/plan_conversion/test_time_spine.py
index 8feef5120c..443922519e 100644
--- a/tests/plan_conversion/test_time_spine.py
+++ b/tests_metricflow/plan_conversion/test_time_spine.py
@@ -1,11 +1,12 @@
from __future__ import annotations
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow_semantics.time.time_constants import ISO8601_PYTHON_TS_FORMAT
from pandas import DataFrame
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
+from metricflow.plan_conversion.time_spine import TimeSpineSource
from metricflow.protocols.sql_client import SqlClient
-from metricflow.time.time_constants import ISO8601_PYTHON_TS_FORMAT
def test_date_spine_date_range( # noqa: D103
@@ -13,7 +14,7 @@ def test_date_spine_date_range( # noqa: D103
simple_semantic_manifest_lookup: SemanticManifestLookup,
create_source_tables: None,
) -> None:
- time_spine_source = simple_semantic_manifest_lookup.time_spine_source
+ time_spine_source = TimeSpineSource.create_from_manifest(simple_semantic_manifest_lookup.semantic_manifest)
range_df: DataFrame = sql_client.query(
f"""\
SELECT
diff --git a/tests/populate_persistent_source_schemas.py b/tests_metricflow/populate_persistent_source_schemas.py
similarity index 96%
rename from tests/populate_persistent_source_schemas.py
rename to tests_metricflow/populate_persistent_source_schemas.py
index c4628d71db..878e4ebb9f 100644
--- a/tests/populate_persistent_source_schemas.py
+++ b/tests_metricflow/populate_persistent_source_schemas.py
@@ -8,7 +8,7 @@
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
from metricflow.protocols.sql_client import SqlEngine
-from tests.generate_snapshots import (
+from tests_metricflow.generate_snapshots import (
MetricFlowTestConfiguration,
run_cli,
run_command,
diff --git a/tests_metricflow/prototype_utils.py b/tests_metricflow/prototype_utils.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests_metricflow/query_rendering/__init__.py b/tests_metricflow/query_rendering/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/query_rendering/compare_rendered_query.py b/tests_metricflow/query_rendering/compare_rendered_query.py
similarity index 88%
rename from tests/query_rendering/compare_rendered_query.py
rename to tests_metricflow/query_rendering/compare_rendered_query.py
index c37a1f1647..3647ab12fc 100644
--- a/tests/query_rendering/compare_rendered_query.py
+++ b/tests_metricflow/query_rendering/compare_rendered_query.py
@@ -3,15 +3,15 @@
from __future__ import annotations
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.dag.mf_dag import DagId
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
-from metricflow.dag.mf_dag import DagId
from metricflow.dataflow.dataflow_plan import BaseOutput
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
from metricflow.sql.optimizer.optimization_levels import SqlQueryOptimizationLevel
-from tests.dataflow_plan_to_svg import display_graph_if_requested
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.sql.compare_sql_plan import assert_rendered_sql_from_plan_equal
+from tests_metricflow.dataflow_plan_to_svg import display_graph_if_requested
+from tests_metricflow.sql.compare_sql_plan import assert_rendered_sql_from_plan_equal
def convert_and_check(
diff --git a/tests/query_rendering/test_cumulative_metric_rendering.py b/tests_metricflow/query_rendering/test_cumulative_metric_rendering.py
similarity index 94%
rename from tests/query_rendering/test_cumulative_metric_rendering.py
rename to tests_metricflow/query_rendering/test_cumulative_metric_rendering.py
index 0872c312cc..a96e1f532c 100644
--- a/tests/query_rendering/test_cumulative_metric_rendering.py
+++ b/tests_metricflow/query_rendering/test_cumulative_metric_rendering.py
@@ -10,18 +10,18 @@
from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
from dbt_semantic_interfaces.test_utils import as_datetime
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import EntityReference, MetricFlowQuerySpec, MetricSpec, TimeDimensionSpec
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD_SPEC_MONTH
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
-from metricflow.filters.time_constraint import TimeRangeConstraint
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.specs import EntityReference, MetricFlowQuerySpec, MetricSpec, TimeDimensionSpec
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query_rendering.compare_rendered_query import convert_and_check
-from tests.time.metric_time_dimension import MTD_SPEC_MONTH
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+from tests_metricflow.query_rendering.compare_rendered_query import convert_and_check
@pytest.mark.sql_engine_snapshot
diff --git a/tests/query_rendering/test_derived_metric_rendering.py b/tests_metricflow/query_rendering/test_derived_metric_rendering.py
similarity index 97%
rename from tests/query_rendering/test_derived_metric_rendering.py
rename to tests_metricflow/query_rendering/test_derived_metric_rendering.py
index efc852ad3f..509ee6c253 100644
--- a/tests/query_rendering/test_derived_metric_rendering.py
+++ b/tests_metricflow/query_rendering/test_derived_metric_rendering.py
@@ -8,21 +8,16 @@
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.implementations.filters.where_filter import PydanticWhereFilter
from dbt_semantic_interfaces.naming.keywords import METRIC_TIME_ELEMENT_NAME
-
-from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.naming.dunder_scheme import DunderNamingScheme
-from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
-from metricflow.protocols.sql_client import SqlClient
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.specs import (
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.naming.dunder_scheme import DunderNamingScheme
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
MetricFlowQuerySpec,
MetricSpec,
)
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query_rendering.compare_rendered_query import convert_and_check
-from tests.time.metric_time_dimension import (
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.metric_time_dimension import (
MTD_SPEC_DAY,
MTD_SPEC_MONTH,
MTD_SPEC_QUARTER,
@@ -30,6 +25,11 @@
MTD_SPEC_YEAR,
)
+from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
+from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
+from metricflow.protocols.sql_client import SqlClient
+from tests_metricflow.query_rendering.compare_rendered_query import convert_and_check
+
@pytest.mark.sql_engine_snapshot
def test_derived_metric( # noqa: D103
diff --git a/tests/query_rendering/test_fill_nulls_with_rendering.py b/tests_metricflow/query_rendering/test_fill_nulls_with_rendering.py
similarity index 95%
rename from tests/query_rendering/test_fill_nulls_with_rendering.py
rename to tests_metricflow/query_rendering/test_fill_nulls_with_rendering.py
index f4b4a97853..ae903803c6 100644
--- a/tests/query_rendering/test_fill_nulls_with_rendering.py
+++ b/tests_metricflow/query_rendering/test_fill_nulls_with_rendering.py
@@ -11,20 +11,20 @@
)
from dbt_semantic_interfaces.references import EntityReference
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-
-from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
-from metricflow.dataset.dataset import DataSet
-from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
-from metricflow.protocols.sql_client import SqlClient
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.specs.specs import (
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
MetricFlowQuerySpec,
MetricSpec,
TimeDimensionSpec,
)
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query_rendering.compare_rendered_query import convert_and_check
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+
+from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
+from metricflow.dataset.dataset_classes import DataSet
+from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
+from metricflow.protocols.sql_client import SqlClient
+from tests_metricflow.query_rendering.compare_rendered_query import convert_and_check
@pytest.mark.sql_engine_snapshot
diff --git a/tests/query_rendering/test_granularity_date_part_rendering.py b/tests_metricflow/query_rendering/test_granularity_date_part_rendering.py
similarity index 93%
rename from tests/query_rendering/test_granularity_date_part_rendering.py
rename to tests_metricflow/query_rendering/test_granularity_date_part_rendering.py
index 5aedeb9498..b4bfd33a7c 100644
--- a/tests/query_rendering/test_granularity_date_part_rendering.py
+++ b/tests_metricflow/query_rendering/test_granularity_date_part_rendering.py
@@ -10,17 +10,17 @@
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.specs.spec_classes import (
+ MetricFlowQuerySpec,
+ MetricSpec,
+)
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
-from metricflow.dataset.dataset import DataSet
+from metricflow.dataset.dataset_classes import DataSet
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
-from metricflow.specs.specs import (
- MetricFlowQuerySpec,
- MetricSpec,
-)
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query_rendering.compare_rendered_query import convert_and_check
+from tests_metricflow.query_rendering.compare_rendered_query import convert_and_check
@pytest.mark.sql_engine_snapshot
diff --git a/tests/query_rendering/test_metric_filter_rendering.py b/tests_metricflow/query_rendering/test_metric_filter_rendering.py
similarity index 97%
rename from tests/query_rendering/test_metric_filter_rendering.py
rename to tests_metricflow/query_rendering/test_metric_filter_rendering.py
index 9d1a14581e..ee1869a727 100644
--- a/tests/query_rendering/test_metric_filter_rendering.py
+++ b/tests_metricflow/query_rendering/test_metric_filter_rendering.py
@@ -3,13 +3,13 @@
import pytest
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.implementations.filters.where_filter import PydanticWhereFilter
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
-from metricflow.query.query_parser import MetricFlowQueryParser
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query_rendering.compare_rendered_query import convert_and_check
+from tests_metricflow.query_rendering.compare_rendered_query import convert_and_check
@pytest.mark.sql_engine_snapshot
diff --git a/tests/query_rendering/test_metric_time_without_metrics.py b/tests_metricflow/query_rendering/test_metric_time_without_metrics.py
similarity index 90%
rename from tests/query_rendering/test_metric_time_without_metrics.py
rename to tests_metricflow/query_rendering/test_metric_time_without_metrics.py
index 37803471eb..55f32370e5 100644
--- a/tests/query_rendering/test_metric_time_without_metrics.py
+++ b/tests_metricflow/query_rendering/test_metric_time_without_metrics.py
@@ -6,15 +6,15 @@
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.references import EntityReference
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.specs.spec_classes import DimensionSpec, MetricFlowQuerySpec, TimeDimensionSpec
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD_SPEC_DAY
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
-from metricflow.filters.time_constraint import TimeRangeConstraint
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
-from metricflow.specs.specs import DimensionSpec, MetricFlowQuerySpec, TimeDimensionSpec
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.plan_conversion.test_dataflow_to_sql_plan import convert_and_check
-from tests.time.metric_time_dimension import MTD_SPEC_DAY
+from tests_metricflow.plan_conversion.test_dataflow_to_sql_plan import convert_and_check
@pytest.mark.sql_engine_snapshot
diff --git a/tests/query_rendering/test_query_rendering.py b/tests_metricflow/query_rendering/test_query_rendering.py
similarity index 97%
rename from tests/query_rendering/test_query_rendering.py
rename to tests_metricflow/query_rendering/test_query_rendering.py
index a1360ff4ee..fe32116bfb 100644
--- a/tests/query_rendering/test_query_rendering.py
+++ b/tests_metricflow/query_rendering/test_query_rendering.py
@@ -15,23 +15,23 @@
from dbt_semantic_interfaces.references import EntityReference
from dbt_semantic_interfaces.test_utils import as_datetime
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
-
-from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
-from metricflow.dataset.dataset import DataSet
-from metricflow.filters.time_constraint import TimeRangeConstraint
-from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
-from metricflow.protocols.sql_client import SqlClient
-from metricflow.query.query_parser import MetricFlowQueryParser
-from metricflow.specs.column_assoc import ColumnAssociationResolver
-from metricflow.specs.specs import (
+from metricflow_semantics.filters.time_constraint import TimeRangeConstraint
+from metricflow_semantics.query.query_parser import MetricFlowQueryParser
+from metricflow_semantics.specs.column_assoc import ColumnAssociationResolver
+from metricflow_semantics.specs.spec_classes import (
DimensionSpec,
MetricFlowQuerySpec,
MetricSpec,
TimeDimensionSpec,
)
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query_rendering.compare_rendered_query import convert_and_check
-from tests.time.metric_time_dimension import MTD_SPEC_DAY, MTD_SPEC_WEEK
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.metric_time_dimension import MTD_SPEC_DAY, MTD_SPEC_WEEK
+
+from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
+from metricflow.dataset.dataset_classes import DataSet
+from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
+from metricflow.protocols.sql_client import SqlClient
+from tests_metricflow.query_rendering.compare_rendered_query import convert_and_check
@pytest.mark.sql_engine_snapshot
diff --git a/tests/query_rendering/test_time_spine_join_rendering.py b/tests_metricflow/query_rendering/test_time_spine_join_rendering.py
similarity index 86%
rename from tests/query_rendering/test_time_spine_join_rendering.py
rename to tests_metricflow/query_rendering/test_time_spine_join_rendering.py
index 8da48fcf82..58a07c9f2e 100644
--- a/tests/query_rendering/test_time_spine_join_rendering.py
+++ b/tests_metricflow/query_rendering/test_time_spine_join_rendering.py
@@ -11,17 +11,17 @@
import pytest
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.specs.spec_classes import (
+ MetricFlowQuerySpec,
+ MetricSpec,
+)
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.dataflow.builder.dataflow_plan_builder import DataflowPlanBuilder
-from metricflow.dataset.dataset import DataSet
+from metricflow.dataset.dataset_classes import DataSet
from metricflow.plan_conversion.dataflow_to_sql import DataflowToSqlQueryPlanConverter
from metricflow.protocols.sql_client import SqlClient
-from metricflow.specs.specs import (
- MetricFlowQuerySpec,
- MetricSpec,
-)
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.query_rendering.compare_rendered_query import convert_and_check
+from tests_metricflow.query_rendering.compare_rendered_query import convert_and_check
@pytest.mark.sql_engine_snapshot
diff --git a/tests_metricflow/semantics/__init__.py b/tests_metricflow/semantics/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests_metricflow/snapshot_utils.py b/tests_metricflow/snapshot_utils.py
new file mode 100644
index 0000000000..111a5d4e16
--- /dev/null
+++ b/tests_metricflow/snapshot_utils.py
@@ -0,0 +1,130 @@
+from __future__ import annotations
+
+import logging
+from typing import Any, Optional
+
+from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.mf_logging.pretty_print import mf_pformat
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import (
+ assert_plan_snapshot_text_equal,
+ assert_snapshot_text_equal,
+ make_schema_replacement_function,
+ replace_dataset_id_hash,
+)
+
+from metricflow.dataflow.dataflow_plan import DataflowPlan
+from metricflow.execution.execution_plan import ExecutionPlan
+from metricflow.protocols.sql_client import SqlClient, SqlEngine
+from tests_metricflow.fixtures.setup_fixtures import check_sql_engine_snapshot_marker
+
+logger = logging.getLogger(__name__)
+
+
+# Needed as the table alias can vary from run to run.
+_EXCLUDE_TABLE_ALIAS_REGEX = "^.*_src.*$"
+
+
+def assert_execution_plan_text_equal( # noqa: D103
+ request: FixtureRequest,
+ mf_test_configuration: MetricFlowTestConfiguration,
+ sql_client: SqlClient,
+ execution_plan: ExecutionPlan,
+) -> None:
+ assert_plan_snapshot_text_equal(
+ request=request,
+ mf_test_configuration=mf_test_configuration,
+ plan=execution_plan,
+ plan_snapshot_text=execution_plan.structure_text(),
+ incomparable_strings_replacement_function=make_schema_replacement_function(
+ system_schema=mf_test_configuration.mf_system_schema,
+ source_schema=mf_test_configuration.mf_source_schema,
+ ),
+ additional_sub_directories_for_snapshots=(sql_client.sql_engine_type.value,),
+ )
+
+
+def assert_dataflow_plan_text_equal( # noqa: D103
+ request: FixtureRequest,
+ mf_test_configuration: MetricFlowTestConfiguration,
+ dataflow_plan: DataflowPlan,
+ sql_client: SqlClient,
+) -> None:
+ assert_plan_snapshot_text_equal(
+ request=request,
+ mf_test_configuration=mf_test_configuration,
+ plan=dataflow_plan,
+ plan_snapshot_text=dataflow_plan.structure_text(),
+ incomparable_strings_replacement_function=replace_dataset_id_hash,
+ additional_sub_directories_for_snapshots=(sql_client.sql_engine_type.value,),
+ )
+
+
+def assert_object_snapshot_equal( # type: ignore[misc]
+ request: FixtureRequest,
+ mf_test_configuration: MetricFlowTestConfiguration,
+ obj_id: str,
+ obj: Any,
+ sql_client: Optional[SqlClient] = None,
+) -> None:
+ """For tests to compare large objects, this can be used to snapshot a text representation of the object."""
+ if sql_client is not None:
+ check_sql_engine_snapshot_marker(request)
+
+ assert_snapshot_text_equal(
+ request=request,
+ mf_test_configuration=mf_test_configuration,
+ group_id=obj.__class__.__name__,
+ snapshot_id=obj_id,
+ snapshot_text=mf_pformat(obj),
+ snapshot_file_extension=".txt",
+ additional_sub_directories_for_snapshots=(sql_client.sql_engine_type.value,) if sql_client else (),
+ )
+
+
+def assert_sql_snapshot_equal(
+ request: FixtureRequest,
+ mf_test_configuration: MetricFlowTestConfiguration,
+ snapshot_id: str,
+ sql: str,
+ sql_engine: Optional[SqlEngine] = None,
+) -> None:
+ """For tests that generate SQL, use this to write / check snapshots."""
+ if sql_engine is not None:
+ check_sql_engine_snapshot_marker(request)
+
+ assert_snapshot_text_equal(
+ request=request,
+ mf_test_configuration=mf_test_configuration,
+ group_id=sql.__class__.__name__,
+ snapshot_id=snapshot_id,
+ snapshot_text=sql,
+ snapshot_file_extension=".sql",
+ incomparable_strings_replacement_function=make_schema_replacement_function(
+ system_schema=mf_test_configuration.mf_system_schema, source_schema=mf_test_configuration.mf_source_schema
+ ),
+ exclude_line_regex=_EXCLUDE_TABLE_ALIAS_REGEX,
+ additional_sub_directories_for_snapshots=(sql_engine.value,) if sql_engine is not None else (),
+ )
+
+
+def assert_str_snapshot_equal( # type: ignore[misc]
+ request: FixtureRequest,
+ mf_test_configuration: MetricFlowTestConfiguration,
+ snapshot_id: str,
+ snapshot_str: str,
+ sql_engine: Optional[SqlEngine] = None,
+) -> None:
+ """Write / compare a string snapshot."""
+ if sql_engine is not None:
+ check_sql_engine_snapshot_marker(request)
+
+ assert_snapshot_text_equal(
+ request=request,
+ mf_test_configuration=mf_test_configuration,
+ group_id=snapshot_str.__class__.__name__,
+ snapshot_id=snapshot_id,
+ snapshot_text=snapshot_str,
+ snapshot_file_extension=".txt",
+ additional_sub_directories_for_snapshots=(sql_engine.value,) if sql_engine is not None else (),
+ )
diff --git a/tests/snapshots/test_cli.py/str/BigQuery/test_saved_query__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/BigQuery/test_saved_query__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/BigQuery/test_saved_query__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/BigQuery/test_saved_query__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_cumulative_metric__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_cumulative_metric__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_cumulative_metric__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_cumulative_metric__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_limit__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_limit__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_limit__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_limit__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_where__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_where__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_where__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/BigQuery/test_saved_query_with_where__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Databricks/test_saved_query__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Databricks/test_saved_query__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Databricks/test_saved_query__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Databricks/test_saved_query__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Databricks/test_saved_query_with_cumulative_metric__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Databricks/test_saved_query_with_cumulative_metric__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Databricks/test_saved_query_with_cumulative_metric__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Databricks/test_saved_query_with_cumulative_metric__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Databricks/test_saved_query_with_limit__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Databricks/test_saved_query_with_limit__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Databricks/test_saved_query_with_limit__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Databricks/test_saved_query_with_limit__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Databricks/test_saved_query_with_where__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Databricks/test_saved_query_with_where__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Databricks/test_saved_query_with_where__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Databricks/test_saved_query_with_where__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/DuckDB/test_saved_query__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/DuckDB/test_saved_query__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/DuckDB/test_saved_query__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/DuckDB/test_saved_query__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_cumulative_metric__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_cumulative_metric__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_cumulative_metric__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_cumulative_metric__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_limit__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_limit__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_limit__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_limit__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_where__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_where__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_where__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/DuckDB/test_saved_query_with_where__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Postgres/test_saved_query__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Postgres/test_saved_query__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Postgres/test_saved_query__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Postgres/test_saved_query__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Postgres/test_saved_query_with_cumulative_metric__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Postgres/test_saved_query_with_cumulative_metric__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Postgres/test_saved_query_with_cumulative_metric__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Postgres/test_saved_query_with_cumulative_metric__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Postgres/test_saved_query_with_limit__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Postgres/test_saved_query_with_limit__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Postgres/test_saved_query_with_limit__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Postgres/test_saved_query_with_limit__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Postgres/test_saved_query_with_where__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Postgres/test_saved_query_with_where__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Postgres/test_saved_query_with_where__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Postgres/test_saved_query_with_where__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Redshift/test_saved_query__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Redshift/test_saved_query__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Redshift/test_saved_query__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Redshift/test_saved_query__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Redshift/test_saved_query_with_cumulative_metric__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Redshift/test_saved_query_with_cumulative_metric__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Redshift/test_saved_query_with_cumulative_metric__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Redshift/test_saved_query_with_cumulative_metric__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Redshift/test_saved_query_with_limit__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Redshift/test_saved_query_with_limit__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Redshift/test_saved_query_with_limit__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Redshift/test_saved_query_with_limit__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Redshift/test_saved_query_with_where__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Redshift/test_saved_query_with_where__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Redshift/test_saved_query_with_where__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Redshift/test_saved_query_with_where__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Snowflake/test_saved_query__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Snowflake/test_saved_query__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Snowflake/test_saved_query__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Snowflake/test_saved_query__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_cumulative_metric__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_cumulative_metric__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_cumulative_metric__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_cumulative_metric__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_limit__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_limit__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_limit__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_limit__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_where__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_where__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_where__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Snowflake/test_saved_query_with_where__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Trino/test_saved_query__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Trino/test_saved_query__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Trino/test_saved_query__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Trino/test_saved_query__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Trino/test_saved_query_with_cumulative_metric__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Trino/test_saved_query_with_cumulative_metric__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Trino/test_saved_query_with_cumulative_metric__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Trino/test_saved_query_with_cumulative_metric__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Trino/test_saved_query_with_limit__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Trino/test_saved_query_with_limit__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Trino/test_saved_query_with_limit__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Trino/test_saved_query_with_limit__cli_output.txt
diff --git a/tests/snapshots/test_cli.py/str/Trino/test_saved_query_with_where__cli_output.txt b/tests_metricflow/snapshots/test_cli.py/str/Trino/test_saved_query_with_where__cli_output.txt
similarity index 100%
rename from tests/snapshots/test_cli.py/str/Trino/test_saved_query_with_where__cli_output.txt
rename to tests_metricflow/snapshots/test_cli.py/str/Trino/test_saved_query_with_where__cli_output.txt
diff --git a/tests/snapshots/test_cm_branch_combiner.py/DataflowPlan/test_filter_combination__dfpo_0.xml b/tests_metricflow/snapshots/test_cm_branch_combiner.py/DataflowPlan/test_filter_combination__dfpo_0.xml
similarity index 100%
rename from tests/snapshots/test_cm_branch_combiner.py/DataflowPlan/test_filter_combination__dfpo_0.xml
rename to tests_metricflow/snapshots/test_cm_branch_combiner.py/DataflowPlan/test_filter_combination__dfpo_0.xml
diff --git a/tests/snapshots/test_cm_branch_combiner.py/DataflowPlan/test_read_sql_source_combination__dfpo_0.xml b/tests_metricflow/snapshots/test_cm_branch_combiner.py/DataflowPlan/test_read_sql_source_combination__dfpo_0.xml
similarity index 100%
rename from tests/snapshots/test_cm_branch_combiner.py/DataflowPlan/test_read_sql_source_combination__dfpo_0.xml
rename to tests_metricflow/snapshots/test_cm_branch_combiner.py/DataflowPlan/test_read_sql_source_combination__dfpo_0.xml
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_if_in_where__after_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_if_in_where__after_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_if_in_where__after_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_if_in_where__after_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_if_in_where__before_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_if_in_where__before_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_if_in_where__before_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_if_in_where__before_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_with_str_expr__after_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_with_str_expr__after_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_with_str_expr__after_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_with_str_expr__after_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_with_str_expr__before_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_with_str_expr__before_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_with_str_expr__before_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_dont_prune_with_str_expr__before_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_no_pruning__after_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_no_pruning__after_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_no_pruning__after_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_no_pruning__after_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_no_pruning__before_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_no_pruning__before_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_no_pruning__before_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_no_pruning__before_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_distinct_select__after_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_distinct_select__after_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_distinct_select__after_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_distinct_select__after_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_distinct_select__before_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_distinct_select__before_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_distinct_select__before_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_distinct_select__before_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_from_source__after_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_from_source__after_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_from_source__after_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_from_source__after_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_from_source__before_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_from_source__before_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_from_source__before_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_from_source__before_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents__after_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents__after_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents__after_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents__after_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents__before_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents__before_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents__before_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents__before_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents_in_join_query__after_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents_in_join_query__after_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents_in_join_query__after_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents_in_join_query__after_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents_in_join_query__before_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents_in_join_query__before_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents_in_join_query__before_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_grandparents_in_join_query__before_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_joined_source__after_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_joined_source__after_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_joined_source__after_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_joined_source__after_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_joined_source__before_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_joined_source__before_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_joined_source__before_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_joined_source__before_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_str_expr__after_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_str_expr__after_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_str_expr__after_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_str_expr__after_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_str_expr__before_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_str_expr__before_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_str_expr__before_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_str_expr__before_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_with_str_expr__after_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_with_str_expr__after_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_with_str_expr__after_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_with_str_expr__after_pruning.sql
diff --git a/tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_with_str_expr__before_pruning.sql b/tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_with_str_expr__before_pruning.sql
similarity index 100%
rename from tests/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_with_str_expr__before_pruning.sql
rename to tests_metricflow/snapshots/test_column_pruner.py/SqlQueryPlan/test_prune_with_str_expr__before_pruning.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_count_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_count_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_count_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_count_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_count_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_count_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_count_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_count_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_constant_properties__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_constant_properties__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_constant_properties__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_constant_properties__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_constant_properties__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_constant_properties__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_constant_properties__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_constant_properties__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_window__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_window__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_window__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/BigQuery/test_conversion_rate_with_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_count_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_count_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_count_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_count_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_count_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_count_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_count_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_count_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_constant_properties__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_constant_properties__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_constant_properties__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_constant_properties__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_constant_properties__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_constant_properties__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_constant_properties__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_constant_properties__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_window__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_window__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_window__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Databricks/test_conversion_rate_with_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_count_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_count_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_count_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_count_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_count_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_count_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_count_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_count_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_constant_properties__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_constant_properties__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_constant_properties__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_constant_properties__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_constant_properties__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_constant_properties__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_constant_properties__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_constant_properties__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_window__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_window__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_window__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/DuckDB/test_conversion_rate_with_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_count_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_count_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_count_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_count_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_count_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_count_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_count_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_count_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_constant_properties__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_constant_properties__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_constant_properties__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_constant_properties__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_constant_properties__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_constant_properties__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_constant_properties__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_constant_properties__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_window__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_window__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_window__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Postgres/test_conversion_rate_with_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_count_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_count_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_count_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_count_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_count_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_count_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_count_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_count_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_constant_properties__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_constant_properties__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_constant_properties__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_constant_properties__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_constant_properties__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_constant_properties__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_constant_properties__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_constant_properties__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_window__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_window__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_window__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Redshift/test_conversion_rate_with_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_count_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_count_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_count_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_count_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_count_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_count_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_count_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_count_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_constant_properties__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_constant_properties__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_constant_properties__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_constant_properties__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_constant_properties__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_constant_properties__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_constant_properties__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_constant_properties__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_window__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_window__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_window__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Snowflake/test_conversion_rate_with_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_count_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_count_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_count_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_count_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_count_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_count_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_count_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_count_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_constant_properties__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_constant_properties__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_constant_properties__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_constant_properties__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_constant_properties__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_constant_properties__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_constant_properties__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_constant_properties__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_no_group_by__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_no_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_no_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_no_group_by__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_no_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_no_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_no_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_no_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_window__plan0.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_window__plan0.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_window__plan0.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/Trino/test_conversion_rate_with_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_count_with_no_group_by__plan0.xml b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_count_with_no_group_by__plan0.xml
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_count_with_no_group_by__plan0.xml
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_count_with_no_group_by__plan0.xml
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.xml b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.xml
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.xml
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_metric_join_to_timespine_and_fill_nulls_with_0__plan0.xml
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate__plan0.xml b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate__plan0.xml
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate__plan0.xml
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate__plan0.xml
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_constant_properties__plan0.xml b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_constant_properties__plan0.xml
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_constant_properties__plan0.xml
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_constant_properties__plan0.xml
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_no_group_by__plan0.xml b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_no_group_by__plan0.xml
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_no_group_by__plan0.xml
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_no_group_by__plan0.xml
diff --git a/tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_window__plan0.xml b/tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_window__plan0.xml
similarity index 100%
rename from tests/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_window__plan0.xml
rename to tests_metricflow/snapshots/test_conversion_metrics_to_sql.py/SqlQueryPlan/test_conversion_rate_with_window__plan0.xml
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_query_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_query_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_query_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_query_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_table_semantic_model_with_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_table_semantic_model_with_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_table_semantic_model_with_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_table_semantic_model_with_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_table_semantic_model_without_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_table_semantic_model_without_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_table_semantic_model_without_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/BigQuery/test_convert_table_semantic_model_without_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_query_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_query_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_query_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_query_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_table_semantic_model_with_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_table_semantic_model_with_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_table_semantic_model_with_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_table_semantic_model_with_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_table_semantic_model_without_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_table_semantic_model_without_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_table_semantic_model_without_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Databricks/test_convert_table_semantic_model_without_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_query_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_query_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_query_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_query_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_table_semantic_model_with_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_table_semantic_model_with_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_table_semantic_model_with_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_table_semantic_model_with_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_table_semantic_model_without_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_table_semantic_model_without_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_table_semantic_model_without_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/DuckDB/test_convert_table_semantic_model_without_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_query_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_query_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_query_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_query_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_table_semantic_model_with_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_table_semantic_model_with_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_table_semantic_model_with_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_table_semantic_model_with_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_table_semantic_model_without_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_table_semantic_model_without_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_table_semantic_model_without_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Postgres/test_convert_table_semantic_model_without_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_query_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_query_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_query_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_query_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_table_semantic_model_with_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_table_semantic_model_with_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_table_semantic_model_with_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_table_semantic_model_with_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_table_semantic_model_without_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_table_semantic_model_without_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_table_semantic_model_without_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Redshift/test_convert_table_semantic_model_without_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_query_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_query_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_query_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_query_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_table_semantic_model_with_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_table_semantic_model_with_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_table_semantic_model_with_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_table_semantic_model_with_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_table_semantic_model_without_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_table_semantic_model_without_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_table_semantic_model_without_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Snowflake/test_convert_table_semantic_model_without_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_query_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_query_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_query_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_query_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_table_semantic_model_with_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_table_semantic_model_with_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_table_semantic_model_with_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_table_semantic_model_with_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_table_semantic_model_without_measures__plan0.sql b/tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_table_semantic_model_without_measures__plan0.sql
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_table_semantic_model_without_measures__plan0.sql
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/SqlQueryPlan/Trino/test_convert_table_semantic_model_without_measures__plan0.sql
diff --git a/tests/snapshots/test_convert_semantic_model.py/list/test_convert_table_semantic_model_with_measures__result0.txt b/tests_metricflow/snapshots/test_convert_semantic_model.py/list/test_convert_table_semantic_model_with_measures__result0.txt
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/list/test_convert_table_semantic_model_with_measures__result0.txt
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/list/test_convert_table_semantic_model_with_measures__result0.txt
diff --git a/tests/snapshots/test_convert_semantic_model.py/list/test_convert_table_semantic_model_without_measures__result0.txt b/tests_metricflow/snapshots/test_convert_semantic_model.py/list/test_convert_table_semantic_model_without_measures__result0.txt
similarity index 100%
rename from tests/snapshots/test_convert_semantic_model.py/list/test_convert_table_semantic_model_without_measures__result0.txt
rename to tests_metricflow/snapshots/test_convert_semantic_model.py/list/test_convert_table_semantic_model_without_measures__result0.txt
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_grain_to_date__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_grain_to_date__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_grain_to_date__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_grain_to_date__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_grain_to_date__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_grain_to_date__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_grain_to_date__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_grain_to_date__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_month__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_month__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_month__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_ds__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_ds__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_ds__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_ds__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_ds__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_ds__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_ds__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_ds__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_agg_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_agg_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_agg_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_agg_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_grain_to_date__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_grain_to_date__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_grain_to_date__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_grain_to_date__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_grain_to_date__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_grain_to_date__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_grain_to_date__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_grain_to_date__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_month__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_month__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_month__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_ds__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_ds__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_ds__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_ds__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_ds__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_ds__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_ds__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_ds__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_agg_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_agg_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_agg_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_agg_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_grain_to_date__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_grain_to_date__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_grain_to_date__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_grain_to_date__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_grain_to_date__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_grain_to_date__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_grain_to_date__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_grain_to_date__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_month__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_month__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_month__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_ds__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_ds__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_ds__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_ds__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_ds__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_ds__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_ds__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_ds__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_agg_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_agg_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_agg_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_agg_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_grain_to_date__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_grain_to_date__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_grain_to_date__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_grain_to_date__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_grain_to_date__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_grain_to_date__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_grain_to_date__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_grain_to_date__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_month__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_month__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_month__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_ds__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_ds__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_ds__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_ds__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_ds__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_ds__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_ds__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_ds__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_agg_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_agg_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_agg_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_agg_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_grain_to_date__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_grain_to_date__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_grain_to_date__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_grain_to_date__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_grain_to_date__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_grain_to_date__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_grain_to_date__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_grain_to_date__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_month__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_month__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_month__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_ds__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_ds__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_ds__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_ds__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_ds__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_ds__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_ds__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_ds__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_agg_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_agg_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_agg_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_agg_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_grain_to_date__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_grain_to_date__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_grain_to_date__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_grain_to_date__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_grain_to_date__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_grain_to_date__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_grain_to_date__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_grain_to_date__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_month__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_month__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_month__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_ds__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_ds__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_ds__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_ds__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_ds__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_ds__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_ds__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_ds__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_agg_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_agg_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_agg_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_agg_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_grain_to_date__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_grain_to_date__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_grain_to_date__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_grain_to_date__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_grain_to_date__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_grain_to_date__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_grain_to_date__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_grain_to_date__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_month__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_month__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_month__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_ds__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_ds__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_ds__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_ds__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_ds__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_ds__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_ds__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_ds__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_no_window_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_agg_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_agg_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_agg_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_agg_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_agg_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_non_adjustable_time_filter__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_non_adjustable_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_cumulative_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/BigQuery/test_cumulative_metric_with_non_adjustable_filter__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/BigQuery/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/BigQuery/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/BigQuery/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/BigQuery/test_grain_to_date_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/BigQuery/test_grain_to_date_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/BigQuery/test_grain_to_date_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/BigQuery/test_grain_to_date_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/BigQuery/test_multiple_cumulative_metrics__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/BigQuery/test_multiple_cumulative_metrics__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/BigQuery/test_multiple_cumulative_metrics__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/BigQuery/test_multiple_cumulative_metrics__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/BigQuery/test_non_additive_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/BigQuery/test_non_additive_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/BigQuery/test_non_additive_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/BigQuery/test_non_additive_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/BigQuery/test_simple_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/BigQuery/test_simple_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/BigQuery/test_simple_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/BigQuery/test_simple_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Databricks/test_cumulative_metric_with_non_adjustable_filter__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Databricks/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Databricks/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Databricks/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Databricks/test_grain_to_date_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Databricks/test_grain_to_date_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Databricks/test_grain_to_date_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Databricks/test_grain_to_date_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Databricks/test_multiple_cumulative_metrics__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Databricks/test_multiple_cumulative_metrics__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Databricks/test_multiple_cumulative_metrics__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Databricks/test_multiple_cumulative_metrics__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Databricks/test_non_additive_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Databricks/test_non_additive_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Databricks/test_non_additive_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Databricks/test_non_additive_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Databricks/test_simple_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Databricks/test_simple_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Databricks/test_simple_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Databricks/test_simple_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/DuckDB/test_cumulative_metric_with_non_adjustable_filter__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/DuckDB/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/DuckDB/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/DuckDB/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/DuckDB/test_grain_to_date_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/DuckDB/test_grain_to_date_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/DuckDB/test_grain_to_date_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/DuckDB/test_grain_to_date_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/DuckDB/test_multiple_cumulative_metrics__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/DuckDB/test_multiple_cumulative_metrics__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/DuckDB/test_multiple_cumulative_metrics__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/DuckDB/test_multiple_cumulative_metrics__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/DuckDB/test_non_additive_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/DuckDB/test_non_additive_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/DuckDB/test_non_additive_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/DuckDB/test_non_additive_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/DuckDB/test_simple_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/DuckDB/test_simple_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/DuckDB/test_simple_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/DuckDB/test_simple_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Postgres/test_cumulative_metric_with_non_adjustable_filter__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Postgres/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Postgres/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Postgres/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Postgres/test_grain_to_date_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Postgres/test_grain_to_date_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Postgres/test_grain_to_date_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Postgres/test_grain_to_date_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Postgres/test_multiple_cumulative_metrics__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Postgres/test_multiple_cumulative_metrics__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Postgres/test_multiple_cumulative_metrics__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Postgres/test_multiple_cumulative_metrics__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Postgres/test_non_additive_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Postgres/test_non_additive_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Postgres/test_non_additive_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Postgres/test_non_additive_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Postgres/test_simple_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Postgres/test_simple_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Postgres/test_simple_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Postgres/test_simple_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Redshift/test_cumulative_metric_with_non_adjustable_filter__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Redshift/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Redshift/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Redshift/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Redshift/test_grain_to_date_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Redshift/test_grain_to_date_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Redshift/test_grain_to_date_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Redshift/test_grain_to_date_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Redshift/test_multiple_cumulative_metrics__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Redshift/test_multiple_cumulative_metrics__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Redshift/test_multiple_cumulative_metrics__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Redshift/test_multiple_cumulative_metrics__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Redshift/test_non_additive_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Redshift/test_non_additive_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Redshift/test_non_additive_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Redshift/test_non_additive_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Redshift/test_simple_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Redshift/test_simple_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Redshift/test_simple_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Redshift/test_simple_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Snowflake/test_cumulative_metric_with_non_adjustable_filter__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Snowflake/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Snowflake/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Snowflake/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Snowflake/test_grain_to_date_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Snowflake/test_grain_to_date_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Snowflake/test_grain_to_date_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Snowflake/test_grain_to_date_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Snowflake/test_multiple_cumulative_metrics__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Snowflake/test_multiple_cumulative_metrics__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Snowflake/test_multiple_cumulative_metrics__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Snowflake/test_multiple_cumulative_metrics__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Snowflake/test_non_additive_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Snowflake/test_non_additive_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Snowflake/test_non_additive_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Snowflake/test_non_additive_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Snowflake/test_simple_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Snowflake/test_simple_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Snowflake/test_simple_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Snowflake/test_simple_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Trino/test_cumulative_metric_with_non_adjustable_filter__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Trino/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Trino/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Trino/test_cumulative_metric_with_non_adjustable_filter__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Trino/test_grain_to_date_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Trino/test_grain_to_date_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Trino/test_grain_to_date_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Trino/test_grain_to_date_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Trino/test_multiple_cumulative_metrics__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Trino/test_multiple_cumulative_metrics__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Trino/test_multiple_cumulative_metrics__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Trino/test_multiple_cumulative_metrics__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Trino/test_non_additive_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Trino/test_non_additive_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Trino/test_non_additive_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Trino/test_non_additive_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cumulative_metrics.py/str/Trino/test_simple_cumulative_metric__query_output.txt b/tests_metricflow/snapshots/test_cumulative_metrics.py/str/Trino/test_simple_cumulative_metric__query_output.txt
similarity index 100%
rename from tests/snapshots/test_cumulative_metrics.py/str/Trino/test_simple_cumulative_metric__query_output.txt
rename to tests_metricflow/snapshots/test_cumulative_metrics.py/str/Trino/test_simple_cumulative_metric__query_output.txt
diff --git a/tests/snapshots/test_cyclic_join.py/DataflowPlan/test_cyclic_join__dfp_0.xml b/tests_metricflow/snapshots/test_cyclic_join.py/DataflowPlan/test_cyclic_join__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_cyclic_join.py/DataflowPlan/test_cyclic_join__dfp_0.xml
rename to tests_metricflow/snapshots/test_cyclic_join.py/DataflowPlan/test_cyclic_join__dfp_0.xml
diff --git a/tests/snapshots/test_data_warehouse_tasks.py/str/BigQuery/test_build_metric_tasks__query0.sql b/tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/BigQuery/test_build_metric_tasks__query0.sql
similarity index 100%
rename from tests/snapshots/test_data_warehouse_tasks.py/str/BigQuery/test_build_metric_tasks__query0.sql
rename to tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/BigQuery/test_build_metric_tasks__query0.sql
diff --git a/tests/snapshots/test_data_warehouse_tasks.py/str/Databricks/test_build_metric_tasks__query0.sql b/tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/Databricks/test_build_metric_tasks__query0.sql
similarity index 100%
rename from tests/snapshots/test_data_warehouse_tasks.py/str/Databricks/test_build_metric_tasks__query0.sql
rename to tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/Databricks/test_build_metric_tasks__query0.sql
diff --git a/tests/snapshots/test_data_warehouse_tasks.py/str/DuckDB/test_build_metric_tasks__query0.sql b/tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/DuckDB/test_build_metric_tasks__query0.sql
similarity index 100%
rename from tests/snapshots/test_data_warehouse_tasks.py/str/DuckDB/test_build_metric_tasks__query0.sql
rename to tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/DuckDB/test_build_metric_tasks__query0.sql
diff --git a/tests/snapshots/test_data_warehouse_tasks.py/str/Postgres/test_build_metric_tasks__query0.sql b/tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/Postgres/test_build_metric_tasks__query0.sql
similarity index 100%
rename from tests/snapshots/test_data_warehouse_tasks.py/str/Postgres/test_build_metric_tasks__query0.sql
rename to tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/Postgres/test_build_metric_tasks__query0.sql
diff --git a/tests/snapshots/test_data_warehouse_tasks.py/str/Redshift/test_build_metric_tasks__query0.sql b/tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/Redshift/test_build_metric_tasks__query0.sql
similarity index 100%
rename from tests/snapshots/test_data_warehouse_tasks.py/str/Redshift/test_build_metric_tasks__query0.sql
rename to tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/Redshift/test_build_metric_tasks__query0.sql
diff --git a/tests/snapshots/test_data_warehouse_tasks.py/str/Snowflake/test_build_metric_tasks__query0.sql b/tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/Snowflake/test_build_metric_tasks__query0.sql
similarity index 100%
rename from tests/snapshots/test_data_warehouse_tasks.py/str/Snowflake/test_build_metric_tasks__query0.sql
rename to tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/Snowflake/test_build_metric_tasks__query0.sql
diff --git a/tests/snapshots/test_data_warehouse_tasks.py/str/Trino/test_build_metric_tasks__query0.sql b/tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/Trino/test_build_metric_tasks__query0.sql
similarity index 100%
rename from tests/snapshots/test_data_warehouse_tasks.py/str/Trino/test_build_metric_tasks__query0.sql
rename to tests_metricflow/snapshots/test_data_warehouse_tasks.py/str/Trino/test_build_metric_tasks__query0.sql
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_common_semantic_model__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_common_semantic_model__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_common_semantic_model__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_common_semantic_model__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_no_window_or_grain_with_metric_time__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_no_window_or_grain_with_metric_time__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_no_window_or_grain_with_metric_time__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_no_window_or_grain_with_metric_time__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_no_window_or_grain_without_metric_time__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_no_window_or_grain_without_metric_time__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_no_window_or_grain_without_metric_time__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_no_window_or_grain_without_metric_time__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_with_window__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_with_window__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_with_window__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_cumulative_metric_with_window__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_to_grain__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_to_grain__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_to_grain__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_to_grain__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_window__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_window__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_window__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_window__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_with_granularity__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_with_granularity__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_with_granularity__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_metric_offset_with_granularity__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_offset_cumulative_metric__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_offset_cumulative_metric__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_offset_cumulative_metric__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_derived_offset_cumulative_metric__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_dimensions_with_time_constraint__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_dimensions_with_time_constraint__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_dimensions_with_time_constraint__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_dimensions_with_time_constraint__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_distinct_values_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_distinct_values_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_distinct_values_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_distinct_values_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_distinct_values_plan_with_join__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_distinct_values_plan_with_join__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_distinct_values_plan_with_join__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_distinct_values_plan_with_join__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_dont_join_to_time_spine_if_no_time_dimension_requested__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_dont_join_to_time_spine_if_no_time_dimension_requested__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_dont_join_to_time_spine_if_no_time_dimension_requested__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_dont_join_to_time_spine_if_no_time_dimension_requested__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_derived_metric__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_derived_metric__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_derived_metric__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_derived_metric__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_filters__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_filters__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_filters__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_filters__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_metric_time__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_metric_time__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_metric_time__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_metric_time__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_non_metric_time__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_non_metric_time__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_non_metric_time__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_join_to_time_spine_with_non_metric_time__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_joined_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_joined_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_joined_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_joined_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_limit_rows_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_limit_rows_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_limit_rows_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_limit_rows_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_measure_constraint_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_measure_constraint_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_measure_constraint_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_measure_constraint_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_measure_constraint_with_reused_measure_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_measure_constraint_with_reused_measure_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_measure_constraint_with_reused_measure_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_measure_constraint_with_reused_measure_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_in_metric_where_filter__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_in_metric_where_filter__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_in_metric_where_filter__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_in_metric_where_filter__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_in_query_where_filter__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_in_query_where_filter__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_in_query_where_filter__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_in_query_where_filter__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_only__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_only__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_only__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_only__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_quarter__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_quarter__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_quarter__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_quarter__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_with_other_dimensions__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_with_other_dimensions__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_with_other_dimensions__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_metric_time_with_other_dimensions__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_metric_time__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_metric_time__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_metric_time__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_metric_time__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_metric_time_week__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_metric_time_week__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_metric_time_week__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_metric_time_week__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_categorical__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_categorical__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_categorical__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_categorical__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_time__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_time__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_time__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_time__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_time_year__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_time_year__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_time_year__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_min_max_only_time_year__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multi_semantic_model_ratio_metrics_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multi_semantic_model_ratio_metrics_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multi_semantic_model_ratio_metrics_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multi_semantic_model_ratio_metrics_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multihop_join_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multihop_join_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multihop_join_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multihop_join_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multiple_metrics_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multiple_metrics_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multiple_metrics_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_multiple_metrics_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_nested_derived_metric_with_outer_offset__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_nested_derived_metric_with_outer_offset__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_nested_derived_metric_with_outer_offset__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_nested_derived_metric_with_outer_offset__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_offset_to_grain_metric_filter_and_query_have_different_granularities__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_offset_to_grain_metric_filter_and_query_have_different_granularities__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_offset_to_grain_metric_filter_and_query_have_different_granularities__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_offset_to_grain_metric_filter_and_query_have_different_granularities__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_offset_window_metric_filter_and_query_have_different_granularities__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_offset_window_metric_filter_and_query_have_different_granularities__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_offset_window_metric_filter_and_query_have_different_granularities__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_offset_window_metric_filter_and_query_have_different_granularities__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_order_by_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_order_by_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_order_by_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_order_by_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_primary_entity_dimension__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_primary_entity_dimension__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_primary_entity_dimension__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_primary_entity_dimension__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_simple_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_simple_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_simple_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_simple_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_single_semantic_model_ratio_metrics_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_single_semantic_model_ratio_metrics_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_single_semantic_model_ratio_metrics_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_single_semantic_model_ratio_metrics_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_plan_time_dimension__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_plan_time_dimension__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_plan_time_dimension__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_plan_time_dimension__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_with_common_linkable_plan__dfp_0.xml b/tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_with_common_linkable_plan__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_with_common_linkable_plan__dfp_0.xml
rename to tests_metricflow/snapshots/test_dataflow_plan_builder.py/DataflowPlan/test_where_constrained_with_common_linkable_plan__dfp_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_multihop_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_multihop_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_multihop_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_multihop_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_small_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_small_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_small_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/BigQuery/test_small_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_multihop_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_multihop_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_multihop_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_multihop_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_small_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_small_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_small_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Databricks/test_small_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_multihop_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_multihop_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_multihop_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_multihop_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_small_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_small_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_small_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/DuckDB/test_small_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_multihop_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_multihop_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_multihop_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_multihop_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_small_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_small_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_small_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Postgres/test_small_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_multihop_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_multihop_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_multihop_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_multihop_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_small_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_small_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_small_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Redshift/test_small_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_multihop_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_multihop_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_multihop_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_multihop_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_small_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_small_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_small_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Snowflake/test_small_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_multihop_joined_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_multihop_joined_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_multihop_joined_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_multihop_joined_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_small_combined_metrics_plan__ep_0.xml b/tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_small_combined_metrics_plan__ep_0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_small_combined_metrics_plan__ep_0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_execution.py/ExecutionPlan/Trino/test_small_combined_metrics_plan__ep_0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_compute_metrics_node_simple_expr__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_compute_metrics_node_simple_expr__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_compute_metrics_node_simple_expr__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_compute_metrics_node_simple_expr__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_with_offset_to_grain__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_with_offset_to_grain__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_with_offset_to_grain__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_with_offset_to_grain__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_with_offset_window__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_with_offset_window__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_with_offset_window__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_with_offset_window__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_without_offset__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_without_offset__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_without_offset__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/DataflowPlan/test_join_to_time_spine_node_without_offset__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_combine_output_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_combine_output_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_combine_output_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_combine_output_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_combine_output_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_combine_output_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_combine_output_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_combine_output_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_simple_expr__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_simple_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_simple_expr__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_simple_expr__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_simple_expr__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_simple_expr__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_simple_expr__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_compute_metrics_node_simple_expr__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_constrain_time_range_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_constrain_time_range_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_constrain_time_range_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_constrain_time_range_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_constrain_time_range_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_constrain_time_range_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_constrain_time_range_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_constrain_time_range_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimension_with_joined_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimension_with_joined_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimension_with_joined_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimension_with_joined_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimension_with_joined_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimension_with_joined_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimension_with_joined_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimension_with_joined_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_without_offset__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_without_offset__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_without_offset__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_without_offset__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_without_offset__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_measure_aggregation_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_measure_aggregation_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_measure_aggregation_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_measure_aggregation_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_measure_aggregation_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_measure_aggregation_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_measure_aggregation_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_measure_aggregation_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_multi_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_multi_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_multi_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_multi_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_multi_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_multi_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_multi_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_multi_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_order_by_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_order_by_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_order_by_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_order_by_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_order_by_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_order_by_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_order_by_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_order_by_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_grouping__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_grouping__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_grouping__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_grouping__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_grouping__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_queried_group_by__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_queried_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_queried_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_queried_group_by__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_single_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_single_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_single_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_single_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_single_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_single_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_single_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_single_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_source_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_source_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_source_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_source_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_source_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_source_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_source_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/BigQuery/test_source_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_combine_output_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_combine_output_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_combine_output_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_combine_output_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_combine_output_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_combine_output_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_combine_output_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_combine_output_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_simple_expr__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_simple_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_simple_expr__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_simple_expr__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_simple_expr__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_simple_expr__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_simple_expr__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_compute_metrics_node_simple_expr__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_constrain_time_range_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_constrain_time_range_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_constrain_time_range_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_constrain_time_range_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_constrain_time_range_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_constrain_time_range_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_constrain_time_range_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_constrain_time_range_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimension_with_joined_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimension_with_joined_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimension_with_joined_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimension_with_joined_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimension_with_joined_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimension_with_joined_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimension_with_joined_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimension_with_joined_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_without_offset__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_without_offset__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_without_offset__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_without_offset__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_without_offset__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_measure_aggregation_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_measure_aggregation_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_measure_aggregation_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_measure_aggregation_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_measure_aggregation_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_measure_aggregation_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_measure_aggregation_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_measure_aggregation_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_multi_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_multi_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_multi_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_multi_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_multi_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_multi_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_multi_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_multi_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_order_by_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_order_by_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_order_by_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_order_by_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_order_by_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_order_by_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_order_by_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_order_by_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_grouping__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_grouping__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_grouping__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_grouping__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_grouping__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_queried_group_by__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_queried_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_queried_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_queried_group_by__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_single_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_single_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_single_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_single_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_single_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_single_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_single_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_single_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_source_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_source_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_source_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_source_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_source_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_source_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_source_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Databricks/test_source_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_combine_output_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_combine_output_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_combine_output_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_combine_output_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_combine_output_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_combine_output_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_combine_output_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_combine_output_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_simple_expr__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_simple_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_simple_expr__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_simple_expr__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_simple_expr__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_simple_expr__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_simple_expr__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_compute_metrics_node_simple_expr__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_constrain_time_range_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_constrain_time_range_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_constrain_time_range_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_constrain_time_range_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_constrain_time_range_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_constrain_time_range_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_constrain_time_range_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_constrain_time_range_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimension_with_joined_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimension_with_joined_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimension_with_joined_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimension_with_joined_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimension_with_joined_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimension_with_joined_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimension_with_joined_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimension_with_joined_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_without_offset__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_without_offset__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_without_offset__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_without_offset__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_without_offset__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_measure_aggregation_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_measure_aggregation_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_measure_aggregation_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_measure_aggregation_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_measure_aggregation_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_measure_aggregation_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_measure_aggregation_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_measure_aggregation_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_multi_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_multi_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_multi_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_multi_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_multi_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_multi_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_multi_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_multi_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_order_by_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_order_by_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_order_by_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_order_by_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_order_by_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_order_by_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_order_by_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_order_by_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_grouping__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_grouping__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_grouping__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_grouping__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_grouping__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_queried_group_by__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_queried_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_queried_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_queried_group_by__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_single_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_single_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_single_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_single_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_single_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_single_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_single_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_single_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_source_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_source_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_source_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_source_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_source_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_source_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_source_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/DuckDB/test_source_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_combine_output_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_combine_output_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_combine_output_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_combine_output_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_combine_output_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_combine_output_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_combine_output_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_combine_output_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_simple_expr__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_simple_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_simple_expr__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_simple_expr__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_simple_expr__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_simple_expr__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_simple_expr__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_compute_metrics_node_simple_expr__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_constrain_time_range_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_constrain_time_range_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_constrain_time_range_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_constrain_time_range_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_constrain_time_range_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_constrain_time_range_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_constrain_time_range_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_constrain_time_range_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimension_with_joined_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimension_with_joined_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimension_with_joined_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimension_with_joined_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimension_with_joined_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimension_with_joined_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimension_with_joined_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimension_with_joined_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_without_offset__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_without_offset__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_without_offset__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_without_offset__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_without_offset__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_measure_aggregation_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_measure_aggregation_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_measure_aggregation_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_measure_aggregation_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_measure_aggregation_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_measure_aggregation_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_measure_aggregation_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_measure_aggregation_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_multi_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_multi_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_multi_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_multi_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_multi_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_multi_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_multi_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_multi_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_order_by_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_order_by_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_order_by_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_order_by_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_order_by_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_order_by_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_order_by_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_order_by_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_grouping__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_grouping__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_grouping__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_grouping__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_grouping__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_queried_group_by__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_queried_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_queried_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_queried_group_by__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_single_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_single_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_single_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_single_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_single_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_single_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_single_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_single_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_source_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_source_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_source_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_source_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_source_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_source_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_source_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Postgres/test_source_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_combine_output_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_combine_output_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_combine_output_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_combine_output_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_combine_output_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_combine_output_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_combine_output_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_combine_output_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_simple_expr__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_simple_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_simple_expr__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_simple_expr__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_simple_expr__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_simple_expr__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_simple_expr__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_compute_metrics_node_simple_expr__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_constrain_time_range_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_constrain_time_range_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_constrain_time_range_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_constrain_time_range_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_constrain_time_range_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_constrain_time_range_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_constrain_time_range_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_constrain_time_range_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimension_with_joined_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimension_with_joined_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimension_with_joined_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimension_with_joined_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimension_with_joined_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimension_with_joined_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimension_with_joined_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimension_with_joined_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_without_offset__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_without_offset__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_without_offset__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_without_offset__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_without_offset__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_measure_aggregation_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_measure_aggregation_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_measure_aggregation_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_measure_aggregation_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_measure_aggregation_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_measure_aggregation_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_measure_aggregation_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_measure_aggregation_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_multi_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_multi_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_multi_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_multi_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_multi_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_multi_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_multi_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_multi_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_order_by_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_order_by_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_order_by_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_order_by_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_order_by_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_order_by_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_order_by_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_order_by_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_grouping__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_grouping__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_grouping__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_grouping__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_grouping__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_queried_group_by__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_queried_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_queried_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_queried_group_by__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_single_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_single_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_single_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_single_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_single_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_single_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_single_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_single_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_source_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_source_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_source_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_source_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_source_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_source_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_source_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Redshift/test_source_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_combine_output_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_combine_output_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_combine_output_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_combine_output_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_combine_output_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_combine_output_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_combine_output_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_combine_output_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_simple_expr__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_simple_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_simple_expr__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_simple_expr__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_simple_expr__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_simple_expr__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_simple_expr__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_compute_metrics_node_simple_expr__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_constrain_time_range_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_constrain_time_range_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_constrain_time_range_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_constrain_time_range_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_constrain_time_range_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_constrain_time_range_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_constrain_time_range_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_constrain_time_range_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimension_with_joined_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimension_with_joined_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimension_with_joined_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimension_with_joined_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimension_with_joined_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimension_with_joined_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimension_with_joined_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimension_with_joined_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_without_offset__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_without_offset__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_without_offset__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_without_offset__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_without_offset__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_measure_aggregation_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_measure_aggregation_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_measure_aggregation_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_measure_aggregation_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_measure_aggregation_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_measure_aggregation_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_measure_aggregation_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_measure_aggregation_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_multi_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_multi_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_multi_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_multi_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_multi_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_multi_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_multi_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_multi_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_order_by_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_order_by_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_order_by_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_order_by_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_order_by_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_order_by_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_order_by_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_order_by_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_grouping__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_grouping__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_grouping__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_grouping__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_grouping__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_queried_group_by__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_queried_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_queried_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_queried_group_by__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_single_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_single_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_single_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_single_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_single_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_single_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_single_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_single_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_source_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_source_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_source_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_source_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_source_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_source_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_source_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Snowflake/test_source_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_combine_output_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_combine_output_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_combine_output_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_combine_output_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_combine_output_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_combine_output_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_combine_output_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_combine_output_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_ratio_from_single_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_simple_expr__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_simple_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_simple_expr__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_simple_expr__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_simple_expr__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_simple_expr__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_simple_expr__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_compute_metrics_node_simple_expr__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_constrain_time_range_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_constrain_time_range_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_constrain_time_range_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_constrain_time_range_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_constrain_time_range_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_constrain_time_range_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_constrain_time_range_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_constrain_time_range_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimension_with_joined_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimension_with_joined_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimension_with_joined_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimension_with_joined_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimension_with_joined_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimension_with_joined_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimension_with_joined_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimension_with_joined_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_without_offset__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_without_offset__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_without_offset__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_without_offset__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_without_offset__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_join_to_time_spine_node_without_offset__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_measure_aggregation_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_measure_aggregation_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_measure_aggregation_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_measure_aggregation_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_measure_aggregation_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_measure_aggregation_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_measure_aggregation_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_measure_aggregation_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_multi_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_multi_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_multi_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_multi_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_multi_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_multi_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_multi_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_multi_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_order_by_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_order_by_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_order_by_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_order_by_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_order_by_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_order_by_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_order_by_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_order_by_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_grouping__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_grouping__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_grouping__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_grouping__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_grouping__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_grouping__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_queried_group_by__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_queried_group_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_queried_group_by__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_queried_group_by__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_semi_additive_join_node_with_queried_group_by__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_single_join_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_single_join_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_single_join_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_single_join_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_single_join_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_single_join_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_single_join_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_single_join_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_source_node__plan0.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_source_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_source_node__plan0.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_source_node__plan0.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_source_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_source_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_source_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/Trino/test_source_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_combine_output_node__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_combine_output_node__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_combine_output_node__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_combine_output_node__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_ratio_from_multiple_semantic_models__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_ratio_from_single_semantic_model__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_simple_expr__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_simple_expr__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_simple_expr__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_compute_metrics_node_simple_expr__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_constrain_time_range_node__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_constrain_time_range_node__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_constrain_time_range_node__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_constrain_time_range_node__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_dimension_with_joined_where_constraint__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_dimension_with_joined_where_constraint__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_dimension_with_joined_where_constraint__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_dimension_with_joined_where_constraint__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_dimensions_requiring_join__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_dimensions_requiring_join__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_dimensions_requiring_join__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_dimensions_requiring_join__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_filter_node__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_filter_node__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_filter_node__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_filter_node__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_filter_with_where_constraint_node__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_filter_with_where_constraint_node__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_filter_with_where_constraint_node__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_filter_with_where_constraint_node__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_with_offset_to_grain__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_with_offset_to_grain__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_with_offset_to_grain__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_with_offset_to_grain__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_with_offset_window__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_with_offset_window__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_with_offset_window__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_with_offset_window__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_without_offset__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_without_offset__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_without_offset__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_join_to_time_spine_node_without_offset__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_measure_aggregation_node__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_measure_aggregation_node__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_measure_aggregation_node__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_measure_aggregation_node__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_multi_join_node__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_multi_join_node__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_multi_join_node__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_multi_join_node__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_order_by_node__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_order_by_node__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_order_by_node__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_order_by_node__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node_with_grouping__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node_with_grouping__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node_with_grouping__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node_with_grouping__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node_with_queried_group_by__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node_with_queried_group_by__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node_with_queried_group_by__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_semi_additive_join_node_with_queried_group_by__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_single_join_node__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_single_join_node__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_single_join_node__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_single_join_node__plan0.xml
diff --git a/tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_source_node__plan0.xml b/tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_source_node__plan0.xml
similarity index 100%
rename from tests/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_source_node__plan0.xml
rename to tests_metricflow/snapshots/test_dataflow_to_sql_plan.py/SqlQueryPlan/test_source_node__plan0.xml
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_time_filter__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_multi_metric_fill_null__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_multi_metric_fill_null__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_multi_metric_fill_null__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_multi_metric_fill_null__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_multi_metric_fill_null__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_multi_metric_fill_null__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_multi_metric_fill_null__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_multi_metric_fill_null__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_nested_offsets_with_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/BigQuery/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_time_filter__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_multi_metric_fill_null__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_multi_metric_fill_null__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_multi_metric_fill_null__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_multi_metric_fill_null__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_multi_metric_fill_null__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_multi_metric_fill_null__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_multi_metric_fill_null__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_multi_metric_fill_null__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_nested_offsets_with_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Databricks/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_time_filter__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_multi_metric_fill_null__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_multi_metric_fill_null__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_multi_metric_fill_null__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_multi_metric_fill_null__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_multi_metric_fill_null__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_multi_metric_fill_null__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_multi_metric_fill_null__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_multi_metric_fill_null__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_nested_offsets_with_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/DuckDB/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_time_filter__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_multi_metric_fill_null__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_multi_metric_fill_null__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_multi_metric_fill_null__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_multi_metric_fill_null__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_multi_metric_fill_null__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_multi_metric_fill_null__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_multi_metric_fill_null__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_multi_metric_fill_null__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_nested_offsets_with_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Postgres/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_time_filter__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_multi_metric_fill_null__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_multi_metric_fill_null__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_multi_metric_fill_null__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_multi_metric_fill_null__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_multi_metric_fill_null__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_multi_metric_fill_null__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_multi_metric_fill_null__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_multi_metric_fill_null__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_nested_offsets_with_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Redshift/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_time_filter__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_multi_metric_fill_null__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_multi_metric_fill_null__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_multi_metric_fill_null__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_multi_metric_fill_null__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_multi_metric_fill_null__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_multi_metric_fill_null__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_multi_metric_fill_null__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_multi_metric_fill_null__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_nested_offsets_with_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Snowflake/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_cumulative_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_month_dimension_and_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_month_dimension_and_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_offset_to_grain_and_granularity__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_time_filter__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_time_filter__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_metric_with_offset_window_and_time_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_cumulative_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_cumulative_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_cumulative_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_cumulative_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_cumulative_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_cumulative_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_cumulative_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_cumulative_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_derived_offset_metric_with_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_multi_metric_fill_null__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_multi_metric_fill_null__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_multi_metric_fill_null__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_multi_metric_fill_null__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_multi_metric_fill_null__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_multi_metric_fill_null__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_multi_metric_fill_null__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_multi_metric_fill_null__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_offset_with_joined_where_constraint_not_selected__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_derived_metric_with_offset_multiple_input_metrics__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine_multi_metric__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_fill_nulls_without_time_spine_multi_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_where_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_where_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_where_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_where_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_where_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_where_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_where_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_nested_offsets_with_where_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_to_grain_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_filter_and_query_have_different_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_filter_and_query_have_different_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_multiple_granularities__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_multiple_granularities__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_multiple_granularities__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_multiple_granularities__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_multiple_granularities__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_metric_multiple_granularities__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_agg_time_dim__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_agg_time_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_agg_time_dim__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_agg_time_dim__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_agg_time_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_agg_time_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_agg_time_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_agg_time_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_time_offset_metric_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_time_offset_metric_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_time_offset_metric_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_time_offset_metric_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_time_offset_metric_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_derived_metric_rendering.py/SqlQueryPlan/Trino/test_time_offset_metric_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimension_values_with_a_join_and_a_filter__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimension_values_with_a_join_and_a_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimension_values_with_a_join_and_a_filter__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimension_values_with_a_join_and_a_filter__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/BigQuery/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimension_values_with_a_join_and_a_filter__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimension_values_with_a_join_and_a_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimension_values_with_a_join_and_a_filter__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimension_values_with_a_join_and_a_filter__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Databricks/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimension_values_with_a_join_and_a_filter__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimension_values_with_a_join_and_a_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimension_values_with_a_join_and_a_filter__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimension_values_with_a_join_and_a_filter__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/DuckDB/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimension_values_with_a_join_and_a_filter__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimension_values_with_a_join_and_a_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimension_values_with_a_join_and_a_filter__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimension_values_with_a_join_and_a_filter__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Postgres/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimension_values_with_a_join_and_a_filter__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimension_values_with_a_join_and_a_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimension_values_with_a_join_and_a_filter__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimension_values_with_a_join_and_a_filter__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Redshift/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimension_values_with_a_join_and_a_filter__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimension_values_with_a_join_and_a_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimension_values_with_a_join_and_a_filter__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimension_values_with_a_join_and_a_filter__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Snowflake/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimension_values_with_a_join_and_a_filter__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimension_values_with_a_join_and_a_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimension_values_with_a_join_and_a_filter__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimension_values_with_a_join_and_a_filter__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimension_values_with_a_join_and_a_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/Trino/test_dimensions_requiring_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/test_dimension_values_with_a_join_and_a_filter__plan0.xml b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/test_dimension_values_with_a_join_and_a_filter__plan0.xml
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/test_dimension_values_with_a_join_and_a_filter__plan0.xml
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/test_dimension_values_with_a_join_and_a_filter__plan0.xml
diff --git a/tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/test_dimensions_requiring_join__plan0.xml b/tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/test_dimensions_requiring_join__plan0.xml
similarity index 100%
rename from tests/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/test_dimensions_requiring_join__plan0.xml
rename to tests_metricflow/snapshots/test_distinct_values_to_sql.py/SqlQueryPlan/test_dimensions_requiring_join__plan0.xml
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_approximate_continuous_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_approximate_continuous_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_approximate_continuous_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_approximate_continuous_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_cast_to_timestamp__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_cast_to_timestamp__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_cast_to_timestamp__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_cast_to_timestamp__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_generate_uuid__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_generate_uuid__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_generate_uuid__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/BigQuery/test_generate_uuid__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_approximate_discrete_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_approximate_discrete_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_approximate_discrete_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_approximate_discrete_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_cast_to_timestamp__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_cast_to_timestamp__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_cast_to_timestamp__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_cast_to_timestamp__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_continuous_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_continuous_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_continuous_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_continuous_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_generate_uuid__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_generate_uuid__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_generate_uuid__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Databricks/test_generate_uuid__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_approximate_continuous_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_approximate_continuous_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_approximate_continuous_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_approximate_continuous_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_cast_to_timestamp__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_cast_to_timestamp__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_cast_to_timestamp__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_cast_to_timestamp__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_continuous_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_continuous_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_continuous_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_continuous_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_discrete_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_discrete_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_discrete_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_discrete_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_generate_uuid__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_generate_uuid__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_generate_uuid__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/DuckDB/test_generate_uuid__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_cast_to_timestamp__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_cast_to_timestamp__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_cast_to_timestamp__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_cast_to_timestamp__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_continuous_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_continuous_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_continuous_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_continuous_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_discrete_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_discrete_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_discrete_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_discrete_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_generate_uuid__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_generate_uuid__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_generate_uuid__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Postgres/test_generate_uuid__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_approximate_discrete_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_approximate_discrete_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_approximate_discrete_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_approximate_discrete_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_cast_to_timestamp__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_cast_to_timestamp__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_cast_to_timestamp__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_cast_to_timestamp__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_continuous_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_continuous_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_continuous_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_continuous_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_generate_uuid__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_generate_uuid__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_generate_uuid__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Redshift/test_generate_uuid__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_approximate_continuous_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_approximate_continuous_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_approximate_continuous_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_approximate_continuous_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_cast_to_timestamp__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_cast_to_timestamp__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_cast_to_timestamp__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_cast_to_timestamp__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_continuous_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_continuous_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_continuous_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_continuous_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_discrete_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_discrete_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_discrete_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_discrete_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_generate_uuid__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_generate_uuid__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_generate_uuid__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Snowflake/test_generate_uuid__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_approximate_continuous_percentile_expr__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_approximate_continuous_percentile_expr__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_approximate_continuous_percentile_expr__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_approximate_continuous_percentile_expr__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_cast_to_timestamp__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_cast_to_timestamp__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_cast_to_timestamp__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_cast_to_timestamp__plan0.sql
diff --git a/tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_generate_uuid__plan0.sql b/tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_generate_uuid__plan0.sql
similarity index 100%
rename from tests/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_generate_uuid__plan0.sql
rename to tests_metricflow/snapshots/test_engine_specific_rendering.py/SqlQueryPlan/Trino/test_generate_uuid__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_fill_nulls_with_0_multi_metric_query__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_fill_nulls_with_0_multi_metric_query__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_fill_nulls_with_0_multi_metric_query__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_fill_nulls_with_0_multi_metric_query__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_fill_nulls_with_0_metric_time__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_fill_nulls_with_0_metric_time__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_fill_nulls_with_0_metric_time__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_fill_nulls_with_0_metric_time__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_fill_nulls_with_0_month__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_fill_nulls_with_0_month__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_fill_nulls_with_0_month__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_fill_nulls_with_0_month__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_join_to_time_spine__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_join_to_time_spine__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_join_to_time_spine__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/BigQuery/test_simple_join_to_time_spine__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_fill_nulls_with_0_multi_metric_query__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_fill_nulls_with_0_multi_metric_query__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_fill_nulls_with_0_multi_metric_query__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_fill_nulls_with_0_multi_metric_query__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_fill_nulls_with_0_metric_time__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_fill_nulls_with_0_metric_time__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_fill_nulls_with_0_metric_time__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_fill_nulls_with_0_metric_time__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_fill_nulls_with_0_month__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_fill_nulls_with_0_month__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_fill_nulls_with_0_month__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_fill_nulls_with_0_month__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_join_to_time_spine__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_join_to_time_spine__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_join_to_time_spine__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Databricks/test_simple_join_to_time_spine__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_fill_nulls_with_0_multi_metric_query__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_fill_nulls_with_0_multi_metric_query__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_fill_nulls_with_0_multi_metric_query__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_fill_nulls_with_0_multi_metric_query__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_fill_nulls_with_0_metric_time__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_fill_nulls_with_0_metric_time__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_fill_nulls_with_0_metric_time__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_fill_nulls_with_0_metric_time__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_fill_nulls_with_0_month__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_fill_nulls_with_0_month__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_fill_nulls_with_0_month__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_fill_nulls_with_0_month__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_join_to_time_spine__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_join_to_time_spine__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_join_to_time_spine__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/DuckDB/test_simple_join_to_time_spine__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_fill_nulls_with_0_multi_metric_query__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_fill_nulls_with_0_multi_metric_query__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_fill_nulls_with_0_multi_metric_query__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_fill_nulls_with_0_multi_metric_query__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_fill_nulls_with_0_metric_time__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_fill_nulls_with_0_metric_time__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_fill_nulls_with_0_metric_time__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_fill_nulls_with_0_metric_time__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_fill_nulls_with_0_month__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_fill_nulls_with_0_month__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_fill_nulls_with_0_month__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_fill_nulls_with_0_month__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_join_to_time_spine__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_join_to_time_spine__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_join_to_time_spine__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Postgres/test_simple_join_to_time_spine__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_fill_nulls_with_0_multi_metric_query__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_fill_nulls_with_0_multi_metric_query__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_fill_nulls_with_0_multi_metric_query__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_fill_nulls_with_0_multi_metric_query__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_fill_nulls_with_0_metric_time__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_fill_nulls_with_0_metric_time__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_fill_nulls_with_0_metric_time__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_fill_nulls_with_0_metric_time__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_fill_nulls_with_0_month__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_fill_nulls_with_0_month__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_fill_nulls_with_0_month__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_fill_nulls_with_0_month__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_join_to_time_spine__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_join_to_time_spine__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_join_to_time_spine__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Redshift/test_simple_join_to_time_spine__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_fill_nulls_with_0_multi_metric_query__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_fill_nulls_with_0_multi_metric_query__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_fill_nulls_with_0_multi_metric_query__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_fill_nulls_with_0_multi_metric_query__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_fill_nulls_with_0_metric_time__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_fill_nulls_with_0_metric_time__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_fill_nulls_with_0_metric_time__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_fill_nulls_with_0_metric_time__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_fill_nulls_with_0_month__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_fill_nulls_with_0_month__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_fill_nulls_with_0_month__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_fill_nulls_with_0_month__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_join_to_time_spine__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_join_to_time_spine__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_join_to_time_spine__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Snowflake/test_simple_join_to_time_spine__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Trino/test_fill_nulls_with_0_multi_metric_query__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Trino/test_fill_nulls_with_0_multi_metric_query__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Trino/test_fill_nulls_with_0_multi_metric_query__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Trino/test_fill_nulls_with_0_multi_metric_query__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Trino/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Trino/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Trino/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Trino/test_fill_nulls_with_0_multi_metric_query_with_categorical_dimension__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_fill_nulls_with_0_metric_time__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_fill_nulls_with_0_metric_time__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_fill_nulls_with_0_metric_time__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_fill_nulls_with_0_metric_time__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_fill_nulls_with_0_month__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_fill_nulls_with_0_month__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_fill_nulls_with_0_month__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_fill_nulls_with_0_month__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_join_to_time_spine__query_output.txt b/tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_join_to_time_spine__query_output.txt
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_join_to_time_spine__query_output.txt
rename to tests_metricflow/snapshots/test_fill_nulls_with_0.py/str/Trino/test_simple_join_to_time_spine__query_output.txt
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_fill_nulls__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_fill_nulls__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_fill_nulls__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_fill_nulls__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_fill_nulls__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_fill_nulls__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_fill_nulls__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_cumulative_fill_nulls__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_derived_fill_nulls_for_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_derived_fill_nulls_for_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_derived_fill_nulls_for_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_derived_fill_nulls_for_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_with_filters__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_with_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_with_filters__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_with_filters__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_with_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_with_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_with_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_join_to_time_spine_with_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_month__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_month__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_month__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/BigQuery/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_cumulative_fill_nulls__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_cumulative_fill_nulls__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_cumulative_fill_nulls__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_cumulative_fill_nulls__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_cumulative_fill_nulls__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_cumulative_fill_nulls__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_cumulative_fill_nulls__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_cumulative_fill_nulls__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_derived_fill_nulls_for_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_derived_fill_nulls_for_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_derived_fill_nulls_for_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_derived_fill_nulls_for_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_join_to_time_spine_with_filters__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_join_to_time_spine_with_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_join_to_time_spine_with_filters__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_join_to_time_spine_with_filters__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_join_to_time_spine_with_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_join_to_time_spine_with_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_join_to_time_spine_with_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_join_to_time_spine_with_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_month__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_month__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_month__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Databricks/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_fill_nulls__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_fill_nulls__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_fill_nulls__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_fill_nulls__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_fill_nulls__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_fill_nulls__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_fill_nulls__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_cumulative_fill_nulls__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_derived_fill_nulls_for_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_derived_fill_nulls_for_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_derived_fill_nulls_for_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_derived_fill_nulls_for_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_with_filters__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_with_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_with_filters__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_with_filters__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_with_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_with_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_with_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_join_to_time_spine_with_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_month__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_month__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_month__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/DuckDB/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_cumulative_fill_nulls__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_cumulative_fill_nulls__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_cumulative_fill_nulls__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_cumulative_fill_nulls__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_cumulative_fill_nulls__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_cumulative_fill_nulls__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_cumulative_fill_nulls__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_cumulative_fill_nulls__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_derived_fill_nulls_for_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_derived_fill_nulls_for_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_derived_fill_nulls_for_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_derived_fill_nulls_for_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_join_to_time_spine_with_filters__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_join_to_time_spine_with_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_join_to_time_spine_with_filters__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_join_to_time_spine_with_filters__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_join_to_time_spine_with_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_join_to_time_spine_with_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_join_to_time_spine_with_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_join_to_time_spine_with_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_month__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_month__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_month__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Postgres/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_cumulative_fill_nulls__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_cumulative_fill_nulls__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_cumulative_fill_nulls__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_cumulative_fill_nulls__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_cumulative_fill_nulls__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_cumulative_fill_nulls__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_cumulative_fill_nulls__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_cumulative_fill_nulls__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_derived_fill_nulls_for_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_derived_fill_nulls_for_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_derived_fill_nulls_for_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_derived_fill_nulls_for_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_join_to_time_spine_with_filters__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_join_to_time_spine_with_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_join_to_time_spine_with_filters__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_join_to_time_spine_with_filters__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_join_to_time_spine_with_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_join_to_time_spine_with_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_join_to_time_spine_with_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_join_to_time_spine_with_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_month__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_month__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_month__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Redshift/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_fill_nulls__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_fill_nulls__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_fill_nulls__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_fill_nulls__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_fill_nulls__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_fill_nulls__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_fill_nulls__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_cumulative_fill_nulls__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_derived_fill_nulls_for_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_derived_fill_nulls_for_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_derived_fill_nulls_for_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_derived_fill_nulls_for_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_with_filters__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_with_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_with_filters__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_with_filters__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_with_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_with_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_with_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_join_to_time_spine_with_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_month__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_month__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_month__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Snowflake/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_cumulative_fill_nulls__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_cumulative_fill_nulls__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_cumulative_fill_nulls__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_cumulative_fill_nulls__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_cumulative_fill_nulls__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_cumulative_fill_nulls__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_cumulative_fill_nulls__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_cumulative_fill_nulls__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_derived_fill_nulls_for_one_input_metric__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_derived_fill_nulls_for_one_input_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_derived_fill_nulls_for_one_input_metric__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_derived_fill_nulls_for_one_input_metric__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_derived_fill_nulls_for_one_input_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_join_to_time_spine_with_filters__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_join_to_time_spine_with_filters__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_join_to_time_spine_with_filters__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_join_to_time_spine_with_filters__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_join_to_time_spine_with_filters__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_join_to_time_spine_with_filters__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_join_to_time_spine_with_filters__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_join_to_time_spine_with_filters__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_month__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_month__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_month__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_month__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_month__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_month__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_categorical_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_non_metric_time__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_with_0_with_non_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_without_time_spine__plan0.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_without_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_without_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_without_time_spine__plan0.sql
diff --git a/tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_fill_nulls_with_rendering.py/SqlQueryPlan/Trino/test_simple_fill_nulls_without_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_offset_window_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_multiple_date_parts__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_multiple_date_parts__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_multiple_date_parts__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_multiple_date_parts__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_multiple_date_parts__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/BigQuery/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_offset_window_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_multiple_date_parts__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_multiple_date_parts__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_multiple_date_parts__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_multiple_date_parts__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_multiple_date_parts__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Databricks/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_offset_window_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_multiple_date_parts__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_multiple_date_parts__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_multiple_date_parts__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_multiple_date_parts__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_multiple_date_parts__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/DuckDB/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_offset_window_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_multiple_date_parts__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_multiple_date_parts__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_multiple_date_parts__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_multiple_date_parts__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_multiple_date_parts__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Postgres/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_offset_window_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_multiple_date_parts__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_multiple_date_parts__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_multiple_date_parts__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_multiple_date_parts__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_multiple_date_parts__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Redshift/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_offset_window_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_multiple_date_parts__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_multiple_date_parts__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_multiple_date_parts__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_multiple_date_parts__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_multiple_date_parts__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Snowflake/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_offset_window_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_date_part__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_date_part__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_date_part__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_date_part__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_date_part__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_date_part__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_date_part__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_date_part__plan0_optimized.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_multiple_date_parts__plan0.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_multiple_date_parts__plan0.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_multiple_date_parts__plan0.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_multiple_date_parts__plan0.sql
diff --git a/tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_multiple_date_parts__plan0_optimized.sql b/tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_granularity_date_part_rendering.py/SqlQueryPlan/Trino/test_simple_query_with_multiple_date_parts__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_output.py/str/BigQuery/test_metric_with_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/BigQuery/test_metric_with_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/BigQuery/test_metric_with_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/BigQuery/test_metric_with_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/BigQuery/test_query_with_simple_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/BigQuery/test_query_with_simple_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/BigQuery/test_query_with_simple_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/BigQuery/test_query_with_simple_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/Databricks/test_metric_with_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/Databricks/test_metric_with_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/Databricks/test_metric_with_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/Databricks/test_metric_with_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/Databricks/test_query_with_simple_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/Databricks/test_query_with_simple_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/Databricks/test_query_with_simple_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/Databricks/test_query_with_simple_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/DuckDB/test_metric_with_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/DuckDB/test_metric_with_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/DuckDB/test_metric_with_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/DuckDB/test_metric_with_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/DuckDB/test_query_with_simple_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/DuckDB/test_query_with_simple_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/DuckDB/test_query_with_simple_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/DuckDB/test_query_with_simple_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/Postgres/test_metric_with_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/Postgres/test_metric_with_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/Postgres/test_metric_with_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/Postgres/test_metric_with_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/Postgres/test_query_with_simple_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/Postgres/test_query_with_simple_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/Postgres/test_query_with_simple_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/Postgres/test_query_with_simple_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/Redshift/test_metric_with_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/Redshift/test_metric_with_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/Redshift/test_metric_with_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/Redshift/test_metric_with_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/Redshift/test_query_with_simple_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/Redshift/test_query_with_simple_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/Redshift/test_query_with_simple_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/Redshift/test_query_with_simple_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/Snowflake/test_metric_with_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/Snowflake/test_metric_with_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/Snowflake/test_metric_with_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/Snowflake/test_metric_with_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/Snowflake/test_query_with_simple_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/Snowflake/test_query_with_simple_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/Snowflake/test_query_with_simple_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/Snowflake/test_query_with_simple_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/Trino/test_metric_with_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/Trino/test_metric_with_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/Trino/test_metric_with_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/Trino/test_metric_with_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_output.py/str/Trino/test_query_with_simple_metric_in_where_filter__query_output.txt b/tests_metricflow/snapshots/test_metric_filter_output.py/str/Trino/test_query_with_simple_metric_in_where_filter__query_output.txt
similarity index 100%
rename from tests/snapshots/test_metric_filter_output.py/str/Trino/test_query_with_simple_metric_in_where_filter__query_output.txt
rename to tests_metricflow/snapshots/test_metric_filter_output.py/str/Trino/test_query_with_simple_metric_in_where_filter__query_output.txt
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values_query_with_metric_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values_query_with_metric_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values_query_with_metric_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values_query_with_metric_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values_query_with_metric_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_cumulative_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_cumulative_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_cumulative_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_cumulative_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_derived_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_derived_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_derived_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_derived_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_multiple_metrics_in_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_multiple_metrics_in_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_multiple_metrics_in_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_multiple_metrics_in_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_ratio_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_ratio_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_ratio_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_ratio_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_simple_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_simple_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_simple_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_simple_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/BigQuery/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_distinct_values_query_with_metric_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_distinct_values_query_with_metric_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_distinct_values_query_with_metric_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_distinct_values_query_with_metric_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_distinct_values_query_with_metric_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_metric_with_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_metric_with_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_metric_with_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_metric_with_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_metric_with_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_metric_with_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_metric_with_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_metric_with_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_cumulative_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_cumulative_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_cumulative_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_cumulative_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_derived_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_derived_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_derived_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_derived_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_multiple_metrics_in_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_multiple_metrics_in_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_multiple_metrics_in_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_multiple_metrics_in_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_ratio_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_ratio_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_ratio_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_ratio_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_simple_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_simple_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_simple_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_simple_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Databricks/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values_query_with_metric_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values_query_with_metric_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values_query_with_metric_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values_query_with_metric_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values_query_with_metric_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_cumulative_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_cumulative_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_cumulative_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_cumulative_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_derived_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_derived_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_derived_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_derived_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_multiple_metrics_in_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_multiple_metrics_in_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_multiple_metrics_in_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_multiple_metrics_in_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_ratio_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_ratio_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_ratio_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_ratio_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_simple_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_simple_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_simple_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_simple_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/DuckDB/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_distinct_values_query_with_metric_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_distinct_values_query_with_metric_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_distinct_values_query_with_metric_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_distinct_values_query_with_metric_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_distinct_values_query_with_metric_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_metric_with_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_metric_with_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_metric_with_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_metric_with_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_metric_with_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_metric_with_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_metric_with_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_metric_with_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_cumulative_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_cumulative_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_cumulative_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_cumulative_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_derived_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_derived_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_derived_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_derived_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_multiple_metrics_in_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_multiple_metrics_in_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_multiple_metrics_in_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_multiple_metrics_in_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_ratio_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_ratio_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_ratio_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_ratio_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_simple_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_simple_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_simple_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_simple_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Postgres/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_distinct_values_query_with_metric_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_distinct_values_query_with_metric_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_distinct_values_query_with_metric_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_distinct_values_query_with_metric_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_distinct_values_query_with_metric_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_metric_with_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_metric_with_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_metric_with_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_metric_with_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_metric_with_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_metric_with_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_metric_with_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_metric_with_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_cumulative_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_cumulative_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_cumulative_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_cumulative_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_derived_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_derived_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_derived_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_derived_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_multiple_metrics_in_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_multiple_metrics_in_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_multiple_metrics_in_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_multiple_metrics_in_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_ratio_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_ratio_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_ratio_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_ratio_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_simple_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_simple_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_simple_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_simple_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Redshift/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values_query_with_metric_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values_query_with_metric_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values_query_with_metric_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values_query_with_metric_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values_query_with_metric_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_cumulative_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_cumulative_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_cumulative_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_cumulative_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_derived_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_derived_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_derived_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_derived_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_multiple_metrics_in_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_multiple_metrics_in_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_multiple_metrics_in_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_multiple_metrics_in_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_ratio_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_ratio_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_ratio_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_ratio_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_simple_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_simple_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_simple_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_simple_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Snowflake/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_distinct_values_query_with_metric_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_distinct_values_query_with_metric_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_distinct_values_query_with_metric_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_distinct_values_query_with_metric_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_distinct_values_query_with_metric_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_distinct_values_query_with_metric_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_filter_by_metric_in_same_semantic_model_as_queried_metric__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_metric_with_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_metric_with_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_metric_with_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_metric_with_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_metric_with_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_metric_with_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_metric_with_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_metric_with_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_cumulative_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_cumulative_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_cumulative_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_cumulative_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_cumulative_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_derived_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_derived_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_derived_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_derived_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_derived_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_multiple_metrics_in_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_multiple_metrics_in_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_multiple_metrics_in_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_multiple_metrics_in_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_multiple_metrics_in_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_ratio_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_ratio_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_ratio_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_ratio_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_ratio_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_simple_metric_in_where_filter__plan0.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_simple_metric_in_where_filter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_simple_metric_in_where_filter__plan0.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_simple_metric_in_where_filter__plan0.sql
diff --git a/tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_filter_rendering.py/SqlQueryPlan/Trino/test_query_with_simple_metric_in_where_filter__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_simple_query_with_metric_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_simple_query_with_metric_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_simple_query_with_metric_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_simple_query_with_metric_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_simple_query_with_metric_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/BigQuery/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_simple_query_with_metric_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_simple_query_with_metric_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_simple_query_with_metric_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_simple_query_with_metric_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_simple_query_with_metric_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Databricks/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_simple_query_with_metric_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_simple_query_with_metric_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_simple_query_with_metric_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_simple_query_with_metric_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_simple_query_with_metric_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/DuckDB/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_simple_query_with_metric_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_simple_query_with_metric_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_simple_query_with_metric_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_simple_query_with_metric_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_simple_query_with_metric_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Postgres/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_simple_query_with_metric_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_simple_query_with_metric_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_simple_query_with_metric_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_simple_query_with_metric_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_simple_query_with_metric_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Redshift/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_simple_query_with_metric_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_simple_query_with_metric_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_simple_query_with_metric_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_simple_query_with_metric_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_simple_query_with_metric_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Snowflake/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_non_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_primary_time__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_metric_time_dimension_transform_node_using_primary_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_simple_query_with_metric_time_dimension__plan0.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_simple_query_with_metric_time_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_simple_query_with_metric_time_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_simple_query_with_metric_time_dimension__plan0.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_simple_query_with_metric_time_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/Trino/test_simple_query_with_metric_time_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.xml b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.xml
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.xml
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_metric_time_dimension_transform_node_using_non_primary_time__plan0.xml
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_metric_time_dimension_transform_node_using_primary_time__plan0.xml b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_metric_time_dimension_transform_node_using_primary_time__plan0.xml
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_metric_time_dimension_transform_node_using_primary_time__plan0.xml
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_metric_time_dimension_transform_node_using_primary_time__plan0.xml
diff --git a/tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_simple_query_with_metric_time_dimension__plan0.xml b/tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_simple_query_with_metric_time_dimension__plan0.xml
similarity index 100%
rename from tests/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_simple_query_with_metric_time_dimension__plan0.xml
rename to tests_metricflow/snapshots/test_metric_time_dimension_to_sql.py/SqlQueryPlan/test_simple_query_with_metric_time_dimension__plan0.xml
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_dimensions_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_dimensions_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_dimensions_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_dimensions_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_dimensions_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_dimensions_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_dimensions_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_dimensions_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_only__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_only__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_only__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_only__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_only__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_only__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_only__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_only__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_quarter_alone__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_quarter_alone__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_quarter_alone__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_quarter_alone__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_quarter_alone__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_quarter_alone__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_quarter_alone__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_quarter_alone__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_with_other_dimensions__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_with_other_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_with_other_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_with_other_dimensions__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_with_other_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_with_other_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_with_other_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/BigQuery/test_metric_time_with_other_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_dimensions_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_dimensions_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_dimensions_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_dimensions_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_dimensions_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_dimensions_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_dimensions_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_dimensions_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_only__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_only__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_only__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_only__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_only__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_only__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_only__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_only__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_quarter_alone__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_quarter_alone__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_quarter_alone__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_quarter_alone__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_quarter_alone__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_quarter_alone__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_quarter_alone__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_quarter_alone__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_with_other_dimensions__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_with_other_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_with_other_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_with_other_dimensions__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_with_other_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_with_other_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_with_other_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Databricks/test_metric_time_with_other_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_dimensions_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_dimensions_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_dimensions_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_dimensions_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_dimensions_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_dimensions_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_dimensions_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_dimensions_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_only__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_only__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_only__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_only__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_only__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_only__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_only__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_only__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_quarter_alone__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_quarter_alone__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_quarter_alone__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_quarter_alone__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_quarter_alone__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_quarter_alone__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_quarter_alone__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_quarter_alone__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_with_other_dimensions__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_with_other_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_with_other_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_with_other_dimensions__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_with_other_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_with_other_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_with_other_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/DuckDB/test_metric_time_with_other_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_dimensions_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_dimensions_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_dimensions_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_dimensions_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_dimensions_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_dimensions_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_dimensions_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_dimensions_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_only__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_only__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_only__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_only__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_only__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_only__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_only__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_only__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_quarter_alone__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_quarter_alone__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_quarter_alone__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_quarter_alone__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_quarter_alone__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_quarter_alone__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_quarter_alone__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_quarter_alone__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_with_other_dimensions__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_with_other_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_with_other_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_with_other_dimensions__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_with_other_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_with_other_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_with_other_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Postgres/test_metric_time_with_other_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_dimensions_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_dimensions_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_dimensions_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_dimensions_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_dimensions_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_dimensions_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_dimensions_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_dimensions_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_only__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_only__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_only__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_only__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_only__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_only__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_only__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_only__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_quarter_alone__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_quarter_alone__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_quarter_alone__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_quarter_alone__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_quarter_alone__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_quarter_alone__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_quarter_alone__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_quarter_alone__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_with_other_dimensions__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_with_other_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_with_other_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_with_other_dimensions__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_with_other_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_with_other_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_with_other_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Redshift/test_metric_time_with_other_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_dimensions_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_dimensions_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_dimensions_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_dimensions_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_dimensions_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_dimensions_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_dimensions_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_dimensions_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_only__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_only__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_only__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_only__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_only__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_only__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_only__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_only__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_quarter_alone__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_quarter_alone__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_quarter_alone__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_quarter_alone__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_quarter_alone__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_quarter_alone__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_quarter_alone__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_quarter_alone__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_with_other_dimensions__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_with_other_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_with_other_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_with_other_dimensions__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_with_other_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_with_other_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_with_other_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Snowflake/test_metric_time_with_other_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_dimensions_with_time_constraint__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_dimensions_with_time_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_dimensions_with_time_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_dimensions_with_time_constraint__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_dimensions_with_time_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_dimensions_with_time_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_dimensions_with_time_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_dimensions_with_time_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_only__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_only__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_only__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_only__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_only__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_only__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_only__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_only__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_quarter_alone__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_quarter_alone__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_quarter_alone__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_quarter_alone__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_quarter_alone__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_quarter_alone__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_quarter_alone__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_quarter_alone__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_with_other_dimensions__plan0.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_with_other_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_with_other_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_with_other_dimensions__plan0.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_with_other_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_with_other_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_with_other_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/Trino/test_metric_time_with_other_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_dimensions_with_time_constraint__plan0.xml b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_dimensions_with_time_constraint__plan0.xml
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_dimensions_with_time_constraint__plan0.xml
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_dimensions_with_time_constraint__plan0.xml
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_only__plan0.xml b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_only__plan0.xml
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_only__plan0.xml
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_only__plan0.xml
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_quarter_alone__plan0.xml b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_quarter_alone__plan0.xml
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_quarter_alone__plan0.xml
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_quarter_alone__plan0.xml
diff --git a/tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_with_other_dimensions__plan0.xml b/tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_with_other_dimensions__plan0.xml
similarity index 100%
rename from tests/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_with_other_dimensions__plan0.xml
rename to tests_metricflow/snapshots/test_metric_time_without_metrics.py/SqlQueryPlan/test_metric_time_with_other_dimensions__plan0.xml
diff --git a/tests/snapshots/test_mf_engine.py/list/test_list_dimensions__result0.txt b/tests_metricflow/snapshots/test_mf_engine.py/list/test_list_dimensions__result0.txt
similarity index 100%
rename from tests/snapshots/test_mf_engine.py/list/test_list_dimensions__result0.txt
rename to tests_metricflow/snapshots/test_mf_engine.py/list/test_list_dimensions__result0.txt
diff --git a/tests/snapshots/test_node_data_set.py/list/test_joined_node_data_set__result0.txt b/tests_metricflow/snapshots/test_node_data_set.py/list/test_joined_node_data_set__result0.txt
similarity index 100%
rename from tests/snapshots/test_node_data_set.py/list/test_joined_node_data_set__result0.txt
rename to tests_metricflow/snapshots/test_node_data_set.py/list/test_joined_node_data_set__result0.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/BigQuery/test_offset_to_grain_with_multiple_granularities__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/BigQuery/test_offset_to_grain_with_multiple_granularities__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/BigQuery/test_offset_to_grain_with_multiple_granularities__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/BigQuery/test_offset_to_grain_with_multiple_granularities__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/BigQuery/test_offset_to_grain_with_single_granularity__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/BigQuery/test_offset_to_grain_with_single_granularity__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/BigQuery/test_offset_to_grain_with_single_granularity__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/BigQuery/test_offset_to_grain_with_single_granularity__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/Databricks/test_offset_to_grain_with_multiple_granularities__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/Databricks/test_offset_to_grain_with_multiple_granularities__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/Databricks/test_offset_to_grain_with_multiple_granularities__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/Databricks/test_offset_to_grain_with_multiple_granularities__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/Databricks/test_offset_to_grain_with_single_granularity__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/Databricks/test_offset_to_grain_with_single_granularity__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/Databricks/test_offset_to_grain_with_single_granularity__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/Databricks/test_offset_to_grain_with_single_granularity__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/DuckDB/test_offset_to_grain_with_multiple_granularities__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/DuckDB/test_offset_to_grain_with_multiple_granularities__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/DuckDB/test_offset_to_grain_with_multiple_granularities__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/DuckDB/test_offset_to_grain_with_multiple_granularities__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/DuckDB/test_offset_to_grain_with_single_granularity__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/DuckDB/test_offset_to_grain_with_single_granularity__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/DuckDB/test_offset_to_grain_with_single_granularity__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/DuckDB/test_offset_to_grain_with_single_granularity__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/Postgres/test_offset_to_grain_with_multiple_granularities__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/Postgres/test_offset_to_grain_with_multiple_granularities__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/Postgres/test_offset_to_grain_with_multiple_granularities__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/Postgres/test_offset_to_grain_with_multiple_granularities__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/Postgres/test_offset_to_grain_with_single_granularity__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/Postgres/test_offset_to_grain_with_single_granularity__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/Postgres/test_offset_to_grain_with_single_granularity__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/Postgres/test_offset_to_grain_with_single_granularity__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/Redshift/test_offset_to_grain_with_multiple_granularities__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/Redshift/test_offset_to_grain_with_multiple_granularities__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/Redshift/test_offset_to_grain_with_multiple_granularities__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/Redshift/test_offset_to_grain_with_multiple_granularities__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/Redshift/test_offset_to_grain_with_single_granularity__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/Redshift/test_offset_to_grain_with_single_granularity__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/Redshift/test_offset_to_grain_with_single_granularity__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/Redshift/test_offset_to_grain_with_single_granularity__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/Snowflake/test_offset_to_grain_with_multiple_granularities__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/Snowflake/test_offset_to_grain_with_multiple_granularities__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/Snowflake/test_offset_to_grain_with_multiple_granularities__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/Snowflake/test_offset_to_grain_with_multiple_granularities__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/Snowflake/test_offset_to_grain_with_single_granularity__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/Snowflake/test_offset_to_grain_with_single_granularity__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/Snowflake/test_offset_to_grain_with_single_granularity__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/Snowflake/test_offset_to_grain_with_single_granularity__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/Trino/test_offset_to_grain_with_multiple_granularities__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/Trino/test_offset_to_grain_with_multiple_granularities__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/Trino/test_offset_to_grain_with_multiple_granularities__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/Trino/test_offset_to_grain_with_multiple_granularities__query_output.txt
diff --git a/tests/snapshots/test_offset_metrics.py/str/Trino/test_offset_to_grain_with_single_granularity__query_output.txt b/tests_metricflow/snapshots/test_offset_metrics.py/str/Trino/test_offset_to_grain_with_single_granularity__query_output.txt
similarity index 100%
rename from tests/snapshots/test_offset_metrics.py/str/Trino/test_offset_to_grain_with_single_granularity__query_output.txt
rename to tests_metricflow/snapshots/test_offset_metrics.py/str/Trino/test_offset_to_grain_with_single_granularity__query_output.txt
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_common_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_common_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_common_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_common_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_common_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_common_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_common_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_common_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_distinct_values__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_on_join_dim__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_on_join_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_on_join_dim__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_on_join_dim__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_join_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_join_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_join_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_join_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_join_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_join_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_join_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_join_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_limit_rows__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_limit_rows__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_limit_rows__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_limit_rows__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_limit_rows__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_limit_rows__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_limit_rows__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_limit_rows__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_local_dimension_using_local_entity__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_local_dimension_using_local_entity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_local_dimension_using_local_entity__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_local_dimension_using_local_entity__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_local_dimension_using_local_entity__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_local_dimension_using_local_entity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_local_dimension_using_local_entity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_local_dimension_using_local_entity__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_reused_measure__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time_week__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time_week__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time_week__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time_week__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time_week__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time_week__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time_week__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_metric_time_week__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_categorical__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_categorical__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_categorical__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_categorical__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_categorical__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_categorical__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_categorical__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_categorical__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time_quarter__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time_quarter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time_quarter__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time_quarter__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time_quarter__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time_quarter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time_quarter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_min_max_only_time_quarter__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_through_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_through_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_through_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_through_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_through_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_through_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_through_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_through_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multi_hop_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multihop_node__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multihop_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multihop_node__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multihop_node__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multihop_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multihop_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multihop_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multihop_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multiple_metrics_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multiple_metrics_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multiple_metrics_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multiple_metrics_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multiple_metrics_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multiple_metrics_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multiple_metrics_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_multiple_metrics_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_partitioned_join__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_partitioned_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_partitioned_join__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_partitioned_join__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_partitioned_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_partitioned_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_partitioned_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/BigQuery/test_partitioned_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_common_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_common_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_common_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_common_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_common_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_common_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_common_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_common_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_distinct_values__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_on_join_dim__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_on_join_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_on_join_dim__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_on_join_dim__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_join_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_join_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_join_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_join_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_join_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_join_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_join_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_join_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_limit_rows__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_limit_rows__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_limit_rows__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_limit_rows__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_limit_rows__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_limit_rows__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_limit_rows__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_limit_rows__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_local_dimension_using_local_entity__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_local_dimension_using_local_entity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_local_dimension_using_local_entity__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_local_dimension_using_local_entity__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_local_dimension_using_local_entity__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_local_dimension_using_local_entity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_local_dimension_using_local_entity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_local_dimension_using_local_entity__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_reused_measure__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time_week__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time_week__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time_week__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time_week__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time_week__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time_week__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time_week__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_metric_time_week__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_categorical__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_categorical__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_categorical__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_categorical__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_categorical__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_categorical__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_categorical__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_categorical__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time_quarter__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time_quarter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time_quarter__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time_quarter__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time_quarter__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time_quarter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time_quarter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_min_max_only_time_quarter__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_through_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_through_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_through_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_through_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_through_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_through_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_through_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_through_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multi_hop_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multihop_node__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multihop_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multihop_node__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multihop_node__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multihop_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multihop_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multihop_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multihop_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multiple_metrics_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multiple_metrics_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multiple_metrics_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multiple_metrics_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multiple_metrics_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multiple_metrics_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multiple_metrics_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_multiple_metrics_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_partitioned_join__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_partitioned_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_partitioned_join__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_partitioned_join__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_partitioned_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_partitioned_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_partitioned_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Databricks/test_partitioned_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_common_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_common_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_common_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_common_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_common_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_common_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_common_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_common_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_distinct_values__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_on_join_dim__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_on_join_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_on_join_dim__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_on_join_dim__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_join_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_join_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_join_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_join_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_join_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_join_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_join_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_join_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_limit_rows__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_limit_rows__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_limit_rows__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_limit_rows__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_limit_rows__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_limit_rows__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_limit_rows__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_limit_rows__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_local_dimension_using_local_entity__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_local_dimension_using_local_entity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_local_dimension_using_local_entity__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_local_dimension_using_local_entity__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_local_dimension_using_local_entity__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_local_dimension_using_local_entity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_local_dimension_using_local_entity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_local_dimension_using_local_entity__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_reused_measure__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time_week__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time_week__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time_week__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time_week__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time_week__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time_week__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time_week__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_metric_time_week__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_categorical__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_categorical__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_categorical__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_categorical__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_categorical__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_categorical__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_categorical__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_categorical__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time_quarter__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time_quarter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time_quarter__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time_quarter__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time_quarter__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time_quarter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time_quarter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_min_max_only_time_quarter__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_through_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_through_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_through_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_through_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_through_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_through_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_through_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_through_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multi_hop_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multihop_node__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multihop_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multihop_node__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multihop_node__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multihop_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multihop_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multihop_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multihop_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multiple_metrics_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multiple_metrics_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multiple_metrics_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multiple_metrics_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multiple_metrics_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multiple_metrics_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multiple_metrics_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_multiple_metrics_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_partitioned_join__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_partitioned_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_partitioned_join__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_partitioned_join__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_partitioned_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_partitioned_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_partitioned_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/DuckDB/test_partitioned_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_common_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_common_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_common_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_common_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_common_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_common_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_common_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_common_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_distinct_values__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_on_join_dim__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_on_join_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_on_join_dim__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_on_join_dim__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_join_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_join_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_join_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_join_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_join_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_join_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_join_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_join_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_limit_rows__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_limit_rows__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_limit_rows__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_limit_rows__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_limit_rows__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_limit_rows__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_limit_rows__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_limit_rows__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_local_dimension_using_local_entity__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_local_dimension_using_local_entity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_local_dimension_using_local_entity__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_local_dimension_using_local_entity__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_local_dimension_using_local_entity__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_local_dimension_using_local_entity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_local_dimension_using_local_entity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_local_dimension_using_local_entity__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_reused_measure__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time_week__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time_week__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time_week__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time_week__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time_week__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time_week__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time_week__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_metric_time_week__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_categorical__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_categorical__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_categorical__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_categorical__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_categorical__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_categorical__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_categorical__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_categorical__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time_quarter__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time_quarter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time_quarter__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time_quarter__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time_quarter__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time_quarter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time_quarter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_min_max_only_time_quarter__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_through_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_through_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_through_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_through_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_through_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_through_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_through_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_through_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multi_hop_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multihop_node__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multihop_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multihop_node__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multihop_node__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multihop_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multihop_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multihop_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multihop_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multiple_metrics_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multiple_metrics_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multiple_metrics_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multiple_metrics_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multiple_metrics_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multiple_metrics_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multiple_metrics_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_multiple_metrics_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_partitioned_join__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_partitioned_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_partitioned_join__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_partitioned_join__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_partitioned_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_partitioned_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_partitioned_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Postgres/test_partitioned_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_common_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_common_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_common_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_common_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_common_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_common_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_common_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_common_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_distinct_values__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_on_join_dim__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_on_join_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_on_join_dim__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_on_join_dim__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_join_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_join_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_join_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_join_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_join_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_join_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_join_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_join_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_limit_rows__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_limit_rows__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_limit_rows__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_limit_rows__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_limit_rows__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_limit_rows__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_limit_rows__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_limit_rows__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_local_dimension_using_local_entity__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_local_dimension_using_local_entity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_local_dimension_using_local_entity__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_local_dimension_using_local_entity__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_local_dimension_using_local_entity__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_local_dimension_using_local_entity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_local_dimension_using_local_entity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_local_dimension_using_local_entity__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_reused_measure__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time_week__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time_week__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time_week__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time_week__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time_week__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time_week__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time_week__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_metric_time_week__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_categorical__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_categorical__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_categorical__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_categorical__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_categorical__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_categorical__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_categorical__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_categorical__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time_quarter__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time_quarter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time_quarter__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time_quarter__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time_quarter__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time_quarter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time_quarter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_min_max_only_time_quarter__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_through_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_through_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_through_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_through_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_through_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_through_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_through_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_through_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multi_hop_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multihop_node__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multihop_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multihop_node__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multihop_node__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multihop_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multihop_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multihop_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multihop_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multiple_metrics_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multiple_metrics_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multiple_metrics_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multiple_metrics_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multiple_metrics_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multiple_metrics_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multiple_metrics_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_multiple_metrics_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_partitioned_join__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_partitioned_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_partitioned_join__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_partitioned_join__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_partitioned_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_partitioned_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_partitioned_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Redshift/test_partitioned_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_common_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_common_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_common_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_common_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_common_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_common_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_common_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_common_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_distinct_values__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_on_join_dim__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_on_join_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_on_join_dim__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_on_join_dim__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_join_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_join_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_join_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_join_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_join_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_join_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_join_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_join_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_limit_rows__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_limit_rows__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_limit_rows__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_limit_rows__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_limit_rows__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_limit_rows__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_limit_rows__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_limit_rows__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_local_dimension_using_local_entity__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_local_dimension_using_local_entity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_local_dimension_using_local_entity__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_local_dimension_using_local_entity__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_local_dimension_using_local_entity__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_local_dimension_using_local_entity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_local_dimension_using_local_entity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_local_dimension_using_local_entity__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_reused_measure__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time_week__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time_week__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time_week__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time_week__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time_week__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time_week__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time_week__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_metric_time_week__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_categorical__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_categorical__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_categorical__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_categorical__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_categorical__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_categorical__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_categorical__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_categorical__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time_quarter__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time_quarter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time_quarter__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time_quarter__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time_quarter__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time_quarter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time_quarter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_min_max_only_time_quarter__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_through_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_through_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_through_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_through_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_through_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_through_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_through_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_through_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multi_hop_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multihop_node__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multihop_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multihop_node__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multihop_node__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multihop_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multihop_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multihop_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multihop_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multiple_metrics_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multiple_metrics_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multiple_metrics_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multiple_metrics_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multiple_metrics_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multiple_metrics_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multiple_metrics_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_multiple_metrics_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_partitioned_join__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_partitioned_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_partitioned_join__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_partitioned_join__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_partitioned_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_partitioned_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_partitioned_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Snowflake/test_partitioned_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_common_semantic_model__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_common_semantic_model__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_common_semantic_model__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_common_semantic_model__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_common_semantic_model__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_common_semantic_model__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_common_semantic_model__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_common_semantic_model__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_distinct_values__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_on_join_dim__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_on_join_dim__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_on_join_dim__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_on_join_dim__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_filter_with_where_constraint_on_join_dim__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_join_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_join_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_join_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_join_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_join_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_join_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_join_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_join_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_limit_rows__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_limit_rows__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_limit_rows__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_limit_rows__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_limit_rows__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_limit_rows__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_limit_rows__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_limit_rows__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_local_dimension_using_local_entity__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_local_dimension_using_local_entity__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_local_dimension_using_local_entity__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_local_dimension_using_local_entity__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_local_dimension_using_local_entity__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_local_dimension_using_local_entity__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_local_dimension_using_local_entity__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_local_dimension_using_local_entity__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_reused_measure__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_measure_constraint_with_single_expr_and_alias__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_metric_with_measures_from_multiple_sources_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time_week__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time_week__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time_week__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time_week__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time_week__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time_week__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time_week__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_metric_time_week__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_categorical__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_categorical__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_categorical__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_categorical__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_categorical__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_categorical__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_categorical__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_categorical__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time_quarter__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time_quarter__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time_quarter__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time_quarter__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time_quarter__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time_quarter__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time_quarter__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_min_max_only_time_quarter__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_through_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_through_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_through_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_through_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_through_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_through_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_through_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_through_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_to_scd_dimension__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_to_scd_dimension__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_to_scd_dimension__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_to_scd_dimension__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_to_scd_dimension__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_to_scd_dimension__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_to_scd_dimension__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multi_hop_to_scd_dimension__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multihop_node__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multihop_node__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multihop_node__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multihop_node__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multihop_node__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multihop_node__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multihop_node__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multihop_node__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multiple_metrics_no_dimensions__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multiple_metrics_no_dimensions__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multiple_metrics_no_dimensions__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multiple_metrics_no_dimensions__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multiple_metrics_no_dimensions__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multiple_metrics_no_dimensions__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multiple_metrics_no_dimensions__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_multiple_metrics_no_dimensions__plan0_optimized.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_partitioned_join__plan0.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_partitioned_join__plan0.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_partitioned_join__plan0.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_partitioned_join__plan0.sql
diff --git a/tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_partitioned_join__plan0_optimized.sql b/tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_partitioned_join__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_partitioned_join__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_query_rendering.py/SqlQueryPlan/Trino/test_partitioned_join__plan0_optimized.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/BigQuery/test_id_enumeration__query.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/BigQuery/test_id_enumeration__query.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/BigQuery/test_id_enumeration__query.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/BigQuery/test_id_enumeration__query.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/BigQuery/test_render_query__query0.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/BigQuery/test_render_query__query0.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/BigQuery/test_render_query__query0.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/BigQuery/test_render_query__query0.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/Databricks/test_id_enumeration__query.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/Databricks/test_id_enumeration__query.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/Databricks/test_id_enumeration__query.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/Databricks/test_id_enumeration__query.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/Databricks/test_render_query__query0.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/Databricks/test_render_query__query0.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/Databricks/test_render_query__query0.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/Databricks/test_render_query__query0.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/DuckDB/test_id_enumeration__query.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/DuckDB/test_id_enumeration__query.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/DuckDB/test_id_enumeration__query.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/DuckDB/test_id_enumeration__query.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/DuckDB/test_render_query__query0.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/DuckDB/test_render_query__query0.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/DuckDB/test_render_query__query0.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/DuckDB/test_render_query__query0.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/Postgres/test_id_enumeration__query.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/Postgres/test_id_enumeration__query.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/Postgres/test_id_enumeration__query.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/Postgres/test_id_enumeration__query.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/Postgres/test_render_query__query0.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/Postgres/test_render_query__query0.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/Postgres/test_render_query__query0.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/Postgres/test_render_query__query0.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/Redshift/test_id_enumeration__query.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/Redshift/test_id_enumeration__query.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/Redshift/test_id_enumeration__query.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/Redshift/test_id_enumeration__query.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/Redshift/test_render_query__query0.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/Redshift/test_render_query__query0.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/Redshift/test_render_query__query0.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/Redshift/test_render_query__query0.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/Snowflake/test_id_enumeration__query.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/Snowflake/test_id_enumeration__query.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/Snowflake/test_id_enumeration__query.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/Snowflake/test_id_enumeration__query.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/Snowflake/test_render_query__query0.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/Snowflake/test_render_query__query0.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/Snowflake/test_render_query__query0.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/Snowflake/test_render_query__query0.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/Trino/test_id_enumeration__query.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/Trino/test_id_enumeration__query.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/Trino/test_id_enumeration__query.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/Trino/test_id_enumeration__query.sql
diff --git a/tests/snapshots/test_rendered_query.py/str/Trino/test_render_query__query0.sql b/tests_metricflow/snapshots/test_rendered_query.py/str/Trino/test_render_query__query0.sql
similarity index 100%
rename from tests/snapshots/test_rendered_query.py/str/Trino/test_render_query__query0.sql
rename to tests_metricflow/snapshots/test_rendered_query.py/str/Trino/test_render_query__query0.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_colliding_alias__after_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_colliding_alias__after_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_colliding_alias__after_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_colliding_alias__after_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_colliding_alias__before_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_colliding_alias__before_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_colliding_alias__before_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_colliding_alias__before_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_all_join_sources__after_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_all_join_sources__after_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_all_join_sources__after_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_all_join_sources__after_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_all_join_sources__before_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_all_join_sources__before_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_all_join_sources__before_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_all_join_sources__before_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_join__after_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_join__after_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_join__after_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_join__after_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_join__before_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_join__before_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_join__before_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_join__before_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__after_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__after_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__after_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__after_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__before_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__before_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__before_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__before_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_left_node_statement__after_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_left_node_statement__after_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_left_node_statement__after_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_left_node_statement__after_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_left_node_statement__before_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_left_node_statement__before_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_left_node_statement__before_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_left_node_statement__before_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_statement__after_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_statement__after_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_statement__after_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_statement__after_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_statement__before_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_statement__before_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_statement__before_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_reducing_join_statement__before_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_rewriting_distinct_select_node_is_not_reduced__after_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_rewriting_distinct_select_node_is_not_reduced__after_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_rewriting_distinct_select_node_is_not_reduced__after_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_rewriting_distinct_select_node_is_not_reduced__after_reducing.sql
diff --git a/tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_rewriting_distinct_select_node_is_not_reduced__before_reducing.sql b/tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_rewriting_distinct_select_node_is_not_reduced__before_reducing.sql
similarity index 100%
rename from tests/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_rewriting_distinct_select_node_is_not_reduced__before_reducing.sql
rename to tests_metricflow/snapshots/test_rewriting_sub_query_reducer.py/SqlQueryPlan/test_rewriting_distinct_select_node_is_not_reduced__before_reducing.sql
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_1_semantic_model__dfp_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_1_semantic_model__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_1_semantic_model__dfp_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_1_semantic_model__dfp_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_1_semantic_model__dfpo_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_1_semantic_model__dfpo_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_1_semantic_model__dfpo_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_1_semantic_model__dfpo_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_2_semantic_models__dfp_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_2_semantic_models__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_2_semantic_models__dfp_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_2_semantic_models__dfp_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_2_semantic_models__dfpo_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_2_semantic_models__dfpo_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_2_semantic_models__dfpo_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_metrics_from_2_semantic_models__dfpo_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_ratio_metrics_from_1_semantic_model__dfp_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_ratio_metrics_from_1_semantic_model__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_ratio_metrics_from_1_semantic_model__dfp_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_ratio_metrics_from_1_semantic_model__dfp_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_ratio_metrics_from_1_semantic_model__dfpo_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_ratio_metrics_from_1_semantic_model__dfpo_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_ratio_metrics_from_1_semantic_model__dfpo_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_2_ratio_metrics_from_1_semantic_model__dfpo_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_3_metrics_from_2_semantic_models__dfp_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_3_metrics_from_2_semantic_models__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_3_metrics_from_2_semantic_models__dfp_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_3_metrics_from_2_semantic_models__dfp_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_3_metrics_from_2_semantic_models__dfpo_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_3_metrics_from_2_semantic_models__dfpo_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_3_metrics_from_2_semantic_models__dfpo_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_3_metrics_from_2_semantic_models__dfpo_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_constrained_metric_not_combined__dfp_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_constrained_metric_not_combined__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_constrained_metric_not_combined__dfp_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_constrained_metric_not_combined__dfp_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_constrained_metric_not_combined__dfpo_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_constrained_metric_not_combined__dfpo_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_constrained_metric_not_combined__dfpo_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_constrained_metric_not_combined__dfpo_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric__dfp_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric__dfp_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric__dfp_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric__dfpo_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric__dfpo_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric__dfpo_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric__dfpo_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric_with_non_derived_metric__dfp_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric_with_non_derived_metric__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric_with_non_derived_metric__dfp_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric_with_non_derived_metric__dfp_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric_with_non_derived_metric__dfpo_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric_with_non_derived_metric__dfpo_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric_with_non_derived_metric__dfpo_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_derived_metric_with_non_derived_metric__dfpo_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_duplicate_measures__dfp_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_duplicate_measures__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_duplicate_measures__dfp_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_duplicate_measures__dfp_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_duplicate_measures__dfpo_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_duplicate_measures__dfpo_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_duplicate_measures__dfpo_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_duplicate_measures__dfpo_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_nested_derived_metric__dfp_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_nested_derived_metric__dfp_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_nested_derived_metric__dfp_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_nested_derived_metric__dfp_0.xml
diff --git a/tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_nested_derived_metric__dfpo_0.xml b/tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_nested_derived_metric__dfpo_0.xml
similarity index 100%
rename from tests/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_nested_derived_metric__dfpo_0.xml
rename to tests_metricflow/snapshots/test_source_scan_optimizer.py/DataflowPlan/test_nested_derived_metric__dfpo_0.xml
diff --git a/tests/snapshots/test_sql_expr_render.py/str/test_window_function_expr__rendered_sql.txt b/tests_metricflow/snapshots/test_sql_expr_render.py/str/test_window_function_expr__rendered_sql.txt
similarity index 100%
rename from tests/snapshots/test_sql_expr_render.py/str/test_window_function_expr__rendered_sql.txt
rename to tests_metricflow/snapshots/test_sql_expr_render.py/str/test_window_function_expr__rendered_sql.txt
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan1.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan1.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan1.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan1.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan2.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan2.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan2.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan2.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan3.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan3.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan3.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan3.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan4.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan4.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan4.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan4.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan5.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan5.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan5.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_component_rendering__plan5.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_create_table_as__create_table_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_create_table_as__create_table_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_create_table_as__create_table_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_create_table_as__create_table_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_create_table_as__create_view_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_create_table_as__create_view_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_create_table_as__create_view_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_create_table_as__create_view_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_limit__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_limit__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_limit__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_limit__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_order_by__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_order_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_order_by__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_order_by__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_where__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_where__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_where__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/BigQuery/test_render_where__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan1.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan1.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan1.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan1.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan2.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan2.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan2.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan2.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan3.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan3.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan3.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan3.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan4.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan4.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan4.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan4.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan5.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan5.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan5.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_component_rendering__plan5.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_create_table_as__create_table_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_create_table_as__create_table_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_create_table_as__create_table_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_create_table_as__create_table_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_create_table_as__create_view_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_create_table_as__create_view_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_create_table_as__create_view_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_create_table_as__create_view_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_limit__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_limit__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_limit__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_limit__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_order_by__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_order_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_order_by__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_order_by__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_where__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_where__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_where__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Databricks/test_render_where__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan1.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan1.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan1.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan1.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan2.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan2.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan2.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan2.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan3.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan3.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan3.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan3.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan4.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan4.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan4.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan4.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan5.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan5.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan5.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_component_rendering__plan5.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_create_table_as__create_table_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_create_table_as__create_table_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_create_table_as__create_table_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_create_table_as__create_table_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_create_table_as__create_view_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_create_table_as__create_view_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_create_table_as__create_view_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_create_table_as__create_view_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_limit__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_limit__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_limit__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_limit__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_order_by__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_order_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_order_by__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_order_by__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_where__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_where__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_where__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/DuckDB/test_render_where__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan1.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan1.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan1.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan1.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan2.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan2.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan2.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan2.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan3.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan3.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan3.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan3.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan4.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan4.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan4.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan4.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan5.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan5.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan5.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_component_rendering__plan5.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_create_table_as__create_table_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_create_table_as__create_table_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_create_table_as__create_table_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_create_table_as__create_table_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_create_table_as__create_view_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_create_table_as__create_view_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_create_table_as__create_view_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_create_table_as__create_view_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_limit__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_limit__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_limit__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_limit__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_order_by__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_order_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_order_by__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_order_by__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_where__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_where__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_where__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Postgres/test_render_where__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan1.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan1.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan1.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan1.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan2.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan2.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan2.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan2.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan3.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan3.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan3.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan3.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan4.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan4.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan4.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan4.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan5.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan5.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan5.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_component_rendering__plan5.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_create_table_as__create_table_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_create_table_as__create_table_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_create_table_as__create_table_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_create_table_as__create_table_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_create_table_as__create_view_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_create_table_as__create_view_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_create_table_as__create_view_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_create_table_as__create_view_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_limit__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_limit__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_limit__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_limit__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_order_by__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_order_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_order_by__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_order_by__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_where__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_where__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_where__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Redshift/test_render_where__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan1.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan1.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan1.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan1.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan2.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan2.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan2.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan2.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan3.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan3.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan3.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan3.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan4.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan4.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan4.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan4.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan5.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan5.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan5.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_component_rendering__plan5.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_create_table_as__create_table_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_create_table_as__create_table_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_create_table_as__create_table_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_create_table_as__create_table_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_create_table_as__create_view_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_create_table_as__create_view_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_create_table_as__create_view_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_create_table_as__create_view_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_limit__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_limit__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_limit__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_limit__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_order_by__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_order_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_order_by__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_order_by__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_where__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_where__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_where__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Snowflake/test_render_where__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan1.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan1.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan1.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan1.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan2.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan2.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan2.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan2.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan3.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan3.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan3.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan3.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan4.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan4.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan4.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan4.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan5.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan5.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan5.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_component_rendering__plan5.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_create_table_as__create_table_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_create_table_as__create_table_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_create_table_as__create_table_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_create_table_as__create_table_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_create_table_as__create_view_as.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_create_table_as__create_view_as.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_create_table_as__create_view_as.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_create_table_as__create_view_as.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_limit__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_limit__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_limit__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_limit__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_order_by__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_order_by__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_order_by__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_order_by__plan0.sql
diff --git a/tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_where__plan0.sql b/tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_where__plan0.sql
similarity index 100%
rename from tests/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_where__plan0.sql
rename to tests_metricflow/snapshots/test_sql_plan_render.py/SqlQueryPlan/Trino/test_render_where__plan0.sql
diff --git a/tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_distinct_select_node_is_not_reduced__after_reducing.sql b/tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_distinct_select_node_is_not_reduced__after_reducing.sql
similarity index 100%
rename from tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_distinct_select_node_is_not_reduced__after_reducing.sql
rename to tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_distinct_select_node_is_not_reduced__after_reducing.sql
diff --git a/tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_distinct_select_node_is_not_reduced__before_reducing.sql b/tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_distinct_select_node_is_not_reduced__before_reducing.sql
similarity index 100%
rename from tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_distinct_select_node_is_not_reduced__before_reducing.sql
rename to tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_distinct_select_node_is_not_reduced__before_reducing.sql
diff --git a/tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__after_reducing.sql b/tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__after_reducing.sql
similarity index 100%
rename from tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__after_reducing.sql
rename to tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__after_reducing.sql
diff --git a/tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__before_reducing.sql b/tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__before_reducing.sql
similarity index 100%
rename from tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__before_reducing.sql
rename to tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_reduce_sub_query__before_reducing.sql
diff --git a/tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_rewrite_order_by_with_a_join_in_parent__after_reducing.sql b/tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_rewrite_order_by_with_a_join_in_parent__after_reducing.sql
similarity index 100%
rename from tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_rewrite_order_by_with_a_join_in_parent__after_reducing.sql
rename to tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_rewrite_order_by_with_a_join_in_parent__after_reducing.sql
diff --git a/tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_rewrite_order_by_with_a_join_in_parent__before_reducing.sql b/tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_rewrite_order_by_with_a_join_in_parent__before_reducing.sql
similarity index 100%
rename from tests/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_rewrite_order_by_with_a_join_in_parent__before_reducing.sql
rename to tests_metricflow/snapshots/test_sub_query_reducer.py/SqlQueryPlan/test_rewrite_order_by_with_a_join_in_parent__before_reducing.sql
diff --git a/tests/snapshots/test_table_alias_simplifier.py/SqlQueryPlan/test_table_alias_simplification__after_alias_simplification.sql b/tests_metricflow/snapshots/test_table_alias_simplifier.py/SqlQueryPlan/test_table_alias_simplification__after_alias_simplification.sql
similarity index 100%
rename from tests/snapshots/test_table_alias_simplifier.py/SqlQueryPlan/test_table_alias_simplification__after_alias_simplification.sql
rename to tests_metricflow/snapshots/test_table_alias_simplifier.py/SqlQueryPlan/test_table_alias_simplification__after_alias_simplification.sql
diff --git a/tests/snapshots/test_table_alias_simplifier.py/SqlQueryPlan/test_table_alias_simplification__before_alias_simplification.sql b/tests_metricflow/snapshots/test_table_alias_simplifier.py/SqlQueryPlan/test_table_alias_simplification__before_alias_simplification.sql
similarity index 100%
rename from tests/snapshots/test_table_alias_simplifier.py/SqlQueryPlan/test_table_alias_simplification__before_alias_simplification.sql
rename to tests_metricflow/snapshots/test_table_alias_simplifier.py/SqlQueryPlan/test_table_alias_simplification__before_alias_simplification.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine__plan0.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine__plan0.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/BigQuery/test_simple_join_to_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine__plan0.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine__plan0.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Databricks/test_simple_join_to_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine__plan0.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine__plan0.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/DuckDB/test_simple_join_to_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine__plan0.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine__plan0.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Postgres/test_simple_join_to_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine__plan0.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine__plan0.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Redshift/test_simple_join_to_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine__plan0.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine__plan0.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Snowflake/test_simple_join_to_time_spine__plan0_optimized.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine__plan0.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine__plan0.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine__plan0.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine__plan0.sql
diff --git a/tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine__plan0_optimized.sql b/tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine__plan0_optimized.sql
similarity index 100%
rename from tests/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine__plan0_optimized.sql
rename to tests_metricflow/snapshots/test_time_spine_join_rendering.py/SqlQueryPlan/Trino/test_simple_join_to_time_spine__plan0_optimized.sql
diff --git a/tests/source_schema_tools.py b/tests_metricflow/source_schema_tools.py
similarity index 91%
rename from tests/source_schema_tools.py
rename to tests_metricflow/source_schema_tools.py
index a3cd78f558..3a3a96d410 100644
--- a/tests/source_schema_tools.py
+++ b/tests_metricflow/source_schema_tools.py
@@ -2,10 +2,11 @@
import logging
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+
from metricflow.protocols.sql_client import SqlEngine
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
-from tests.table_snapshot.table_snapshots import (
+from tests_metricflow.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
+from tests_metricflow.table_snapshot.table_snapshots import (
SqlTableSnapshotLoader,
SqlTableSnapshotRepository,
)
diff --git a/tests_metricflow/sql/__init__.py b/tests_metricflow/sql/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/sql/compare_sql_plan.py b/tests_metricflow/sql/compare_sql_plan.py
similarity index 91%
rename from tests/sql/compare_sql_plan.py
rename to tests_metricflow/sql/compare_sql_plan.py
index b4a562c72d..4bb17c84a1 100644
--- a/tests/sql/compare_sql_plan.py
+++ b/tests_metricflow/sql/compare_sql_plan.py
@@ -1,16 +1,17 @@
from __future__ import annotations
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.dag.mf_dag import DagId
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
+from metricflow_semantics.test_helpers.snapshot_helpers import (
+ assert_plan_snapshot_text_equal,
+ make_schema_replacement_function,
+)
-from metricflow.dag.mf_dag import DagId
from metricflow.protocols.sql_client import SqlClient
from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer
from metricflow.sql.sql_plan import SqlQueryPlan, SqlQueryPlanNode
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration, check_sql_engine_snapshot_marker
-from tests.snapshot_utils import (
- assert_plan_snapshot_text_equal,
- make_schema_replacement_function,
-)
+from tests_metricflow.fixtures.setup_fixtures import check_sql_engine_snapshot_marker
def assert_default_rendered_sql_equal(
diff --git a/tests_metricflow/sql/optimizer/__init__.py b/tests_metricflow/sql/optimizer/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/sql/optimizer/test_column_pruner.py b/tests_metricflow/sql/optimizer/test_column_pruner.py
similarity index 99%
rename from tests/sql/optimizer/test_column_pruner.py
rename to tests_metricflow/sql/optimizer/test_column_pruner.py
index c58b43cae7..51f870a661 100644
--- a/tests/sql/optimizer/test_column_pruner.py
+++ b/tests_metricflow/sql/optimizer/test_column_pruner.py
@@ -2,6 +2,8 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.sql.optimizer.column_pruner import SqlColumnPrunerOptimizer
from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer, SqlQueryPlanRenderer
@@ -15,15 +17,13 @@
)
from metricflow.sql.sql_plan import (
SqlJoinDescription,
- SqlJoinType,
SqlQueryPlanNode,
SqlSelectColumn,
SqlSelectStatementNode,
SqlTableFromClauseNode,
)
from metricflow.sql.sql_table import SqlTable
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.sql.compare_sql_plan import assert_default_rendered_sql_equal
+from tests_metricflow.sql.compare_sql_plan import assert_default_rendered_sql_equal
@pytest.fixture
diff --git a/tests/sql/optimizer/test_rewriting_sub_query_reducer.py b/tests_metricflow/sql/optimizer/test_rewriting_sub_query_reducer.py
similarity index 99%
rename from tests/sql/optimizer/test_rewriting_sub_query_reducer.py
rename to tests_metricflow/sql/optimizer/test_rewriting_sub_query_reducer.py
index b5c7b08dd0..1dc7f88546 100644
--- a/tests/sql/optimizer/test_rewriting_sub_query_reducer.py
+++ b/tests_metricflow/sql/optimizer/test_rewriting_sub_query_reducer.py
@@ -2,6 +2,8 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.sql.optimizer.rewriting_sub_query_reducer import SqlRewritingSubQueryReducer
from metricflow.sql.sql_exprs import (
@@ -16,15 +18,13 @@
)
from metricflow.sql.sql_plan import (
SqlJoinDescription,
- SqlJoinType,
SqlOrderByDescription,
SqlSelectColumn,
SqlSelectStatementNode,
SqlTableFromClauseNode,
)
from metricflow.sql.sql_table import SqlTable
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.sql.compare_sql_plan import assert_default_rendered_sql_equal
+from tests_metricflow.sql.compare_sql_plan import assert_default_rendered_sql_equal
@pytest.fixture
diff --git a/tests/sql/optimizer/test_sub_query_reducer.py b/tests_metricflow/sql/optimizer/test_sub_query_reducer.py
similarity index 97%
rename from tests/sql/optimizer/test_sub_query_reducer.py
rename to tests_metricflow/sql/optimizer/test_sub_query_reducer.py
index 366193c2ff..ed90796054 100644
--- a/tests/sql/optimizer/test_sub_query_reducer.py
+++ b/tests_metricflow/sql/optimizer/test_sub_query_reducer.py
@@ -2,6 +2,8 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.sql.optimizer.sub_query_reducer import SqlSubQueryReducer
from metricflow.sql.sql_exprs import (
@@ -12,15 +14,13 @@
)
from metricflow.sql.sql_plan import (
SqlJoinDescription,
- SqlJoinType,
SqlOrderByDescription,
SqlSelectColumn,
SqlSelectStatementNode,
SqlTableFromClauseNode,
)
from metricflow.sql.sql_table import SqlTable
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.sql.compare_sql_plan import assert_default_rendered_sql_equal
+from tests_metricflow.sql.compare_sql_plan import assert_default_rendered_sql_equal
@pytest.fixture
diff --git a/tests/sql/optimizer/test_table_alias_simplifier.py b/tests_metricflow/sql/optimizer/test_table_alias_simplifier.py
similarity index 96%
rename from tests/sql/optimizer/test_table_alias_simplifier.py
rename to tests_metricflow/sql/optimizer/test_table_alias_simplifier.py
index 737a61cb5a..c734f07bd7 100644
--- a/tests/sql/optimizer/test_table_alias_simplifier.py
+++ b/tests_metricflow/sql/optimizer/test_table_alias_simplifier.py
@@ -2,6 +2,8 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.sql.optimizer.table_alias_simplifier import SqlTableAliasSimplifier
from metricflow.sql.render.sql_plan_renderer import DefaultSqlQueryPlanRenderer, SqlQueryPlanRenderer
@@ -13,14 +15,12 @@
)
from metricflow.sql.sql_plan import (
SqlJoinDescription,
- SqlJoinType,
SqlSelectColumn,
SqlSelectStatementNode,
SqlTableFromClauseNode,
)
from metricflow.sql.sql_table import SqlTable
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.sql.compare_sql_plan import assert_default_rendered_sql_equal
+from tests_metricflow.sql.compare_sql_plan import assert_default_rendered_sql_equal
@pytest.fixture
diff --git a/tests/sql/test_engine_specific_rendering.py b/tests_metricflow/sql/test_engine_specific_rendering.py
similarity index 98%
rename from tests/sql/test_engine_specific_rendering.py
rename to tests_metricflow/sql/test_engine_specific_rendering.py
index 60a56fc758..8bc1133e35 100644
--- a/tests/sql/test_engine_specific_rendering.py
+++ b/tests_metricflow/sql/test_engine_specific_rendering.py
@@ -4,6 +4,7 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.protocols.sql_client import SqlClient
from metricflow.sql.sql_exprs import (
@@ -24,8 +25,7 @@
SqlTableFromClauseNode,
)
from metricflow.sql.sql_table import SqlTable
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.sql.compare_sql_plan import assert_rendered_sql_equal
+from tests_metricflow.sql.compare_sql_plan import assert_rendered_sql_equal
@pytest.mark.sql_engine_snapshot
diff --git a/tests/sql/test_sql_expr_render.py b/tests_metricflow/sql/test_sql_expr_render.py
similarity index 98%
rename from tests/sql/test_sql_expr_render.py
rename to tests_metricflow/sql/test_sql_expr_render.py
index 7dabd7736a..7e6ba4cb6e 100644
--- a/tests/sql/test_sql_expr_render.py
+++ b/tests_metricflow/sql/test_sql_expr_render.py
@@ -8,6 +8,7 @@
from _pytest.fixtures import FixtureRequest
from dbt_semantic_interfaces.type_enums.date_part import DatePart
from dbt_semantic_interfaces.type_enums.time_granularity import TimeGranularity
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.sql.render.expr_renderer import DefaultSqlExpressionRenderer
from metricflow.sql.sql_exprs import (
@@ -33,8 +34,7 @@
SqlWindowFunctionExpression,
SqlWindowOrderByArgument,
)
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import assert_str_snapshot_equal
+from tests_metricflow.snapshot_utils import assert_str_snapshot_equal
logger = logging.getLogger(__name__)
diff --git a/tests/sql/test_sql_plan_render.py b/tests_metricflow/sql/test_sql_plan_render.py
similarity index 98%
rename from tests/sql/test_sql_plan_render.py
rename to tests_metricflow/sql/test_sql_plan_render.py
index 6e21dcfc82..55e1cd4764 100644
--- a/tests/sql/test_sql_plan_render.py
+++ b/tests_metricflow/sql/test_sql_plan_render.py
@@ -5,6 +5,8 @@
import pytest
from _pytest.fixtures import FixtureRequest
+from metricflow_semantics.sql.sql_join_type import SqlJoinType
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.protocols.sql_client import SqlClient
from metricflow.sql.sql_exprs import (
@@ -19,15 +21,13 @@
from metricflow.sql.sql_plan import (
SqlCreateTableAsNode,
SqlJoinDescription,
- SqlJoinType,
SqlOrderByDescription,
SqlSelectColumn,
SqlSelectStatementNode,
SqlTableFromClauseNode,
)
from metricflow.sql.sql_table import SqlTable, SqlTableType
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.sql.compare_sql_plan import assert_rendered_sql_equal
+from tests_metricflow.sql.compare_sql_plan import assert_rendered_sql_equal
logger = logging.getLogger(__name__)
diff --git a/tests_metricflow/sql_clients/__init__.py b/tests_metricflow/sql_clients/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/sql_clients/test_date_time_operations.py b/tests_metricflow/sql_clients/test_date_time_operations.py
similarity index 99%
rename from tests/sql_clients/test_date_time_operations.py
rename to tests_metricflow/sql_clients/test_date_time_operations.py
index 60d77f6bae..f3fdc89c4c 100644
--- a/tests/sql_clients/test_date_time_operations.py
+++ b/tests_metricflow/sql_clients/test_date_time_operations.py
@@ -22,6 +22,7 @@
import pandas as pd
import pytest
from dbt_semantic_interfaces.type_enums.date_part import DatePart
+from metricflow_semantics.time.time_granularity import TimeGranularity
from metricflow.protocols.sql_client import SqlClient
from metricflow.sql.sql_exprs import (
@@ -30,7 +31,6 @@
SqlExtractExpression,
SqlStringLiteralExpression,
)
-from metricflow.time.time_granularity import TimeGranularity
logger = logging.getLogger(__name__)
diff --git a/tests/sql_clients/test_sql_client.py b/tests_metricflow/sql_clients/test_sql_client.py
similarity index 92%
rename from tests/sql_clients/test_sql_client.py
rename to tests_metricflow/sql_clients/test_sql_client.py
index f9ef577248..241886f47d 100644
--- a/tests/sql_clients/test_sql_client.py
+++ b/tests_metricflow/sql_clients/test_sql_client.py
@@ -5,14 +5,14 @@
import pandas as pd
import pytest
+from metricflow_semantics.random_id import random_id
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.protocols.sql_client import SqlClient, SqlEngine
-from metricflow.random_id import random_id
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
from metricflow.sql.sql_table import SqlTable
-from tests.compare_df import assert_dataframes_equal
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
+from tests_metricflow.compare_df import assert_dataframes_equal
+from tests_metricflow.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
logger = logging.getLogger(__name__)
diff --git a/tests_metricflow/table_snapshot/__init__.py b/tests_metricflow/table_snapshot/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/table_snapshot/example_table_snapshot.yaml b/tests_metricflow/table_snapshot/example_table_snapshot.yaml
similarity index 100%
rename from tests/table_snapshot/example_table_snapshot.yaml
rename to tests_metricflow/table_snapshot/example_table_snapshot.yaml
diff --git a/tests/table_snapshot/table_snapshots.py b/tests_metricflow/table_snapshot/table_snapshots.py
similarity index 98%
rename from tests/table_snapshot/table_snapshots.py
rename to tests_metricflow/table_snapshot/table_snapshots.py
index 6350bf3215..4b2ccd2df5 100644
--- a/tests/table_snapshot/table_snapshots.py
+++ b/tests_metricflow/table_snapshot/table_snapshots.py
@@ -14,10 +14,10 @@
import yaml
from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
from dbt_semantic_interfaces.implementations.base import FrozenBaseModel
+from metricflow_semantics.specs.spec_classes import hash_items
-from metricflow.specs.specs import hash_items
from metricflow.sql.sql_table import SqlTable
-from tests.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
+from tests_metricflow.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
logger = logging.getLogger(__name__)
diff --git a/tests/table_snapshot/test_source_schema.py b/tests_metricflow/table_snapshot/test_source_schema.py
similarity index 87%
rename from tests/table_snapshot/test_source_schema.py
rename to tests_metricflow/table_snapshot/test_source_schema.py
index 1da5cb36e2..1eb03ed1e6 100644
--- a/tests/table_snapshot/test_source_schema.py
+++ b/tests_metricflow/table_snapshot/test_source_schema.py
@@ -4,14 +4,14 @@
import warnings
import pytest
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.protocols.sql_client import SqlClient, SqlEngine
from metricflow.sql.sql_table import SqlTable
-from tests.compare_df import assert_dataframes_equal
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.fixtures.table_fixtures import CONFIGURED_SOURCE_TABLE_SNAPSHOT_REPOSITORY
-from tests.source_schema_tools import get_populate_source_schema_shell_command
-from tests.table_snapshot.table_snapshots import (
+from tests_metricflow.compare_df import assert_dataframes_equal
+from tests_metricflow.fixtures.table_fixtures import CONFIGURED_SOURCE_TABLE_SNAPSHOT_REPOSITORY
+from tests_metricflow.source_schema_tools import get_populate_source_schema_shell_command
+from tests_metricflow.table_snapshot.table_snapshots import (
SqlTableSnapshotRepository,
TableSnapshotException,
)
diff --git a/tests/table_snapshot/test_table_snapshots.py b/tests_metricflow/table_snapshot/test_table_snapshots.py
similarity index 91%
rename from tests/table_snapshot/test_table_snapshots.py
rename to tests_metricflow/table_snapshot/test_table_snapshots.py
index 4514e0cb15..f9b89476af 100644
--- a/tests/table_snapshot/test_table_snapshots.py
+++ b/tests_metricflow/table_snapshot/test_table_snapshots.py
@@ -6,13 +6,13 @@
import pandas as pd
import pytest
from dbt_semantic_interfaces.test_utils import as_datetime
+from metricflow_semantics.random_id import random_id
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
from metricflow.protocols.sql_client import SqlEngine
-from metricflow.random_id import random_id
-from tests.compare_df import assert_dataframes_equal
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
-from tests.table_snapshot.table_snapshots import (
+from tests_metricflow.compare_df import assert_dataframes_equal
+from tests_metricflow.fixtures.sql_clients.ddl_sql_client import SqlClientWithDDLMethods
+from tests_metricflow.table_snapshot.table_snapshots import (
SqlTableColumnDefinition,
SqlTableColumnType,
SqlTableSnapshot,
diff --git a/tests_metricflow/telemetry/__init__.py b/tests_metricflow/telemetry/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/telemetry/test_telemetry.py b/tests_metricflow/telemetry/test_telemetry.py
similarity index 88%
rename from tests/telemetry/test_telemetry.py
rename to tests_metricflow/telemetry/test_telemetry.py
index ab91312e9b..acd720359a 100644
--- a/tests/telemetry/test_telemetry.py
+++ b/tests_metricflow/telemetry/test_telemetry.py
@@ -26,11 +26,11 @@ def test_function() -> str:
test_function()
start_event = telemetry_reporter.test_handler.payloads[0].function_start_events[0]
- assert start_event.module_name == "tests.telemetry.test_telemetry"
+ assert start_event.module_name == "tests_metricflow.telemetry.test_telemetry"
assert start_event.function_name == "test_function"
end_event = telemetry_reporter.test_handler.payloads[1].function_end_events[0]
- assert end_event.module_name == "tests.telemetry.test_telemetry"
+ assert end_event.module_name == "tests_metricflow.telemetry.test_telemetry"
assert end_event.function_name == "test_function"
assert not end_event.exception_trace
assert end_event.runtime > 0
@@ -46,11 +46,11 @@ def test_function() -> str:
test_function()
start_event = telemetry_reporter.test_handler.payloads[0].function_start_events[0]
- assert start_event.module_name == "tests.telemetry.test_telemetry"
+ assert start_event.module_name == "tests_metricflow.telemetry.test_telemetry"
assert start_event.function_name == "test_function"
end_event = telemetry_reporter.test_handler.payloads[1].function_end_events[0]
- assert end_event.module_name == "tests.telemetry.test_telemetry"
+ assert end_event.module_name == "tests_metricflow.telemetry.test_telemetry"
assert end_event.function_name == "test_function"
assert end_event.exception_trace
assert end_event.exception_trace.find("Traceback (most recent call last):") != -1
diff --git a/tests/test_instance_serialization.py b/tests_metricflow/test_instance_serialization.py
similarity index 86%
rename from tests/test_instance_serialization.py
rename to tests_metricflow/test_instance_serialization.py
index 3b3440d77f..2d3f4717d3 100644
--- a/tests/test_instance_serialization.py
+++ b/tests_metricflow/test_instance_serialization.py
@@ -5,9 +5,9 @@
import pytest
from dbt_semantic_interfaces.dataclass_serialization import DataClassDeserializer, DataclassSerializer
+from metricflow_semantics.instances import InstanceSet
-from metricflow.instances import InstanceSet
-from tests.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
logger = logging.getLogger(__name__)
diff --git a/tests_metricflow/time/__init__.py b/tests_metricflow/time/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests_metricflow/validation/__init__.py b/tests_metricflow/validation/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/model/test_data_warehouse_tasks.py b/tests_metricflow/validation/test_data_warehouse_tasks.py
similarity index 97%
rename from tests/model/test_data_warehouse_tasks.py
rename to tests_metricflow/validation/test_data_warehouse_tasks.py
index c362fc259c..e07996f6d7 100644
--- a/tests/model/test_data_warehouse_tasks.py
+++ b/tests_metricflow/validation/test_data_warehouse_tasks.py
@@ -14,16 +14,16 @@
from dbt_semantic_interfaces.test_utils import semantic_model_with_guaranteed_meta
from dbt_semantic_interfaces.transformations.semantic_manifest_transformer import PydanticSemanticManifestTransformer
from dbt_semantic_interfaces.type_enums.aggregation_type import AggregationType
+from metricflow_semantics.sql.sql_bind_parameters import SqlBindParameters
+from metricflow_semantics.test_helpers.config_helpers import MetricFlowTestConfiguration
-from metricflow.model.data_warehouse_model_validator import (
+from metricflow.protocols.sql_client import SqlClient
+from metricflow.validation.data_warehouse_model_validator import (
DataWarehouseModelValidator,
DataWarehouseTaskBuilder,
DataWarehouseValidationTask,
)
-from metricflow.protocols.sql_client import SqlClient
-from metricflow.sql.sql_bind_parameters import SqlBindParameters
-from tests.fixtures.setup_fixtures import MetricFlowTestConfiguration
-from tests.snapshot_utils import (
+from tests_metricflow.snapshot_utils import (
assert_sql_snapshot_equal,
)
diff --git a/tests_metricflow/validation/test_join_validator.py b/tests_metricflow/validation/test_join_validator.py
new file mode 100644
index 0000000000..cbea41a4eb
--- /dev/null
+++ b/tests_metricflow/validation/test_join_validator.py
@@ -0,0 +1,212 @@
+from __future__ import annotations
+
+from typing import Mapping
+
+from dbt_semantic_interfaces.references import EntityReference
+from metricflow_semantics.model.semantic_manifest_lookup import SemanticManifestLookup
+
+from metricflow.validation.dataflow_join_validator import JoinDataflowOutputValidator
+from tests_metricflow.fixtures.manifest_fixtures import MetricFlowEngineTestFixture, SemanticManifestSetup
+
+
+def test_natural_entity_instance_set_validation(
+ mf_engine_test_fixture_mapping: Mapping[SemanticManifestSetup, MetricFlowEngineTestFixture],
+ scd_semantic_manifest_lookup: SemanticManifestLookup,
+) -> None:
+ """Tests instance set validation for NATURAL target entity types.
+
+ These tests rely on the scd_semantic_manifest_lookup, which makes extensive use of NATURAL key types.
+ """
+ natural_user_instance_set = (
+ mf_engine_test_fixture_mapping[SemanticManifestSetup.SCD_MANIFEST]
+ .data_set_mapping["primary_accounts"]
+ .instance_set
+ )
+ primary_user_instance_set = (
+ mf_engine_test_fixture_mapping[SemanticManifestSetup.SCD_MANIFEST].data_set_mapping["users_latest"].instance_set
+ )
+ foreign_user_instance_set = (
+ mf_engine_test_fixture_mapping[SemanticManifestSetup.SCD_MANIFEST]
+ .data_set_mapping["bookings_source"]
+ .instance_set
+ )
+ unique_user_instance_set = (
+ mf_engine_test_fixture_mapping[SemanticManifestSetup.SCD_MANIFEST].data_set_mapping["companies"].instance_set
+ )
+ user_entity_reference = EntityReference(element_name="user")
+ join_evaluator = JoinDataflowOutputValidator(
+ semantic_model_lookup=scd_semantic_manifest_lookup.semantic_model_lookup
+ )
+
+ # Valid cases
+ natural_primary = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=natural_user_instance_set,
+ right_instance_set=primary_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ natural_unique = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=natural_user_instance_set,
+ right_instance_set=unique_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ foreign_natural = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=foreign_user_instance_set,
+ right_instance_set=natural_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ primary_natural = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=primary_user_instance_set,
+ right_instance_set=natural_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ unique_natural = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=unique_user_instance_set,
+ right_instance_set=natural_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ # Invalid cases
+ natural_foreign = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=natural_user_instance_set,
+ right_instance_set=foreign_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ natural_natural = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=natural_user_instance_set,
+ right_instance_set=natural_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+
+ valid_joins = {
+ "natural to primary": natural_primary,
+ "natural to unique": natural_unique,
+ "foreign to natural": foreign_natural,
+ "primary to natural": primary_natural,
+ "unique to natural": unique_natural,
+ }
+ invalid_joins = {
+ "natural to foreign": natural_foreign,
+ "natural to natural": natural_natural,
+ }
+ assert all(valid_joins.values()) and not any(invalid_joins.values()), (
+ f"Found unexpected join validator results when validating joins involving natural key comparisons! Valid "
+ f"joins marked invalid: {[k for k,v in valid_joins.items() if not v]}. Invalid joins marked valid: "
+ f"{[k for k, v in invalid_joins.items() if v]}."
+ )
+
+
+def test_distinct_target_instance_set_join_validation(
+ mf_engine_test_fixture_mapping: Mapping[SemanticManifestSetup, MetricFlowEngineTestFixture],
+ simple_semantic_manifest_lookup: SemanticManifestLookup,
+) -> None:
+ """Tests instance set join validation to a PRIMARY or UNIQUE entity."""
+ foreign_user_instance_set = (
+ mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST]
+ .data_set_mapping["listings_latest"]
+ .instance_set
+ )
+ primary_user_instance_set = (
+ mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST]
+ .data_set_mapping["users_latest"]
+ .instance_set
+ )
+ unique_user_instance_set = (
+ mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST].data_set_mapping["companies"].instance_set
+ )
+ user_entity_reference = EntityReference(element_name="user")
+ join_evaluator = JoinDataflowOutputValidator(
+ semantic_model_lookup=simple_semantic_manifest_lookup.semantic_model_lookup
+ )
+
+ foreign_primary = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=foreign_user_instance_set,
+ right_instance_set=primary_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ primary_primary = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=primary_user_instance_set,
+ right_instance_set=primary_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ unique_primary = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=unique_user_instance_set,
+ right_instance_set=primary_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ foreign_unique = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=foreign_user_instance_set,
+ right_instance_set=unique_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ primary_unique = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=primary_user_instance_set,
+ right_instance_set=unique_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ unique_unique = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=unique_user_instance_set,
+ right_instance_set=unique_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+
+ results = {
+ "foreign to primary": foreign_primary,
+ "primary to primary": primary_primary,
+ "unique to primary": unique_primary,
+ "foreign to unique": foreign_unique,
+ "primary to unique": primary_unique,
+ "unique to unique": unique_unique,
+ }
+ assert all(results.values()), (
+ f"All instance set level join types for primary and unique targets should be valid, but we found "
+ f"at least one that was not! Incorrectly failing types: {[k for k,v in results.items() if not v]}."
+ )
+
+
+def test_foreign_target_instance_set_join_validation(
+ mf_engine_test_fixture_mapping: Mapping[SemanticManifestSetup, MetricFlowEngineTestFixture],
+ simple_semantic_manifest_lookup: SemanticManifestLookup,
+) -> None:
+ """Tests semantic model join validation to FOREIGN entity types."""
+ foreign_user_instance_set = (
+ mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST]
+ .data_set_mapping["listings_latest"]
+ .instance_set
+ )
+ primary_user_instance_set = (
+ mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST]
+ .data_set_mapping["users_latest"]
+ .instance_set
+ )
+ unique_user_instance_set = (
+ mf_engine_test_fixture_mapping[SemanticManifestSetup.SIMPLE_MANIFEST].data_set_mapping["companies"].instance_set
+ )
+ user_entity_reference = EntityReference(element_name="user")
+ join_evaluator = JoinDataflowOutputValidator(
+ semantic_model_lookup=simple_semantic_manifest_lookup.semantic_model_lookup
+ )
+
+ foreign_foreign = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=foreign_user_instance_set,
+ right_instance_set=foreign_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ primary_foreign = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=primary_user_instance_set,
+ right_instance_set=foreign_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+ unique_foreign = join_evaluator.is_valid_instance_set_join(
+ left_instance_set=unique_user_instance_set,
+ right_instance_set=foreign_user_instance_set,
+ on_entity_reference=user_entity_reference,
+ )
+
+ results = {
+ "foreign to foreign": foreign_foreign,
+ "primary to foreign": primary_foreign,
+ "unique to foreign": unique_foreign,
+ }
+ assert not any(results.values()), (
+ f"All semantic model level joins against foreign targets should be invalid, but we found at least one "
+ f"that was not! Incorrectly passing types: {[k for k,v in results.items() if v]}."
+ )