
    =pj                     N   S SK r S SKrS SKrS SKrS SKJr  S SKrSSKJr  SSK	J
r
  SSKJr  S\4S jrS\4S	 jrS
\S\4S jr\" S5      rSS/SS./ SQSS.S.r " S S\5      r " S S5      r " S S5      r " S S\5      r\R0                  R3                  S \" 5       5        g)    N)
ModuleType   )logging)class_requires_deps)import_paddle_modulereturnc                  @    [         R                  R                  S5      $ )N~)ospath
expanduser     P/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/paddlex/ops/__init__.pyget_user_homer      s    77c""r   c                  R    [         R                  R                  [        5       S5      $ )Nz.pprndr)r   r   joinr   r   r   r   get_pprndr_homer       s    77<<33r   	directoryc                     [         R                  R                  [        5       U 5      n[         R                  " USS9  U$ )NT)exist_ok)r   r   r   r   makedirs)r   homes     r   get_sub_homer   $   s,    77<<)95DKKt$Kr   tmpzvoxel/voxelize_op.cczvoxel/voxelize_op.cuz0.1.0)sourcesversion)ziou3d_nms/iou3d_cpu.cppziou3d_nms/iou3d_nms_api.cppziou3d_nms/iou3d_nms.cppziou3d_nms/iou3d_nms_kernel.cu)voxelize	iou3d_nmsc                        \ rS rSrS rS rSrg)CustomOpNotFoundException=   c                     Xl         g Nop_name)selfr&   s     r   __init__"CustomOpNotFoundException.__init__>   s    r   c                 8    SR                  U R                  5      $ )NzCouldn't Found custom op {})formatr&   r'   s    r   __str__!CustomOpNotFoundException.__str__A   s    ,33DLLAAr   r%   N)__name__
__module____qualname____firstlineno__r(   r-   __static_attributes__r   r   r   r!   r!   =   s    Br   r!   c                   &    \ rS rSrSS\4S jjrSrg)CustomOperatorPathFinderE   Nfullnamec                 ~    UR                  S5      (       d  g [        R                  R                  U[	        5       SS9$ )Npaddlex.opsF)nameloader
is_package)
startswith	importlib	machinery
ModuleSpecCustomOperatorPathLoader)r'   r7   r   targets       r   	find_spec"CustomOperatorPathFinder.find_specF   s@    ""=11""--+- . 
 	
r   r   r$   )r/   r0   r1   r2   strrC   r3   r   r   r   r5   r5   E   s    
# 
 
r   r5   c                   "    \ rS rSrS\4S jrSrg)rA   P   r7   c                 J   UR                  S5      S   nU[        ;  a  [        U5      eU[        R                  ;  a(   [
        R                  " U5      [        R                  U'   [        R                  U   $ ! [         a    [        X!5      [        R                  U'    N;f = f)N.)	split
custom_opsr!   sysmodulesr>   import_moduleImportErrorPaddleXCustomOperatorModule)r'   r7   
modulenames      r   load_module$CustomOperatorPathLoader.load_moduleQ   s    ^^C(,
Z'+J773;;&(1(?(?
(KH%
 {{8$$	  (C)H%s   'A9 9&B"!B"r   N)r/   r0   r1   r2   rE   rS   r3   r   r   r   rA   rA   P   s    %C %r   rA   c                   T   ^  \ rS rSrS\S\4U 4S jjrS rS rS\4U 4S jjrS	r	U =r
$ )
rQ   a   rR   r7   c                 J   > X l         Xl        S U l        [        TU ]  U5        g r$   )r7   rR   modulesuperr(   )r'   rR   r7   	__class__s      r   r(   $PaddleXCustomOperatorModule.__init__b   s!     $$r   c                 "   [        S5      R                  n SR                  U R                  5      n[        R
                  R                  [        U5      n[        R                  " [        R                  S   5      n[        R
                  R                  U5      S   n[        U R                     R                  5       nUR                  S5      nU Vs/ s H"  n[        R
                  R                  XC5      PM$     nnUR                  S5        [         R"                  " U5         U" S	U R                  US.UD6sS S S 5        $ s  snf ! , (       d  f       g = f!   [$        R&                  " SR                  U R                  5      5        e = f)
Nzpaddle.utils.cpp_extensionzpaddlex.ops.{}r9   r   r   r   )r:   r   z{} built fail!r   )r   loadr+   rR   r   r   r   TMP_HOMEinspect
getabsfilerM   rN   rK   rL   copypopfilelockFileLockr   error)r'   paddle_jit_loadlockfilefilerootdirargsr   s          r   	jit_build%PaddleXCustomOperatorModule.jit_buildh   s#   ./KLQQ	'..t?Hww||Hh7H%%ckk-&@ADggmmD)!,Gdoo.335Dhhy)G?FGwtrww||G2wGGHHY""8,&UDOOWUPTU -, H -,	MM*11$//BCs<   B>E )E>)E 'E<	E E 
EE E 2Fc                    U R                   cM   [        R                  " U R                  5      U l         U R                   [        R                  U R                  '   U R                   $ ! [         av    [
        R                  " SR                  U R                  5      5        U R                  5       U l         [
        R                  " SR                  U R                  5      5         Nf = f)Nz$No custom op {} found, try JIT buildz{} built success!)rX   r>   rO   rR   rP   r   warningr+   rk   inforM   rN   r7   r,   s    r   _load_module(PaddleXCustomOperatorModule._load_module|   s    ;;J'55dooF *.CKK&{{  J:AA$//R #nn.077HIJs   %A' 'A=C'&C'attrc                    > US;   a  g US;   a  [         TU ]  U5      $ U R                  5       n[        X!5      (       d/  [	        SR                  XR                  UR                  5      5      e[        X!5      $ )N)__path____file__)
__loader____package__r/   __spec__z&cannot import name '{}' from '{}' ({}))	rY   __getattr__rp   hasattrrP   r+   rR   ru   getattr)r'   rr   rX   rZ   s      r   ry   'PaddleXCustomOperatorModule.__getattr__   sv    ++HH7&t,,""$v$$8??//6?? 
 v$$r   )r7   rX   rR   )r/   r0   r1   r2   rE   r(   rk   rp   ry   r3   __classcell__)rZ   s   @r   rQ   rQ   a   s1    %3 %# %(% % %r   rQ   )r>   r_   r   rM   typesr   rc   utilsr   
utils.depsr   utils.import_guardr   rE   r   r   r   r^   rL   	Exceptionr!   r5   rA   rQ   	meta_pathinsertr   r   r   <module>r      s      	 
    , 5#s #4 4C C   +,BC

 
"B	 B
 
% %"8%* 8%v   Q02 3r   