U
    h:(                     @   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                    s    fdd}|S )Nc                    s   | t j  j| j< | S N)sysmodules__dict____name__)funcmname 5/tmp/pip-unpacked-wheel-tfzus0j8/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mapZ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   s   | S r   r   r   r   r   r   GIn   s    r   c                  G   s   | S r   r   r   r   r   r   GOut   s    r   c                  G   s   | S r   r   r   r   r   r   gin"   s    r   c                  G   s   | S r   r   r   r   r   r   descr_of'   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dS ) GOpaquec                 C   s
   t |S r   )r   GOpaqueTclsZargtyper   r   r   __new__0   s    zGOpaque.__new__c                   @   s   e Zd Zdd ZdS )zGOpaque.Boolc                 C   s   t t jjS r   )r   r   gapiCV_BOOLselfr   r   r   r!   4   s    zGOpaque.Bool.__new__Nr   
__module____qualname__r!   r   r   r   r   Bool3   s   r)   c                   @   s   e Zd Zdd ZdS )zGOpaque.Intc                 C   s   t t jjS r   )r   r   r"   CV_INTr$   r   r   r   r!   8   s    zGOpaque.Int.__new__Nr&   r   r   r   r   Int7   s   r+   c                   @   s   e Zd Zdd ZdS )zGOpaque.Int64c                 C   s   t t jjS r   )r   r   r"   CV_INT64r$   r   r   r   r!   <   s    zGOpaque.Int64.__new__Nr&   r   r   r   r   Int64;   s   r-   c                   @   s   e Zd Zdd ZdS )zGOpaque.UInt64c                 C   s   t t jjS r   )r   r   r"   	CV_UINT64r$   r   r   r   r!   @   s    zGOpaque.UInt64.__new__Nr&   r   r   r   r   UInt64?   s   r/   c                   @   s   e Zd Zdd ZdS )zGOpaque.Doublec                 C   s   t t jjS r   )r   r   r"   	CV_DOUBLEr$   r   r   r   r!   D   s    zGOpaque.Double.__new__Nr&   r   r   r   r   DoubleC   s   r1   c                   @   s   e Zd Zdd ZdS )zGOpaque.Floatc                 C   s   t t jjS r   )r   r   r"   CV_FLOATr$   r   r   r   r!   H   s    zGOpaque.Float.__new__Nr&   r   r   r   r   FloatG   s   r3   c                   @   s   e Zd Zdd ZdS )zGOpaque.Stringc                 C   s   t t jjS r   )r   r   r"   	CV_STRINGr$   r   r   r   r!   L   s    zGOpaque.String.__new__Nr&   r   r   r   r   StringK   s   r5   c                   @   s   e Zd Zdd ZdS )zGOpaque.Pointc                 C   s   t t jjS r   )r   r   r"   CV_POINTr$   r   r   r   r!   P   s    zGOpaque.Point.__new__Nr&   r   r   r   r   PointO   s   r7   c                   @   s   e Zd Zdd ZdS )zGOpaque.Point2fc                 C   s   t t jjS r   )r   r   r"   
CV_POINT2Fr$   r   r   r   r!   T   s    zGOpaque.Point2f.__new__Nr&   r   r   r   r   Point2fS   s   r9   c                   @   s   e Zd Zdd ZdS )zGOpaque.Point3fc                 C   s   t t jjS r   )r   r   r"   
CV_POINT3Fr$   r   r   r   r!   X   s    zGOpaque.Point3f.__new__Nr&   r   r   r   r   Point3fW   s   r;   c                   @   s   e Zd Zdd ZdS )zGOpaque.Sizec                 C   s   t t jjS r   )r   r   r"   CV_SIZEr$   r   r   r   r!   \   s    zGOpaque.Size.__new__Nr&   r   r   r   r   Size[   s   r=   c                   @   s   e Zd Zdd ZdS )zGOpaque.Rectc                 C   s   t t jjS r   )r   r   r"   CV_RECTr$   r   r   r   r!   `   s    zGOpaque.Rect.__new__Nr&   r   r   r   r   Rect_   s   r?   c                   @   s   e Zd Zdd ZdS )zGOpaque.Primc                 C   s   t t jjS r   )r   r   r"   CV_DRAW_PRIMr$   r   r   r   r!   d   s    zGOpaque.Prim.__new__Nr&   r   r   r   r   Primc   s   rA   c                   @   s   e Zd Zdd ZdS )zGOpaque.Anyc                 C   s   t t jjS r   )r   r   r"   CV_ANYr$   r   r   r   r!   h   s    zGOpaque.Any.__new__Nr&   r   r   r   r   Anyg   s   rC   N)r   r'   r(   r!   r)   r+   r-   r/   r1   r3   r5   r7   r9   r;   r=   r?   rA   rC   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G d!d" d"ZG d#d$ d$Zd%S )&GArrayc                 C   s
   t |S r   )r   GArrayTr   r   r   r   r!   o   s    zGArray.__new__c                   @   s   e Zd Zdd ZdS )zGArray.Boolc                 C   s   t t jjS r   )r   rE   r"   r#   r$   r   r   r   r!   s   s    zGArray.Bool.__new__Nr&   r   r   r   r   r)   r   s   r)   c                   @   s   e Zd Zdd ZdS )z
GArray.Intc                 C   s   t t jjS r   )r   rE   r"   r*   r$   r   r   r   r!   w   s    zGArray.Int.__new__Nr&   r   r   r   r   r+   v   s   r+   c                   @   s   e Zd Zdd ZdS )zGArray.Int64c                 C   s   t t jjS r   )r   rE   r"   r,   r$   r   r   r   r!   {   s    zGArray.Int64.__new__Nr&   r   r   r   r   r-   z   s   r-   c                   @   s   e Zd Zdd ZdS )zGArray.UInt64c                 C   s   t t jjS r   )r   rE   r"   r.   r$   r   r   r   r!      s    zGArray.UInt64.__new__Nr&   r   r   r   r   r/   ~   s   r/   c                   @   s   e Zd Zdd ZdS )zGArray.Doublec                 C   s   t t jjS r   )r   rE   r"   r0   r$   r   r   r   r!      s    zGArray.Double.__new__Nr&   r   r   r   r   r1      s   r1   c                   @   s   e Zd Zdd ZdS )zGArray.Floatc                 C   s   t t jjS r   )r   rE   r"   r2   r$   r   r   r   r!      s    zGArray.Float.__new__Nr&   r   r   r   r   r3      s   r3   c                   @   s   e Zd Zdd ZdS )zGArray.Stringc                 C   s   t t jjS r   )r   rE   r"   r4   r$   r   r   r   r!      s    zGArray.String.__new__Nr&   r   r   r   r   r5      s   r5   c                   @   s   e Zd Zdd ZdS )zGArray.Pointc                 C   s   t t jjS r   )r   rE   r"   r6   r$   r   r   r   r!      s    zGArray.Point.__new__Nr&   r   r   r   r   r7      s   r7   c                   @   s   e Zd Zdd ZdS )zGArray.Point2fc                 C   s   t t jjS r   )r   rE   r"   r8   r$   r   r   r   r!      s    zGArray.Point2f.__new__Nr&   r   r   r   r   r9      s   r9   c                   @   s   e Zd Zdd ZdS )zGArray.Point3fc                 C   s   t t jjS r   )r   rE   r"   r:   r$   r   r   r   r!      s    zGArray.Point3f.__new__Nr&   r   r   r   r   r;      s   r;   c                   @   s   e Zd Zdd ZdS )zGArray.Sizec                 C   s   t t jjS r   )r   rE   r"   r<   r$   r   r   r   r!      s    zGArray.Size.__new__Nr&   r   r   r   r   r=      s   r=   c                   @   s   e Zd Zdd ZdS )zGArray.Rectc                 C   s   t t jjS r   )r   rE   r"   r>   r$   r   r   r   r!      s    zGArray.Rect.__new__Nr&   r   r   r   r   r?      s   r?   c                   @   s   e Zd Zdd ZdS )zGArray.Scalarc                 C   s   t t jjS r   )r   rE   r"   	CV_SCALARr$   r   r   r   r!      s    zGArray.Scalar.__new__Nr&   r   r   r   r   Scalar   s   rG   c                   @   s   e Zd Zdd ZdS )z
GArray.Matc                 C   s   t t jjS r   )r   rE   r"   CV_MATr$   r   r   r   r!      s    zGArray.Mat.__new__Nr&   r   r   r   r   Mat   s   rI   c                   @   s   e Zd Zdd ZdS )zGArray.GMatc                 C   s   t t jjS r   )r   rE   r"   CV_GMATr$   r   r   r   r!      s    zGArray.GMat.__new__Nr&   r   r   r   r   GMat   s   rK   c                   @   s   e Zd Zdd ZdS )zGArray.Primc                 C   s   t t jjS r   )r   rD   r"   r@   r$   r   r   r   r!      s    zGArray.Prim.__new__Nr&   r   r   r   r   rA      s   rA   c                   @   s   e Zd Zdd ZdS )z
GArray.Anyc                 C   s   t t jjS r   )r   rD   r"   rB   r$   r   r   r   r!      s    zGArray.Any.__new__Nr&   r   r   r   r   rC      s   rC   N)r   r'   r(   r!   r)   r+   r-   r/   r1   r3   r5   r7   r9   r;   r=   r?   rG   rI   rK   rA   rC   r   r   r   r   rD   k   s$   rD   c              "      s2  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 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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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_INT64zcv.gapi.CV_UINT64z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 ]4\}}|tjtjfkr0t d j|j|q0 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 ]\}\}}|krt|tjsztd j|tjjt	|jn6|	 | krtd j||  |	  q6|kr$t|tj
std j|tj
jt	|jn8|	 | krNtd j||  |	  q6|t	|kr6td j||jt	|jq6tjj jf|  }g }tD ]\}}|tjkr||  nr|tjkr||  nV|kr|||  n6|kr|||  ntd j|j|qrt |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   rE   r   typer   r"   Z__opoutMetarK   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  sx          
 

     
 
   

  
z&op.<locals>.op_with_params.<locals>.on)
rN   rO   r   rP   r   rK   rV   idstaticmethodra   )r    rX   rY   ra   r[   r\   r]   r^   r_   r`   r    r   op_with_params   s      0
zop.<locals>.op_with_params)&r   rD   r)   r"   r#   r+   r*   r-   r,   r/   r.   r1   r0   r3   r2   r5   r4   r7   r6   r9   r8   r;   r:   r=   r<   r?   r>   rG   rF   rI   rH   rK   rJ   rA   r@   rC   rB   r   )r^   r]   r_   rf   r   rd   r   r      s                                                     @c                    s    fdd}|S )Nc                    s    j | _  j| _| S r   )rb   rT   re   op_clsr   r   kernel_with_params:  s    z"kernel.<locals>.kernel_with_paramsr   )rh   ri   r   rg   r   r   8  s    )__all__r   r   r   r   r   r   r   r   r   r   r   rD   r   r   Zgapi_wip_gst_GStreamerPipeliner"   ZwipZGStreamerPipeliner   r   r   r   <module>   s.   





>L 