o
    QDi                     @  s   d dl mZ d dlmZmZ d dlZddlmZmZ ddl	m
Z
 ddlmZ er:ddlmZ dd	lmZ dd
lmZ ejdddG dd de
ZdS )    )annotations)TYPE_CHECKINGIterableN   )errorshelpers)Check)platform)Error)Resource)RowTF)kw_onlyreprc                      s   e Zd ZdZd Zejejejej	ej
ejejejejejejejejejejejejejgZd fddZddd	ZdddZdddZ  ZS )baselinezkCheck a table for basic errors

    This check is enabled by default for any `validate` function run.

    resourcer   c                   s   t  | d S N)superconnect)selfr   	__class__ U/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/checks/baseline.pyr   7   s   zbaseline.connectreturnIterable[Error]c                 c  s^    t | jtjjr(| jjp| jj }|rtjddgng E d H  | jj	jE d H  g E d H  d S )Nzthe source is emptynote)

isinstancer   r	   frictionless_resourcesTableResourcelabelsfragmentr   SourceErrorheader)r   emptyr   r   r   validate_start<   s   zbaseline.validate_startrowr   c                 c  s    |j E d H  d S r   )r   )r   r&   r   r   r   validate_rowC   s   zbaseline.validate_rowc                 c  sB   | j jr8t| j j\}}d }|dkr| j jj}n	|dkr#| j jj}|r8||kr8d}|||f }tj|dV  | j j	rY| j j	| j jj	krYd}|| j j	| j jj	f }tj
|dV  | j jrz| j j| j jjkrzd}|| j j| j jjf }tj|dV  | j jr| j j| j jjkrd}|| j j| j jjf }tj|dV  d S d S d S )Nmd5sha256z#expected is "%s" and actual is "%s"r   )r   hashr   parse_resource_hash_v1statsr(   r)   r   HashCountErrorbytesByteCountErrorfieldsFieldCountErrorrowsRowCountError)r   	algorithmexpectedactualr   r   r   r   validate_endF   s:   
zbaseline.validate_end)r   r   )r   r   )r&   r   r   r   )__name__
__module____qualname____doc__typer   r-   r/   r1   r3   BlankHeaderErrorExtraLabelErrorMissingLabelErrorBlankLabelErrorDuplicateLabelErrorIncorrectLabelErrorBlankRowErrorPrimaryKeyErrorForeignKeyErrorExtraCellErrorMissingCellError	TypeErrorConstraintErrorUniqueErrorErrorsr   r%   r'   r7   __classcell__r   r   r   r   r      s4    

r   )
__future__r   typingr   r   attrs r   r   	checklistr   r	   errorr
   r   r   tabler   definer   r   r   r   r   <module>   s    