Ë
    ¼Ó^j’,  ã                   óT  — d dl mZmZ d dlZd dlmZmZ d dlm	Z	 d dl
mZ deddfd„Z eed	d
¬«      deddfd„«       Zdededdfd„Z eed	d
¬«      dededdfd„«       Zdededdfd„Z eed	d
¬«      dededdfd„«       Zdededdfd„Z eed	d
¬«      dededdfd„«       Zdedededdfd„Z eed	d
¬«      dedededdfd„«       Z eedd¬«      dedededdfd„«       Zdededdfd„Z eed	d
¬«      dededdfd„«       Zd eeef   deddfd!„Z eed	d
¬«      d eeef   deddfd"„«       Zd#edededdfd$„Z eed	d
¬«      d#edededdfd%„«       Zd&edededdfd'„Z dededededed eeef   ddfd(„Z! ee!d	d
¬«      dededededed eeef   ddfd)„«       Z"	 	 	 d1d#ededed*ed&ed eeeef      ddfd+„Z# ee#d	d
¬«      d#ededed eeef   ddf
d,„«       Z$ ee#dd¬«      d#ededed eeef   ddf
d-„«       Z%d.ede&eef   fd/„Z' ee'd	d
¬«      d.ede&eef   fd0„«       Z(y)2é    )ÚAnyÚOptionalN)Ú
deprecatedÚvoid)ÚCompactMask)Úwarn_deprecatedÚxyxyÚreturnc                 óØ   — d}t        t        | dd«      «      }t        | t        j                  «      xr# | j
                  dk(  xr | j                  d   dk(  }|st        d|› d|› �«      ‚y)	z“Validate that xyxy is a 2D np.ndarray with shape (N, 4).

    ```pycon
    >>> _validate_xyxy(np.array([[0, 0, 1, 1], [1, 1, 2, 2]]))

    ```
    z(_, 4)ÚshapeNé   é   é   z(xyxy must be a 2D np.ndarray with shape ú, but got shape ©ÚstrÚgetattrÚ
isinstanceÚnpÚndarrayÚndimr   Ú
ValueError)r	   Úexpected_shapeÚactual_shapeÚis_valids       új/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/supervision/validators/__init__.pyÚ_validate_xyxyr   
   sv   € ð €NÜ”w˜t W¨dÓ3Ó4€LÜ˜$¤§
¡
Ó+ÒU°·	±	¸Q±ÒUÀ4Ç:Á:ÈaÁ=ÐTUÑCU€HÙÜØ6°~Ð6FÐFVØˆnðó
ð 	
ð ó    z0.29.0z0.32.0)ÚtargetÚdeprecated_inÚ	remove_inc                 ó   — t        | «       y ©N©r   )r	   s    r   Úvalidate_xyxyr%      s   € ô 	ˆ…Jr   ÚmaskÚnc                 óÜ  — | €y t        | t        «      r)t        | «      |k7  rt        d|› dt        | «      › �«      ‚y d|› d�}t	        t        | dd «      «      }t        | dd «      }t        | t        j                  «      xr, t        | j                  «      dk(  xr | j                  d   |k(  }|st        d	|› d
|› �z   «      ‚t        j                  |t        «      st        d|› d�«       y y )Nzmask must contain z masks, but got ú(z, H, W)r   Údtypeé   r   z(mask must be a 3D np.ndarray with shape r   z6A `Detections` object was created with a mask of type a@  . Masks of type other than `bool` are deprecated and may produce unexpected behavior. Starting from `supervision-0.28.0`, passing a mask with `dtype` different from `bool` to `Detections` will raise a `ValueError` during validation instead of being accepted with a warning. To migrate, please ensure your masks are boolean, for example by using `mask = np.array(..., dtype=bool)` or by converting existing masks with `mask = mask.astype(bool)` before creating the `Detections` object. If you did not create the mask manually, please report the issue to the `supervision` team.)r   r   Úlenr   r   r   r   r   r   Ú
issubdtypeÚboolr   )r&   r'   r   r   Úactual_dtypeÚis_valid_shapes         r   Ú_validate_maskr1   %   s  € Ø€|Øô �$œÔ$Üˆt‹9˜Š>ÜÐ1°!°Ð4DÄSÈÃYÀKÐPÓQÐQØà˜˜˜7�^€NÜ”w˜t W¨dÓ3Ó4€LÜ˜4 ¨$Ó/€Lô 	�4œŸ™Ó$ÒT¬¨T¯Z©Z«¸AÑ)=ÒTÀ$Ç*Á*ÈQÁ-ÐSTÑBTð ñ ÜØ6ØÐ Ð 0°°Ð?ñ@ó
ð 	
ô �=‰=˜¤tÔ,ÜØDÀ\ÀNð 	S#ð 	#õ	
ð -r   c                 ó   — t        | |«       y r#   r$   )r&   r'   s     r   Úvalidate_maskr3   K   ó   € ô 	ˆˆq…Mr   Úclass_idc                 óÆ   — d|› d�}t        t        | dd «      «      }| d u xs, t        | t        j                  «      xr | j
                  |fk(  }|st        d|› d|› �«      ‚y )Nr)   ú,)r   z,class_id must be a 1D np.ndarray with shape r   ©r   r   r   r   r   r   r   )r5   r'   r   r   r   s        r   Ú_validate_class_idr9   T   s�   € Ø˜˜˜2�Y€NÜ”w˜x¨°$Ó7Ó8€LØ˜4Ðò Ü�8œRŸZ™ZÓ(ÒC¨X¯^©^À¸tÑ-Cð ñ ÜØ:¸>Ð:Jð KØ!�Nð$ó
ð 	
ð r   c                 ó   — t        | |«       y r#   r$   )r5   r'   s     r   Úvalidate_class_idr;   a   s   € ô 	ˆ�1Õr   Ú
confidencec                 óÆ   — d|› d�}t        t        | dd«      «      }| du xs, t        | t        j                  «      xr | j
                  |fk(  }|st        d|› d|› �«      ‚y)zKValidate detection-level confidence: 1D ``np.ndarray`` with shape ``(n,)``.r)   r7   r   Nz.confidence must be a 1D np.ndarray with shape r   r8   )r<   r'   r   r   r   s        r   Ú_validate_confidencer>   j   sƒ   € à˜˜˜2�Y€NÜ”w˜z¨7°DÓ9Ó:€LØ˜TÐ!ò Ü�:œrŸz™zÓ*ÒG¨z×/?Ñ/?ÀAÀ4Ñ/Gð ñ ÜØ<¸^Ð<Lð MØ!�Nð$ó
ð 	
ð r   c                 ó   — t        | |«       y r#   r$   )r<   r'   s     r   Úvalidate_confidencer@   x   ó   € ô 	ˆ�QÕr   Úmc                 ó<  — t        t        | dd«      «      }| �„t        | t        j                  «      r| j
                  dk7  rt        d|› �«      ‚| j                  d   |k7  rt        d|› d|› �«      ‚|dkD  r$| j                  d   |k7  rt        d	|› d|› �«      ‚yyy)
zJValidate per-keypoint confidence: 2D ``np.ndarray`` with shape ``(n, m)``.r   Nr   zMkeypoint_confidence must be a 2D np.ndarray with shape (n, m), but got shape r   z,keypoint_confidence first dimension must be r   r   z-keypoint_confidence second dimension must be ©r   r   r   r   r   r   r   r   )r<   r'   rB   r   s       r   Ú_validate_keypoint_confidencerE   �   sÔ   € ä”w˜z¨7°DÓ9Ó:€LàÐÜ˜*¤b§j¡jÔ1°Z·_±_ÈÒ5IÜðØ)˜Nð,óð ð ×Ñ˜AÑ !Ò#ÜØ>¸q¸cð B!Ø!- ð0óð ð ˆqŠ5�Z×%Ñ% aÑ(¨AÒ-ÜØ?À¸sð CØ)˜Nð,óð ð .ˆ5ð r   c                 ó   — t        | ||«       y r#   r$   ©r<   r'   rB   s      r   Úvalidate_key_point_confidencerH   —   ó   € ô 	ˆ�Q˜Õr   z0.27.0z0.31.0c                 ó   — t        | ||«       y r#   r$   rG   s      r   Úvalidate_keypoint_confidencerK       rI   r   Ú
tracker_idc                 óÆ   — d|› d�}t        t        | dd «      «      }| d u xs, t        | t        j                  «      xr | j
                  |fk(  }|st        d|› d|› �«      ‚y )Nr)   r7   r   z.tracker_id must be a 1D np.ndarray with shape r   r8   )rL   r'   r   r   r   s        r   Ú_validate_tracker_idrN   ©   sƒ   € Ø˜˜˜2�Y€NÜ”w˜z¨7°DÓ9Ó:€LØ˜TÐ!ò Ü�:œrŸz™zÓ*ÒG¨z×/?Ñ/?ÀAÀ4Ñ/Gð ñ ÜØ<¸^Ð<Lð MØ!�Nð$ó
ð 	
ð r   c                 ó   — t        | |«       y r#   r$   )rL   r'   s     r   Úvalidate_tracker_idrP   ¶   rA   r   Údatac                 ó²  — | j                  «       D ]Ä  \  }}t        |t        «      r t        |«      |k7  sŒ%t	        d|› d|› �«      ‚t        |t
        j                  «      rg|j                  dk(  r$|j                  d   |k7  rt	        d|› d|› d�«      ‚|j                  dkD  sŒ“|j                  d   |k7  sŒ¦t	        d|› d	|› �«      ‚t	        d
|› d�«      ‚ y )NzLength of list for key 'z
' must be r   r   zShape of np.ndarray for key 'z' must be (r7   z'First dimension of np.ndarray for key 'z' must have size zValue for key 'z' must be a list or np.ndarray)	Úitemsr   Úlistr,   r   r   r   r   r   )rQ   r'   ÚkeyÚvalues       r   Ú_validate_datarW   ¿   sâ   € Ø—j‘j“lò T‰
ˆˆUÜ�eœTÔ"Ü�5‹z˜Q‹Ü Ð#;¸C¸5À
È1È#Ð!NÓOÐOÜ˜œrŸz™zÔ*Ø�z‰z˜QŠ 5§;¡;¨q¡>°QÒ#6Ü Ð#@ÀÀÀ[ÐQRÐPSÐSUÐ!VÓWÐWØ—‘˜a“ E§K¡K°¡N°aÓ$7Ü Ø=¸c¸UÐBSÐTUÐSVÐWóð ô ˜¨s¨eÐ3QÐRÓSÐSñTr   c                 ó   — t        | |«       y r#   r$   )rQ   r'   s     r   Úvalidate_datarY   Ï   r4   r   Úxyc           	      óä   — d|› d|› d|› d|› d�	}t        t        | dd «      «      }t        | t        j                  «      r | j
                  dk7  s| j                  d   dvrt        d	|› d
|› �«      ‚y )Nr)   ú, z	, 2) or (z, 3)r   r+   r   )r   r+   z&xy must be a 3D np.ndarray with shape r   r   )rZ   r'   rB   r   r   s        r   Ú_validate_xyr]   Ø   s„   € Ø˜˜˜2˜a˜S 	¨!¨¨B¨q¨c°Ð6€NÜ”w˜r 7¨DÓ1Ó2€Lä�bœ"Ÿ*™*Ô%¨¯©°Aª¸¿¹À!¹ÈFÑ9RÜØ4°^Ð4DÐDTØˆnðó
ð 	
ð :Sr   c                 ó   — t        | ||«       y r#   r$   )rZ   r'   rB   s      r   Úvalidate_xyr_   ã   s   € ô 	ˆˆQ�…Nr   Úvisiblec                 ó<  — | €yt        t        | dd«      «      }t        | t        j                  «      r| j
                  dk7  rt        d|› �«      ‚| j                  d   |k7  rt        d|› d|› �«      ‚|dkD  r$| j                  d   |k7  rt        d	|› d|› �«      ‚yy)
zhValidate per-keypoint visibility mask.

    Expects a 2D bool ``np.ndarray`` with shape ``(n, m)``.
    Nr   r   zAvisible must be a 2D np.ndarray with shape (n, m), but got shape r   z visible first dimension must be r   r   z!visible second dimension must be rD   )r`   r'   rB   r   s       r   Ú_validate_visiblerb   ì   sÃ   € ð
 €ØÜ”w˜w¨°Ó6Ó7€LÜ�gœrŸz™zÔ*¨g¯l©l¸aÒ.?ÜðØ%˜ð(ó
ð 	
ð ‡}�}�QÑ˜1ÒÜØ.¨q¨cÐ1AÀ,ÀÐPó
ð 	
ð 	ˆ1‚u�—‘˜qÑ! QÒ&ÜØ/°¨sÐ2BÀ<À.ÐQó
ð 	
ð '€ur   c                 ó¨   — t        | «       t        | «      }t        ||«       t        ||«       t	        ||«       t        ||«       t        ||«       y r#   )r   r,   r1   r9   r>   rN   rW   )r	   r&   r5   r<   rL   rQ   r'   s          r   Ú_validate_detections_fieldsrd     sG   € ô �4ÔÜˆD‹	€AÜ�4˜ÔÜ�x Ô#Ü˜ QÔ'Ü˜ QÔ'Ü�4˜Õr   c                 ó$   — t        | |||||«       y r#   r$   )r	   r&   r5   r<   rL   rQ   s         r   Úvalidate_detections_fieldsrf     s   € ô 	ˆˆt�X˜z¨:°tÕ<r   Údetection_confidencec                 óö   — t        | «      }t        | «      dkD  rt        | d   «      nd}t        | ||«       t        ||«       t        |||«       |�t	        ||«       t        |||«       |�t        ||«       y y )Nr   )r,   r]   r9   rE   r>   rb   rW   )rZ   r5   r<   rg   r`   rQ   r'   rB   s           r   Ú_validate_keypoints_fieldsri   $  sz   € ô 	ˆB‹€AÜ˜"“g ’kŒˆBˆq‰EŒ
 q€AÜ��Q˜ÔÜ�x Ô#Ü! *¨a°Ô3ØÐ'ÜÐ1°1Ô5Ü�g˜q !Ô$ØÐÜ�t˜QÕð r   c                 ó    — t        | |||«       y r#   r$   ©rZ   r5   r<   rQ   s       r   Úvalidate_key_points_fieldsrl   8  ó   € ô 	ˆˆX�z 4Õ(r   c                 ó    — t        | |||«       y r#   r$   rk   s       r   Úvalidate_keypoints_fieldsro   C  rm   r   Ú
resolutionc                 óF  — t        | t        «      rt        | «      dk(  st        dt	        | «      › d| › d�«      ‚| \  }}t        |t
        «      rt        |t
        «      s$t        dt	        |«      › dt	        |«      › d�«      ‚|dk  s|dk  rt        d	|› d|› d
�«      ‚||fS )Nr   zI
            resolution must be a tuple of two integers, got
            z with value z
            zR
            Both elements in resolution must be integers.
            Got types (r\   z)
            r   z5Both dimensions in resolution must be positive. Got (z).)r   Útupler,   r   ÚtypeÚint)rp   ÚwÚhs      r   Ú_validate_resolutionrw   N  sÊ   € Ü�z¤5Ô)¬c°*«oÀÒ.BÜðä�*ÓÐ˜l¨:¨,ð 7ðó
ð 	
ð �D€A€qÜ�qœ#Ô¤:¨a´Ô#5Üðä˜Q›�y ¤4¨£7 )ð ,ðó
ð 	
ð 	ˆA‚v��a’ÜØCÀAÀ3ÀbÈÈÈ2ÐNó
ð 	
ð ˆaˆ4€Kr   c                 ó   — t        | «      S r#   r$   )rp   s    r   Úvalidate_resolutionry   e  s   € ô �
ÓÐr   )NNN))Útypingr   r   Únumpyr   Ú	deprecater   r   Ú"supervision.detection.compact_maskr   Úsupervision.utils.internalr   r   r%   rt   r1   r3   r9   r;   r>   r@   rE   rH   rK   rN   rP   Údictr   rW   rY   r]   r_   rb   rd   rf   ri   rl   ro   rr   rw   ry   © r   r   ú<module>r�      s/  ðß  ã ß &å :Ý 6ð
˜ð 
 ó 
ñ$ ØØØôð
˜ð  ò óð
ð#
˜ð #
 ð #
¨ó #
ñL ØØØôð
˜ð  ð ¨ò óð
ð

 ð 

¨ð 

°ó 

ñ ØØØôð
 ð ¨ð °ò óð
ð
 Sð 
¨Sð 
°Tó 
ñ ØØØôð
 Cð ¨Cð °Dò óð
ð¨cð °cð ¸cð Àdó ñ, Ø(ØØôð
¨cð °cð ¸cð Àdò óð
ñ Ø(ØØôð
¨Sð °Sð ¸Sð ÀTò óð
ð

 Sð 

¨Sð 

°Tó 

ñ ØØØôð
 Cð ¨Cð °Dò óð
ðT˜˜c 3˜h™ð T¨Cð T°Dó Tñ  ØØØôð
˜˜S #˜X™ð ¨3ð °4ò óð
ð
�Sð 
˜Sð 
 Sð 
¨Tó 
ñ ØØØôð
�Cð ˜Cð  Cð ¨Dò óð
ð
˜sð 
 sð 
¨sð 
°tó 
ð.Ø
ðà
ðð ðð ð	ð
 ðð ˆs�Cˆx‰.ðð 
óñ" Ø&ØØôð
=Ø
ð=à
ð=ð ð=ð ð	=ð
 ð=ð ˆs�Cˆx‰.ð=ð 
ò=óð
=ð !%ØØ%)ñ Øð àð ð ð ð ð	 ð
 ð ð �4˜˜S˜‘>Ñ
"ð ð 
ó ñ( Ø%ØØôð
)Øð)Øð)Ø(+ð)Ø37¸¸S¸±>ð)à	ò)óð
)ñ Ø%ØØôð
)Øð)Øð)Ø(+ð)Ø37¸¸S¸±>ð)à	ò)óð
)ð Sð ¨U°3¸°8©_ó ñ. ØØØôð
 Cð ¨E°#°s°(©Oò óñ
r   