+
    =i
                         R t ^ RIt^ RIHtHtHt ^ RIHtHt ^ RI	H
t
Ht . ROt] ! R R]
4      4       tR R ltR	 R
 ltR R ltR R ltR# )z
General utility functions.
N)EnumEnumMetaFlagTupleType)Protocolruntime_checkableHasMROc                   @   a  ] tR t^%t o Rt]V 3R lR l4       tRtV tR# )r
   zf
:class:`typing.Protocol` for classes that have a method resolution order magic method (``__mro__``).
c                0   < V ^8  d   QhRS[ S[,          /# )   returnr   )format__classdict__s   "s/Users/tonyclaw/.openclaw/workspace/scripts/youtube-playlists/venv/lib/python3.14/site-packages/enum_tools/utils.py__annotate__HasMRO.__annotate__,   s    &&eDk&    c                    R # )N )selfs   &r   __mro__HasMRO.__mro__+   s    #&r   r   N)	__name__
__module____qualname____firstlineno____doc__propertyr   __static_attributes____classdictcell__)r   s   @r   r
   r
   %   s      & &r   c                0    V ^8  d   QhR\         R\        /# r   objr   r   bool)r   s   "r   r   r   /   s     " " "$ "r   c                "    \        V \        4      # )zJ
Returns :py:obj:`True` if ``obj`` is an :class:`enum.Enum`.

:param obj:
)
isinstancer   r$   s   &r   is_enumr*   /   s     	3!!r   c                0    V ^8  d   QhR\         R\        /# r#   r%   )r   s   "r   r   r   :   s        r   c                "    \        V \        4      # )zQ
Returns :py:obj:`True` if ``obj`` is an :class:`enum.Enum` member.

:param obj:
)r(   r   r)   s   &r   is_enum_memberr-   :   s     	3r   c                0    V ^8  d   QhR\         R\        /# r#   r%   )r   s   "r   r   r   E   s       $ r   c                    \        V 4      '       d4   \        V \        4      '       d   \        \        P
                  ! V 4      9   # R# )zJ
Returns :py:obj:`True` if ``obj`` is an :class:`enum.Flag`.

:param obj:
F)r*   r(   r
   r   inspectgetmror)   s   &r   is_flagr2   E   s0     CLLZV,,	$	$$	r   c                F    V ^8  d   QhR\         \        ,          R\         /# )r   enumr   )r   r
   )r   s   "r   r   r   S   s      $v, 4 r   c                n    \         P                  ! V 4      p\        T9   d   TRTP                  \        4       pM/\        T9   d   TRTP                  \        4       pM\        R4      hTR,          pT F  p\        T\        4      '       d   K  Tu # 	  \        #   \         d    \        R4      hi ; i)z
Returns the object type of the enum's members.

If the members are of indeterminate type then the :class:`object` class is returned.

:param enum:

:rtype:

:raises TypeError: If ``enum`` is not an Enum.
znot an EnumN:   NN)
r0   r1   AttributeError	TypeErrorr   indexr   r(   r   object)r4   mror$   s   &  r   get_base_objectr<   S   s    !t# 	CKSYYt_#
ckSYYt_#-  
2wS	C	"	"
:  	! 	 !-  !s   B B4)r
   r*   r-   r2   r<   )r   r0   r4   r   r   r   typingr   r   typing_extensionsr   r	   __all__r
   r*   r-   r2   r<   r   r   r   <module>r@      sQ   .  % %  :
O 'X ' '"r   