
    +|h                         d Z ddlZddlZddlZg Z	 ddlZddlZd	dZ	d	dZ
d Z e        y# e$ r  ed        ed        ed        w xY w)
z'
OpenCV Python binary extension loader
    Nz)OpenCV bindings requires "numpy" package.zInstall it via command:z    pip install numpyc                   	 dj                  t        |      }dj                  | |      }t        j                  j	                  |d       }	 t        j                  |      	| t        j                  v r;t        t        j                  |    |      st        t        j                  |    |	       	t        j                  |<   |rgt        	d|       t        	fd|j                  j                               D ]0  \  }}|rt        dj                  |||             t        	||       2 y# t        $ r}|rt        d|d|       Y d }~yd }~ww xY w)	Nz{}.{}z"Can't load Python code for module:z	. Reason:F_nativec                 $    t        | d          S )Nr   )hasattr)kv	py_modules    K/var/www/html/test/engine/venv/lib/python3.12/site-packages/cv2/__init__.py<lambda>z1__load_extra_py_code_for_module.<locals>.<lambda>*   s    ')RU*C&C     z    symbol({}): {} = {}T)format__name__sysmodulespop	importlibimport_moduleImportErrorprintr   setattrfilter__dict__items)
basenameenable_debug_printmodule_nameexport_module_namenative_moduleerrkvr   s
            @r	   __load_extra_py_code_for_moduler"      s&   ..40K d3KKOOK6M++K8	 s{{73;;t+<d#CD!43&/CKK"#	9m4C(11779; 	%DAq!5)B)I)I$PQST)U#VIq!$	% #  6s$ s   D* *	E3EEc                    fd}t         j                  d   dk  r| rt        d       g S t        j                  j                  t              }t        j                  j                  |      t        |t        j                              S )Nc           
          t        | j                  d       | j                  d       t        j                  j	                  t        j                  j                  |             f      S )N_zpython-)all
startswithospathisdirjoin)module_extra_submodules_init_paths    r	   modules_filterz2__collect_extra_submodules.<locals>.modules_filter2   sW    ""3''""9--WW]]277<<(CVLM
  	r   r      z,Extra submodules is loaded only for Python 3)
r   version_infor   r(   r)   abspath__file__dirnamer   listdir)r   r.   __INIT_FILE_PATHr-   s      @r	   __collect_extra_submodulesr6   1   sl     Q@A	wwx0"$''//2B"C."**-H"IJJr   c            	      
   dd l } dd l}|j                  | j                        }t        | d      r t	        | j                         t        d      d| _        dt        | d      rddd l}r@t	        dj                  t        j                  t        |j                                            t        j                  j                  t        j                  j                  t        j                  j                  t                           g }g }t#               t%               j                         | j&                  d d d	k  rd
dlm nd
dlm d(fd	} |dgd        |dj                  | j&                  d   | j&                  d
         dj                  | j&                  d         gd       r&t	        dj                  t        d                      r&t	        dj                  t        d                      d}t        | d      rd}nc	 t        j                  j                        }| j                  d   |k(  s/t        j                  j                  | j                  d         |k(  rd}t/        d         D ]"  }	| j                  j1                  |sd
nd|	       $ t        j                  dk(  r| j&                  d d dk\  r d   D ]  }		 t        j2                  |	        dj7                  d         dz   t        j8                  j;                  dd      z   t        j8                  d<   r~t	        dj                  t        t        j8                  d                      nIdj7                  d         dz   t        j8                  j;                  dd      z   t        j8                  d<   rt	        d       | j<                  j?                  d       }tA        jB                  d       }|| j<                  d <   tE        |d!|       tG        d" |jH                  jK                               D ]  \  }}|vs||<    || _        	 | `rt	        d$       tM              D ]   }tO        d |      sst	        d%|d&       " rt	        d'       y y #  rt	        d       Y 7xY w# t4        $ r$}
rt	        dt        |
      z          Y d }
~
d }
~
ww xY w# t4        $ r}
rt	        d#|
       Y d }
~
d }
~
ww xY w))Nr   OpenCV_LOADERzbERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.TFOpenCV_LOADER_DEBUGz3OpenCV loader: os.name="{}"  platform.system()="{}"   )r/   r      )exec_file_wrapperc                 R   | D ]  }t         j                  j                  |      }t         j                  j                  |      srt	        dj                  |             _rt	        dj                  |              |        y |rt        dj                  |             y )Nz)OpenCV loader: config not found, skip: {}z!OpenCV loader: loading config: {}TzIOpenCV loader: missing configuration file: {}. Check OpenCV installation.)r(   r)   r+   existsr   r   r   )	fnamesrequiredfnamefpathDEBUG
LOADER_DIRr<   g_varsl_varss	       r	   load_first_configz$bootstrap.<locals>.load_first_configc   s     	EGGLLU3E77>>%(% K R RSX YZe?FFuMNeVV4	 ippqwxyy r   z	config.pyzconfig-{}.{}.pyzconfig-{}.pyz)OpenCV loader: PYTHON_EXTENSIONS_PATHS={}PYTHON_EXTENSIONS_PATHSz OpenCV loader: BINARIES_PATHS={}BINARIES_PATHSOpenCV_REPLACE_SYS_PATH_0zCOpenCV loader: exception during checking workaround for sys.path[0]nt)r/      zFailed os.add_dll_directory(): ;PATH zOpenCV loader: PATH={}:LD_LIBRARY_PATHz7Relink everything from native cv2 module to cv2 packagecv2r   c                     | d   dvS )Nr   )r2   
__loader____spec__r   __package__ )r   s    r	   r
   zbootstrap.<locals>.<lambda>   s    RU ;V .V r   z&Exception during delete OpenCV_LOADER:z%OpenCV loader: binary extension... OKzExtra Python code forz	is loadedzOpenCV loader: DONE)T)(r   copyr)   r   r   r   r8   platformr   r(   r   strsystemr3   r1   realpathr2   globalslocalsr0   load_config_py2r<   load_config_py3reversedinsertadd_dll_directory	Exceptionr+   environgetr   r   r   r   r   r   r   r   r6   r"   )r   rX   save_sys_pathrY   rH   rI   rG   applySysPathWorkaroundBASE_DIRper   r   	item_nameitem	submodulerC   rD   r<   rE   rF   s                   @@@@@r	   	bootstrapro   D   sl   IIchh'MsO$chh~CEs)*eIPPQSQXQXZ]^f^m^m^oZpqr1A1A(1K!LMJ NYFX]]_F
f$77
z 
z {mT*  !1!1!!4c6F6Fq6IJc..q12 
 e?FFs6RkKlGmnoe6==c&IYBZ>[\]"s/0!%	wwz2Hxx{h&"''*:*:388A;*G8*S)-&
 f678 C!7QBC 
ww$BQ6),- ((+ !XXf-=&>?#E

W]_aHbb

6%077BJJv<N8OPQ ),8H1I(JS(PSUS]S]SaSabsuwSx(x

$%eMN&I++E2M"CKKIy-0! #V"/"8"8">">"@B %	4 F" $F9	% CH?
 e;</6 M	*5)UCe3YLM e)*ue	eab ! e$Es1v$MN8  ?:A>?s=   A"R" R7S' "R47	S$ SS$'	T0TT)F)__doc__r(   r   r   __all__numpynumpy.core.multiarrayr   r   r"   r6   ro   rW   r   r	   <module>rt      sn    
  


 4K&n+b 
Q  
	
56	
#$	
!"		
s	   - A