
    9i                         S SK r S SKrS SKrS SKrS SKrS SKrSSKJr  SSK	J
r
  \R                  " 5       rS rS rS rS rSS	 jrSS
 jrSS jrS r\ R*                  S 5       r\ R*                  S 5       rg)    N   )logging)get_device_typec                  .    [         R                  " U 0 UD6$ N)
subprocess
check_call)argskwargss     Z/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/paddlex/repo_manager/utils.py_check_callr      s      $1&11    c                    ^ SS K mU4S jnU" U 5      nU" U5      n[        X45       H)  u  pVUc  Uc  M  Ub  Ub  XV:  a    gUb  Uc  M"  XV:  d  M)    g   g)Nr   c                 ,  > TR                  S5      nUR                  U 5      nU(       d  [        SU  35      e[        UR	                  S5      5      [        UR	                  S5      5      [        UR	                  S5      5      UR	                  S5      4$ )Nzf^(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(?:-(?P<pre_release>.*))?(?:\+(?P<build_metadata>.+))?$zUnexpected version string: majorminorpatchpre_release)compilematch
ValueErrorintgroup)version_strversion_patternr   res      r   parse_version'_compare_version.<locals>.parse_version#   s    **u
  %%k2:;-HIIG$%G$%G$%KK&	
 	
r      )r   zip)version1version2r   v1_infosv2_infosv1_infov2_infor   s          @r   _compare_versionr(       sh    
 X&HX&H3?w?w2w7H?w2w7H 4 r   c                      [         R                  R                  U 5        g! [         R                  R                   a     gf = f)NFT)	importlibmetadatadistributionPackageNotFoundError)packages    r   check_package_installationr/   =   s@    ''0  22 s   " AAc                 L   SSK nS nU S:X  Ga  [        R                  R                  [        R                  R	                  USS5      5      (       a   [
        S:X  a  [        U" 5       S5      S:  a  S	[        5       ;   a|  UR                  5       (       ag  UR                  5       (       dR  [        [        R                  R	                  USS5      5         [        R                  S
S/n[        U5        SSS5        g[        R                  " S5        ggg! , (       d  f       g= f)z-install paddle repository custom dependenciesr   Nc                  r    [         R                  " SS/5      R                  S5      R                  5       S   $ )Ngccz	--versionzutf-8r   )r   check_outputdecodesplit r   r   get_gcc_version.install_external_deps.<locals>.get_gcc_versionI   s2    &&{';<CCGLRRTUVWWr   PaddleDetectionppdetext_opLinuxz8.2.0gpuzsetup.pyinstallaU  The custom operators in PaddleDetection for Rotated Object Detection is only supported when using CUDA, GCC>=8.2.0 and Paddle>=2.0.1, your environment does not meet these requirements, so we will skip the installation of custom operators under PaddleDetection/ppdet/ext_ops, which means you can not train the Rotated Object Detection models.)paddleospathexistsjoinPLATFORMr(   r   is_compiled_with_cudais_compiled_with_rocmswitch_working_dirsys
executabler   r   warning)	repo_name	repo_rootr?   r7   r
   s        r   install_external_depsrM   E   s    X %%77>>"'',,y'8DEE@G#$_%6@AE_..0022"88:: (Y(RSNNJ	BD% TS
 Y! F & TSs   D
D#c                     / SQn[        U [        5      (       a  U /n UR                  U 5        Ub  UR                  SU/5        [        U5      $ )clone_repo_using_git)gitclone--depth1z-b)
isinstancestrextendr   )urlbranchr
   s      r   rO   rO   d   sH    +D#seKKT6N#tr   c                 :    SSXS[        U5      /n[        U5        g)fetch_repo_using_gitrP   fetchrR   N)rU   r   )rX   rW   depthr
   s       r   rZ   rZ   o   s    7CCJ?Dr   c                 $    SSSU /n[        U5      $ )reset_repo_using_gitrP   resetz--hard)r   )pointerhardr
   s      r   r^   r^   u   s    7Hg.Dtr   c                     [         R                  R                  U 5      (       a&  [        S:X  a  [	        SSSU /SS9$ [	        SSU /5      $ g	)
remove_repo_using_rmWindowsrmdirz/Sz/QT)shellrmz-rfN)r@   rA   rB   rD   r   )names    r   rc   rc   {   sJ    	ww~~dy tT:$GGeT233	 r   c               #   <  #    [        [        R                  S5       n [        R                  " U 5         [        R
                  " U 5         Sv   SSS5        SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g= f7f)mutewN)openr@   devnull
contextlibredirect_stdoutredirect_stderr)fs    r   rj   rj      s\      
bjj#	!''*J,F,Fq,I -J* 
	,I,I** 
	sK   BBA:A)A:B 	B)
A73A::
B	B
BBc              #      #    [         R                  " 5       n[         R                  " U 5         Sv   [         R                  " U5        g! [         R                  " U5        f = f7f)rG   N)r@   getcwdchdir)new_wdcwds     r   rG   rG      s<      ))+CHHV
s   ,A%A
 A%
A""A%r   )r    )T)rn   importlib.metadatar*   r@   platformr   rH   utilsr   	utils.envr   systemrD   r   r(   r/   rM   rO   rZ   r^   rc   contextmanagerrj   rG   r6   r   r   <module>r}      s      	   
  '??2:>4    r   