
    BR<ijS              	         U d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
 ddlmZmZmZ dZded<   d	Zd
ed<   egZded<   	 dd	lZeD  ci c]  \  } } e ej,                  |             |  c}} ZdZddlmZmZmZ 	 ddlmZ ddl m!Z!m"Z"m#Z#m$Z$ ddl%m&Z& 	 ddl'm(Z( ejS                  e(       ejS                  e&        e*ed      rejV                  Zddl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 i Z9ded<   e4jt                  j                  jw                         D ]  \  Z<Z=e=e9de< <    e4j|                  j                  jw                         D ]  \  Z<Z=e=e9de< <    e4j~                  j                  jw                         D ]  \  Z<Z=e=e9de< <    e.j                  jw                         D ]  \  Z<Z=e=e9de< <    e.j                  j                  jw                         D ]  \  Z<Z=e=e9de< <    e.j                  j                  jw                         D ]  \  Z<Z=e=e9de< <    e.j                  j                  jw                         D ]  \  Z<Z=e=e9d e< <    e0j                  j                  jw                         D ]  \  Z<Z=e=e9d!e< <    e0j                  j                  jw                         D ]  \  Z<Z=e=e9d"e< <    e1j                  j                  j                  jw                         D ]  \  Z<Z=e=e9d#e< <    e1j                  j                  j                  jw                         D ]  \  Z<Z=e=e9d$e< <    e1j                  j                  jw                         D ]  \  Z<Z=e=e9d%e< <    e2j                  j                  jw                         D ]  \  Z<Z=e=e9d&e< <    e2j                  j                  jw                         D ]  \  Z<Z=e=e9d'e< <    e3j                  j                  jw                         D ]  \  Z<Z=e=e9d(e< <    e3j                  j                  jw                         D ]  \  Z<Z=e=e9d)e< <    e3j                  j                  jw                         D ]  \  Z<Z=e=e9d*e< <    e5j                  j                  j                  jw                         D ]  \  Z<Z=e=e9d+e< <    e6j                  j                  jw                         D ]  \  Z<Z=e=e9d,e< <     e!j                         Z[ e#j                  e[      Z]e[j                  e"j                  j                  e-j                  j                               e[j                  e"j                  j                  e.j                  j                               e[j                  e"j                  j                  e/j                  j                               e[j                  e"j                  j                  e0j                  j                               e[j                  e"j                  j                  e1j                  j                               e[j                  e"j                  j                  e2j                  j                               e[j                  e"j                  j                  e3j                  j                               e[j                  e"j                  j                  e4j                  j                               e[j                  e"j                  j                  e5j                  j                               e[j                  e"j                  j                  e6j                  j                               e[j                  e"j                  j                  e7j                  j                               e[j                  e"j                  j                  e8j                  j                               eD  ci c]  \  } }e9|    | c}} ZdZcd	Zd G d- d.      Zed1d2d3d4d5d6Zid7ed8<    G d9 d:      Zj G d; d<      Zkd>d=Zly	c c}} w # e$ r dZY w xY w# e$ r Y w xY wc c}} w # eefegf$ r ZhdZceehnd/Zdes ed0ed       ehY d	Zh[hod	Zh[hww xY w)?z?Implementation of a helper class for MySQL X Protobuf messages.    )annotations)AnyDictListOptionalTupleTypeUnion   )MessageTypeProtobufMessageCextTypeProtobufMessageType))zMysqlx.ServerMessages.Type.OKz	Mysqlx.Ok)z Mysqlx.ServerMessages.Type.ERRORzMysqlx.Error)z,Mysqlx.ServerMessages.Type.CONN_CAPABILITIESzMysqlx.Connection.Capabilities)z5Mysqlx.ServerMessages.Type.SESS_AUTHENTICATE_CONTINUEz#Mysqlx.Session.AuthenticateContinue)z/Mysqlx.ServerMessages.Type.SESS_AUTHENTICATE_OKzMysqlx.Session.AuthenticateOk)z!Mysqlx.ServerMessages.Type.NOTICEzMysqlx.Notice.Frame)z5Mysqlx.ServerMessages.Type.RESULTSET_COLUMN_META_DATAzMysqlx.Resultset.ColumnMetaData)z(Mysqlx.ServerMessages.Type.RESULTSET_ROWzMysqlx.Resultset.Row)z/Mysqlx.ServerMessages.Type.RESULTSET_FETCH_DONEzMysqlx.Resultset.FetchDone)z4Mysqlx.ServerMessages.Type.RESULTSET_FETCH_SUSPENDEDzMysqlx.Resultset.FetchSuspended)z?Mysqlx.ServerMessages.Type.RESULTSET_FETCH_DONE_MORE_RESULTSETSz(Mysqlx.Resultset.FetchDoneMoreResultsets)z.Mysqlx.ServerMessages.Type.SQL_STMT_EXECUTE_OKzMysqlx.Sql.StmtExecuteOk)z?Mysqlx.ServerMessages.Type.RESULTSET_FETCH_DONE_MORE_OUT_PARAMSz'Mysqlx.Resultset.FetchDoneMoreOutParams)z&Mysqlx.ServerMessages.Type.COMPRESSIONzMysqlx.Connection.CompressionzTuple[Tuple[str, str], ...]_SERVER_MESSAGES_TUPLESNOptional[str]PROTOBUF_VERSIONzpList[Union[Type[List[Dict[str, Any]]], Type[RepeatedCompositeContainer], Type[RepeatedCompositeFieldContainer]]]PROTOBUF_REPEATED_TYPESTF)
BYTE_TYPESNUMERIC_TYPESencode_to_bytes)protobuf)descriptor_databasedescriptor_pb2descriptor_poolmessage_factory)RepeatedCompositeFieldContainer)RepeatedCompositeContainer__version__   )mysqlx_connection_pb2mysqlx_crud_pb2mysqlx_cursor_pb2mysqlx_datatypes_pb2mysqlx_expect_pb2mysqlx_expr_pb2mysqlx_notice_pb2
mysqlx_pb2mysqlx_prepare_pb2mysqlx_resultset_pb2mysqlx_session_pb2mysqlx_sql_pb2zDict[str, int]	_MESSAGESzMysqlx.ClientMessages.Type.zMysqlx.ServerMessages.Type.zMysqlx.Error.Severity.zMysqlx.Crud.DataModel.zMysqlx.Crud.Find.RowLock.zMysqlx.Crud.Order.Direction.z'Mysqlx.Crud.UpdateOperation.UpdateType.zMysqlx.Datatypes.Scalar.Type.zMysqlx.Datatypes.Any.Type.z0Mysqlx.Expect.Open.Condition.ConditionOperation.z!Mysqlx.Expect.Open.Condition.Key.z Mysqlx.Expect.Open.CtxOperation.zMysqlx.Expr.Expr.Type.z"Mysqlx.Expr.DocumentPathItem.Type.zMysqlx.Notice.Frame.Scope.zMysqlx.Notice.Warning.Level.z,Mysqlx.Notice.SessionStateChanged.Parameter.z)Mysqlx.Prepare.Prepare.OneOfMessage.Type.z*Mysqlx.Resultset.ColumnMetaData.FieldType.c                      e Zd ZU dZ ej
                         Zded<   edd       Z	edd       Z
edd       Zedd       Zedd       Zedd	       Zy
)_mysqlxpb_purez]This class implements the methods in pure Python used by the
        _mysqlxpb C++ extension.zmessage_factory.MessageFactoryfactoryc                t    t         j                  j                  t        j	                  |             } |       S )zCreate new Protobuf message.

            Args:
                name (str): Message type name.

            Returns:
                object: Protobuf message.
            )r-   r.   GetPrototype_DESCRIPTOR_POOLFindMessageTypeByName)nameclss     Y/var/www/html/delta-backend/venv/lib/python3.12/site-packages/mysqlx/protobuf/__init__.pynew_messagez_mysqlxpb_pure.new_message  s1     !((55 66t<C 5L    c                    t         |    S )zReturn enum value.

            Args:
                enum_key (str): Enum key.

            Returns:
                int: enum value.
            )r+   )enum_keys    r5   
enum_valuez_mysqlxpb_pure.enum_value%  s     X&&r7   c                "    | j                         S )zSerialize message.

            Args:
                msg (object): Protobuf message.

            Returns:
                bytes: Serialized message bytes string.
            )SerializeToStringmsgs    r5   serialize_messagez _mysqlxpb_pure.serialize_message1  s     ((**r7   c                "    | j                         S )zSerialize partial message.

            Args:
                msg (object): Protobuf message.

            Returns:
                bytes: Serialized partial message bytes string.
            )SerializePartialToStringr=   s    r5   serialize_partial_messagez(_mysqlxpb_pure.serialize_partial_message=  s     //11r7   c                R    t         j                  |       }|j                  |       |S )zSerialize partial message.

            Args:
                msg_type_name (str): Message type name.
                payload (bytes): Payload.

            Returns:
                object: Message parsed from string.
            )r-   r6   ParseFromString)msg_type_namepayloadr>   s      r5   parse_messagez_mysqlxpb_pure.parse_messageI  s'     !,,];C(Jr7   c                    t         j                  |       }|st        d|        t        j	                  |      }|j                  |       |S )zParse server message message.

            Args:
                msg_type (int): Message type.
                payload (bytes): Payload.

            Returns:
                object: Server message parsed from string.
            zUnknown msg_type: )SERVER_MESSAGESget
ValueErrorr-   r6   rD   )msg_typerF   rE   r>   s       r5   parse_server_messagez#_mysqlxpb_pure.parse_server_messageX  sM     ,//9M  #5hZ!@AA ,,];C(Jr7   N)r3   strreturnr   )r9   rN   rO   int)r>   r   rO   bytes)rE   rN   rF   rQ   rO   r   )rL   rP   rF   rQ   rO   r   )__name__
__module____qualname____doc__r   MessageFactoryr.   __annotations__staticmethodr6   r:   r?   rB   rG   rM    r7   r5   r-   r-     s    	$ 3Q/2P2P2R/R		 
	 
		' 
		' 
		+ 
		+ 
		2 
		2 
	 
	 
	 
	r7   r-   zProtobuf >=3.11.0 is requiredProtobuf is not available: )z-Mysqlx.Prepare.Prepare.OneOfMessage.Type.FINDfind)z/Mysqlx.Prepare.Prepare.OneOfMessage.Type.INSERTinsert)z/Mysqlx.Prepare.Prepare.OneOfMessage.Type.UPDATEupdate)z/Mysqlx.Prepare.Prepare.OneOfMessage.Type.DELETEdelete)z-Mysqlx.Prepare.Prepare.OneOfMessage.Type.STMTstmt_execute)z$Mysqlx.ClientMessages.Type.CRUD_FINDz&Mysqlx.ClientMessages.Type.CRUD_INSERTz&Mysqlx.ClientMessages.Type.CRUD_UPDATEz&Mysqlx.ClientMessages.Type.CRUD_DELETEz+Mysqlx.ClientMessages.Type.SQL_STMT_EXECUTEzDict[str, Tuple[str, str]]CRUD_PREPARE_MAPPINGc                  @    e Zd ZU dZereneZe Zde	d<   e
dd       Zy)ProtobufzProtobuf class acts as a container of the Protobuf message class.

    It allows the switch between the C extension and pure Python implementation
    message handlers, by patching the `mysqlxpb` class attribute.
    booluse_purec                    | rt         st        dt               | st        st        d      | rt        nt
        t        _        | t        _        y)zSets whether to use the C extension or pure Python implementation.

        Args:
            use_pure (bool): `True` to use pure Python implementation.
        rZ   z-MySQL X Protobuf C extension is not availableN)	HAVE_PROTOBUFImportErrorHAVE_PROTOBUF_ERRORHAVE_MYSQLXPB_CEXTr-   	_mysqlxpbrb   mysqlxpbrd   )rd   s    r5   set_use_purezProtobuf.set_use_pure  sD     M ;<O;PQRR 2MNN.6NI$r7   N)rd   rc   rO   None)rR   rS   rT   rU   ri   rj   r-   rk   rd   rW   rX   rl   rY   r7   r5   rb   rb     s1     /yNH++Hd+% %r7   rb   c                      e Zd ZdZdddZddZddZddZddZdddZ		 	 	 	 dd	Z
dd
ZddZddZedd       Ze	 	 	 	 	 	 dd       Zedd       Ze	 	 	 	 	 	 dd       Zedd       Zed d       Zy)!MessagezHelper class for interfacing with the MySQL X Protobuf extension.

    Args:
        msg_type_name (string): Protobuf type name.
        **kwargs: Arbitrary keyword arguments with values for the message.
    Nc                    |rt         j                  j                  |      nd | j                  d<   |j	                         D ]  \  }}| j                  ||        y )N_msg)rb   rk   r6   __dict__items__setattr__)selfrE   kwargsr3   values        r5   __init__zMessage.__init__  sV     =JH))-8t 	f "<<> 	*KD%T5)	*r7   c                   t         j                  rt        |t              r!t	        | j
                  |t        |             y t        |t        t        f      rt	        | j
                  ||       y t        |t              r&t        | j
                  |      j                  |       y t        |t              r4t        | j
                  |      j                  |j                                y t        | j
                  |      j                  |       y t        |t              rt        |      | j
                  |<   y t        |t              r|j                         n|| j
                  |<   y N)rb   rd   
isinstancerN   setattrrq   r   r   r   listgetattrextendro   	MergeFromget_messageru   r3   rw   s      r5   rt   zMessage.__setattr__  s    %%		4)?@EM:#>?		4/E4(		4(//6E7+		4(2253D3D3FG		4(2259%%"1%"8		$ ,6eW+EE%%'5 		$r7   c                    	 t         j                  s| j                  |   S t        | j                  |      S # t        $ r t
        d w xY wrz   )rb   rd   rq   r~   KeyErrorAttributeErrorru   r3   s     r5   __getattr__zMessage.__getattr__  sL    	+'/'8'8		$>EdiiQU>V  	+ d*	+s   7 7 Ac                (    | j                  ||       y rz   )rt   r   s      r5   __setitem__zMessage.__setitem__  s    u%r7   c                $    | j                  |      S rz   )r   r   s     r5   __getitem__zMessage.__getitem__  s    %%r7   c                    t         j                  s| j                  d   j                  ||      S t	        | j                  d   ||      S )a  Returns the value of an element of the message dictionary.

        Args:
            name (string): Key name.
            default (object): The default value if the key does not exists.

        Returns:
            object: The value of the provided key name.
        rq   )rb   rd   rr   rJ   r~   )ru   r3   defaults      r5   rJ   zMessage.get  sI     $$ MM&!%%dG4	
 v.g>	
r7   c                "    || j                   d<   y)zdSets the message.

        Args:
            msg (dict): Dictionary representing a message.
        rq   Nrr   )ru   r>   s     r5   set_messagezMessage.set_message  s     !$fr7   c                     | j                   d   S )zReturns the dictionary representing a message containing parsed
        data.

        Returns:
            dict: The dictionary representing a message containing parsed data.
        rq   r   ru   s    r5   r   zMessage.get_message  s     }}V$$r7   c                T    t         j                  j                  | j                        S )zSerializes a message to a string.

        Returns:
            str: A string representing a message containing parsed data.
        )rb   rk   r?   rq   r   s    r5   serialize_to_stringzMessage.serialize_to_string  s       22499==r7   c                T    t         j                  j                  | j                        S )zSerializes the protocol message to a binary string.

        This method is similar to serialize_to_string but doesn't check if the
        message is initialized.

        Returns:
            str: A string representation of the partial message.
        )rb   rk   rB   rq   r   s    r5   serialize_partial_to_stringz#Message.serialize_partial_to_string  s       ::499EEr7   c                    t         j                  s| j                  d   S | j                  j                  j                  S )zstring: Message type name._mysqlxpb_type_name)rb   rd   rq   
DESCRIPTOR	full_namer   s    r5   typezMessage.type  s;    
 $$ II+,	
 %%//	
r7   c                B    t         j                  j                  | |      S )a>  Creates a new message, initialized with parsed data.

        Args:
            msg_type_name (string): Message type name.
            payload (string): Serialized message data.

        Returns:
            dict: The dictionary representing a message containing parsed data.

        .. versionadded:: 8.0.21
        )rb   rk   rG   )rE   rF   s     r5   parsezMessage.parse  s       ..}gFFr7   c                    t         j                  r| j                         S t        t	        | j                                     S )zReturns the size of the message in bytes.

        Args:
            msg (mysqlx.protobuf.Message): MySQL X Protobuf Message.

        Returns:
            int: Size of the message in bytes.

        .. versionadded:: 8.0.21
        )rb   rd   ByteSizelenr   r   r=   s    r5   	byte_sizezMessage.byte_size&  s:        LLN	
 _S%<%<%>?@	
r7   c                B    t         j                  j                  | |      S )a  Creates a new server-side message, initialized with parsed data.

        Args:
            msg_type (int): Message type.
            payload (string): Serialized message data.

        Returns:
            dict: The dictionary representing a message containing parsed data.
        )rb   rk   rM   )rL   rF   s     r5   parse_from_serverzMessage.parse_from_server8  s       55hHHr7   c                r     |        }|j                  t        j                  j                  ||             |S )a  Creates a new message, initialized with parsed data and returns a
        :class:`mysqlx.protobuf.Message` object.

        Args:
            msg_type_name (string): Message type name.
            payload (string): Serialized message data.

        Returns:
            mysqlx.protobuf.Message: The Message representing a message
                                     containing parsed data.
        )r   rb   rk   rG   )r4   rE   rF   r>   s       r5   from_messagezMessage.from_messageG  s/     e))77wOP
r7   c                r     |        }|j                  t        j                  j                  ||             |S )a  Creates a new server-side message, initialized with parsed data and
        returns a :class:`mysqlx.protobuf.Message` object.

        Args:
            msg_type (int): Message type.
            payload (string): Serialized message data.

        Returns:
            mysqlx.protobuf.Message: The Message representing a message
                                     containing parsed data.
        )r   rb   rk   rM   )r4   rL   rF   r>   s       r5   from_server_messagezMessage.from_server_messageX  s/     e))>>xQR
r7   rz   )rE   r   rv   r   rO   rm   )r3   rN   rw   r   rO   rm   )r3   rN   rO   r   )r3   rN   r   r   rO   r   )r>   3Union[ProtobufMessageType, ProtobufMessageCextType]rO   rm   )rO   r   )rO   rQ   )rO   rN   )rE   rN   rF   rQ   rO   r   )r>   r   rO   rP   )rL   rP   rF   rQ   rO   r   )rE   rN   rF   rQ   rO   r   )rL   rP   rF   rQ   rO   r   )rR   rS   rT   rU   rx   rt   r   r   r   rJ   r   r   r   r   propertyr   rX   r   r   r   classmethodr   r   rY   r7   r5   ro   ro     s    *(+&&
 $F$	$%>	F 
 
 GG%*G	<G G  
 
" II %I	<I I     r7   ro   c                @    t         j                  j                  |       S )zReturns the value of a MySQL X Protobuf enumerator.

    Args:
        name (string): MySQL X Protobuf numerator name.

    Returns:
        int: Value of the enumerator.
    )rb   rk   r:   )r3   s    r5   mysqlxpb_enumr   j  s     ''--r7   )r3   rN   rO   rP   )mrU   
__future__r   typingr   r   r   r   r   r	   r
   typesr   r   r   r   rW   r   r}   r   rj   rP   r:   rI   ri   rg   helpersr   r   r   googler   google.protobufr   r   r   r   #google.protobuf.internal.containersr   google.protobuf.pyext._messager   appendhasattrr    r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   ClientMessagesrs   keyvalServerMessagesErrorSeverity	DataModelFindRowLockOrder	DirectionUpdateOperation
UpdateTypeScalarOpen	ConditionConditionOperationKeyCtxOperationExprDocumentPathItemFrameScopeWarningLevelSessionStateChanged	ParameterPrepareOneOfMessageColumnMetaData	FieldTypeDescriptorDatabase_DESCRIPTOR_DBDescriptorPoolr1   AddFileDescriptorProto
FromStringr   serialized_pbrf   rh   r-   SyntaxError	TypeErrorerrr`   rb   ro   r   )r   r   s   00r5   <module>r      s 	  > F # @ @ @ M M-8 4 -^ #' - & 
F    =T08S I  %&+O  A @CX  TM&&'AB ""#BCx'#//     !#I~" --2288: =S9<	/u56=--2288: =S9<	/u56=$$--335 8S47	*3%018 $--335 8S47	*3%018#((00668 ;S7:	-cU34;#))3399; >S:=	067>#33>>DDF ISEH	;C5ABI )//44::< ?S;>	1#78?(,,11779 <S8;	.se45< &**44GGMMO RSNQ	DSEJKR%**4488>>@ CS?B	5cU;<C%**77==? BS>A	4SE:;B $((--335 8S47	*3%018#4499??A DS@C	6se<=D &++11779 <S8;	.se45<%--3399; >S:=	067>%99CCIIK NSJM	@FGN '..;;@@FFH KSGJ	=cUCDK )77AAGGI LSHK	>seDEL <(;;=N555nE**55!,,::	

 **55&&44	

 **55((66	

 **55 ++99	

 **55((66	

 **55&&44	

 **55((66	

 **55!!//	

 **55))77	

 **55 ++99	

 **55))77	

 **55%%33	
 <SSxsCy~s*SOMX XF-///4#4 0 0% %2D DN	.M  &  b T| 	[), XM+1P  78K7LMNTWW Xsl   	a #`;)a :a! a *]	a! 3aa! ;a aaaa! a	a! !b	)bb	