
    x'h                     :    d dl mZmZ d dlmZmZ  G d de      Zy)    )StateStorageBaseStateDataContext)OptionalUnionc                   >   e Zd ZdZ	 ddee   dee   ddfdZ	 	 	 ddeded	ed
ee   dee   dee   defdZ		 	 	 ddeded
ee   dee   dee   de
edf   fdZ	 	 	 ddeded
ee   dee   dee   defdZ	 	 	 ddededede
eeeef   d
ee   dee   dee   defdZ	 	 	 ddeded
ee   dee   dee   defdZ	 	 	 ddeded
ee   dee   dee   defdZ	 	 	 ddeded
ee   dee   dee   dee   fdZ	 	 	 ddededed
ee   dee   dee   defdZdefdZy)StateMemoryStoragea~  
    Memory storage for states.

    Stores states in memory as a dictionary.

    .. code-block:: python3

        storage = StateMemoryStorage()
        bot = TeleBot(token, storage=storage)

    :param separator: Separator for keys, default is ":".
    :type separator: Optional[str]

    :param prefix: Prefix for keys, default is "telebot".
    :type prefix: Optional[str]
    	separatorprefixreturnNc                 \    || _         || _        | j                  st        d      i | _        y )NzPrefix cannot be empty)r	   r
   
ValueErrordata)selfr	   r
   s      V/var/www/flask-api/venv/lib/python3.12/site-packages/telebot/storage/memory_storage.py__init__zStateMemoryStorage.__init__   s1     #{{566  		    chat_iduser_idstatebusiness_connection_idmessage_thread_idbot_idc           	      
   t        |d      r|j                  }| j                  ||| j                  | j                  |||      }| j
                  j                  |      |i d| j
                  |<   y|| j
                  |   d<   y)Nname)r   r   r   T)hasattrr   _get_keyr
   r	   r   get)r   r   r   r   r   r   r   _keys           r   	set_statezStateMemoryStorage.set_state#   s     5&!JJE}}KKNN"
 99==&(-r:DIIdO  (-DIIdOG$r   c           	          | j                  ||| j                  | j                  |||      }| j                  j	                  |      y | j                  |   d   S )Nr   r   r
   r	   r   r   r   r   r   r   r   r   r   s          r   	get_statezStateMemoryStorage.get_state@   sZ     }}KKNN"
 99==&yyw''r   c           	          | j                  ||| j                  | j                  |||      }| j                  j	                  |      y| j                  |= y)NFTr!   r"   s          r   delete_statezStateMemoryStorage.delete_stateX   sU     }}KKNN"
 99==&IIdOr   keyvaluec           	          | j                  ||| j                  | j                  |||      }| j                  j	                  |      t        d| d      || j                  |   d   |<   y)NzStateMemoryStorage: key z does not exist.r   T)r   r
   r	   r   r   RuntimeError)	r   r   r   r&   r'   r   r   r   r   s	            r   set_datazStateMemoryStorage.set_datap   st     }}KKNN"
 99==&!9$?OPQQ',		$$r   c           	          | j                  ||| j                  | j                  |||      }| j                  j	                  |i       j	                  di       S )Nr   r!   r"   s          r   get_datazStateMemoryStorage.get_data   sS     }}KKNN"
 yy}}T2&**6266r   c           	          | j                  ||| j                  | j                  |||      }| j                  j	                  |      yi | j                  |   d<   yNFr   Tr!   r"   s          r   
reset_datazStateMemoryStorage.reset_data   s\     }}KKNN"
 99==&"$		$r   c                 $    t        | |||||      S )N)r   r   r   r   r   )r   )r   r   r   r   r   r   s         r   get_interactive_dataz'StateMemoryStorage.get_interactive_data   s#      #9/
 	
r   r   c           	          | j                  ||| j                  | j                  |||      }| j                  j	                  |      y|| j                  |   d<   yr.   r!   )r   r   r   r   r   r   r   r   s           r   savezStateMemoryStorage.save   s\     }}KKNN"
 99==&"&		$r   c                 "    d| j                    dS )Nz<StateMemoryStorage: >)r   )r   s    r   __str__zStateMemoryStorage.__str__   s    &tyyk33r   ):telebot)NNN)__name__
__module____qualname____doc__r   strr   intboolr   r   r#   r%   floatdictr*   r,   r/   r1   r3   r6    r   r   r   r      s3   $ GP

!#

6>sm

	

" 15+/ $  	
 !) $C=  
B 15+/ $(( ( !)	(
 $C=( ( 
sDy	(8 15+/ $  !)	
 $C=  
< 15+/ $  	
 S#ud*+ !) $C=  
< 15+/ $77 7 !)	7
 $C=7 7 
72 15+/ $  !)	
 $C=  
8 15+/ $

 
 !)	

 $C=
 
 
$
, 15+/ $  	
 !) $C=  
04 4r   r   N)telebot.storage.base_storager   r   typingr   r   r   rB   r   r   <module>rE      s    K "\4) \4r   