
    j                         d dl Z d dlZd dlZd dlZd dlZd dlZddlmZ ddl	m
Z
  ej                    Zd Zd Zd Zd Zdd	ZddZddZd Ze j        d             Ze j        d             ZdS )    N   )logging)get_device_typec                  $    t          j        | i |S N)
subprocess
check_call)argskwargss     j/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/paddlex/repo_manager/utils.py_check_callr      s     $1&111    c                     dd l fd} ||           } ||          }t          ||          D ]$\  }}||
||	||k     r dS ||	||k    r dS %dS )Nr   c                 r                        d          }|                    |           }|st          d|            t          |                    d                    t          |                    d                    t          |                    d                    |                    d          fS )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_versionz'_compare_version.<locals>.parse_version#   s    **u
 
  %%k22 	JH;HHIIIG$$%%G$$%%G$$%%KK&&	
 	
r      )r   zip)version1version2r   v1_infosv2_infosv1_infov2_infor   s          @r   _compare_versionr'       s    III
 
 
 
 
 }X&&H}X&&H(33  ?w?w2w7H7H22?w2w7H7H111r   c                 ~    	 t           j                            |            n# t           j        j        $ r Y dS w xY wdS )NFT)	importlibmetadatadistributionPackageNotFoundError)packages    r   check_package_installationr.   =   sN    ''00002   uu4s   " ::c                 \   ddl }d }| dk    rt          j                            t          j                            |dd                    r	 t
          dk    rt           |            d          dk    rd	t                      v r|                                r{|	                                sgt          t          j                            |dd                    5  t          j        d
dg}t          |           ddd           dS # 1 swxY w Y   dS t          j        d           dS dS dS )z-install paddle repository custom dependenciesr   Nc                      t          j        ddg                              d                                          d         S )Ngccz	--versionzutf-8r   )r   check_outputdecodesplit r   r   get_gcc_versionz.install_external_deps.<locals>.get_gcc_versionI   s8    &{';<<CCGLLRRT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=   r6   r
   s        r   install_external_depsrK   E   s   MMMX X X %%%7>>"',,y'8DDEE 	@G##$__%6%6@@AEE_....0022 / #88:: / (Y(R(RSS & &NJ	BD%%%& & & & & & & & & & & & & & & & & &
 Y    # &%	 	s   DDDc                     g d}t          | t                    r| g} |                    |            ||                    d|g           t          |          S )clone_repo_using_git)gitclone--depth1Nz-b)
isinstancestrextendr   )urlbranchr
   s      r   rM   rM   d   sb    +++D#s eKKT6N###tr   r   c                 N    dd|| dt          |          g}t          |           dS )fetch_repo_using_gitrN   fetchrP   N)rS   r   )rV   rU   depthr
   s       r   rX   rX   o   s.    7CCJJ?Dr   Tc                 ,    ddd| g}t          |          S )reset_repo_using_gitrN   resetz--hard)r   )pointerhardr
   s      r   r\   r\   u   s    7Hg.Dtr   c                     t           j                            |           r2t          dk    rt	          ddd| gd          S t	          dd| g          S d	S )
remove_repo_using_rmWindowsrmdirz/Sz/QT)shellrmz-rfN)r>   r?   r@   rB   r   )names    r   ra   ra   {   s^    	w~~d 4y  tT:$GGGGeT2333	4 4r   c               #   (  K   t          t          j        d          5 } t          j        |           5  t          j        |           5  dV  ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )mutewN)openr>   devnull
contextlibredirect_stdoutredirect_stderr)fs    r   rh   rh      sO      
bj#		 !'** 	 	J,Fq,I,I 	 	EEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 sX   BA/AA/AA/A A/#B/A3	3B6A3	7BBBc              #      K   t          j                    }t          j        |            	 dV  t          j        |           dS # t          j        |           w xY w)rE   N)r>   getcwdchdir)new_wdcwds     r   rE   rE      sT       )++CHV
s   A Ar   )r   )T)rl   importlib.metadatar)   r>   platformr   rF   utilsr   	utils.envr   systemrB   r   r'   r.   rK   rM   rX   r\   ra   contextmanagerrh   rE   r5   r   r   <module>r{      sH           				      



       ' ' ' ' ' '8?2 2 2  :    >         4 4 4        r   