class_docstr: Creates a WhereFilterTimeDimension.
  
  Each call to `create` adds a TimeDimensionSpec to time_dimension_specs.
class_docstr_tok: ["Creates","a","WhereFilterTimeDimension",".","Each","call","to","`","create","`","adds","a","TimeDimensionSpec","to","time_dimension_specs","."]
docstr: Create a WhereFilterTimeDimension.
docstr_tok: ["Create","a","WhereFilterTimeDimension","."]
code: def create(
      self,
      time_dimension_name: str,
      time_granularity_name: Optional[str] = None,
      entity_path: Sequence[str] = (),
      descending: Optional[bool] = None,
      date_part_name: Optional[str] = None,
  ) -> WhereFilterTimeDimension:
      """Create a WhereFilterTimeDimension."""
      if descending:
          raise InvalidQuerySyntax(
              "Can't set descending in the where clause. Try setting descending in the order_by clause instead"
          )
      structured_name = DunderedNameFormatter.parse_name(
          time_dimension_name.lower()
      )
  
      return WhereFilterTimeDimension(
          column_association_resolver=self._column_association_resolver,
          resolved_spec_lookup=self._resolved_spec_lookup,
          where_filter_location=self._where_filter_location,
          rendered_spec_tracker=self._rendered_spec_tracker,
          element_name=structured_name.element_name,
          entity_links=tuple(
              EntityReference(entity_link_name.lower())
              for entity_link_name in entity_path
          )
          + structured_name.entity_links,
          time_grain=TimeGranularity(time_granularity_name.lower())
          if time_granularity_name
          else None,
          date_part=DatePart(date_part_name.lower())
          if date_part_name
          else None,
      )
  
imports: from __future__ import annotations
  from typing import Optional, Sequence
  from dbt_semantic_interfaces.call_parameter_sets import TimeDimensionCallParameterSet
  from dbt_semantic_interfaces.naming.dundered import DunderedNameFormatter
  from dbt_semantic_interfaces.protocols.protocol_hint import ProtocolHint
  from dbt_semantic_interfaces.protocols.query_interface import QueryInterfaceTimeDimensionFactory
  from dbt_semantic_interfaces.references import EntityReference, TimeDimensionReference
  from dbt_semantic_interfaces.type_enums import TimeGranularity
  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 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
label_desc: Use image node_id 3 for calling the WhereFilterTimeDimensionFactory obj's underlying member method code with example usage: obj.create(time_dimension_name, time_granularity_name, entity_path, descending, date_part_name) and returns: WhereFilterTimeDimension