
    dh                         d dl Z d dlmZmZmZmZmZmZ d dlm	Z	  G d d      Z
 G d de      Z G d d	e
      Z e
       Z e
d      Zy)    N)AnyIteratorOptionalTupleTypeno_type_check)TelegramObjectc                       e Zd ZdZddee   dee   ddfdZedd       Zedee   fd	       Z	dd
Z
dddeddfdZdefdZeZddedee   defdZdedefdZdefdZy)Statez
    State object
    Nstate
group_namereturnc                 .    || _         || _        d | _        y N)_state_group_name_group)selfr   r   s      K/var/www/netwell/bot/venv/lib/python3.12/site-packages/aiogram/fsm/state.py__init__zState.__init__   s    %37    Type[StatesGroup]c                 H    | j                   st        d      | j                   S )NzThis state is not in any group.)r   RuntimeErrorr   s    r   groupzState.group   s    {{@AA{{r   c                    | j                   | j                   dk(  r| j                   S | j                  #| j                  r| j                  j                  }n| j                  r| j                  }nd}| d| j                    S )N*@:)r   r   r   __full_group_name__r   r   s     r   r   zState.state   sp    ;;$++"4;;#KK33E$$EE$++''r   c                 H    t        |t              st        d      || _        y )Nz%Group must be subclass of StatesGroup)
issubclassStatesGroup
ValueErrorr   r"   s     r   
set_parentzState.set_parent%   s    %-DEEr   ownernamec                 L    | j                   || _         | j                  |       y r   )r   r'   )r   r(   r)   s      r   __set_name__zState.__set_name__*   s    ;;DKr   c                 *    d| j                   xs d dS )Nz<State ' '>r   r   s    r   __str__zState.__str__/   s    $***+2..r   event	raw_statec                 @    | j                   dk(  ry|| j                   k(  S )Nr   Tr/   r   r1   r2   s      r   __call__zState.__call__4   s     ::DJJ&&r   otherc                     t        || j                        r| j                  |j                  k(  S t        |t              r| j                  |k(  S t        S r   )
isinstance	__class__r   strNotImplemented)r   r6   s     r   __eq__zState.__eq__9   sB    eT^^,::,,eS!::&&r   c                 ,    t        | j                        S r   )hashr   r   s    r   __hash__zState.__hash__@   s    DJJr   )NN)r   r   )r   r   r   Nr   )__name__
__module____qualname____doc__r   r:   r   propertyr   r   r'   r+   r0   __repr__r	   boolr5   r   r<   intr?    r   r   r   r      s    8hsm 8 8Y] 8
  
 (x} ( (
"5 S T 
/ / H'n '# 'RV '
C D  #  r   r   c                   P    e Zd ZU ded<   ded<   eedf   ed<   eedf   ed<   eed   df   ed	<   eedf   ed
<   eedf   ed<   e fd       Z	e
defd       Zded   ded   fdZdeed   df   fdZdeedf   fdZdeedf   fdZdedefdZdefdZdee   fdZ xZS )StatesGroupMetazOptional[Type[StatesGroup]]
__parent__zTuple[Type[StatesGroup], ...]
__childs__.
__states____state_names__r%   __all_childs____all_states____all_states_names__c                 4   t         
|   | |||      }g }g }|j                         D ]p  \  }}t        |t              r|j                  |       (t        j                  |      s>t        |t              sO|j                  |      }	|j                  |	       r d |_        t        |      |_        t        |      |_        t        d |D              |_        |j!                         |_        |j%                         |_        |j)                         |_        |S )Nc              3   4   K   | ]  }|j                     y wr   r/   .0r   s     r   	<genexpr>z*StatesGroupMeta.__new__.<locals>.<genexpr>^   s     #DEEKK#Ds   )super__new__itemsr8   r   appendinspectisclassr$   r%   _prepare_childrK   tuplerL   rM   rN   _get_all_childsrO   _get_all_statesrP   _get_all_states_namesrQ   )mcsr)   bases	namespacekwargsclsstateschildsargchildr9   s             r   rX   zStatesGroupMeta.__new__M   s    goc4	:"* 	%ID##u%c"%*S+*F**3/e$	% vv##DV#DD 002 002
 $'#<#<#> 
r   r   c                     | j                   r1dj                  | j                   j                  | j                  f      S | j                  S )N.)rK   joinr!   r@   rf   s    r   r!   z#StatesGroupMeta.__full_group_name__j   s5    >>88S^^??NOO||r   rj   c                 >    | |_         |j                         |_        |S )a  Prepare child.

        While adding `cls` for its children, we also need to recalculate
        the parameter `__all_states_names__` for each child
        `StatesGroup`. Since the child class appears before the
        parent, at the time of adding the parent, the child's
        `__all_states_names__` is already recorded without taking into
        account the name of current parent.
        )rK   ra   rQ   )rf   rj   s     r   r]   zStatesGroupMeta._prepare_childp   s"     %*%@%@%B"r   c                 ^    | j                   }| j                   D ]  }||j                   z  } |S r   )rL   )rf   resultrj   s      r   r_   zStatesGroupMeta._get_all_childs~   s3    ^^ 	'Ee&&&F	'r   c                 ^    | j                   }| j                  D ]  }||j                  z  } |S r   )rM   rL   rP   )rf   rq   r   s      r   r`   zStatesGroupMeta._get_all_states   s3    ^^ 	+Ee***F	+r   c                 :    t        d | j                  D              S )Nc              3   N   K   | ]  }|j                   s|j                     y wr   r/   rT   s     r   rV   z8StatesGroupMeta._get_all_states_names.<locals>.<genexpr>   s     PUEKKU[[Ps   %%)r^   rP   rn   s    r   ra   z%StatesGroupMeta._get_all_states_names   s    Pc.@.@PPPr   itemc                     t        |t              r|| j                  v S t        |t              r|| j                  v S t        |t
              r|| j                  v S y)NF)r8   r:   rQ   r   rP   rJ   rO   )rf   ru   s     r   __contains__zStatesGroupMeta.__contains__   sV    dC 33333dE"3----dO,3----r   c                 "    d| j                    dS )Nz<StatesGroup 'r.   )r!   r   s    r   r0   zStatesGroupMeta.__str__   s     8 89<<r   c                 ,    t        | j                        S r   )iterrP   r   s    r   __iter__zStatesGroupMeta.__iter__   s    D''((r   )r@   rA   rB   __annotations__r   r   r:   r   r   rX   rD   r!   r]   r_   r`   ra   r   rF   rw   r0   r   r{   __classcell__)r9   s   @r   rJ   rJ   D   s   --//eSj!!38_$$}-s233%*%%S/) 8 C  
4#6 4;N d=&93&> ? eSj 1 QeCHo Q  = =)(5/ )r   rJ   c                   P    e Zd Zeded    fd       Zddedee   de	fdZ
defdZy)	r%   r   c                 R    | j                   | S | j                   j                         S r   )rK   get_rootrn   s    r   r   zStatesGroup.get_root   s$    >>!J~~&&((r   Nr1   r2   c                 0    |t        |       j                  v S r   )typerQ   r4   s      r   r5   zStatesGroup.__call__   s    DJ;;;;r   c                 2    dt        |       j                   S )NzStatesGroup )r   r!   r   s    r   r0   zStatesGroup.__str__   s    d4j<<=>>r   r   )r@   rA   rB   classmethodr   r   r	   r   r:   rF   r5   r0   rH   r   r   r%   r%      sK    )m, ) )
<n <# <RV <? ?r   r%   )	metaclassr   r/   )r[   typingr   r   r   r   r   r   aiogram.typesr	   r   r   rJ   r%   default_state	any_staterH   r   r   <module>r      sJ     F F (:  : zV)d V)r?O ? 	r   