HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/sqlalchemy/util/__pycache__/preloaded.cpython-310.pyc
o

���g�@s�dZddlmZddlZddlmZddlmZddlmZddlmZeded	efd
�Z	e�r1ddl
mZddl
m
Zdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZ ddlm!Z"ddlm#Z$ddlm%Z&ddlm'Z(ddlm)Z*ddlm+Z,ddlm-Z.ddlm/Z0ddlm1Z2ddlm3Z4ddlm5Z6dd lm7Z8dd!l9m:Z;dd"l9m<Z=dd#l9m>Z?dd$l9m@ZAdd%l9mBZCdd&l9mDZEdd'l9mFZGdd(l9mHZIdd)l9mJZKdd l9m7ZLeZeZMeZNeZOeZPeZQe ZReZSeZ
eZTe"ZUe$ZVe(ZWe&ZXe*ZYe,ZZe.Z[e0Z\e4Z]e6Z^e2Z_e8Z`e;Zae=Zbe?ZceAZdeCZeeGZfeKZgeEZheIZieLZjGd*d+�d+�Zkek�ZleljmZmeljnZndS),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@s.eZdZdZddd�Zdd	d
�Zdd
d�ZdS)�_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.cCst�|_||_dS�N)�set�module_registry�prefix)�selfr-�r/�D/usr/local/lib/python3.10/dist-packages/sqlalchemy/util/preloaded.py�__init__rs
z_ModuleRegistry.__init__�deps�str�return�Callable[[_FN], _FN]cGs|j�|�dd�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.
        cSs|Sr*r/)�fnr/r/r0�<lambda>}sz0_ModuleRegistry.preload_module.<locals>.<lambda>)r,�update)r.r2r/r/r0�preload_modulevsz_ModuleRegistry.preload_module�path�NonecCsv|jD]5}|jr|�|j�d�dd�}n|}|r|�|�r8||jvr8t|t�t��t	j
||j|<t�|<qdS)z\Resolve all the modules in the registry that start with the
        specified path.
        ����.�_N)r,r-�split�replace�
startswith�__dict__�
__import__�globals�locals�sys�modules)r.r:�module�keyr/r/r0�
import_prefixs
��
��z_ModuleRegistry.import_prefixN)r))r2r3r4r5)r:r3r4r;)�__name__�
__module__�__qualname__�__doc__r1r9rJr/r/r/r0r(^s


	r()orN�
__future__rrF�typingrrrrr�
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(�_regr9rJr/r/r/r0�<module>s�1