Ë
    Ìi"  ã                  óØ   — d dl mZ d dlmZ d dlmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZ  G d„ de«      Z G d„ de«      Z ede¬«      Zy)é    )Úannotations)Úabstractmethod)ÚOptionalÚProtocolÚSequenceÚTypeVar)Ú	Dimension)ÚEntity)ÚMeasure)ÚSemanticLayerElementConfig)ÚMetadata)ÚNodeRelation)ÚEntityReferenceÚLinkableElementReferenceÚMeasureReferenceÚSemanticModelReferenceÚTimeDimensionReferencec                  ó,   — e Zd ZdZeedd„«       «       Zy)ÚSemanticModelDefaultsz(Path object to where the data should be.c                 ó   — y)zMThe aggregation time dimension to use for a measure if one was not specified.N© ©Úselfs    úq/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/dbt_semantic_interfaces/protocols/semantic_model.pyÚagg_time_dimensionz(SemanticModelDefaults.agg_time_dimension   ó   € ð 	ó    N©ÚreturnzOptional[str])Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   r   r   r   r      s   „ Ù2àØòó ó ñr   r   c                  ón  — 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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d'd„«       Zeed(d„«       «       Zeedd„«       «       Zy))ÚSemanticModelzDescribes a semantic model.c                 ó   — y ©Nr   r   s    r   ÚnamezSemanticModel.name"   ó   € ð 	r   c                 ó   — y)z7The defaults to use for fields when parsing this model.Nr   r   s    r   ÚdefaultszSemanticModel.defaults'   r   r   c                 ó   — y r(   r   r   s    r   ÚdescriptionzSemanticModel.description-   r*   r   c                 ó   — y r(   r   r   s    r   Únode_relationzSemanticModel.node_relation2   r*   r   c                 ó   — y)aX  The primary entity for dimensions listed in this model.

        This is for cases where there are dimensions in the model, but no entity with primary type. This allows those
        dimensions to be accessed as dimensions need to be qualified by an entity for access. This may be None if there
        are no dimensions in this model.
        Nr   r   s    r   Úprimary_entityzSemanticModel.primary_entity7   s   € ð 	r   c                 ó   — y r(   r   r   s    r   ÚentitieszSemanticModel.entitiesB   r*   r   c                 ó   — y r(   r   r   s    r   ÚmeasureszSemanticModel.measuresG   r*   r   c                 ó   — y r(   r   r   s    r   Ú
dimensionszSemanticModel.dimensionsL   r*   r   c                 ó   — y)zCReturns a list of references to all entities in the semantic model.Nr   r   s    r   Úentity_referenceszSemanticModel.entity_referencesQ   ó   € ð 	r   c                 ó   — y)zEReturns a list of references to all dimensions in the semantic model.Nr   r   s    r   Údimension_referencesz"SemanticModel.dimension_referencesW   r;   r   c                 ó   — y)zCReturns a list of references to all measures in the semantic model.Nr   r   s    r   Úmeasure_referencesz SemanticModel.measure_references]   r;   r   c                 ó   — y)zHReturns True if there are validity params set on one or more dimensions.Nr   r   s    r   Úhas_validity_dimensionsz%SemanticModel.has_validity_dimensionsc   r;   r   c                 ó   — y)z;Returns the validity window start dimension, if one is set.Nr   r   s    r   Úvalidity_start_dimensionz&SemanticModel.validity_start_dimensioni   r;   r   c                 ó   — y)z9Returns the validity window end dimension, if one is set.Nr   r   s    r   Úvalidity_end_dimensionz$SemanticModel.validity_end_dimensiono   r;   r   c                 ó   — y)z+Returns a list of all partition dimensions.Nr   r   s    r   Ú
partitionszSemanticModel.partitionsu   r;   r   c                 ó   — y)z/Returns the partition dimension, if one is set.Nr   r   s    r   Ú	partitionzSemanticModel.partition{   r;   r   c                 ó   — y)z+Returns a reference to this semantic model.Nr   r   s    r   Ú	referencezSemanticModel.reference�   r;   r   c                 ó   — y r(   r   r   s    r   ÚmetadatazSemanticModel.metadata‡   r*   r   c                 ó   — y r(   r   r   s    r   ÚconfigzSemanticModel.configŒ   r*   r   c                 ó   — y)zµReturns the `TimeDimensionReference` what a measure should use for it's `agg_time_dimension`.

        Should raise an exception if a TimeDimensionReference cannot be built
        Nr   )r   Úmeasure_references     r   Ú&checked_agg_time_dimension_for_measurez4SemanticModel.checked_agg_time_dimension_for_measure‘   s   € ð 	r   c                 ó   — y)z(Reference object form of primary_entity.Nr   r   s    r   Úprimary_entity_referencez&SemanticModel.primary_entity_reference™   r   r   c                 ó   — y)zLReturns a string representing a human readable label for the semantic model.Nr   r   s    r   ÚlabelzSemanticModel.labelŸ   r   r   N)r   Ústr)r   zOptional[SemanticModelDefaults]r   )r   r   )r   zSequence[Entity])r   zSequence[Measure])r   zSequence[Dimension])r   z"Sequence[LinkableElementReference])r   zSequence[MeasureReference])r   Úbool)r   zOptional[Dimension])r   r   )r   zOptional[Metadata])r   z$Optional[SemanticLayerElementConfig])rQ   r   r   r   )r   zOptional[EntityReference])r    r!   r"   r#   r$   r   r)   r,   r.   r0   r2   r4   r6   r8   r:   r=   r?   rA   rC   rE   rG   rI   rK   rM   rO   rR   rT   rV   r   r   r   r&   r&      sc  „ Ù%àØòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð Øòó ó ðð òó ðð Øòó ó ðð Øòó ó ñr   r&   ÚSemanticModelT)ÚboundN)Ú
__future__r   Úabcr   Útypingr   r   r   r   Ú+dbt_semantic_interfaces.protocols.dimensionr	   Ú(dbt_semantic_interfaces.protocols.entityr
   Ú)dbt_semantic_interfaces.protocols.measurer   Ú&dbt_semantic_interfaces.protocols.metar   Ú*dbt_semantic_interfaces.protocols.metadatar   Ú/dbt_semantic_interfaces.protocols.node_relationr   Ú"dbt_semantic_interfaces.referencesr   r   r   r   r   r   r&   rY   r   r   r   ú<module>re      sW   ðÝ "å ß 8Ó 8å AÝ ;Ý =Ý MÝ ?Ý H÷õ ô˜Hô ôD�Hô DñN Ð)°Ô?�r   