
    i                     f   U d Z ddlmZ ddlZddlZddlZddlZddlZddlm	Z	m
Z
 e	rddlmZ i dddd	d
dddddddddddddddddddddd d!d"d#d$d%Zd&ed'<    G d( d)ej                  j                         Z G d* d+ej                  j$                        Zd.d,Z e        d/d-Zy)0a  Key-value store library.

This package provides the py-key-value-aio async key-value library.

Deprecation Notice:
    The `key_value.shared` module has been moved to `key_value.aio._utils`
    and `key_value.aio.errors`. Imports from `key_value.shared.*` will continue
    to work at runtime with deprecation warnings, but type checkers will error.

    Migration guide:
        - `from key_value.shared.errors import X` -> `from key_value.aio.errors import X`
        - `from key_value.shared.managed_entry import X` -> `from key_value.aio._utils.managed_entry import X`
        - `from key_value.shared.* import X` -> `from key_value.aio._utils.* import X`
    )annotationsN)TYPE_CHECKINGAny)
ModuleTypekey_value.sharedzkey_value.aio._utilszkey_value.shared.errorszkey_value.aio.errorszkey_value.shared.errors.basezkey_value.aio.errors.basez!key_value.shared.errors.key_valuezkey_value.aio.errors.key_valuezkey_value.shared.errors.storezkey_value.aio.errors.storez key_value.shared.errors.wrapperszkey_value.aio.errors.wrapperszkey_value.shared.beartypezkey_value.aio._utils.beartypezkey_value.shared.compoundzkey_value.aio._utils.compoundzkey_value.shared.constantszkey_value.aio._utils.constantszkey_value.shared.managed_entryz"key_value.aio._utils.managed_entryzkey_value.shared.retryzkey_value.aio._utils.retryzkey_value.shared.sanitizationz!key_value.aio._utils.sanitizationzkey_value.shared.sanitizezkey_value.aio._utils.sanitizezkey_value.shared.serializationz"key_value.aio._utils.serializationzkey_value.shared.time_to_livez!key_value.aio._utils.time_to_livezkey_value.shared.waitzkey_value.aio._utils.waitzdict[str, str]_SHARED_MODULE_REDIRECTSc                  ,    e Zd ZdZ	 	 d	 	 	 	 	 	 	 ddZy)_DeprecatedModuleFinderz?Meta path finder that intercepts imports from deprecated paths.Nc                v    |t         v r1t        j                  j                  |t	        |t         |               S y)zAFind module spec, returning a redirect spec for deprecated paths.N)r   	importlib	machinery
ModuleSpec_DeprecatedModuleLoader)selffullnamepathtargets       N/mnt/e/genesis-system/.venv/lib/python3.12/site-packages/key_value/__init__.py	find_specz!_DeprecatedModuleFinder.find_spec5   s>     //&&11'2J82TU      )NN)r   strr   objectr   r   returnz%importlib.machinery.ModuleSpec | None)__name__
__module____qualname____doc__r    r   r   r
   r
   2   s8    I
 	  	
 
/r   r
   c                  (    e Zd ZdZddZddZddZy)	r   z.Loader that creates deprecated module aliases.c                     || _         || _        y )N)old_namenew_name)r   r!   r"   s      r   __init__z _DeprecatedModuleLoader.__init__G   s      r   c                     y)z;Create module - return None to use default module creation.Nr   )r   specs     r   create_modulez%_DeprecatedModuleLoader.create_moduleK   s    r   c                .   t        j                  d| j                   d| j                   dt        d       t        j                  | j                        }|j                  j                  |j                         d|j                  d<   | j                  |j                  d<   | j                  j                  d	      }t        |      d
kD  rId	j                  |dd       }|t        j                  v r"t        t        j                  |   |d   |       yyy)z2Execute module by redirecting to the new location.zImporting from 'zE' is deprecated and will be removed in a future version. Please use 'z
' instead.   
stacklevelT__deprecated____new_name__.   N)warningswarnr!   r"   DeprecationWarningr   import_module__dict__updatesplitlenjoinsysmodulessetattr)r   module
new_modulepartsparent_names        r   exec_modulez#_DeprecatedModuleLoader.exec_moduleO   s     	t}}o .==/5		
 ,,T]];
 	z223,0()*.--' ##C(u:>((5":.Kckk)K0%)VD * r   N)r!   r   r"   r   r   None)r%   zimportlib.machinery.ModuleSpecr   zModuleType | None)r<   r   r   rA   )r   r   r   r   r#   r&   r@   r   r   r   r   r   D   s    8!Er   r   c                     t         j                  D ]  } t        | t              s y t         j                  j	                  dt                      y)z>Install the deprecated module finder if not already installed.Nr   )r9   	meta_path
isinstancer
   insert)finders    r   _install_deprecated_finderrG   i   s=    -- f56 MM356r   c                    | dk(  r1t        j                  dt        d       t        j                  d      S d| }t        |      )z/Intercept attribute access for 'shared' access.sharedzpAccessing 'key_value.shared' is deprecated. Please use 'key_value.aio._utils' or 'key_value.aio.errors' instead.   r)   r   z$module 'key_value' has no attribute )r0   r1   r2   r   r3   AttributeError)namemsgs     r   __getattr__rN   u   sJ    x~	

 &&'9::0
9C

r   )r   rA   )rL   r   r   r   )r   
__future__r   r   importlib.abcimportlib.machineryr9   r0   typingr   r   typesr   r   __annotations__abcMetaPathFinderr
   Loaderr   rG   rN   r   r   r   <module>rX      sE   #    
  % ,., 5, #$?	,
 ()I, $%A, '(G,  !@,  !@, !"B, %&J, :, $%H,  !@, %&J,  $%H!," 8#, . *imm:: $"Eimm22 "EJ7  r   