o
    >e%                     @   s   d dgZ ddlZddlZdd Zeddd Zedd	d
 Zeddd Zeddd Zeddd Z	eddd Z
edG dd dZedG dd dZdd  Zdd Zejejj_dS )opkernel    Nc                        fdd}|S )Nc                    s   | t j  j| j< | S N)sysmodules__dict____name__)funcmname R/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/cv2/gapi/__init__.pyparameterized   s   zregister.<locals>.parameterizedr   )r   r   r   r   r   register   s   r   zcv2.gapic                  G   s   t ttt jj| S r   )cvZgapi_GNetPackagelistmapdetailstripargsr   r   r   networks   s   r   c                  G   s   t ttj| S r   )r   r   r   ZGCompileArgr   r   r   r   compile_args   s   r   cv2c                  G      g | S r   r   r   r   r   r   GIn      r   c                  G   r   r   r   r   r   r   r   GOut   r   r   c                  G   r   r   r   r   r   r   r   gin"   r   r   c                  G   r   r   r   r   r   r   r   descr_of'   r   r    c                   @   s   e Zd Zdd ZG dd dZG dd dZG dd dZG d	d
 d
ZG dd dZG dd dZ	G dd dZ
G dd dZG dd dZG dd dZG dd dZG dd dZdS )GOpaquec                 C   
   t |S r   )r   GOpaqueTclsZargtyper   r   r   __new__0      
zGOpaque.__new__c                   @      e Zd Zdd ZdS )zGOpaque.Boolc                 C      t t jjS r   )r   r#   gapiCV_BOOLselfr   r   r   r&   4      zGOpaque.Bool.__new__Nr	   
__module____qualname__r&   r   r   r   r   Bool3       r2   c                   @   r(   )zGOpaque.Intc                 C   r)   r   )r   r#   r*   CV_INTr,   r   r   r   r&   8   r.   zGOpaque.Int.__new__Nr/   r   r   r   r   Int7   r3   r5   c                   @   r(   )zGOpaque.Doublec                 C   r)   r   )r   r#   r*   	CV_DOUBLEr,   r   r   r   r&   <   r.   zGOpaque.Double.__new__Nr/   r   r   r   r   Double;   r3   r7   c                   @   r(   )zGOpaque.Floatc                 C   r)   r   )r   r#   r*   CV_FLOATr,   r   r   r   r&   @   r.   zGOpaque.Float.__new__Nr/   r   r   r   r   Float?   r3   r9   c                   @   r(   )zGOpaque.Stringc                 C   r)   r   )r   r#   r*   	CV_STRINGr,   r   r   r   r&   D   r.   zGOpaque.String.__new__Nr/   r   r   r   r   StringC   r3   r;   c                   @   r(   )zGOpaque.Pointc                 C   r)   r   )r   r#   r*   CV_POINTr,   r   r   r   r&   H   r.   zGOpaque.Point.__new__Nr/   r   r   r   r   PointG   r3   r=   c                   @   r(   )zGOpaque.Point2fc                 C   r)   r   )r   r#   r*   
CV_POINT2Fr,   r   r   r   r&   L   r.   zGOpaque.Point2f.__new__Nr/   r   r   r   r   Point2fK   r3   r?   c                   @   r(   )zGOpaque.Point3fc                 C   r)   r   )r   r#   r*   
CV_POINT3Fr,   r   r   r   r&   P   r.   zGOpaque.Point3f.__new__Nr/   r   r   r   r   Point3fO   r3   rA   c                   @   r(   )zGOpaque.Sizec                 C   r)   r   )r   r#   r*   CV_SIZEr,   r   r   r   r&   T   r.   zGOpaque.Size.__new__Nr/   r   r   r   r   SizeS   r3   rC   c                   @   r(   )zGOpaque.Rectc                 C   r)   r   )r   r#   r*   CV_RECTr,   r   r   r   r&   X   r.   zGOpaque.Rect.__new__Nr/   r   r   r   r   RectW   r3   rE   c                   @   r(   )zGOpaque.Primc                 C   r)   r   )r   r#   r*   CV_DRAW_PRIMr,   r   r   r   r&   \   r.   zGOpaque.Prim.__new__Nr/   r   r   r   r   Prim[   r3   rG   c                   @   r(   )zGOpaque.Anyc                 C   r)   r   )r   r#   r*   CV_ANYr,   r   r   r   r&   `   r.   zGOpaque.Any.__new__Nr/   r   r   r   r   Any_   r3   rI   N)r	   r0   r1   r&   r2   r5   r7   r9   r;   r=   r?   rA   rC   rE   rG   rI   r   r   r   r   r!   ,   s    r!   c                   @   s   e Zd Zdd ZG dd dZG dd dZG dd dZG d	d
 d
ZG dd dZG dd dZ	G dd dZ
G dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd  d Zd!S )"GArrayc                 C   r"   r   )r   GArrayTr$   r   r   r   r&   g   r'   zGArray.__new__c                   @   r(   )zGArray.Boolc                 C   r)   r   )r   rK   r*   r+   r,   r   r   r   r&   k   r.   zGArray.Bool.__new__Nr/   r   r   r   r   r2   j   r3   r2   c                   @   r(   )z
GArray.Intc                 C   r)   r   )r   rK   r*   r4   r,   r   r   r   r&   o   r.   zGArray.Int.__new__Nr/   r   r   r   r   r5   n   r3   r5   c                   @   r(   )zGArray.Doublec                 C   r)   r   )r   rK   r*   r6   r,   r   r   r   r&   s   r.   zGArray.Double.__new__Nr/   r   r   r   r   r7   r   r3   r7   c                   @   r(   )zGArray.Floatc                 C   r)   r   )r   rK   r*   r8   r,   r   r   r   r&   w   r.   zGArray.Float.__new__Nr/   r   r   r   r   r9   v   r3   r9   c                   @   r(   )zGArray.Stringc                 C   r)   r   )r   rK   r*   r:   r,   r   r   r   r&   {   r.   zGArray.String.__new__Nr/   r   r   r   r   r;   z   r3   r;   c                   @   r(   )zGArray.Pointc                 C   r)   r   )r   rK   r*   r<   r,   r   r   r   r&      r.   zGArray.Point.__new__Nr/   r   r   r   r   r=   ~   r3   r=   c                   @   r(   )zGArray.Point2fc                 C   r)   r   )r   rK   r*   r>   r,   r   r   r   r&      r.   zGArray.Point2f.__new__Nr/   r   r   r   r   r?      r3   r?   c                   @   r(   )zGArray.Point3fc                 C   r)   r   )r   rK   r*   r@   r,   r   r   r   r&      r.   zGArray.Point3f.__new__Nr/   r   r   r   r   rA      r3   rA   c                   @   r(   )zGArray.Sizec                 C   r)   r   )r   rK   r*   rB   r,   r   r   r   r&      r.   zGArray.Size.__new__Nr/   r   r   r   r   rC      r3   rC   c                   @   r(   )zGArray.Rectc                 C   r)   r   )r   rK   r*   rD   r,   r   r   r   r&      r.   zGArray.Rect.__new__Nr/   r   r   r   r   rE      r3   rE   c                   @   r(   )zGArray.Scalarc                 C   r)   r   )r   rK   r*   	CV_SCALARr,   r   r   r   r&      r.   zGArray.Scalar.__new__Nr/   r   r   r   r   Scalar   r3   rM   c                   @   r(   )z
GArray.Matc                 C   r)   r   )r   rK   r*   CV_MATr,   r   r   r   r&      r.   zGArray.Mat.__new__Nr/   r   r   r   r   Mat   r3   rO   c                   @   r(   )zGArray.GMatc                 C   r)   r   )r   rK   r*   CV_GMATr,   r   r   r   r&      r.   zGArray.GMat.__new__Nr/   r   r   r   r   GMat   r3   rQ   c                   @   r(   )zGArray.Primc                 C   r)   r   )r   rJ   r*   rF   r,   r   r   r   r&      r.   zGArray.Prim.__new__Nr/   r   r   r   r   rG      r3   rG   c                   @   r(   )z
GArray.Anyc                 C   r)   r   )r   rJ   r*   rH   r,   r   r   r   r&      r.   zGArray.Any.__new__Nr/   r   r   r   r   rI      r3   rI   N)r	   r0   r1   r&   r2   r5   r7   r9   r;   r=   r?   rA   rC   rE   rM   rO   rQ   rG   rI   r   r   r   r   rJ   c   s"    rJ   c                    s  t jjt jjt jjt jjt jjt jjt jj	t jj
t jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jjt jj i t j!jt jjt j!jt jjt j!jt jjt j!jt jjt j!jt jjt j!j	t jj
t j!jt jjt j!jt jjt j!jt jjt j!jt jjt j!jt jjt j!jt jjt j!jt jjt j!jt jj it jjdt jjdt jjdt jj
dt jjdt jjdt jjdt jjdt jjd	t jjd
t jjdt jjdt jjdt jjdi fdd}|S )Nzcv.gapi.CV_BOOLzcv.gapi.CV_INTzcv.gapi.CV_DOUBLEzcv.gapi.CV_FLOATzcv.gapi.CV_STRINGzcv.gapi.CV_POINTzcv.gapi.CV_POINT2Fzcv.gapi.CV_POINT3Fzcv.gapi.CV_SIZEzcv.gapi.CV_RECTzcv.gapi.CV_SCALARzcv.gapi.CV_MATzcv.gapi.CV_GMATzcv.gapi.CV_DRAW_PRIMc                    s   s
t d jst d jtD ]\}}|tjtjgvr3t d j|j|q fdd} _t| _	 S )Nz,{} operation should have at least one input!z-{} operation should have at least one output!z.{} unsupported output type: {} in position: {}c               
      s  t t | krtdt t | tt| D ]\}\}}|v rWt|tjs;td j|tjjt	|j|	 | krVtd j||  |	  q|v rt|tj
sqtd j|tj
jt	|j|	 | krtd j||  |	  q|t	|krtd j||jt	|jqtjj jg| R  }g }tD ]F\}}|tjkr||  q|tjkr||  q|v r|||  q|v r|||  qtd j|j|t |dkrt|S |d S )	Nz:Invalid number of input elements!
Expected: {}, Actual: {}z9{} invalid type for argument {}.
Expected: {}, Actual: {}zA{} invalid GArrayT type for argument {}.
Expected: {}, Actual: {}zA{} invalid GOpaque type for argument {}.
Expected: {}, Actual: {}z?{} invalid input type for argument {}.
Expected: {}, Actual: {}zMIn {}: G-API operation can't produce the output with type: {} in position: {}   r   )len	Exceptionformat	enumeratezip
isinstancer   rK   r	   typer#   r*   Z__opoutMetarQ   appendZgetGMatGScalarZ
getGScalarZ
getGOpaqueZ	getGArraytuple)r   itar   Z
out_protosZout_type)r%   garray_typesgopaque_typesin_typesop_id	out_typestype2strr   r   on   sZ   

z&op.<locals>.op_with_params.<locals>.on)
rT   rU   r	   rV   r   rQ   r\   idstaticmethodrg   )r%   r^   r_   rg   ra   rb   rc   rd   re   rf   r%   r   op_with_params   s   0
zop.<locals>.op_with_params)"r   rJ   r2   r*   r+   r5   r4   r7   r6   r9   r8   r;   r:   r=   r<   r?   r>   rA   r@   rC   rB   rE   rD   rM   rL   rO   rN   rQ   rP   rG   rF   rI   rH   r!   )rd   rc   re   rl   r   rj   r   r      s`   @c                    r   )Nc                    s    j | _  j| _| S r   )rh   rZ   rk   op_clsr   r   kernel_with_params$  s   z"kernel.<locals>.kernel_with_paramsr   )rn   ro   r   rm   r   r   "  s   )__all__r   r   r   r   r   r   r   r   r   r    r!   rJ   r   r   Zgapi_wip_gst_GStreamerPipeliner*   ZwipZGStreamerPipeliner   r   r   r   <module>   s.    





6Dz