U
    �A{i:(  ã                   @   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-qv1a4xi0/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r²t|tjƒsztd ˆ j|tjjt	|ƒj¡ƒ‚n6| 	¡ ˆ| kr°td ˆ j|ˆˆ|  ˆ| 	¡  ¡ƒ‚q6|ˆk�r$t|tj
ƒsêt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 