
    ݦi{                     4    d dl Zd dlZd dlZd Zd Zd Zd Zy)    Nc                     	 t        | d      5 }t        j                  |      cd d d        S # 1 sw Y   y xY w# t        $ r}t	        d|        Y d }~y d }~ww xY w)NrzError reading JSON file: )openjsonload	Exceptionprint)	file_pathfilees      </home/hirelines/hirelines/app_api/functions/excel_mapping.py	read_jsonr      sU    )S! 	#T99T?	# 	# 	# )!-.s)   9 -	9 69 9 	AAAc                 v    	 t        j                  |       S # t        $ r}t        d|        Y d }~y d }~ww xY w)NzError reading Excel file: )pd
read_excelr   r	   )r
   r   s     r   r   r      s9    }}Y'' *1#./s    	838c                    d}d}|j                  dd      }| j                         D ]  \  }}t        j                  |      r|dz  }d|v r%|d   }t	        j
                  |t        |            sJd|v rt        t        |            |d   k  rid|v rt        t        |            |d   kD  r|dz  } ||dkD  r|dz  |z  }||k\  S ||k(  S )	zWValidates a column based on the provided rules, including optional accuracy percentage.r   accuracyN   pattern
min_length
max_lengthd   )getitemsr   isnarematchstrlen)	valuesrulesvalid_counttotal_countaccuracy_percentageindexvaluer   required_valid_rowss	            r   validate_columnr(      s    KK  ))J5 u775>q I&G88GSZ05 SU_u\7J%J5 SU_u\7J%Jq!$ &;?2S8KG111k))    c                 X   t        |       }|si S |j                  di       }t        |      }|i S i }|j                         D ]d  \  }}|j                  di       }|sg ||<    g }	t	        |j
                        D ]&  \  }
}t        ||   |      s|	j                  |
       ( |	||<   f |S )Ncolumn_mappingsvalidations)r   r   r   r   	enumeratecolumnsr(   append)json_file_pathexcel_file_path	json_datar+   
excel_dataoutputjson_keyr!   r,   matching_columnscolumn_indexcolumn_names               r   validate_excel_with_jsonr9   8   s    .)I	mm$5r:O O,J	 F*002 ,%iir2!F8)2:3E3E)F 	6%L+z+6D ''5	6
 ,x, Mr)   )pandasr   r   r   r   r   r(   r9    r)   r   <module>r<      s#      	*Br)   