
    ,h                       S r SSKJr  SSKrSSKJr  SSKJr  SSKJr  SSKJr  \" S\S	\4   S
9r	\(       Ga   SSK
Jr  SSK
Jr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr   SSKJ!r"  SSKJ#r$  SSKJ%r&  SSKJ'r(  SSKJ)r*  SSKJ+r,  SSKJ-r.  SSKJ/r0  SSKJ1r2  SSKJ3r4  SSKJ5r6  SS KJ7r8  SS!K9J:r;  SS"K9J<r=  SS#K9J>r?  SS$K9J@rA  SS%K9JBrC  SS&K9JDrE  SS'K9JFrG  SS(K9JHrI  SS)K9JJrK  SS K9J7rL  \r\rM\rN\rO\rP\rQ\ rR\rS\r\rT\"rU\$rV\(rW\&rX\*rY\,rZ\.r[\0r\\4r]\6r^\2r_\8r`\;ra\=rb\?rc\Ard\Cre\Grf\Krg\Erh\Iri\Lrj " S* S+5      rk\k" 5       rl\lR                  rm\lR                  rng),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                  6    \ rS rSrSrSS jrS	S jrS
S jrSrg)_ModuleRegistry^   am  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``.
c                .    [        5       U l        Xl        g N)setmodule_registryprefix)selfr0   s     Q/var/www/auris/envauris/lib/python3.13/site-packages/sqlalchemy/util/preloaded.py__init___ModuleRegistry.__init__r   s    "u    c                >    U R                   R                  U5        S $ )zAdds 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                    U $ r-    )fns    r2   <lambda>0_ModuleRegistry.preload_module.<locals>.<lambda>}   s    "r5   )r/   update)r1   depss     r2   preload_module_ModuleRegistry.preload_modulev   s     	##D)r5   c                   U R                    H  nU R                  (       a/  UR                  U R                  5      S   R                  SS5      nOUnU(       a  UR	                  U5      (       d  Md  X0R
                  ;  d  Mu  [        U[        5       [        5       5        [        R                  U   =U R
                  U'   [        5       U'   M     g)zLResolve 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   pathmodulekeys       r2   import_prefix_ModuleRegistry.import_prefix   s     **F{{ll4;;/3;;CEF--d33]]*679fh769kk&6IIc"WYs^ +r5   )r/   r0   N)zsqlalchemy.)r=   strreturnzCallable[[_FN], _FN])rM   rR   rS   None)	__name__
__module____qualname____firstlineno____doc__r3   r>   rP   __static_attributes__r8   r5   r2   r*   r*   ^   s    &Jr5   r*   )orY   
__future__r   rK   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>   rP   r8   r5   r2   <module>r      sl   # 
     e8CH-. 0&:<B:4<0>8:<H7<B62<H0L.8:44<8<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b $$""r5   