
    3j                        S SK JrJr  S SKJrJrJrJr  S SKr/ SQr	\R                  " S5      r\" S\S9r\\\\4   r " S S	\5      rS
\\   S\\   S\4S jr " S S\\S9r " S S\\S9r " S S\\S9r " S S\\S9r " S S\\S9rg)    )EnumEnumMeta)IteratorTypeTypeVarUnionN)
BorderTypeDTypeResampleSamplePaddingTKEnumpig-DT!	@T)boundc                   `   ^  \ rS rSrSrS\\   4U 4S jjrS\\   S\	4S jr
S\4S jrSrU =r$ )	_KORNIA_EnumMeta    zECustom metaclass for enums to support string and integer comparisons.returnc                     > [         TU ]  5       $ N)super__iter__)self	__class__s    J/home/wildlama/miniconda3/lib/python3.13/site-packages/kornia/constants.pyr   _KORNIA_EnumMeta.__iter__#   s    w!!    otherc                    ^ [        T[        5      (       a  [        U4S jU  5       5      $ [        T[        5      (       a  [        U4S jU  5       5      $ [        U4S jU  5       5      $ )Nc              3   x   >#    U  H/  oR                   R                  5       TR                  5       :H  v   M1     g 7fr   )nameupper.0valr   s     r   	<genexpr>0_KORNIA_EnumMeta.__contains__.<locals>.<genexpr>(   s%     IDSxx~~'5;;=8Ds   7:c              3   @   >#    U  H  oR                   T:H  v   M     g 7fr   valuer#   s     r   r&   r'   +   s     :TcyyE)Ts   c              3   ,   >#    U  H	  oT:H  v   M     g 7fr    r#   s     r   r&   r'   -   s     04C%<4s   )
isinstancestranyint)r   r   s    `r   __contains___KORNIA_EnumMeta.__contains__&   sP    eS!!IDIIIs##:T:::04000r   c                 :   ^  SR                  U 4S jT  5       5      $ )Nz | c              3   Z   >#    U  H   nTR                    S UR                   3v   M"     g7f).N)__name__r!   )r$   r%   r   s     r   r&   ,_KORNIA_EnumMeta.__repr__.<locals>.<genexpr>0   s$     H4CT]]O1SXXJ74s   (+)join)r   s   `r   __repr___KORNIA_EnumMeta.__repr__/   s    zzH4HHHr   r,   )r6   
__module____qualname____firstlineno____doc__r   r   r   r   boolr1   r.   r9   __static_attributes____classcell__)r   s   @r   r   r       sA    O"(4. "1&, 14 1I# I Ir   r   clsr*   r   c           
          [        U[        5      (       a  XR                  5          $ [        U[        5      (       a  U " U5      $ [        X5      (       a  U$ [	        SU  SU  S[        U5       35      e)NzThe `.get` method from `z-` expects a value with type `str`, `int` or `z
`. Gotcha )r-   r.   r"   r0   	TypeErrortyperB   r*   s     r   _getrG   3   st    %;;=!!	E3		5z	E		

"3%'TUXTYYcdhindocpq r   c                   F    \ rS rSrSrSrSrSr\S\	S    SS 4S j5       r
S	rg
)r   B   z6Represent the resampling mode for image interpolation.r         r*   r   c                     [        X5      $ r   rG   rF   s     r   getResample.getI       Cr   r,   N)r6   r;   r<   r=   r>   NEARESTBILINEARBICUBICclassmethodr   rN   r@   r,   r   r   r   r   B   s9    @GHG z*  z    r   r   )	metaclassc                   J    \ rS rSrSrSrSrSrSr\	S\
S    SS 4S	 j5       rS
rg)r	   N   z7Represent the border padding mode for image operations.r   rJ   rK      r*   r   c                     [        X5      $ r   rM   rF   s     r   rN   BorderType.getV   rP   r   r,   N)r6   r;   r<   r=   r>   CONSTANTREFLECT	REPLICATECIRCULARrT   r   rN   r@   r,   r   r   r	   r	   N   s>    AHGIH |,      r   r	   c                   J    \ rS rSrSrSrSrSrSr\	S\
S    SS 4S	 j5       rS
rg)r   [   z8Represent the padding mode used during spatial sampling.r   rJ   rK   rX   r*   r   c                     [        X5      $ r   rM   rF   s     r   rN   SamplePadding.getc   rP   r   r,   N)r6   r;   r<   r=   r>   ZEROSBORDER
REFLECTIONFILLrT   r   rN   r@   r,   r   r   r   r   [   s>    BEFJD /  O    r   r   c                       \ rS rSrSrSrSrSrSr\	S\
\\\R                  \R                  S 4   SS 4S	 j5       r\	S\S    S\R                  4S
 j5       rSrg)r
   h   z:Represent the internal data types used across the library.r   rJ   rK   rX   r*   r   c                    [        U[        R                  5      (       a  U [        U5      R	                  5       SS     $ [        U[        R
                  5      (       a  U " [        UR                  5       5      5      $ [        U[        5      (       a  XR	                  5          $ [        U[        5      (       a  U " U5      $ [        X5      (       a  U$ [        SU S[        U5       S35      e)N   zInvalid identifier z with type r5   )
r-   torchdtyper.   r"   Tensorr0   itemrD   rE   rF   s     r   rN   	DType.getp   s    eU[[))s5z'')!"-..u||,,s5::<())s##{{}%%s##u:##L-eWKU}ANOOr   c                 L   U R                  US9nU[        R                  :X  a  [        R                  $ U[        R
                  :X  a  [        R                  $ U[        R                  :X  a  [        R                  $ U[        R                  :X  a  [        R                  $ [        e)Nr)   )rN   r
   INT64rk   longFLOAT16float16FLOAT32float32FLOAT64float64
ValueError)rB   r*   datas      r   to_torchDType.to_torch   sp    wwUw#5;;::U]]"== U]]"== U]]"== r   r,   N)r6   r;   r<   r=   r>   rq   rs   ru   rw   rT   r   r.   r0   rk   rl   rm   rN   r   r{   r@   r,   r   r   r
   r
   h   s    DEGGGPc3U\\7JK PPW P P$ VG_   r   r
   c                   Z    \ rS rSrSrSrSrSrSrSr	Sr
SrSr\S	\S    S
S 4S j5       rSrg)DataKey   r   rJ   rK   rX         rj   r*   r   c                     [        X5      $ r   rM   rF   s     r   rN   DataKey.get   rP   r   r,   N)r6   r;   r<   r=   IMAGEINPUTMASKBBOX	BBOX_XYXY	BBOX_XYWH	KEYPOINTSLABELCLASSrT   r   rN   r@   r,   r   r   r~   r~      sT    EEDDIIIEE y)  i    r   r~   )enumr   r   typingr   r   r   r   rk   __all__tensorr   r   r.   r0   r   r   rG   r   r	   r   r
   r~   r,   r   r   <module>r      s   $   1 1 
N
\\() Ct	sC{	Ix I&d1g fQi A 	 t/ 	 
 !1 
 
 D$4 
 +D, +^ d.  r   