diff --git a/.changes/unreleased/Dependencies-20230810-112931.yaml b/.changes/unreleased/Dependencies-20230810-112931.yaml new file mode 100644 index 000000000..4a71b1047 --- /dev/null +++ b/.changes/unreleased/Dependencies-20230810-112931.yaml @@ -0,0 +1,6 @@ +kind: Dependencies +body: Relax version pins for MetricFlow dependencies +time: 2023-08-10T11:29:31.987305-07:00 +custom: + Author: tlento + PR: "720" diff --git a/metricflow/model/parsing/__init__.py b/metricflow/model/parsing/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/metricflow/model/parsing/schemas_internal.py b/metricflow/model/parsing/schemas_internal.py deleted file mode 100644 index b6cdf6452..000000000 --- a/metricflow/model/parsing/schemas_internal.py +++ /dev/null @@ -1,111 +0,0 @@ -from __future__ import annotations - -from typing import Any, Dict - -from dbt_semantic_interfaces.parsing.schema_validator import SchemaValidator -from dbt_semantic_interfaces.parsing.schemas import ( - aggregation_type_params_schema, - dimension_schema, - dimension_type_params_schema, - entity_schema, - measure_schema, - metric_input_measure_schema, - metric_input_schema, - metric_schema, - metric_type_params_schema, - node_relation_schema, - non_additive_dimension_schema, - semantic_model_schema, - validity_params_schema, -) -from jsonschema import RefResolver - - -def add_transform_metadata_fields_to_spec(spec: Dict[str, Any]) -> None: # type: ignore[misc] - """Adds transform metadata fields a spec.""" - properties = spec["properties"] - transform_metadata_fields = { - "description": {"type": "string"}, - "owners": { - "type": "array", - "items": {"type": "string"}, - }, - "display_name": {"type": "string"}, - "tier": {"type": ["string", "integer"]}, - } - - for k, v in transform_metadata_fields.items(): - if k in properties: - raise RuntimeError(f"Spec with id: {spec['$id']} contains transform metadata field: {k}") - - properties[k] = v - - -def add_locked_metadata_to_spec(spec: Dict[str, Any]) -> None: # type: ignore[misc] - """Adds locked metadata field to a spec.""" - properties = spec["properties"] - transform_metadata_fields = { - "locked_metadata": {"$ref": "locked_metadata"}, - } - - for k, v in transform_metadata_fields.items(): - if k in properties: - raise RuntimeError(f"Spec with id: {spec['$id']} contains transform metadata field: {k}") - - properties[k] = v - - -# Sub-object schemas -locked_metadata_schema = { - "$id": "locked_metadata", - "type": "object", - "properties": { - "value_format": {"type": "string"}, - "description": {"type": "string"}, - "display_name": {"type": "string"}, - "tier": {"type": ["string", "integer"]}, - "increase_is_good": {"type": "boolean"}, - "tags": { - "type": "array", - "items": {"type": "string"}, - }, - "private": {"type": "boolean"}, - "unit": {"type": "string"}, - }, - "additionalProperties": False, -} - - -# Add transform metadata fields to top level objects (metric, semantic model, derived entity) -add_transform_metadata_fields_to_spec(dimension_schema) -add_transform_metadata_fields_to_spec(measure_schema) -add_transform_metadata_fields_to_spec(entity_schema) - -add_transform_metadata_fields_to_spec(metric_schema) -add_locked_metadata_to_spec(metric_schema) - -add_transform_metadata_fields_to_spec(semantic_model_schema) - - -schema_store = { - # Top level schemas - metric_schema["$id"]: metric_schema, - semantic_model_schema["$id"]: semantic_model_schema, - # Sub-object schemas - metric_input_measure_schema["$id"]: metric_input_measure_schema, - metric_type_params_schema["$id"]: metric_type_params_schema, - locked_metadata_schema["$id"]: locked_metadata_schema, - entity_schema["$id"]: entity_schema, - measure_schema["$id"]: measure_schema, - dimension_schema["$id"]: dimension_schema, - validity_params_schema["$id"]: validity_params_schema, - dimension_type_params_schema["$id"]: dimension_type_params_schema, - aggregation_type_params_schema["$id"]: aggregation_type_params_schema, - non_additive_dimension_schema["$id"]: non_additive_dimension_schema, - metric_input_schema["$id"]: metric_input_schema, - node_relation_schema["$id"]: node_relation_schema, -} - -resolver = RefResolver.from_schema(schema=metric_schema, store=schema_store) -semantic_model_validator = SchemaValidator(semantic_model_schema, resolver=resolver) -metric_validator = SchemaValidator(metric_schema, resolver=resolver) diff --git a/pyproject.toml b/pyproject.toml index d7bea5715..c11e6a967 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,20 +26,19 @@ classifiers = [ ] dependencies = [ "Jinja2>=2.11.3", - "MarkupSafe==2.0.1", + "MarkupSafe==2.0.1", # pandas implicitly requires this version "PyYAML~=6.0", "click>=7.1.2, <8.1.4", "dbt-core~=1.6.0", "dbt-semantic-interfaces~=0.2.0", - "graphviz==0.18.2", + "graphviz>=0.18.2, <0.21", "halo~=0.0.31", - "jsonschema==3.2.0", - "more-itertools==8.10.0", + "more-itertools>=8.10.0, <10.2.0", "numpy>=1.22.2", "pandas~=1.5.0", "pydantic~=1.10.0", - "python-dateutil==2.8.2", - "rapidfuzz==3.0.0", + "python-dateutil~=2.8.2", + "rapidfuzz~=3.0", "ruamel.yaml~=0.17.21", "rudder-sdk-python~=1.0.3", "tabulate~=0.8.9", @@ -62,7 +61,6 @@ dev-packages = [ "pytest-xdist~=3.2.1", "pytest~=7.1.1", "types-PyYAML", - "types-jsonschema", "types-python-dateutil", "types-tabulate", ]