� l\�g����dZddlmZddlZddlmZddlmZddlmZddlmZeded ef� ��Z e�rdd l m Z 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 Z eZMeZNeZOeZPeZQe ZReZSeZ eZTe"ZUe$ZVe(ZWe&ZXe*ZYe,ZZe.Z[e0Z\e4Z]e6Z^e2Z_e8Z`e;Zae=Zbe?ZceAZdeCZeeGZfeKZgeEZheIZieLZjGd*�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�*�eZdZdZd d�Zdd�Zdd �Zd 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��|_||_dS�N)�set�module_registry�prefix)�selfr0s �i/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sqlalchemy/util/preloaded.py�__init__z_ModuleRegistry.__init__rs��"�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��|Sr-�)�fns r2�<lambda>z0_ModuleRegistry.preload_module.<locals>.<lambda>}s��"�r4)r/�update)r1r5s r2�preload_modulez_ModuleRegistry.preload_modulevs#�� ��#�#�D�)�)�)��}�r4�path�Nonec�~�|jD]�}|jr5|�|j��d�dd��}n|}|r|�|��r]||jvrTt |t��t����tj |x|j|<t��|<��dS)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)r1r@�module�keys r2� import_prefixz_ModuleRegistry.import_prefixs����*� 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� Jr4N)r+)r5r6r7r8)r@r6r7rA)�__name__� __module__� __qualname__�__doc__r3r?rQr;r4r2r*r*^s`��������&�������� J� J� J� J� J� Jr4r*)orU� __future__rrM�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*�_regr?rQr;r4r2�<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
Memory