� k\�g����ddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd l m Z erd d l m Z d d lmZd d lmZd dlmZd dlmZede���Zeded���ZGd�d��ZGd�d��ZGd�d��ZGd�de��ZGd�de��ZGd�d e��ZGd!�d"e��ZGd#�d$e��ZGd%�d&e��ZGd'�d(e��ZGd)�d*e��Z Gd+�d,e e��Z!Gd-�d.eee��Z"Gd/�d0eee��Z#Gd1�d2e��Z$Gd3�d4e��Z%Gd5�d6eee%��Z&Gd7�d8ee%��Z'Gd9�d:e��Z(Gd;�d<e(��Z)Gd=�d>ee(��Z*Gd?�d@e*��Z+GdA�dBe#e��Z,GdC�dDe,e��Z-GdE�dFe,e��Z.GdG�dHe,e��Z/GdI�dJe��Z0GdK�dLeee(��Z1GdM�dNe"e1��Z2GdO�dPe2��Z3GdQ�dRe3��Z4GdS�dTe��Z5GdU�dVe��Z6GdW�dXe6e5��Z7GdY�dZe5��Z8Gd[�d\e��Z9Gd]�d^ee��Z:Gd_�d`e6��Z;Gda�dbe2��Z<Gdc�dde��Z=Gde�dfe��Z>Gdg�dhe6��Z?Gdi�dje(��Z@Gdk�dle��ZAGdm�dneA��ZBdoS)p�)� annotations)�Any)�Generic)�Optional)� TYPE_CHECKING)�TypeVar�)�util)�Literal�)�_PropagateAttrsType)�Label)�_SelectIterable)� FromClause)�Subquery�_T)�bound�_T_coT)r� covariantc��eZdZdZdZdZdZdS)�SQLRolez�Define a "role" within a SQL statement structure. Classes within SQL Core participate within SQLRole hierarchies in order to more accurately indicate where they may be used within SQL statements of all types. .. versionadded:: 1.4 �FN)�__name__� __module__� __qualname__�__doc__� __slots__� allows_lambda�uses_inspectionr��d/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sqlalchemy/sql/roles.pyrrs)���������I��M��O�O�Or rc�&�eZdZUdZdZded<dZdS)�UsesInspectionrNz Literal[None]� _post_inspectT)rrrrr$�__annotations__rrr r!r#r#-s+��������I�#'�M�'�'�'�'��O�O�Or r#c��eZdZdZdZdS)�AllowsLambdaRolerTN)rrrrrrr r!r'r'3s�������I��M�M�Mr r'c��eZdZdZdZdS)�HasCacheKeyRolerzCacheable Core or ORM objectN�rrrr� _role_namerr r!r)r)8s�������I�/�J�J�Jr r)c��eZdZdZdZdS)�ExecutableOptionRolerz"ExecutionOption Core or ORM objectNr*rr r!r-r-=s�������I�5�J�J�Jr r-c��eZdZdZdZdS)�LiteralValueRolerzLiteral Python valueNr*rr r!r/r/Bs�������I�'�J�J�Jr r/c��eZdZdZdZdS)�ColumnArgumentRolerzColumn expressionNr*rr r!r1r1Gs�������I�$�J�J�Jr r1c��eZdZdZdZdS)�ColumnArgumentOrKeyRoler�Column expression or string keyNr*rr r!r3r3L��������I�2�J�J�Jr r3c��eZdZdZdZdS)�StrAsPlainColumnRolerr4Nr*rr r!r7r7Qr5r r7c��eZdZdZdZdS)�ColumnListRolezCElements suitable for forming comma separated lists of expressions.rN�rrrrrrr r!r9r9Vs������M�M��I�I�Ir r9c��eZdZdZdZdS)� StringRolez/mixin indicating a role that results in stringsrNr:rr r!r<r<\s������9�9��I�I�Ir r<c��eZdZdZdZdS)�TruncatedLabelRolerzString SQL identifierNr*rr r!r>r>bs�������I�(�J�J�Jr r>c�.�eZdZdZdZedd���ZdS)�ColumnsClauseRolerz?Column expression, FROM clause, or other columns clause element�returnrc��t����N��NotImplementedError��selfs r!�_select_iterablez"ColumnsClauseRole._select_iterablems��!�#�#�#r N)rAr)rrrrr+�propertyrHrr r!r@r@gsA�������I�I���$�$�$��X�$�$�$r r@c��eZdZdZdZdS)�TypedColumnsClauseRolez'element-typed form of ColumnsClauseRolerNr:rr r!rKrKrs������1�1��I�I�Ir rKc��eZdZdZdZdS)�LimitOffsetRolerzLIMIT / OFFSET expressionNr*rr r!rMrMxs�������I�,�J�J�Jr rMc��eZdZdZdZdS)�ByOfRolerzGROUP BY / OF / etc. expressionNr*rr r!rOrO}r5r rOc��eZdZdZdZdS)� GroupByRolerzGROUP BY expressionNr*rr r!rQrQ�s�������I� '�J�J�Jr rQc��eZdZdZdZdS)� OrderByRolerzORDER BY expressionNr*rr r!rSrS�s�������I�&�J�J�Jr rSc��eZdZdZdS)�StructuralRolerN�rrrrrr r!rUrU���������I�I�Ir rUc��eZdZdZdZdS)�StatementOptionRolerz statement sub-expression elementNr*rr r!rYrY�s�������I�3�J�J�Jr rYc��eZdZdZdZdS)� OnClauseRolerzCON clause, typically a SQL expression or ORM relationship attributeNr*rr r!r[r[�s�������I� %��J�Jr r[c��eZdZdZdZdS)�WhereHavingRolerz$SQL expression for WHERE/HAVING roleNr*rr r!r]r]�s�������I�7�J�J�Jr r]c��eZdZdZdZd d�ZdS) �ExpressionElementRolerzSQL expression element�name� Optional[str]rA� Label[_T]c��t���rCrD)rGr`s r!�labelzExpressionElementRole.label�s��!�#�#�#r N)r`rarArb)rrrrr+rdrr r!r_r_�s4�������I�)�J�$�$�$�$�$�$r r_c��eZdZdZdZdS)� ConstExprRolerz#Constant True/False/None expressionNr*rr r!rfrf�s�������I�6�J�J�Jr rfc��eZdZdZdS)�LabeledColumnExprRolerNrVrr r!rhrh�rWr rhc��eZdZdZdZdS)�BinaryElementRolerz'SQL expression element or literal valueNr*rr r!rjrj�s�������I�:�J�J�Jr rjc��eZdZdZdZdS)� InElementRolerz?IN expression list, SELECT construct, or bound parameter objectNr*rr r!rlrl�s�������I�I��J�Jr rlc��eZdZdZdZdS)�JoinTargetRolerzGJoin target, typically a FROM expression, or ORM relationship attributeNr*rr r!rnrn�s�������I� !��J�Jr rnc�&�eZdZUdZdZdZded<dS)�FromClauseRolerz2FROM expression, such as a Table or alias() objectF�bool�named_with_columnN)rrrrr+� _is_subqueryr%rr r!rprp�s-��������I�E�J��L������r rpc��eZdZdZdS)�StrictFromClauseRolerNrVrr r!ruru�rWr ruc�*�eZdZdZer ddd�d d �ZdSdS) �AnonymizedFromClauseRolerNF)r`�flatr`rarxrqrArc��dSrCr)rGr`rxs r!�_anonymous_fromclausez.AnonymizedFromClauseRole._anonymous_fromclause�s���r )r`rarxrqrAr)rrrrrrzrr r!rwrw�sP�������I���,0�e� � � � � � � � ��r rwc��eZdZdZdZdS)�ReturnsRowsRolerzcRow returning expression such as a SELECT, a FROM clause, or an INSERT/UPDATE/DELETE with RETURNINGNr*rr r!r|r|�s�������I� .��J�Jr r|c�N�eZdZdZdZerejdd���ZdSej ZdS)� StatementRolerz"Executable SQL or text() constructrAr c��dSrCrrFs r!�_propagate_attrszStatementRole._propagate_attrs�s��;>�3r N)rAr ) rrrrr+rr �memoized_propertyr�� EMPTY_DICTrr r!r~r~�sL�������I�5�J��+� � �>�>�>� � �>�>�>� �?���r r~c��eZdZdZdZdd�ZdS)�SelectStatementRolerz/SELECT construct or equivalent text() constructrArc� �td���)NzFAll SelectStatementRole objects should implement a .subquery() method.rDrFs r!�subqueryzSelectStatementRole.subquerys��!� "� � � r N)rAr)rrrrr+r�rr r!r�r��s2�������I�B�J� � � � � � r r�c��eZdZdZdS)� HasCTERolerNrVrr r!r�r� rWr r�c��eZdZdZdZdS)� IsCTERolerz CTE objectNr*rr r!r�r� s�������I��J�J�Jr r�c��eZdZdZdZdZdS)�CompoundElementRolezDSELECT statements inside a CompoundSelect, e.g. UNION, EXTRACT, etc.rz@SELECT construct for inclusion in a UNION or other set constructN�rrrrrr+rr r!r�r�s!������N�N��I�J��J�Jr r�c��eZdZdZdS)�DMLRolerNrVrr r!r�r�rWr r�c��eZdZdZdZdS)� DMLTableRolerz-subject table for an INSERT, UPDATE or DELETENr*rr r!r�r� s�������I�@�J�J�Jr r�c��eZdZdZdZdS)� DMLColumnRolerz*SET/VALUES column expression or string keyNr*rr r!r�r�%s�������I�=�J�J�Jr r�c��eZdZdZdZdZdS)� DMLSelectRolez@A SELECT statement embedded in DML, typically INSERT from SELECTrz-SELECT statement or equivalent textual objectNr�rr r!r�r�*s������J�J��I�@�J�J�Jr r�c��eZdZdZdS)�DDLRolerNrVrr r!r�r�1rWr r�c��eZdZdZdZdS)�DDLExpressionRolerz)SQL expression element for DDL constraintNr*rr r!r�r�5s�������I�<�J�J�Jr r�c��eZdZdZdZdS)�DDLConstraintColumnRolerz:String column name or column expression for DDL constraintNr*rr r!r�r�:s�������I�M�J�J�Jr r�c��eZdZdZdZdS)�DDLReferredColumnRolerzBString column name or Column object for DDL foreign key constraintNr*rr r!r�r�?s�������I�L��J�Jr r�N)C� __future__r�typingrrrrr�r � util.typingr �_typingr �elementsr� selectablerrrrrrr#r'r)r-r/r1r3r7r9r<r>r@rKrMrOrQrSrUrYr[r]r_rfrhrjrlrnrprurwr|r~r�r�r�r�r�r�r�r�r�r�r�r�rr r!�<module>r�s���#�"�"�"�"�"������������������� � � � � � �������������!�!�!�!�!�!��%�,�,�,�,�,�,�������+�+�+�+�+�+�&�&�&�&�&�&�$�$�$�$�$�$� �W�T���������s�d�3�3�3�� � � � � � � � � �������� �������� 0�0�0�0�0�g�0�0�0� 6�6�6�6�6�7�6�6�6� (�(�(�(�(�w�(�(�(� %�%�%�%�%��%�%�%� 3�3�3�3�3�0�3�3�3� 3�3�3�3�3�-�3�3�3� �����W���� ��������� )�)�)�)�)��W�)�)�)� $�$�$�$�$�(�.�.�$�$�$������W�U�^�W���� -�-�-�-�-�g�-�-�-� 3�3�3�3�3�~�3�3�3� '�'�'�'�'�"�N�H�'�'�'�'�'�'�'�'�"�H�'�'�'� �����W����4�4�4�4�4�.�4�4�4� �����#�^����8�8�8�8�8�l�8�8�8� $� $� $� $� $�2�5�9� $� $� $�7�7�7�7�7�)�"�-�7�7�7� �����1�"�5����;�;�;�;�;�-�b�1�;�;�;� �����G���������%�~�~���������&����������>���� �����3���������g���� +� +� +� +� +�G� +� +� +� � � � � �-�� � � ������������������� �����*�G���������m����A�A�A�A�A�>�A�A�A� >�>�>�>�>�G�>�>�>� A�A�A�A�A�G�A�A�A������m����=�=�=�=�=��=�=�=� N�N�N�N�N�g�N�N�N� �����3�����r
Memory