o
    QDi=                     @  sZ   d dl mZ d dlmZ d dl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)OptionalN   )errors)CheckTF)kw_onlyreprc                   @  s   e Zd ZU dZdZejgZdZde	d< 	 dZ
de	d< 	 dZde	d< 	 dZde	d< 	 dZde	d	< 	 dZde	d
< 	 dd Zdd ZdddiddiddiddiddiddidiZdS )table_dimensionsz/Check for minimum and maximum table dimensions.ztable-dimensionsNzOptional[int]num_rowsmin_rowsmax_rows
num_fields
min_fields
max_fieldsc                 c  s    t | jjj}| jr|| jkrtjd|| jf dV  | jr0|| jk r0tjd|| jf dV  | jrF|| jkrHtjd|| jf dV  d S d S d S )Nz*number of fields is %s, the required is %snotez)number of fields is %s, the minimum is %sz)number of fields is %s, the maximum is %s)	lenresourceschemafieldsr   r   TableDimensionsErrorr   r   )selfnumber_fields r   c/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/checks/table/table_dimensions.pyvalidate_start>   *   ztable_dimensions.validate_startc                 c  s    | j jjpd}| jr|| jkrtjd|| jf dV  | jr0|| jk r0tjd|| jf dV  | jrF|| jkrHtjd|| jf dV  d S d S d S )Nr   z(number of rows is %s, the required is %sr   z'number of rows is %s, the minimum is %sz'number of rows is %s, the maximum is %s)r   statsrowsr
   r   r   r   r   )r   number_rowsr   r   r   validate_endV   r   ztable_dimensions.validate_end
propertiestypenumber)numRowsminRowsmaxRows	numFields	minFields	maxFields)__name__
__module____qualname____doc__r"   r   r   Errorsr
   __annotations__r   r   r   r   r   r   r    metadata_profile_patchr   r   r   r   r	      s6   
 r	   )
__future__r   typingr   attrs r   	checklistr   definer	   r   r   r   r   <module>   s    