zmc
2023-10-12 ed135d79df12a2466b52dae1a82326941211dcc9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
U
¤ý°djSã
@s8UdZddlmZddlmZmZmZmZmZm    Z    m
Z
ddl m Z m Z mZdZded<d    Zd
ed <egZd ed <zdd    lZdd„eDƒZdZWnek
r¦dZYnXddlmZmZmZzÚddlmZddlmZm Z m!Z!m"Z"ddl#m$Z$zddl%m&Z&e 'e&¡Wnek
r YnXe 'e$¡e(edƒr>ej)Zddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6iZ7ded<e2j8j     9¡D]\Z:Z;e;e7de:›<qŽe2j<j     9¡D]\Z:Z;e;e7de:›<q´e2j=j> 9¡D]\Z:Z;e;e7de:›<qÚe,j? 9¡D]\Z:Z;e;e7de:›<qþe,j@jA 9¡D]\Z:Z;e;e7d e:›<q$e,jBjC 9¡D]\Z:Z;e;e7d!e:›<qJe,jDjE 9¡D]\Z:Z;e;e7d"e:›<qpe.jFj     9¡D]\Z:Z;e;e7d#e:›<q–e.jj     9¡D]\Z:Z;e;e7d$e:›<q¼e/jGjHjI 9¡D]\Z:Z;e;e7d%e:›<qäe/jGjHjJ 9¡D]\Z:Z;e;e7d&e:›<q e/jGjK 9¡D]\Z:Z;e;e7d'e:›<q2e0jLj     9¡D]\Z:Z;e;e7d(e:›<qXe0jMj     9¡D]\Z:Z;e;e7d)e:›<q~e1jNjO 9¡D]\Z:Z;e;e7d*e:›<q¤e1jPjQ 9¡D]\Z:Z;e;e7d+e:›<qÊe1jRjS 9¡D]\Z:Z;e;e7d,e:›<qðe3jTjUj     9¡D]\Z:Z;e;e7d-e:›<qe4jVjW 9¡D]\Z:Z;e;e7d.e:›<q>e X¡ZYe! ZeY¡Z[eY \e j] ^e+j_j`¡¡eY \e j] ^e,j_j`¡¡eY \e j] ^e-j_j`¡¡eY \e j] ^e.j_j`¡¡eY \e j] ^e/j_j`¡¡eY \e j] ^e0j_j`¡¡eY \e j] ^e1j_j`¡¡eY \e j] ^e2j_j`¡¡eY \e j] ^e3j_j`¡¡eY \e j] ^e4j_j`¡¡eY \e j] ^e5j_j`¡¡eY \e j] ^e6j_j`¡¡d/d„eDƒZdZad    ZbGd0d1„d1ƒZcWnVeedeefk
rîZfz0dZaed    k    rÄefnd2ZbesÞed3eb›ƒef‚W5d    Zf[fXYnXd4d5d6d7d8d9œZgd:ed;<Gd<d=„d=ƒZhGd>d?„d?ƒZid@dAdBœdCdD„Zjd    S)Ez?Implementation of a helper class for MySQL X Protobuf messages.é)Ú annotations)ÚAnyÚDictÚListÚOptionalÚTupleÚTypeÚUnioné)Ú MessageTypeÚProtobufMessageCextTypeÚProtobufMessageType))zMysqlx.ServerMessages.Type.OKz    Mysqlx.Ok)z Mysqlx.ServerMessages.Type.ERRORz Mysqlx.Error)z,Mysqlx.ServerMessages.Type.CONN_CAPABILITIESzMysqlx.Connection.Capabilities)z5Mysqlx.ServerMessages.Type.SESS_AUTHENTICATE_CONTINUEz#Mysqlx.Session.AuthenticateContinue)z/Mysqlx.ServerMessages.Type.SESS_AUTHENTICATE_OKzMysqlx.Session.AuthenticateOk)z!Mysqlx.ServerMessages.Type.NOTICEzMysqlx.Notice.Frame)z5Mysqlx.ServerMessages.Type.RESULTSET_COLUMN_META_DATAzMysqlx.Resultset.ColumnMetaData)z(Mysqlx.ServerMessages.Type.RESULTSET_ROWzMysqlx.Resultset.Row)z/Mysqlx.ServerMessages.Type.RESULTSET_FETCH_DONEzMysqlx.Resultset.FetchDone)z4Mysqlx.ServerMessages.Type.RESULTSET_FETCH_SUSPENDEDzMysqlx.Resultset.FetchSuspended)z?Mysqlx.ServerMessages.Type.RESULTSET_FETCH_DONE_MORE_RESULTSETSz(Mysqlx.Resultset.FetchDoneMoreResultsets)z.Mysqlx.ServerMessages.Type.SQL_STMT_EXECUTE_OKzMysqlx.Sql.StmtExecuteOk)z?Mysqlx.ServerMessages.Type.RESULTSET_FETCH_DONE_MORE_OUT_PARAMSz'Mysqlx.Resultset.FetchDoneMoreOutParams)z&Mysqlx.ServerMessages.Type.COMPRESSIONzMysqlx.Connection.CompressionzTuple[Tuple[str, str], ...]Ú_SERVER_MESSAGES_TUPLESNú Optional[str]ÚPROTOBUF_VERSIONzpList[Union[Type[List[Dict[str, Any]]], Type[RepeatedCompositeContainer], Type[RepeatedCompositeFieldContainer]]]ÚPROTOBUF_REPEATED_TYPEScCs i|]\}}tt |¡ƒ|“qS©)ÚintÚ    _mysqlxpbÚ
enum_value©Ú.0ÚkeyÚvalrrúOd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\mysqlx/protobuf/__init__.pyÚ
<dictcomp>ds rTF)Ú
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_pb2zDict[str, int]Ú    _MESSAGESzMysqlx.ClientMessages.Type.zMysqlx.ServerMessages.Type.zMysqlx.Error.Severity.zMysqlx.Crud.DataModel.zMysqlx.Crud.Find.RowLock.zMysqlx.Crud.Order.Direction.z'Mysqlx.Crud.UpdateOperation.UpdateType.zMysqlx.Datatypes.Scalar.Type.zMysqlx.Datatypes.Any.Type.z0Mysqlx.Expect.Open.Condition.ConditionOperation.z!Mysqlx.Expect.Open.Condition.Key.z Mysqlx.Expect.Open.CtxOperation.zMysqlx.Expr.Expr.Type.z"Mysqlx.Expr.DocumentPathItem.Type.zMysqlx.Notice.Frame.Scope.zMysqlx.Notice.Warning.Level.z,Mysqlx.Notice.SessionStateChanged.Parameter.z)Mysqlx.Prepare.Prepare.OneOfMessage.Type.z*Mysqlx.Resultset.ColumnMetaData.FieldType.cCsi|]\}}t||“qSr©r4rrrrr sc@sžeZdZUdZe ¡Zded<edddœdd„ƒZ    edd    d
œd d „ƒZ
edd dœdd„ƒZ edd dœdd„ƒZ edd ddœdd„ƒZ ed    d ddœdd„ƒZdS)Ú_mysqlxpb_purez]This class implements the methods in pure Python used by the
        _mysqlxpb C++ extension.zmessage_factory.MessageFactoryÚfactoryÚstrr ©ÚnameÚreturncCstj t |¡¡}|ƒS)z«Create new Protobuf message.
 
            Args:
                name (str): Message type name.
 
            Returns:
                object: Protobuf message.
            )r6r7Z GetPrototypeÚ_DESCRIPTOR_POOLZFindMessageTypeByName)r:ÚclsrrrÚ new_messages
ÿz_mysqlxpb_pure.new_messager)Úenum_keyr;cCst|S)z“Return enum value.
 
            Args:
                enum_key (str): Enum key.
 
            Returns:
                int: enum value.
            r5)r?rrrr%s
z_mysqlxpb_pure.enum_valueÚbytes©Úmsgr;cCs| ¡S)z°Serialize message.
 
            Args:
                msg (object): Protobuf message.
 
            Returns:
                bytes: Serialized message bytes string.
            )ZSerializeToString©rBrrrÚserialize_message1s
z _mysqlxpb_pure.serialize_messagecCs| ¡S)zÀSerialize partial message.
 
            Args:
                msg (object): Protobuf message.
 
            Returns:
                bytes: Serialized partial message bytes string.
            )ZSerializePartialToStringrCrrrÚserialize_partial_message=s
z(_mysqlxpb_pure.serialize_partial_message©Ú msg_type_nameÚpayloadr;cCst |¡}| |¡|S)zæSerialize partial message.
 
            Args:
                msg_type_name (str): Message type name.
                payload (bytes): Payload.
 
            Returns:
                object: Message parsed from string.
            )r6r>ÚParseFromString)rGrHrBrrrÚ parse_messageIs
 
z_mysqlxpb_pure.parse_message©Úmsg_typerHr;cCs4t |¡}|std|›ƒ‚t |¡}| |¡|S)zæParse server message message.
 
            Args:
                msg_type (int): Message type.
                payload (bytes): Payload.
 
            Returns:
                object: Server message parsed from string.
            zUnknown msg_type: )ÚSERVER_MESSAGESÚgetÚ
ValueErrorr6r>rI)rLrHrGrBrrrÚparse_server_messageXs
 
 
z#_mysqlxpb_pure.parse_server_messageN)Ú__name__Ú
__module__Ú __qualname__Ú__doc__r#ZMessageFactoryr7Ú__annotations__Ú staticmethodr>rrDrErJrPrrrrr6s
   r6zProtobuf >=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.STMTZ 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_EXECUTEzDict[str, Tuple[str, str]]ÚCRUD_PREPARE_MAPPINGc@s@eZdZUdZereneZe Zde    d<e
dddœdd„ƒZ dS)    ÚProtobufzÙProtobuf 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_pureÚNone)r_r;cCs>|rtstdt›ƒ‚|s&ts&tdƒ‚|r.tntt_|t_dS)z¡Sets whether to use the C extension or pure Python implementation.
 
        Args:
            use_pure (bool): `True` to use pure Python implementation.
        rWz-MySQL X Protobuf C extension is not availableN)    Ú HAVE_PROTOBUFÚ ImportErrorÚHAVE_PROTOBUF_ERRORÚHAVE_MYSQLXPB_CEXTr6rr]Úmysqlxpbr_)r_rrrÚ set_use_pure”s zProtobuf.set_use_pureN) rQrRrSrTrdrr6rer_rUrVrfrrrrr]Šs
 
 r]c@s4eZdZdZd3ddddœdd„Zd    ddd
œd d „Zd    dd œdd„Zd    ddd
œdd„Zd    dd œdd„Zd4d    dddœdd„Z    dddœdd„Z
ddœdd„Z ddœdd „Z ddœd!d"„Z ed    dœd#d$„ƒZed    ddd%œd&d'„ƒZed(d)dœd*d+„ƒZed)ddd,œd-d.„ƒZed    dd(d%œd/d0„ƒZed)dd(d,œd1d2„ƒZdS)5ÚMessagezÐHelper 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.
    Nrrr`)rGÚkwargsr;cKs<|rtj |¡nd|jd<| ¡D]\}}| ||¡q"dS)NÚ_msg)r]rer>Ú__dict__ÚitemsÚ __setattr__)ÚselfrGrhr:ÚvaluerrrÚ__init__«sÿzMessage.__init__r8)r:rnr;cCsÐtjr–t|tƒr$t|j|t|ƒƒqÌt|ttfƒrBt|j||ƒqÌt|t    ƒr`t
|j|ƒ  |¡qÌt|t ƒr‚t
|j|ƒ  | ¡¡qÌt
|j|ƒ  |¡n6t|tƒr°t|ƒ|j|<nt|t ƒrÂ| ¡n||j|<dS©N)r]r_Ú
isinstancer8ÚsetattrrirrrÚlistÚgetattrÚextendrgZ    MergeFromÚ get_message©rmr:rnrrrrl´s
 
 
 
ÿzMessage.__setattr__r9cCs>ztjs|j|n
t|j|ƒWStk
r8td‚YnXdSrp)r]r_rirtÚKeyErrorÚAttributeError©rmr:rrrÚ __getattr__Ès
ÿzMessage.__getattr__cCs| ||¡dSrp)rlrwrrrÚ __setitem__ÐszMessage.__setitem__cCs
| |¡Srp)r{rzrrrÚ __getitem__ÓszMessage.__getitem__)r:Údefaultr;cCs*tjs|jd ||¡St|jd||ƒ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.
        ri)r]r_rjrNrt)rmr:r~rrrrNÖs ÿýz Message.getz3Union[ProtobufMessageType, ProtobufMessageCextType]rAcCs||jd<dS)zdSets the message.
 
        Args:
            msg (dict): Dictionary representing a message.
        riN©rj)rmrBrrrÚ set_messageæszMessage.set_message)r;cCs
|jdS)z¸Returns the dictionary representing a message containing parsed
        data.
 
        Returns:
            dict: The dictionary representing a message containing parsed data.
        rir©rmrrrrvðszMessage.get_messager@cCstj |j¡S)z…Serializes a message to a string.
 
        Returns:
            str: A string representing a message containing parsed data.
        )r]rerDrirrrrÚserialize_to_stringùszMessage.serialize_to_stringcCstj |j¡S)zÿSerializes 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.
        )r]rerErirrrrÚserialize_partial_to_strings    z#Message.serialize_partial_to_stringcCstjs|jdS|jjjS)zstring: Message type name.Z_mysqlxpb_type_name)r]r_riÚ
DESCRIPTORZ    full_namerrrrÚtype sÿ ýz Message.typerFcCstj ||¡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
        )r]rerJ)rGrHrrrÚparsesz Message.parser rcCstjr| ¡Stt| ¡ƒƒS)zéReturns 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
        )r]r_ZByteSizeÚlenrr‚rCrrrÚ    byte_size&sÿ
ýzMessage.byte_sizerKcCstj ||¡S)aCreates 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.
        )r]rerP)rLrHrrrÚparse_from_server8s zMessage.parse_from_servercCs|ƒ}| tj ||¡¡|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€r]rerJ)r=rGrHrBrrrÚ from_messageGs zMessage.from_messagecCs|ƒ}| tj ||¡¡|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€r]rerP)r=rLrHrBrrrÚfrom_server_messageXs zMessage.from_server_message)N)N)rQrRrSrTrorlr{r|r}rNr€rvr‚rƒÚpropertyr…rVr†rˆr‰Ú classmethodrŠr‹rrrrrg£s.    
     rgr8rr9cCs tj |¡S)z¯Returns the value of a MySQL X Protobuf enumerator.
 
    Args:
        name (string): MySQL X Protobuf numerator name.
 
    Returns:
        int: Value of the enumerator.
    )r]rer)r:rrrÚ mysqlxpb_enumjs    rŽ)krTÚ
__future__rÚtypingrrrrrrr    Útypesr r r rrUrrsrrrMrdrbZhelpersrrrZgooglerZgoogle.protobufr r!r"r#Z#google.protobuf.internal.containersr$Zgoogle.protobuf.pyext._messager%ÚappendÚhasattrr&Úr(r)r*r+r,r-r.r/r0r1r2r3r4ZClientMessagesrkrrZServerMessagesÚErrorZSeverityZ    DataModelZFindZRowLockZOrderZ    DirectionZUpdateOperationZ
UpdateTypeZScalarZOpenÚ    ConditionZConditionOperationZKeyZ CtxOperationZExprZDocumentPathItemZFrameZScopeÚWarningZLevelZSessionStateChangedÚ    ParameterZPrepareZ OneOfMessageZColumnMetaDataZ    FieldTypeZDescriptorDatabaseZ_DESCRIPTOR_DBZDescriptorPoolr<ZAddZFileDescriptorProtoZ
FromStringr„Z serialized_pbrarcr6Ú SyntaxErrorÚ    TypeErrorÚerrr\r]rgrŽrrrrÚ<module>s, $ / ú
ÿ
 
 8 
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZÿ"ïH