o
    QDi                     @  s   d dl mZ d dlmZmZ d dlZddlmZ ddlm	Z	 er2d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)Check)Error)Resource)RowTF)kw_onlyreprc                      sb   e Zd ZU dZdZejgZded< 	 d fddZ	dddZ
dddZdgdddiidZ  ZS )sequential_valuez-Check that a column having sequential values.zsequential-valuestr
field_nameresourcer	   c                   s   t  | d | _d| _d S )NF)superconnect_sequential_value__cursor_sequential_value__exited)selfr   	__class__ b/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/checks/cell/sequential_value.pyr      s   
zsequential_value.connectreturnIterable[Error]c                 c  s2    | j | jjjvrd| j  }tj|dV  d S d S )Nz*sequential value check requires field "%s")note)r   r   schemafield_namesr   
CheckError)r   r   r   r   r   validate_start&   s
   
zsequential_value.validate_startrowr
   c                 c  sv    | j s9|| j }z| jp|| _| j|ksJ |  jd7  _W d S  ty8   d| _ tjj|d| jdV  Y d S w d S )N   Tzthe value is not sequential)r   r   )r   r   r   	Exceptionr   SequentialValueErrorfrom_row)r   r!   cellr   r   r   validate_row+   s    
zsequential_value.validate_row	fieldNametypestring)required
properties)r   r	   )r   r   )r!   r
   )__name__
__module____qualname____doc__r)   r   r$   Errors__annotations__r   r    r'   metadata_profile_patch__classcell__r   r   r   r   r      s   
 

r   )
__future__r   typingr   r   attrs r   	checklistr   errorr   r   r	   tabler
   definer   r   r   r   r   <module>   s    