Ë
    èlÖi‡  ã                  ó¦   — d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZmZ  G d„ d	e«      Z G d
„ de«      Z G d„ de«      Zy)é    )Úannotations)Úabstractmethod)ÚOptionalÚProtocol)ÚSemanticLayerElementConfig)ÚMetadata)ÚDimensionReferenceÚTimeDimensionReference)ÚDimensionTypeÚTimeGranularityc                  óH   — e Zd ZdZeedd„«       «       Zeedd„«       «       Zy)ÚDimensionValidityParamsaú  Parameters identifying a given dimension as an entity for validity state.

    This construct is used for supporting SCD Type II tables, such as might be
    created via dbt's snapshot feature, or generated via periodic loads from external
    dimension data sources. In either of those cases, there is typically a time dimension
    associated with the SCD data source that indicates the start and end times of a
    validity window, where the dimension value is valid for any time within that range.
    c                 ó   — y ©N© ©Úselfs    úp/var/www/html/strategist-ai/venv_dbt/lib/python3.12/site-packages/dbt_semantic_interfaces/protocols/dimension.pyÚis_startz DimensionValidityParams.is_start   ó   € ð 	ó    c                 ó   — y r   r   r   s    r   Úis_endzDimensionValidityParams.is_end   r   r   N©ÚreturnÚbool)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   r   r   r   r   r      s?   „ ñð Øòó ó ðð Øòó ó ñr   r   c                  óH   — e Zd ZdZeedd„«       «       Zeedd„«       «       Zy)ÚDimensionTypeParamszRPydanticDimension type params add context to some types of dimensions (like time).c                 ó   — y r   r   r   s    r   Útime_granularityz$DimensionTypeParams.time_granularity'   r   r   c                 ó   — y r   r   r   s    r   Úvalidity_paramsz#DimensionTypeParams.validity_params,   r   r   N)r   r   ©r   z!Optional[DimensionValidityParams])r   r   r   r    r!   r   r%   r'   r   r   r   r#   r#   $   s;   „ Ù\àØòó ó ðð Øòó ó ñr   r#   c                  ó`  — e Zd ZdZeedd„«       «       Zeedd„«       «       Zeedd„«       «       Zeedd„«       «       Z	eedd„«       «       Z
eedd„«       «       Zeedd„«       «       Zeedd	„«       «       Zeedd
„«       «       Zeedd„«       «       Zeedd„«       «       Zeedd„«       «       Zy)Ú	DimensionzDescribes a dimension.c                 ó   — y r   r   r   s    r   ÚnamezDimension.name5   r   r   c                 ó   — y r   r   r   s    r   ÚdescriptionzDimension.description:   r   r   c                 ó   — y r   r   r   s    r   ÚtypezDimension.type?   r   r   c                 ó   — y r   r   r   s    r   Úis_partitionzDimension.is_partitionD   r   r   c                 ó   — y r   r   r   s    r   Útype_paramszDimension.type_paramsI   r   r   c                 ó   — y r   r   r   s    r   ÚexprzDimension.exprN   r   r   c                 ó   — y r   r   r   s    r   ÚmetadatazDimension.metadataS   r   r   c                 ó   — y)zEReturns a DimensionReference object for the dimension implementation.Nr   r   s    r   Ú	referencezDimension.referenceX   ó   € ð 	r   c                 ó   — y)zUReturns a TimeDimensionReference if the dimension implementation is a time dimension.Nr   r   s    r   Útime_dimension_referencez"Dimension.time_dimension_reference^   r;   r   c                 ó   — y)zSReturns the DimensionValidityParams if they exist for the dimension implementation.Nr   r   s    r   r'   zDimension.validity_paramsd   r;   r   c                 ó   — y)zGReturns a string representing a human readable label for the dimension.Nr   r   s    r   ÚlabelzDimension.labelj   s   € ð 	r   c                 ó   — y r   r   r   s    r   ÚconfigzDimension.configp   r   r   N)r   Ústr)r   zOptional[str])r   r   r   )r   zOptional[DimensionTypeParams])r   zOptional[Metadata])r   r	   )r   z Optional[TimeDimensionReference]r(   )r   z$Optional[SemanticLayerElementConfig])r   r   r   r    r!   r   r,   r.   r0   r2   r4   r6   r8   r:   r=   r'   r@   rB   r   r   r   r*   r*   2   sS  „ Ù àØòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ñr   r*   N)Ú
__future__r   Úabcr   Útypingr   r   Ú&dbt_semantic_interfaces.protocols.metar   Ú*dbt_semantic_interfaces.protocols.metadatar   Ú"dbt_semantic_interfaces.referencesr	   r
   Ú"dbt_semantic_interfaces.type_enumsr   r   r   r#   r*   r   r   r   ú<module>rK      sE   ðÝ "å ß %å MÝ ?÷÷ Nô˜hô ô*˜(ô ôA�õ Ar   