§
    eŠtj  ã                  óÈ  — d Z ddlmZ ddlZddlmZ ddlmZ ddlmZ ddlmZ  eded	ef         ¬
¦  «        Z	e�r ddl
mZ ddl
mZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  ddlm!Z" ddlm#Z$ ddlm%Z& ddlm'Z( ddlm)Z* ddlm+Z, ddlm-Z. ddlm/Z0 ddlm1Z2 ddlm3Z4 ddlm5Z6 dd lm7Z8 dd!l9m:Z; dd"l9m<Z= dd#l9m>Z? dd$l9m@ZA dd%l9mBZC dd&l9mDZE dd'l9mFZG dd(l9mHZI dd)l9mJZK dd l9m7ZL eZeZMeZNeZOeZPeZQe ZReZSeZeZTe"ZUe$ZVe(ZWe&ZXe*ZYe,ZZe.Z[e0Z\e4Z]e6Z^e2Z_e8Z`e;Zae=Zbe?ZceAZdeCZeeGZfeKZgeEZheIZieLZj G d*„ d+¦  «        Zk ek¦   «         Zleljm        Zmeljn        ZndS ),zRsupplies the "preloaded" registry to resolve circular module imports at
runtime.

é    )ÚannotationsN)ÚAny)ÚCallable)ÚTYPE_CHECKING)ÚTypeVarÚ_FN.)Úbound)Údialects)Úorm)Úcursor)Údefault)Ú
reflection)Úresult)Úurl)Ú
attributes)Úbase)Úclsregistry)Údecl_api)Ú	decl_base)Ú
dependency)Údescriptor_props)Ú	mapperlib)Ú
properties)Úrelationships)Úsession)Ústate)Ú
strategies)Ústrategy_options)Úutil)Údefault_comparator)Údml)Úelements)Ú	functions)Únaming)Úschema)Ú
selectable)Úsqltypes)Ú
traversalsc                  ó*   — e Zd ZdZdd„Zdd„Zdd„ZdS )Ú_ModuleRegistrya¥  Registry of modules to load in a package init file.

    To avoid potential thread safety issues for imports that are deferred
    in a function, like https://bugs.python.org/issue38884, these modules
    are added to the system module cache by importing them after the packages
    has finished initialization.

    A global instance is provided under the name :attr:`.preloaded`. Use
    the function :func:`.preload_module` to register modules to load and
    :meth:`.import_prefix` to load all the modules that start with the
    given path.

    While the modules are loaded in the global module cache, it's advisable
    to access them using :attr:`.preloaded` to ensure that it was actually
    registered. Each registered module is added to the instance ``__dict__``
    in the form `<package>_<module>`, omitting ``sqlalchemy`` from the package
    name. Example: ``sqlalchemy.sql.util`` becomes ``preloaded.sql_util``.
    úsqlalchemy.c                ó:   — t          ¦   «         | _        || _        d S ©N)ÚsetÚmodule_registryÚprefix)Úselfr0   s     úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/util/preloaded.pyÚ__init__z_ModuleRegistry.__init__s   s   € Ý"™uœuˆÔØˆŒˆˆó    ÚdepsÚstrÚreturnúCallable[[_FN], _FN]c                ó<   — | j                              |¦  «         d„ S )z¿Adds the specified modules to the list to load.

        This method can be used both as a normal function and as a decorator.
        No change is performed to the decorated object.
        c                ó   — | S r-   © )Úfns    r2   ú<lambda>z0_ModuleRegistry.preload_module.<locals>.<lambda>~   s   € ˜"€ r4   )r/   Úupdate)r1   r5   s     r2   Úpreload_modulez_ModuleRegistry.preload_modulew   s#   € ð 	Ô×#Ò# DÑ)Ô)Ð)Øˆ}Ðr4   ÚpathÚNonec                ó~  — | j         D ]´}| j        r5|                     | j        ¦  «        d                              dd¦  «        }n|}|r|                     |¦  «        r]|| j        vrTt          |t          ¦   «         t          ¦   «         ¦  «         t          j
        |         x| j        |<   t          ¦   «         |<   ŒµdS )z\Resolve all the modules in the registry that start with the
        specified path.
        éÿÿÿÿú.Ú_N)r/   r0   ÚsplitÚreplaceÚ
startswithÚ__dict__Ú
__import__ÚglobalsÚlocalsÚsysÚmodules)r1   r@   ÚmoduleÚkeys       r2   Úimport_prefixz_ModuleRegistry.import_prefix€   sÅ   € ð Ô*ð 		Jð 		JˆFØŒ{ð Ø—l’l 4¤;Ñ/Ô/°Ô3×;Ò;¸CÀÑEÔE��à�àðJØ"×-Ò-¨dÑ3Ô3ðJà˜Tœ]Ð*Ð*Ý˜6¥7¡9¤9­f©h¬hÑ7Ô7Ð7Ý69´kÀ&Ô6IÐI�”˜cÑ"¥W¡Y¤Y¨s¡^øð		Jð 		Jr4   N)r+   )r5   r6   r7   r8   )r@   r6   r7   rA   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r3   r?   rQ   r;   r4   r2   r*   r*   _   s`   € € € € € ðð ð&ð ð ð ðð ð ð ðJð Jð Jð Jð Jð Jr4   r*   )orU   Ú
__future__r   rM   Útypingr   r   r   r   r   Ú
sqlalchemyr
   Ú	_dialectsr   Ú_ormÚsqlalchemy.enginer   Ú_engine_cursorr   Ú_engine_defaultr   Ú_engine_reflectionr   Ú_engine_resultr   Ú_engine_urlÚsqlalchemy.ormr   Ú_orm_attributesr   Ú	_orm_baser   Ú_orm_clsregistryr   Ú_orm_decl_apir   Ú_orm_decl_baser   Ú_orm_dependencyr   Ú_orm_descriptor_propsr   Ú_orm_mapperr   Ú_orm_propertiesr   Ú_orm_relationshipsr   Ú_orm_sessionr   Ú
_orm_stater   Ú_orm_strategiesr   Ú_orm_strategy_optionsr   Ú	_orm_utilÚsqlalchemy.sqlr    Ú_sql_default_comparatorr!   Ú_sql_dmlr"   Ú_sql_elementsr#   Ú_sql_functionsr$   Ú_sql_namingr%   Ú_sql_schemar&   Ú_sql_selectabler'   Ú_sql_sqltypesr(   Ú_sql_traversalsÚ	_sql_utilÚengine_cursorÚengine_defaultÚengine_reflectionÚengine_resultÚ
engine_urlÚorm_clsregistryÚorm_baseÚorm_attributesÚorm_decl_apiÚorm_decl_baseÚorm_descriptor_propsÚorm_dependencyÚ
orm_mapperÚorm_propertiesÚorm_relationshipsÚorm_sessionÚorm_strategiesÚorm_strategy_optionsÚ	orm_stateÚorm_utilÚsql_default_comparatorÚsql_dmlÚsql_elementsÚsql_functionsÚ
sql_namingÚsql_selectableÚsql_traversalsÚ
sql_schemaÚsql_sqltypesÚsql_utilr*   Ú_regr?   rQ   r;   r4   r2   ú<module>r›      s×  ððð ð
 #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð à€gˆe˜8 C¨ HÔ-Ð.Ñ.Ô.€ð ñ CØ0Ð0Ð0Ð0Ð0Ð0Ø&Ð&Ð&Ð&Ð&Ð&Ø:Ð:Ð:Ð:Ð:Ð:Ø<Ð<Ð<Ð<Ð<Ð<ØBÐBÐBÐBÐBÐBØ:Ð:Ð:Ð:Ð:Ð:Ø4Ð4Ð4Ð4Ð4Ð4Ø<Ð<Ð<Ð<Ð<Ð<Ø0Ð0Ð0Ð0Ð0Ð0Ø>Ð>Ð>Ð>Ð>Ð>Ø8Ð8Ð8Ð8Ð8Ð8Ø:Ð:Ð:Ð:Ð:Ð:Ø<Ð<Ð<Ð<Ð<Ð<ØHÐHÐHÐHÐHÐHØ7Ð7Ð7Ð7Ð7Ð7Ø<Ð<Ð<Ð<Ð<Ð<ØBÐBÐBÐBÐBÐBØ6Ð6Ð6Ð6Ð6Ð6Ø2Ð2Ð2Ð2Ð2Ð2Ø<Ð<Ð<Ð<Ð<Ð<ØHÐHÐHÐHÐHÐHØ0Ð0Ð0Ð0Ð0Ð0ØLÐLÐLÐLÐLÐLØ.Ð.Ð.Ð.Ð.Ð.Ø8Ð8Ð8Ð8Ð8Ð8Ø:Ð:Ð:Ð:Ð:Ð:Ø4Ð4Ð4Ð4Ð4Ð4Ø4Ð4Ð4Ð4Ð4Ð4Ø<Ð<Ð<Ð<Ð<Ð<Ø8Ð8Ð8Ð8Ð8Ð8Ø<Ð<Ð<Ð<Ð<Ð<Ø0Ð0Ð0Ð0Ð0Ð0ð €HØ"€MØ$€NØ*ÐØ"€MØ€JØ&€OØ€HØ
€CØ$€NØ €LØ"€MØ0ÐØ$€NØ€JØ$€NØ*ÐØ€KØ$€NØ0ÐØ€IØ€HØ4ÐØ€GØ €LØ"€MØ€JØ$€NØ$€NØ€JØ €LØ€Hð.Jð .Jð .Jð .Jð .Jñ .Jô .Jð .Jðb €ÑÔ€ØÔ$€ØÔ"€€€r4   