
    =ij                         S SK JrJr  S SKJr  S SKJr  S SKrS SKrS SK	J
r
  S SKJr  S SKJr  \" 5       rS rS	 r " S
 S\5      r\R'                  S5      S\4S j5       r\S:X  a  S SKr\R.                  " \SSS9  gg)    )FastAPIHTTPException)	BaseModel)ListN)	sanscript)transliterate)fuzzc                 `   U (       d  gU R                  SS5      n [        R                  " SSU 5      n [        U [        R
                  [        R                  5      nUR                  5       R                  5       nSSSSSS	S
S.nUR                  5        H  u  pEUR                  XE5      nM     U$ )N  z\s+([\u09BE-\u09CD])z\1MandalPhulmaliDafadarNandiDasSheikh)maNDalamandala	phulamAlI	daphadaranandIdAsashekha)
replaceresubr   r   BENGALIITRANSlower
capitalizeitems)textenglish_phonetic	eng_cleanreplacementskvs         !/var/www/html/land-tabula/main.pyml_transliterater)   *  s    <<"%D66)5$7D %T9+<+<i>N>NO &&(335I i%8L
 ""$%%a+	 %    c                    / nSu  p# [         R                  " U 5       nUR                   GHq  nUR                  nUR	                  US   SUS   U45      nUR	                  US   SUS   U45      n0 n	UR                  5        H;  n
[        U
S   S-  5      S-  nU	R                  U/ 5      R                  U
S   5        M=     UR                  5        H  nUS   R                  5       n[        R                  " SU5      (       d  M4  U	R                  5        H~  u  p[        XS   -
  5      S:  d  M  [        R                  " S	S
SR                  U5      5      R                  5       n[!        U5      S:  d  Ma  UR                  U[#        U5      S.5        M     M     GMt     S S S 5        U$ ! , (       d  f       U$ = f! [$         a  n['        SU 35        / s S nA$ S nAff = f)N))   U   )R      r      top   r"   z[\d/]+   z[A-Za-z0-9\u0000]r    )khatianowner_enzExtraction Error: )
pdfplumberopenpagesheightcropextract_wordsround
setdefaultappendstripr   	fullmatchr!   absr   joinlenr)   	Exceptionprint)	file_path	extractedK_ZONEN_ZONEpdfpagehk_stripn_stripname_mapnwy_keykwk_valnytextsbnes                     r(   extract_data_from_pdfrY   >  s   I(NF__Y'3		KK))VAY6!9a$@A))VAY6!9a$@A !//1B!"U)a-014E''r299"V*E 2 "//1BvJ,,.E||Iu55)1)9IB"25	>2R7%'VV,@"chhuo%V%\%\%^#&r7Q;$-$4$4384DR4H6& %' *:	 2 " (2 3 ('2  "1#&'	sN   F= C$F+'F+1AF+7*F+!	F= +
F:5F= :F= =
G!GG!G!c                   @    \ rS rSr% \\   \S'   \\   \S'   \\S'   Srg)MatchRequestib  r5   ownersource_file N)__name__
__module____qualname____firstlineno__r   str__annotations____static_attributes__r^   r*   r(   r[   r[   b  s    #Y9r*   r[   z/match-land-recordsrequestc           	        #    SU R                    3n[        U5      nU(       d
  [        SSS9e/ n[        U R                  U R
                  5       H  u  pESSSS.n[        U5      R                  S	5      nU H[  n[        US
   5      R                  S	5      n	X:X  d  M'  [        R                  " XXS   5      n
U
S:  d  MH  XS   :  d  MR  SU
US   S.nM]     UR                  UUUS   US   US   S.5        M     SUS.$ 7f)Nz%/var/www/html/land-tabula/input_pdfs/i  z#File not found or extraction failed)status_codedetailFr   r   )
is_matchedscore
matched_as0r5   r6   <   rk   Trj   rl   )input_khatianinput_ownerrj   
confidencematched_name_in_pdfsuccess)statusresults)r]   rY   r   zipr5   r\   rc   lstripr	   token_set_ratior?   )rf   rG   pdf_contentru   req_khatreq_own
best_matchnorm_req_khatrecordnorm_pdf_khatrk   s              r(   match_recordsr   g  s      88K8K7LMI (	2K4YZZG !'--@$)ARH
 H,,S1!Fy 1299#>M-,,WZ6HIB;5g+>#>&*!&&,Z&8"J " 	%"$\2$W-#-l#;
 	) A8  G44s   BC?C??C?	6C?__main__z0.0.0.0i@  )hostport)fastapir   r   pydanticr   typingr   r7   r   indic_transliterationr   indic_transliteration.sanscriptr   thefuzzr	   appr)   rY   r[   postr   r_   uvicornrunr^   r*   r(   <module>r      s   ~ +    	 + 9 i("H9 
 
 )5 )5 !)5V zKK)$/ r*   