� k\�g͞�� �ddlmZddlmZddlZddlZddlZddlmZddlm Z ddlm Z ddlm Z ddlm Z ddlm Z dd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddl m!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%ddl&m'Z'ejr�dd lm(Z(dd!lm)Z)dd"lm*Z*dd#lm+Z+dd$lm,Z,dd%lm-Z-dd&lm.Z.dd'lm/Z/dd(lm0Z0dd)l1m2Z2dd*l(m3Z3dd+l(m4Z4dd,l(m5Z5dd-l(m6Z6dd.l(m7Z7dd/l(m8Z8dd0l(m9Z9dd1l*m:Z:dd2l+m;Z;dd3l+m<Z<dd4l+m=Z=dd5l+m>Z>dd6l+m?Z?dd7l+m@Z@dd8lmAZAed9ejB�:��ZCed;e d<ef�:��ZDed=ejE�:��ZFed>e�:��ZGd?�ZHd@�ZId�dG�ZJd�dM�ZKed�dS���ZLed<dT�d�dX���ZLed�d[���ZLed�d^���ZLed�d`���ZLe�ddc���ZLe�ddg���ZLe�ddj���ZLe�ddm���ZLe�ddq���ZLe�ddt���ZLe�ddw���ZLe�dd{���ZLed<d|��dd���ZLe�d d����ZLe�d d����ZLe�d d����ZLddd�d�d���d d��ZL�d d��ZM�dd��ZNGd��d���ZOGd��d���ZPGd��d���ZQGd��d�eO��ZRGd��d�eO��ZSde#jTddf�dd��ZUGd��d�eO��ZVGd��d�eO��ZWGd��d�eO��ZXGd��d�eO��ZYGd��d�eO��ZZGd��d�eO��Z[Gd��d�eSeO��Z\Gd��d�e\eO��Z]Gd��d�eO��Z^Gd��d�eSeO��Z_Gd��d�eWeSeO��Z`Gd��d�eWeO��ZaGd��d�eVeO��ZbGdÄd�eReO��ZcGdńd�eWeO��ZdGdDŽd�eWeSeOeje��ZfGdɄd�efeO��ZgGd˄d�efeO��ZhGd̈́d�eReO��ZiGdτd�eO��ZjGdфd�eQeO��ZkGdӄd�ePeWeO��ZlGdՄd�ePeReO��ZmGdׄd�em��ZnGdلd�eO��ZoGdۄd�e\��ZpGd݄d�eYeWeO��ZqGd߄d�eO��ZrGd�d�eWeO��ZsGd�d�eVeO��ZtGd�d�er��ZuGd�d�eO��ZvGd�d�eO��ZwGd�d�eYeVeO��ZxGd�d�ex��ZyGd�d�ey��ZzGd�d�eYeVeO��Z{Gd�d�eVeO��Z|Gd��d�eVeO��Z}iZ~ee��D]cZ�e�ee���Z�e���d���r@e���d�d���Z�e�e���vre���e�e���Z�e�e~e�<�des&e~ej�Z�e�e�e�e�fD]Z�e�e~ej�e�<�dSdS(�)� annotationsN)�Any)�Callable)�cast)�Dict)�Iterable)�Iterator)�List)�NoReturn)�Optional)�overload)�Sequence)�Tuple)�Type)� TYPE_CHECKING)�TypeVar)�Union�)�roles)�visitors)�is_from_clause)�ExecutableOption)�Options)� HasCacheKey)� Visitable�)�exc)� inspection)�util)�Literal)�elements)�lambdas)�schema)� selectable)�_ColumnExpressionArgument)�_ColumnsClauseArgument)�_DDLColumnArgument)�_DMLTableArgument)�_FromClauseArgument)�_DMLTableElement)� BindParameter)� ClauseElement)� ColumnClause)� ColumnElement)� NamedColumn)�SQLCoreOperations)� TextClause)�Column)�_ColumnsClauseElement)�_JoinTargetProtocol)� FromClause)�HasCTE)� SelectBase)�Subquery)�_TraverseCallableType�_SR)�bound�_F.� _StringOnlyR�_Tc�h�t|ttjf�� ot |d�� S)zhReturn whether or not the element is a "literal" in the context of a SQL expression construct. �__clause_element__)� isinstancerr#�SchemaEventTarget�hasattr)�elements �h/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sqlalchemy/sql/coercions.py� _is_literalrFNsA�� �� �F�,�-��� � 5��g�3�4�4� 4�5�c��t|tj��r.t|t��s|D]}t |��sdS�dSt|t t jtttj j f�� o<t|d�� o+t|t�� pt|t�� S)aReturn whether or not the element is a "literal" in the context of a SQL expression construct. does a deeper more esoteric check than _is_literal. is used for lambda elements that have to distinguish values that would be bound vs. not without any context. FTr@)rA�collections_abcr�str�_deep_is_literalrr#rBrrr� langhelpers�symbolrC�type� issubclass)rD�elems rErKrKZs����'�?�3�4�4��Z���>�>��� � �D�#�D�)�)� ��u�u� ��4� � ���(���� �'�  � � � � ���!5�6�6� 6� ��7�D�)�)� )� 4��g�{�3�3�3�rG� paramnamerJ�meth_rst� param_rst�return�Callable[[_F], _F]c�:�tj|d|�d|�d���S)Nz.. warning:: The z argument to z� can be passed as a Python string argument, which will be treated as **trusted SQL text** and rendered as given. **DO NOT PASS UNTRUSTED INPUT TO THIS PARAMETER**.)r�add_parameter_text)rQrRrSs rE�_document_text_coercionrX�s2�� � "�� � �9�9�h�h�h� � � � rG�attrname�fnname�args�+Union[Sequence[_T], Sequence[Sequence[_T]]]� Sequence[_T]c�4�|r�t|dtttf��r_t |��dkrLt|dt��rt jd|�d|�d����td|d��Std|��S)NrrzThe "z" argument to zt(), when referring to a sequence of items, is now passed as a series of positional elements, rather than as a list. r])rA�list�set�dict�lenr� ArgumentErrorr)rYrZr[s rE�!_expression_collection_was_a_listrd�s���  �-� �4��7�T�3��$5�6�6�-�3�t�9�9��>�>� �d�1�g�t� $� $� ��#�4��4�4��4�4�4��� � �N�D��G�,�,�,� ��� %� %�%rG�role�Type[roles.TruncatedLabelRole]rDr�kwc ��dS�N��rerDrgs rE�expectrl�� �� �#rG��as_key�Type[roles.DMLColumnRole]ro� Literal[True]c ��dSrirj)rerDrorgs rErlrl�s �� �#rG�Type[roles.LiteralValueRole]�BindParameter[Any]c ��dSrirjrks rErlrl�s �� �rG�!Type[roles.DDLReferredColumnRole]�Union[Column[Any], str]c ��dSrirjrks rErlrl�� �� "�crG�#Type[roles.DDLConstraintColumnRole]c ��dSrirjrks rErlrl�ryrG�Type[roles.StatementOptionRole]�%Union[ColumnElement[Any], TextClause]c ��dSrirjrks rErlrl�s �� -0�CrG�&Type[roles.LabeledColumnExprRole[Any]]�_ColumnExpressionArgument[_T]�NamedColumn[_T]c ��dSrirjrks rErlrl�s �� �crG�gUnion[Type[roles.ExpressionElementRole[Any]], Type[roles.LimitOffsetRole], Type[roles.WhereHavingRole]]�ColumnElement[_T]c ��dSrirjrks rErlrl�s ���rG��Union[Type[roles.ExpressionElementRole[Any]], Type[roles.LimitOffsetRole], Type[roles.WhereHavingRole], Type[roles.OnClauseRole], Type[roles.ColumnArgumentRole]]�ColumnElement[Any]c ��dSrirjrks rErlrl�s ���rG�Type[roles.DMLTableRole]r(r*c ��dSrirjrks rErlrl�s �� �srG�Type[roles.HasCTERole]r6c ��dSrirjrks rErlrl�s �� �SrG�Type[roles.SelectStatementRole]r7c ��dSrirjrks rErlrl� �� �rG�Type[roles.FromClauseRole]r)r5c ��dSrirjrks rErlrlr�rG)�explicit_subqueryr�r8c ��dSrirj)rerDr�rgs rErlrls ���srG�Type[roles.ColumnsClauseRole]�_ColumnsClauseArgument[Any]r3c ��dSrirjrks rErlrl s ��  �CrG�Type[roles.JoinTargetRole]r4c ��dSrirjrks rErlrl(s �� �#rG� Type[_SR]c ��dSrirjrks rErlrl1rmrGF)�apply_propagate_attrs�argname� post_inspect�disable_inspectionr��Optional[ClauseElement]r�� Optional[str]r��boolr�c ���|jrFt|��r7t|d��r'tj||tjd i|��|���St |}|}t|tj tj tj tj f���sd} |jr|j|fi|��} �n|}d} |jr#t||��rt|d��rd} nIt|d��r9d} t#|dd��s|���}nnt|d���9| sy|jr_|s]t)j|d���} | �E|r| j | ���} n&#t.$r|�||��YnwxYw| �|j|fd|i|��} n-|} n*t|tj ��r|jd i|��} n|} |�Nt4jrt| t8t:f��sJ�|jst#| d d��r | j|_|j| j j!vr|j"r|j"| f||d �|��} | S|j#|| fd|i|��S) N�__code__)r�Fr@T�is_clause_element)�raiseerrr��_propagate_attrs)r��original_elementrj)$� allows_lambda�callablerCr"� LambdaElement� LambdaOptions� _impl_lookuprAr!�CompilerElementr#� SchemaItem� FetchedValue� PyWrapper�_resolve_literal_only�_literal_coercion�$_skip_clauseelement_for_target_match�getattrr@�_use_inspectionr�inspect� _post_inspect�AttributeError�_raise_for_expected�_sa__py_wrapper_literal�typingrr0r,r�� _role_class� __class__�__mro__�_post_coercion�_implicit_coercions) rerDr�r�r�r�rg�implr��resolvedr��insps rErlrl9s��� �� � �W� � �  � �G�Z� (� (� ��$� � � � !� '� '�B� '� '�"7�  � � � � �� �D��� �� � $� � � � � � �  � � �:��� � %�+ #�-�t�-�g�<�<��<�<�H�H�&� � %� ��9� ��w��-�-� ��G�%9�:�:� � %)�!�!��g�';�<�<��(,�%�"�7�,?��G�G��")�"<�"<�">�">���� �g�';�<�<��%� #��'�P�0B�P�%�-�g��F�F�F�D��'�'�/� �.�.�P�'+�'>�'>�'@�'@�H�H��-�P�P�P� �4�4�5E�w�O�O�O�O�O�P�����#�5�t�5�� � �)0� �46� � �H��#��� �G�W�.� /� /��2�7�2�8�8�R�8�8������(� � � L��h�):�M�(J�K�K� K� K�K�$�5� O�'� �(�$�; �; � O�6>�5N� !� 2� ��8�-�5�5�5� � � �*�t�*����!1���� ��H� ��'�t�'� �h� � �07� �;=� � � s�E,�, F�Fc �N�|�dd��t||fddi|��S)NroT)�poprlrks rE� expect_as_keyr��s5���F�F�8�T���� �$�� 3� 3�� 3�� 3� 3�3rG� expressions�Iterable[_DDLColumnArgument]�wIterator[Tuple[Union[str, Column[Any]], Optional[ColumnClause[Any]], Optional[str], Optional[Union[Column[Any], str]]]]c#�K�|D]�}d}d}t||��}t|t��rt|t��sJ�|x}}n+g}|j}t j|id|i��|r|d}|�|n|}||||fV���dS)N�columnr)rlrArJ�appendr�traverse) rer��expr�strnamer�r��cols� col_append� add_elements rE� expect_col_expression_collectionr��s������5�5������,2�4��,>�,>�� �h�� $� $� !��d�C�(�(� (� (�(�!%� %�G�h�h�&(�D�=A�[�J� � �h��X�z�,B� C� C� C�� !��a��� &� 2�f�f�� �����4�4�4�4�4�!5�5rGc�Z�eZdZUdZd�ZdZded<dZdZd�Z ddd�Z ddddd�dd�Z dS)�RoleImpl)r��namer�c ��t���ri)�NotImplementedError��selfrDrgs rEr�zRoleImpl._literal_coercion�s��!�#�#�#rGNrr�Fc�j�||_|j|_t|tj��|_dSri)r�� _role_namer�rOr�UsesInspectionr�)r�� role_classs rE�__init__zRoleImpl.__init__�s/��%����)�� �)�*�e�6J�K�K����rGrDr�r�r�rgrTc �4�|�|||��dSri�r��r�rDr�r�rgs rEr�zRoleImpl._implicit_coercions�s"�� � � ��'�8�<�<�<�<�<rG��advice�code�err� Optional[Any]r�r�r��Optional[Exception]r c ���|� ||ur |�d|�d�}nt|��}|r|j�d|�d|�d�} n |j�d|�d�} |r| d|zz } tj| |���|�) Nz object resolved from z objectz expected for argument z; got �.z expected, got � )r�)�reprr�rrc) r�rDr�r�r�r�r�rg�got�msgs rEr�zRoleImpl._raise_for_expected�s��� � �H�G�$;�$;�9A���7�7�7�K�C�C��w�-�-�C� � <�� � � ��������C�C� -1�I�I�I�s�s�s�;�C� � � �3��<� �C����$�/�/�/�S�8rGri� rDrr�rr�r�rgrrTr�NN�rDrr�r�r�r�r�r�r�r�r�r�rgrrTr ) �__name__� __module__� __qualname__� __slots__r�r��__annotations__r�r�r�r�r�rjrGrEr�r��s��������:�I�$�$�$��N�����!��+0�(�L�L�L�"&� =�=�=�=�=�"&�"&� 9� !%�"�#'�9�9�9�9�9�9�9�9rGr�c��eZdZdZd�ZdS)� _Deannotaterjc �$�ddlm}||��S)Nr)�_deep_deannotate)rr�)r�r�rgr�s rEr�z_Deannotate._post_coercion s%��*�*�*�*�*�*����)�)�)rGN�r�r�r�r�r�rjrGrEr�r� s(�������I�*�*�*�*�*rGr�c��eZdZdZdZdS)� _StringOnlyrjTN)r�r�r�r�r�rjrGrEr�r�s�������I� ���rGr�c� �eZdZdZdd�Zd�ZdS)�_ReturnsStringKeyrjNc �b�t|t��r|S|�|||��dSri�rArJr�r�s rEr�z%_ReturnsStringKey._implicit_coercionss8�� �g�s� #� #� A��N� � $� $�W�g�x� @� @� @� @� @rGc ��|Srirjr�s rEr�z#_ReturnsStringKey._literal_coercion!����rGri�r�r�r�r�r�r�rjrGrEr�r�s@�������I�A�A�A�A� ����rGr�c� �eZdZdZd�Zdd�ZdS)�_ColumnCoercionsrjc�.�tjd��dS)Nz|implicitly coercing SELECT object to scalar subquery; please use the .scalar_subquery() method to produce a scalar subquery.)r�warn)r�s rE�"_warn_for_scalar_subquery_coercionz3_ColumnCoercions._warn_for_scalar_subquery_coercion(s%�� � � � � � � � rGNc ��|}t|dd��s|�|||��dS|jr(|���|���S|jrGt |tj��r-|���|j ���S|j j r |j r|S|�|||��dS)Nr�F) r�r��_is_select_baser �scalar_subquery�_is_from_clauserAr$r8rDr�r��_is_lambda_element)r�rDr�r�rgr�s rEr�z$_ColumnCoercions._implicit_coercions/s���"���x�!4�e�<�<� J� � $� $�%5�w�� I� I� I� I� I� � %� J� � 3� 3� 5� 5� 5��+�+�-�-� -� � %� J�*� �j�)�+ �+ � J� � 3� 3� 5� 5� 5��#�3�3�5�5� 5� � � +� J��0K� J��O� � $� $�%5�w�� I� I� I� I� IrGri)r�r�r�r�r r�rjrGrErr%sB�������I� � � �J�J�J�J�J�JrGr�exc_cls�Type[exc.SQLAlchemyError]�extrar�r�r c�h�|dtj|��|rd|��nd|rd|zndd�z��|�)Nzc%(extra)sTextual SQL expression %(expr)r %(argname)sshould be explicitly declared as text(%(expr)r)� for argument �z%s )r�r�r)r�ellipses_string)rDr�rrr�s rE�_no_text_coercionrAsf�� �'� 0��(��1�1�9@�H�H�G�G�5�5�b�&+�3�U�U�]�]�� � � � � � �rGc��eZdZdZdd�d�ZdS)�_NoTextCoercionrjN�r�c ��t|t��r1ttj|j��rt ||��dS|�||��dSri)rArJrOr!r1r�rr��r�rDr�rgs rEr�z!_NoTextCoercion._literal_coercionVsd�� �g�s� #� #� 7� � � ��!1�) �) � 7� �g�w� /� /� /� /� /� � $� $�W�g� 6� 6� 6� 6� 6rG�r�r�r�r�r�rjrGrErrSs5�������I�48�7�7�7�7�7�7�7rGrc�2�eZdZdZdZdZdZdd�Zdd�d�ZdS)�_CoerceLiteralsrjFNc�"�t||��Sri�r�r�rDr�s rE�_text_coercionz_CoerceLiterals._text_coercione��� ��'�2�2�2rGrc ���t|t��r2|jr|dkrtjdd���S|j||fi|��S|jrC|�tj��S|durtj��S|durtj ��S|j r=t|tj ��r#tjt|��d���S|� ||��dS)N�*T)� is_literalF)rArJ� _coerce_starr!r-r"�_coerce_consts�Null�False_�True_�_coerce_numerics�numbers�Numberr�rs rEr�z!_CoerceLiterals._literal_coercionhs�� �g�s� #� #� C�� � C�W��^�^��,�S�T�B�B�B�B�*�t�*�7�G�B�B�r�B�B�B� � � (����}���&��E�!�!���(�(�(��D����~�'�'�'� � � H�Z��'�.�%J�%J� H��(��W���$�G�G�G� G� � � ��'�2�2�2�2�2rGri) r�r�r�r�r(r'r,r"r�rjrGrErr_s[�������I��N��L���3�3�3�3�59�3�3�3�3�3�3�3rGrc�*�eZdZdZ dddd�d�Zd�ZdS)�LiteralValueImplTNF)�type_�literal_executec �t�t|��s|j|f||d�|��tjd||d|���S)N)r�r�T)r1�uniquer2)rFr�r!r+)r�rDr�r�r1r2rgs rEr�z$LiteralValueImpl._implicit_coercions�sp���8�$�$� � $�D� $�� �"*�G� � �?A� � � ��%� � ���+�  � � � rGc ��|Srirjr�s rEr�z"LiteralValueImpl._literal_coercion�rrGri)r�r�r�r�r�r�rjrGrEr0r0}sT������ �� �  � �� � � � � �.����rGr0c�4��eZdZdZ ddddd�d�fd�Z�xZS)�_SelectIsNotFromrjNr�rDrr�r�r�r�r�r�r�r�rgrTr c ����|st|tj��st|tj��rd|�|jn|�d�}d}nd}t ��j|f|||||d�|��J�)NzTo create a FROM clause from a z$ object, use the .subquery() method.�89ve)r�r�r�r�r�)rAr�SelectStatementRoler��superr�) r�rDr�r�r�r�r�rgr�s �rEr�z$_SelectIsNotFrom._raise_for_expected�s����� ��7�E�$=�>�>� ��(�E�$=�>�>� ��*2�)=�8�%�%�7�J�J�M� � �D�D��D�#����#� � ������  � �� � � � �urGr�r��r�r�r�r�r�� __classcell__�r�s@rEr7r7�sd��������I� "&�"&� #� !%�"�#'�#�#�#�#�#�#�#�#�#�#�#�#rGr7c�$�eZdZdZ d d d �Zd �ZdS)�HasCacheKeyImplrjNrDrr�r�r�rgrTc �b�t|t��r|S|�|||��dSri)rArr�r�s rEr�z#HasCacheKeyImpl._implicit_coercions�s:�� �g�{� +� +� A��N� � $� $�W�g�x� @� @� @� @� @rGc ��|Srirjr�s rEr�z!HasCacheKeyImpl._literal_coercion�rrGrir�rrjrGrEr@r@��K�������I� "&� A� A� A� A� A�����rGr@c�$�eZdZdZ d d d �Zd �ZdS)�ExecutableOptionImplrjNrDrr�r�r�rgrTc �b�t|t��r|S|�|||��dSri)rArr�r�s rEr�z(ExecutableOptionImpl._implicit_coercions�s;�� �g�/� 0� 0� A��N� � $� $�W�g�x� @� @� @� @� @rGc ��|Srirjr�s rEr�z&ExecutableOptionImpl._literal_coercion�rrGrir�rrjrGrErErE�rCrGrEc�4��eZdZdZdddd�d�Zd�fd� Z�xZS)�ExpressionElementImplrjNF)r�r1�is_crudc ���|�|s|�|jstj��S tj|||d|���S#tj$r"}|�||���Yd}~dSd}~wwxYw)NT)r4�_is_crud�r�)�should_evaluate_noner!r)r+rrcr�)r�rDr�r1rJrgr�s rEr�z'ExpressionElementImpl._literal_coercion�s��� �O�� ���e�&@�� �=�?�?� "� ;��-��'�5���������$� ;� ;� ;��(�(��c�(�:�:�:�:�:�:�:�:�:����� ;���s�;�A,� A'�'A,c ���t|tj��rd}nt|tj��rd}nd}t ��j|f|||d�|��S)NzTTo create a column expression from a VALUES clause, use the .scalar_values() method.z`To create a column expression from a FROM clause row as a whole, use the .table_valued() method.�r�r�r�)rAr$�Valuesr�AnonymizedFromClauseRoler;r��r�rDr�r�rgr�r�s �rEr�z)ExpressionElementImpl._raise_for_expecteds���� �g�z�0� 1� 1� �3� �F����!?� @� @� �>� �F� �F�*�u�w�w�*� � �$�x�� � �JL� � � rGr�)r�r�r�r�r�r�r=r>s@rErIrI�sd��������I� $�4��;�;�;�;�;�( � � � � � � � � � rGrIc�,�eZdZdZddd�d�Zdd�d�ZdS)�BinaryElementImplrjN)�bindparam_typer�c �� |�|||���S#tj$r"}|�||���Yd}~dSd}~wwxYw)N)r1rM)� _bind_paramrrcr�)r�rDr��operatorrVr�rgr�s rEr�z#BinaryElementImpl._literal_coercionso�� 7��#�#�H�g�^�#�L�L� L��� � 7� 7� 7� � $� $�W�#� $� 6� 6� 6� 6� 6� 6� 6� 6� 6����� 7���s��A �A�A )rVc �r�|jjr*|jjs|�|�|n|j��}|Sri)rN�_isnull�_with_binary_element_type)r�r�r�rVrgs rEr�z BinaryElementImpl._post_coercion'sE�� �=� � ���):� ��9�9�"0�"<���$�)���H��rG)r�r�r�r�r�r�rjrGrErUrUsZ�������I��� 7� 7� 7� 7� 7�@D�������rGrUc�\�eZdZdZ ddd �Zd �Zejd ��d ���Zd�Z dS)� InElementImplrjNrDrr�r�r�rgrTc �H�|jr�t|tj��r4|jjr(|�|��|j|jfi|��S|�|��|j|���fi|��S|� |||��dSri) r rAr$�AliasrDr �_warn_for_implicit_coercionr��selectr�r�s rEr�z!InElementImpl._implicit_coercions2s��� � #� A��8�Z�%5�6�6� D��$�4� D��0�0��:�:�:�*�t�*�8�+;�B�B�r�B�B�B��0�0��:�:�:�*�t�*�8�?�?�+<�+<�C�C��C�C�C� � $� $�W�g�x� @� @� @� @� @rGc�H�tjd|jjz��dS)Nz_Coercing %s object into a select() for use in IN(); please pass a select() construct explicitly)rrr�r�)r�rPs rEraz)InElementImpl._warn_for_implicit_coercionFs2�� � � :��~�&� (� � � � � rGzsqlalchemy.sql.elementsc �����tj|��r�i�t|��}|D]Y}t|��sHt |tjjj��st|d��s|j |fi|���T|�|<�Z�rtj ���fd�|D���S�� �|d���S|j |fi|��dS)Nr@c�T��g|]$}|�vr�|n���|����%Srj)rX)�.0�or��non_literal_expressionsrYs ���rE� <listcomp>z3InElementImpl._literal_coercion.<locals>.<listcomp>asT������ � !�$;�;�;�4�A�6�6�!%�!1�!1�(�A�!>�!>� ��rGT)� expanding) r�is_non_string_iterabler_rFrA� preloaded� sql_elementsr.rCr�r!� ClauseListrX)r�rDr�rYrgrgrhs `` @rEr�zInElementImpl._literal_coercionMs7����� � &�w� /� /� 4�� $��7�m�m�G�� 7� 7��"�1�~�~�7�%��4�>�6�D���7�%�a�)=�>�>�7�1��0��?�?�B�?�?�?�?�67�/��2��&� K��*������� ")� ��� � ��'�'��'�T�'�J�J�J� %�D� $�W� 3� 3�� 3� 3� 3� 3� 3rGc ��|jr|���St|tj��r0t |j��dkrJ�|�|���St|tj��r&|� d���}d|_ ||_ |St|tj ��r|���S|S)Nr)�againstT)� maintain_key)r r rAr!rnrb�clauses� self_groupr+�_clonerj� expand_opr$rQ� scalar_values)r�rDr�rYrgs rEr�zInElementImpl._post_coercionps��� � "� ��*�*�,�,� ,� ���!4� 5� 5� ��7�?�+�+�q�0�0�0�0��%�%�h�%�7�7� 7� ���!7� 8� 8� ��n�n�$�n�7�7�G� $�G� � (�G� ��N� ���!2� 3� 3� ��(�(�*�*� *��NrGrir�) r�r�r�r�r�rar�preload_moduler�r�rjrGrEr^r^/s��������I� "&� A�A�A�A�A�( � � ��T��2�3�3� 4� 4�4�3� 4�D����rGr^c�(�eZdZdZdZd�Zdd�d�ZdS)� OnClauseImplrjTc �0�|�|��dSrir�r�s rEr�zOnClauseImpl._literal_coercion�s�� � � ��)�)�)�)�)rGN)r�c �>�t|tj��r|S|Sri)rAr�JoinTargetRole)r�r�r�rgs rEr�zOnClauseImpl._post_coercion�s%�� �&��(<� =� =� $�#� #��rG)r�r�r�r�r(r�r�rjrGrEryry�sL�������I��N�*�*�*�<@�������rGryc��eZdZdZdZdd�ZdS)�WhereHavingImplrjTNc�"�t||��Srir r!s rEr"zWhereHavingImpl._text_coercion�r#rGri�r�r�r�r�r(r"rjrGrEr~r~�s2�������I��N�3�3�3�3�3�3rGr~c��eZdZdZdZdd�ZdS)�StatementOptionImplrjTNc�*�tj|��Sri�r!r1r!s rEr"z"StatementOptionImpl._text_coercion�s���"�7�+�+�+rGrir�rjrGrEr�r��s2�������I��N�,�,�,�,�,�,rGr�c��eZdZdZdS)�ColumnArgumentImplrjN�r�r�r�r�rjrGrEr�r����������I�I�IrGr�c��eZdZdZdS)�ColumnArgumentOrKeyImplrjNr�rjrGrEr�r��r�rGr�c��eZdZdZdd�ZdS)�StrAsPlainColumnImplrjNc�*�tj|��Sri)r!r-r!s rEr"z#StrAsPlainColumnImpl._text_coercion�s���$�W�-�-�-rGri)r�r�r�r�r"rjrGrEr�r��s-�������I�.�.�.�.�.�.rGr�c��eZdZdZdZdd�ZdS)�ByOfImplrjTNc�*�tj|��Sri)r!�_textual_label_referencer!s rEr"zByOfImpl._text_coercion�s���0��9�9�9rGrir�rjrGrEr�r��s2�������I��N�:�:�:�:�:�:rGr�c��eZdZdZd�ZdS)� OrderByImplrjc �f�t||j��r|j�tj|��S|Sri)rAr��_order_by_label_elementr!�_label_reference)r�r�rgs rEr�zOrderByImpl._post_coercion�s6�� �x��!1� 2� 2� ��0�<��,�X�6�6� 6��OrGNr�rjrGrEr�r��s(�������I�����rGr�c��eZdZdZ d d d �ZdS) � GroupByImplrjNrDrr�r�r�rgrTc �J�t|��rtj|j�S|Sri)rr!rn�cr�s rEr�zGroupByImpl._implicit_coercions�s)�� �(� #� #� ��&�� �3� 3��OrGrir��r�r�r�r�r�rjrGrEr�r��s7�������I� "&� � � � � � � rGr�c��eZdZdZdd�d�ZdS)� DMLColumnImplrjFrnc ��|r|jS|Sri)�key)r�rDrorgs rEr�zDMLColumnImpl._post_coercion�s�� � ��;� ��NrGNr�rjrGrEr�r��s5�������I�05�������rGr�c��eZdZdZdd�d�ZdS)� ConstExprImplrjNrc ��|�tj��S|durtj��S|durtj��S|�||��dS)NFT)r!r)r*r+r�rs rEr�zConstExprImpl._literal_coercion�s_�� �?��=�?�?� "� �� � ��?�$�$� $� ��_�_��>�#�#� #� � $� $�W�g� 6� 6� 6� 6� 6rGrrjrGrEr�r��s5�������I�48�7�7�7�7�7�7�7rGr�c�$�eZdZdZ d d d �Zd �ZdS)�TruncatedLabelImplrjNrDrr�r�r�rgrTc �b�t|t��r|S|�|||��dSrirr�s rEr�z&TruncatedLabelImpl._implicit_coercions�s:�� �g�s� #� #� A��O� � $� $�W�g�x� @� @� @� @� @rGc �b�t|tj��r|Stj|��S)z�coerce the given value to :class:`._truncated_label`. Existing :class:`._truncated_label` and :class:`._anonymous_label` objects are passed unchanged. )rAr!�_truncated_labelr�s rEr�z$TruncatedLabelImpl._literal_coercions/�� �g�x�8� 9� 9� 6��N��,�W�5�5� 5rGrir�rrjrGrEr�r��sK�������I� "&� A� A� A� A� A� 6� 6� 6� 6� 6rGr�c��eZdZdZdZdd�ZdS)�DDLExpressionImplrjTNc�*�tj|��Srir�r!s rEr"z DDLExpressionImpl._text_coercions�� �"�7�+�+�+rGrir�rjrGrEr�r�s2�������I��N�,�,�,�,�,�,rGr�c��eZdZdZdS)�DDLConstraintColumnImplrjNr�rjrGrEr�r�!r�rGr�c��eZdZdZdS)�DDLReferredColumnImplrjNr�rjrGrEr�r�%r�rGr�c�$�eZdZdZ d d d �Zd �ZdS)�LimitOffsetImplrjNrDrr�r�r�rgrTc �<�|�dS|�|||��dSrir�r�s rEr�z#LimitOffsetImpl._implicit_coercions,s-�� � ��4� � $� $�W�g�x� @� @� @� @� @rGc �b�|�dStj|��}tj|||d���S)NT)r1r4)r�asintr$�_OffsetLimitParam)r�rDr�r1rg�values rEr�z!LimitOffsetImpl._literal_coercion8s@�� �?��4��J�w�'�'�E��/��e�5����� rGrir�rrjrGrEr�r�)sK�������I� "&� A� A� A� A� A� � � � � rGr�c�(��eZdZdZ d d �fd � Z�xZS) �LabeledColumnExprImplrjNrDrr�r�r�rgrTc �,��t|tj��r|�d��St ��j||fd|i|��}t|tj��r|�d��S|�|||��dS�Nr�)rAr�ExpressionElementRole�labelr;r�r�)r�rDr�r�rg�newr�s �rEr�z)LabeledColumnExprImpl._implicit_coercionsGs���� �h�� ;� <� <� E��>�>�$�'�'� '�-�%�'�'�-�����+2��68���C��#�u�:�;�;� E��y�y����&��(�(��'�8�D�D�D�D�DrGrir�)r�r�r�r�r�r=r>s@rEr�r�DsW��������I� "&� E�E�E�E�E�E�E�E�E�E�ErGr�c�l��eZdZdZdZdZdZejdej ��Z ddd��fd� Z d d�Z �xZ S) �ColumnsClauseImplrjTz^\w\S*$N)r�c ���|s8t|t��r#dd�d�|D�����d�}t��j|f|||d�|��S)NzDid you mean to say select(z, c3�4K�|]}t|��V��dSri)r�)rf�es rE� <genexpr>z8ColumnsClauseImpl._raise_for_expected.<locals>.<genexpr>is(����6�6��T�!�W�W�6�6�6�6�6�6rGz)?rP)rAr_�joinr;r�)r�rDr�r�r�rgr�s �rEr�z%ColumnsClauseImpl._raise_for_expectedcs����� �*�W�d�3�3� �;��9�9�6�6�g�6�6�6�6�6�;�;�;� � +�u�w�w�*� � �$�x�� � �JL� � � rGc���t|��}|j�|�� }tjdt j|��|rd|��nd|rdndd�z���)Nz�Textual column expression %(column)r %(argname)sshould be explicitly declared with text(%(column)r), or use %(literal_column)s(%(column)r) for more specificityrr�literal_columnr�)r�r�r�)rJ�_guess_straight_column�matchrrcrr)r�rDr��guess_is_literals rEr"z ColumnsClauseImpl._text_coercionps����g�,�,��#�:�@�@��I�I�I���� #� �.�w�7�7�=D�L�L���9�9�"�(8�F�$�$�h� �� �  �  � rGr�ri)r�r�r�r�r(r,r'�re�compile�Ir�r�r"r=r>s@rEr�r�Zs���������I��N����L�'�R�Z� �B�D�9�9��/3�  �>B�  �  �  �  �  �  �  � � � � � � � � rGr�c��eZdZdZdS)�ReturnsRowsImplrjNr�rjrGrEr�r��r�rGr�c�4��eZdZdZdd�d�Z d d�fd � Z�xZS)� StatementImplrjNrc ��||urFt|t��s1 |jn(#t$rt jd|zd��YnwxYw|S)NaObject %r should not be used directly in a SQL statement context, such as passing to methods such as session.execute(). This usage will be disallowed in a future release. Please use Core select() / update() / delete() etc. with Session.execute() and other statement execution methods.�1.4)rArJ�_execute_on_connectionr�r�warn_deprecated)r�r�r�r�rgs rEr�zStatementImpl._post_coercion�s��� �+� +� +�J� �c�5 �5 � +� � �7�7�7��!� � � ��$�� "2� 2�� � � � � � �����s�#�"A�ArDrr�r�r�rgrTc �P��|jr|St��j||fd|i|��Sr�)rr;r�)r�rDr�r�rgr�s �rEr�z!StatementImpl._implicit_coercions�sJ��� � &� ��O�.�5�7�7�.�����+2��68��� rGrir�)r�r�r�r�r�r�r=r>s@rEr�r��sj��������I�6:������8"&� � � � � � � � � � � rGr�c��eZdZdZ d d d �ZdS) �SelectStatementImplrjNrDrr�r�r�rgrTc �j�|jr|���S|�|||��dSri)�_is_text_clause�columnsr�r�s rEr�z'SelectStatementImpl._implicit_coercions�s@�� � #� A��#�#�%�%� %� � $� $�W�g�x� @� @� @� @� @rGrir�r�rjrGrEr�r��s>�������I� "&� A� A� A� A� A� A� ArGr�c��eZdZdZdS)� HasCTEImplrjNr�rjrGrEr�r��r�rGr�c��eZdZdZdS)� IsCTEImplrjNr�rjrGrEr�r��r�rGr�c�4�eZdZdZdZdd�d�Z ddd�dd�ZdS)�JoinTargetImplrjTNrc �2�|�||��dSrir�rs rEr�z JoinTargetImpl._literal_coercion�s�� � � ��'�2�2�2�2�2rGF)�legacyrDrr�r�r�r�r�rgrTc ��t|tj��r|S|r|jrt jdd���|S|�|||��dS�Nz�Implicit coercion of SELECT and textual SELECT constructs into FROM clauses is deprecated; please call .subquery() on any Core select or ORM Query object in order to produce a subquery object.r�)�version)rArr|r rr�r�)r�rDr�r�r�rgs rEr�z"JoinTargetImpl._implicit_coercions�s~�� �g�u�3� 4� 4� A��N� � A��0� A� � �6��  � � � ��O� � $� $�W�g�x� @� @� @� @� @rGri) rDrr�rr�r�r�r�rgrrTr)r�r�r�r�r�r�r�rjrGrEr�r��sq�������I�+/�(�48�3�3�3�3�3�"&� A� � A�A�A�A�A�A�A�ArGr�c�2�eZdZdZ dddd�dd�Zdd�d�ZdS)�FromClauseImplrjNFT)r�� allow_selectrDrr�r�r�r�r�r�rgrTc ���|jr7|r|���S|rtjdd���|jSdS|jr|S|�|||��dSr�)r �subqueryrr��_implicit_subqueryr�r�)r�rDr�r�r�r�rgs rEr�z"FromClauseImpl._implicit_coercions�s��� � #� A� � 3��(�(�*�*�*�� 3��$�:�"� ���� �2�2� 3� 3�� %� A��O� � $� $�W�g�x� @� @� @� @� @rG)� deannotatec �2�|r|���S|Sri)� _deannotate)r�rDr�rgs rEr�zFromClauseImpl._post_coercions!�� � ��&�&�(�(� (��NrGri)rDrr�rr�r�r�r�r�r�rgrrTr)r�r�r�r�r�r�rjrGrEr�r��sn�������I� "&� A� #(�!�A�A�A�A�A�A�65:�������rGr�c�$�eZdZdZ ddd�dd�ZdS)�StrictFromClauseImplrjNF)r�rDrr�r�r�r�r�rgrTc ��|jr|rtjdd���|jS|�|||��dSr�)r rr�r�r�)r�rDr�r�r�rgs rEr�z(StrictFromClauseImpl._implicit_coercionsse�� � #� A� � A� � �#��  � � � ��.� .� � $� $�W�g�x� @� @� @� @� @rGri) rDrr�rr�r�r�r�rgrrTrr�rjrGrEr�r�sO�������I� "&� A� #� A�A�A�A�A�A�A�ArGr�c� �eZdZdZddd�d�ZdS)�AnonymizedFromClauseImplrjFN)�flatr�c �6�|�J�|�|���S)N)r�)�_anonymous_fromclause)r�rDr�r�rgs rEr�z'AnonymizedFromClauseImpl._post_coercion1s"���|�|�|��,�,�$�,�7�7�7rGr�rjrGrEr�r�.s7�������I�.3�$�8�8�8�8�8�8�8rGr�c��eZdZdZd�ZdS)� DMLTableImplrjc �2�d|jvr |jdS|S)N� dml_table)� _annotationsr�s rEr�zDMLTableImpl._post_coercion:s#�� �'�.� .� .��'� �4� 4��NrGNr�rjrGrEr�r�7s(�������I�����rGr�c��eZdZdZ d d d �ZdS) � DMLSelectImplrjNrDrr�r�r�rgrTc ���|jrAt|tj��r|jjr|jS|���S|�|||��dSri)r rAr$r`rDr rbr�r�s rEr�z!DMLSelectImpl._implicit_coercionsDsl�� � #� A��8�Z�%5�6�6� )��$�4� )� �'�'����(�(�(� � $� $�W�g�x� @� @� @� @� @rGrir�r�rjrGrEr�r�As>�������I� "&� A�A�A�A�A�A�ArGr�c�$��eZdZdZd�fd� Z�xZS)�CompoundElementImplrjNc ���t|tj��r |jrd}nd}nd}t ��j|f|||d�|��S)NzFUse the plain select() object without calling .subquery() or .alias().z9To SELECT from any FROM clause, use the .select() method.rP)rAr�FromClauseRole� _is_subqueryr;r�rSs �rEr�z'CompoundElementImpl._raise_for_expectedZsz��� �g�u�3� 4� 4� ��#� �7��� P����F�*�u�w�w�*� � �$�x�� � �JL� � � rGr�r<r>s@rEr�r�WsB��������I� � � � � � � � � � rGr��Role�Impl)rQrJrRrJrSrJrTrU)rYrJrZrJr[r\rTr])rerfrDrrgrrTrJ) rerprDrrorqrgrrTrJ)rersrDrrgrrTrt)rervrDrrgrrTrw)rerzrDrrgrrTrw)rer|rDrrgrrTr})rerrDr�rgrrTr�)rer�rDr�rgrrTr�)rer�rDrrgrrTr�)rer�rDr(rgrrTr*)rer�rDr6rgrrTr6)rer�rDr7rgrrTr7)rer�rDr)rgrrTr5) rer�rDr7r�rqrgrrTr8)rer�rDr�rgrrTr3)rer�rDr4rgrrTr4)rer�rDrrgrrTr)rer�rDrr�r�r�r�r�r�r�r�rgrrTr)rerprDrrgrrTrJ)rerzr�r�rTr�) rDrr�r�rrrr�r�r�rTr )�� __future__r�collections.abc�abcrIr-r�r�rrrrrr r r r r rrrrrrrrr�_typingr�baserr� cache_keyrrrrr� util.typingr r!r"r#r$r%r&r'r(r)�dmlr*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9�SQLRoler:r<� StringRoler=r>rFrKrXrdrlr�r�r�r�r�r�rrcrrrr0r7r@rErIrUr^ryr~r�r�r�r��ByOfRoler�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��dirr�r��cls�endswith�replace�globalsr�r��ee_impl�intr�rJ�float�py_typerjrGrE�<module>rs ��#�"�"�"�"�"�)�)�)�)�)�)����� � � � � � � � ������������������������������������������������������������������������������� � � � � � �������������������������#�#�#�#�#�#�"�"�"�"�"�"�������"�"�"�"�"�"�������������������������!�!�!�!�!�!� ��0�������������������������2�2�2�2�2�2�/�/�/�/�/�/�+�+�+�+�+�+�*�*�*�*�*�*�,�,�,�,�,�,�%�%�%�%�%�%�'�'�'�'�'�'�'�'�'�'�'�'�&�&�&�&�&�&�'�'�'�'�'�'�%�%�%�%�%�%�+�+�+�+�+�+�$�$�$�$�$�$�������1�1�1�1�1�1�/�/�/�/�/�/�&�&�&�&�&�&�"�"�"�"�"�"�&�&�&�&�&�&�$�$�$�$�$�$�/�/�/�/�/�/� �g�e�5�=�)�)�)�� �W�T��#�s�(�+�,�,�,���w�~�U�-=�>�>�>� � �W�T������ 5� 5� 5�#�#�#�L � � � � &�&�&�&�$ ���� ��� �  � ����� ��� ���� ��� �"�"�"� ��"� �"�"�"� ��"� �0�0�0� ��0� ���� ��� ���� ��� � � � � �� � ���� ��� ���� ��� ���� ��� ���� ��� � (+� ����� ��� � � � � �� � ���� ��� ���� ���6:�!��$�q �q �q �q �q �q �h4�4�4�4�5�5�5�5�<49�49�49�49�49�49�49�49�n*�*�*�*�*�*�*�*�!�!�!�!�!�!�!�!� � � � � �� � � �J�J�J�J�J�x�J�J�J�<"�),�):��#� �����$ 7� 7� 7� 7� 7�h� 7� 7� 7�3�3�3�3�3�h�3�3�3�<�����x����<&�&�&�&�&�x�&�&�&�R�����h����&�����8����&( �( �( �( �( �,�h�( �( �( �V�����-�x����4S�S�S�S�S�H�S�S�S�l�����#�X����&3�3�3�3�3�o�'7��3�3�3�,�,�,�,�,�/�8�,�,�,�������(���������/�����.�.�.�.�.�?�H�.�.�.�:�:�:�:�:�� 0�(�E�N�:�:�:� � � � � �(�H� � � � � � � � �(�H� � � � �����%�x���� 7� 7� 7� 7� 7�H� 7� 7� 7�6�6�6�6�6��h�6�6�6�: ,� ,� ,� ,� ,� �_�h� ,� ,� ,������k�+<�h���������3���������h����6E�E�E�E�E�1�E�E�E�,& �& �& �& �& �(�/�8�& �& �& �R�����h����'�'�'�'�'�O�X�'�'�'�T A� A� A� A� A�/�8� A� A� A� ������������������$A�$A�$A�$A�$A�X�$A�$A�$A�N"�"�"�"�"�%���"�"�"�JA�A�A�A�A�>�A�A�A�28�8�8�8�8�3�8�8�8������#�_�h����A�A�A�A�A�O�X�A�A�A�, � � � � �/�8� � � �*� � �C��J�J�%�%�D� �'�%�� � �C� �}�}�V���%��|�|�F�F�+�+�� �7�7�9�9� � �"�7�7�9�9�T�?�3�'�'�D� $�L�� ���E��5�6�7�G���s�E�*�E�E��=D� �U�0��9�:�:� E�E�E�ErG
Memory