
    ni                     F   S SK r S SKrS SKJr  S SKJrJr  SSKJr  SSK	J
r
  \" \5      rSrSrS	\ S
3r\ R                   R#                  \ R                   R%                  \5      5      rS\ R                   R+                  \\5      0rS\4S jr " S S5      r " S S5      rg)    N)	getLogger)ListOptional   )JavaNotFoundError)TabulaOptionzo`java` command is not found from this Python process.Please ensure Java is installed and PATH is set for `java`z1.0.5ztabula-z-jar-with-dependencies.jarJAR_PATHreturnc                  P    [         R                  R                  S[        S   5      $ )N
TABULA_JARr	   )osenvirongetDEFAULT_CONFIG     J/var/www/html/land-ocr/venv/lib/python3.13/site-packages/tabula/backend.pyjar_pathr      s    ::>>,z(BCCr   c                   X    \ rS rSrS\\   S\\   SS4S jr SS\	S\\   S\4S	 jjr
S
rg)TabulaVm   java_optionssilentr
   Nc                     SS K nSS KnUR                  5       (       dC  UR                  [	        5       5        U(       a  UR                  S5        UR                  " USS06  SS KJn  SS K	J
n  SSKJn  XPl
        U" 5       U l        X@l        g ! [        [        4 aI  n[         R#                  S5        [         R#                  U5        S U l
        S U l        S U l         S nAg S nAff = f)Nr   z,-Dorg.slf4j.simpleLogger.defaultLogLevel=offzH-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLogconvertStringsF)DefaultParserz<Failed to import jpype dependencies. Fallback to subprocess.)jpypejpype.importsisJVMStartedaddClassPathr   extendstartJVM	java.langlangtechnology.tabulatabulaorg.apache.commons.clir   parserModuleNotFoundErrorImportErrorloggerwarningparse)selfr   r   r   r%   r'   r   es           r   __init__TabulaVm.__init__   s    #	 %%''""8:.  '' CUC$.< K'/DKI#[1 	NNN NN1DKDJDII	s   B
B C&?C!!C&optionspathc                    U R                   R                  5       nUR                  5       nU(       a  UR                  SU5        U R                  R                  U R                  R                  R                  5       U5      nU R                  R                  X55      R                  U5        [        UR                  5       5      $ )Nr   )r%   StringBuilderbuild_option_listinsertr)   r.   r'   CommandLineAppbuildOptionsextractTablesstrtoString)r/   r3   r4   sbargscmds         r   call_tabula_javaTabulaVm.call_tabula_java@   s     YY$$&((*KK4 kk : : G G I4P""2+99#>2;;=!!r   )r%   r.   r)   r'   N)__name__
__module____qualname____firstlineno__r   r<   r   boolr1   r   rA   __static_attributes__r   r   r   r   r      sQ    $T#Y $ $4 $N <@
"#
"+3C=
"	
" 
"r   r   c                       \ rS rSrS\\   S\\   S\SS4S jrS\S\\   S\\   SS4S jr	 SS	\
S
\\   S\4S jjrSrg)SubprocessTabulaM   r   r   encodingr
   Nc                 L    U(       a  UR                  S5        Xl        X0l        g Nr   )r"   r   rM   )r/   r   r   rM   s       r   r1   SubprocessTabula.__init__N   s'    
  ) r   c                 b    Xl         X l        U(       a  U R                  R                  S5        g g rO   )rM   r   r"   )r/   rM   r   r   s       r   update_encoding SubprocessTabula.update_encoding_   s0     !($$ r   r3   r4   c                    S/U R                   -   S[        5       /-   UR                  5       -   nU(       a  UR                  U5         [        R
                  " U[        R                  [        R                  [        R                  SS9nUR                  (       a;  [        R                  SUR                  R                  U R                  5       35        UR                  R                  U R                  5      $ ! [         a    [        [         5      e[        R"                   aB  n[        R%                  SUR                  R                  U R                  5       S35        e S nAff = f)Njavaz-jarT)stdoutstderrstdincheckzGot stderr: zError from tabula-java:

)r   r   r7   append
subprocessrunPIPEDEVNULLrW   r,   r-   decoderM   rV   FileNotFoundErrorr   JAVA_NOT_FOUND_ERRORCalledProcessErrorerror)r/   r3   r4   r?   resultr0   s         r   rA   !SubprocessTabula.call_tabula_javam   s    H xz"# '')* 	 KK	^^!! ((F }}fmm.B.B4==.Q-RST==''66  	:#$899,, 	LL4QXX__T]]5S4TTVWX	s   B2C; ;,E)'=E$$E))rM   r   rC   )rD   rE   rF   rG   r   r<   r   rH   r1   rR   r   rA   rI   r   r   r   rK   rK   M   s    ! I!/7~!IL!	!"+/9>Ftn	 <@#+3C=	 r   rK   )r   r\   loggingr   typingr   r   errorsr   utilr   rD   r,   rb   TABULA_JAVA_VERSIONJAR_NAMEr4   abspathdirname__file__JAR_DIRjoinr   r<   r   r   rK   r   r   r   <module>rr      s    	   ! % 	8	A   ())CD
''//"''//(3
4bggll7H=>D# D1" 1"h; ;r   