
    Ng                         d Z ddlZddlZddlZg Z	 ddlZddlZn+# e$ r#  ed            ed            ed            w xY wd
dZ	d
dZ
d	 Z e             dS )z'
OpenCV Python binary extension loader
    Nz)OpenCV bindings requires "numpy" package.zInstall it via command:z    pip install numpyFc                   	 d                     t          |          }d                     | |          }t          j                            |d           }	 t          j        |          	n,# t          $ r}|rt          d|d|           Y d }~dS d }~ww xY w| t          j        v rAt          t          j        |          |          s!t          t          j        |          |	           	t          j        |<   |rxt          	d|           t          	fd|j                                                  D ]<\  }}|r$t          d                     |||                     t          	||           =dS )	Nz{}.{}z"Can't load Python code for module:z	. Reason:F_nativec                 2    t          | d                    S )Nr   )hasattr)kv	py_modules    H/var/www/html/ai-engine/env/lib/python3.11/site-packages/cv2/__init__.py<lambda>z1__load_extra_py_code_for_module.<locals>.<lambda>*   s    ')RU*C*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00K d33KOOK66M+K88		    	$6s$ $ $ uuuuu s{73;t+<d#C#CD!4333&/CK"# %	9m444CCCC(17799; ; 	% 	%DAq!V5)B)I)I$PQST)U)U#V#V#VIq!$$$$4s   A) )
B3BBc                 *   fd}t           j        d         dk     r| rt          d           g S t          j                            t                    }t          j                            |          t          |t          j	                            S )Nc           
          t          |                     d           |                     d           t          j                            t          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   sd    ""3'''""9---W]]27<<(CVLLM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   s         Q 	B@AAA	wx00"$'//2B"C"C."*-H"I"IJJJr   c            	         dd l } dd l}|                    | j                  }t          | d          r#t	          | j                   t          d          d| _        dt          | d          rddd l}rLt	          d                    t          j
        t          |                                                               t          j                            t          j                            t          j                            t                                         g }g }t#                      t%                                                      | j        d d         d	k     rd
dlm nd
dlm d(fd	} |dgd            |d                    | j        d         | j        d
                   d                    | j        d                   gd           r5t	          d                    t          d                                        r5t	          d                    t          d                                        d}t          | d          rd}nz	 t          j                                      }| j        d         |k    s.t          j                            | j        d                   |k    rd}n#  rt	          d           Y nxY wt/          d                   D ]!}	| j                            |sd
nd|	           "t          j
        dk    r| j        d d         dk    rXd         D ]O}		 t          j        |	           # t4          $ r+}
rt	          dt          |
          z              Y d }
~
Hd }
~
ww xY wd                    d                   dz   t          j                            dd          z   t          j        d<   r?t	          d                    t          t          j        d                                        nLd                    d                   dz   t          j                            dd          z   t          j        d<   rt	          d           | j                            d           }tA          j!        d           }|| j        d <   tE          |d!|           tG          d" |j$        %                                          D ]\  }}|vr||<   || _        	 | `n)# t4          $ r}
rt	          d#|
           Y d }
~
nd }
~
ww xY wrt	          d$           tM                    D ]&}tO          d |          rrt	          d%|d&           'rt	          d'           d S d S ))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                    | D ]}t           j                            |          }t           j                            |          s%r"t	          d                    |                     fr"t	          d                    |                      |            dS |r"t          d                    |                     d S )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GLLU33E7>>%(( Z% K R RSX Y YZZZNe?FFuMMNNNeVV44444 	zippqwxxyyy	z 	z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   s   JJJKKKIIch''MsO$$ @ch~CEs)** OOOreIPPQSQXZ]^f^m^m^o^oZpZpqqrrr1A1A(1K1K!L!LMMJ NYYFXX]]__F
f$$7777777777777
z 
z 
z 
z 
z 
z 
z 
z 
z 
z {mT***  !1!!4c6Fq6IJJc.q122   
 oe?FFs6RkKlGmGmnnooo]e6==c&IYBZ>[>[\\]]]"s/00 	!%	wz22Hx{h&&"'*:*:38A;*G*G8*S*S)-&	beabbbDf6788 C C!7>QBBBB	w$BQB6)),-  (++++    Ne$Es1vv$MNNNDDDD !XXf-=&>??#E
W]_aHbHbb
6Q%077BJv<N8O8OPPQQQ ),8H1I(J(JS(PSUS]SaSabsuwSxSx(x
$%NeMNNN&&I+E22M"CKIy-000! #V #V"/"8">">"@"@B B % %	4 F"" $F9CH? ? ? ? 	?:A>>>? <e;<<</66 M M	*5)UCC 	MLe3YLLL*e)*******s=   )A K
 
KM
N&!NNT
 

T0T++T0)F)__doc__r(   r   r   __all__numpynumpy.core.multiarrayr   r   r"   r6   ro   rW   r   r	   <module>rt      s     
			     





LLL      
 
 
	E
5666	E
#$$$	E
!"""		
   4K K K K&n+ n+ n+b 
	s	    (A