Ë
    Ü_Ëi.  ã                  óØ  — d Z ddlmZ ddlZddlZddlmZmZmZm	Z	m
Z
mZmZmZ ddlmZ ddlmZmZmZ ddlmZ ddlmZmZ dd	lmZmZmZ dd
lmZ ddlm Z  ddl!m"Z"m#Z# erFddlm$Z$ ddlm%Z%m&Z&m'Z' ddlm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7 ddl8m9Z9 dZ:	 	 	 	 	 	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z;y)z&Internal network layer helper methods.é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚMappingÚMutableMappingÚOptionalÚSequenceÚUnionÚcast)Ú_decode_all_selective)Ú_csotÚhelpers_sharedÚmessage)Ú_NO_COMPRESSION)ÚNotPrimaryErrorÚOperationFailure)Ú_COMMAND_LOGGERÚ_CommandStatusMessageÚ
_debug_log)Ú_OpMsg)Ú_is_speculative_authenticate)Úreceive_messageÚsendall)ÚCodecOptions)ÚSnappyContextÚZlibContextÚZstdContext)Ú_EventListeners)ÚReadConcern)Ú_ServerMode)ÚClientSession)ÚMongoClient)Ú
Connection)Ú_AddressÚ_CollationInÚ_DocumentOutÚ_DocumentType)ÚWriteConcernTc                óì  — t        t        |«      «      }|dz   }d}|}|r|s|€J ‚t        j                  ||«      }|r=|r|j                  s/|j
                  r|j                  |d<   |r|j                  || «       |�||d<   |duxr |j                  }t        j                  j                  «       }|rt        ||«      }|r|j                  «       t        v rd}|rA|j                  r5|j                  j                  s|j                  j!                  |||«      x}}|r| j#                  ||«       t%        j&                  ||«       |rl|rt(        j*                  nd}||rt(        j,                  ndz  }t        j.                  ||||||¬«      \  }}}} |r?|�=| |kD  r8t        j0                  |||«       n t        j2                  d|dd|d||«      \  }}}|�>||t        j4                  z   kD  r(t        j0                  |||t        j4                  z   «       |�«t7        j8                  t:        j<                  «      rˆt?        t6        t@        jB                  |jD                  jF                  |t        t        |«      «      |||| jH                  | jJ                  | jL                  d   | jL                  d	   | jN                  ¬
«       |r3|€J ‚|
€J ‚|jQ                  ||||
| jJ                  | jN                  ¬«       	 tS        | jT                  jV                  |«       |r	|rd}!dd	i}"n”tY        | |«      }!|!jZ                  | _-        |!j]                  ||¬«      }#|#d   }"| j^                  s|"ja                  d«      }$|$r|$| _1        |r|je                  |"|«       |r#tg        jh                  |"| jj                  |	|¬«       t        j                  j                  «       |z
  }&|�¯t7        j8                  t:        j<                  «      rŒt?        t6        t@        j|                  |jD                  jF                  |&|"t        t        |«      «      |||| jH                  | jJ                  | jL                  d   | jL                  d	   | jN                  d|v ¬«       |r6|€J ‚|
€J ‚|j                  |&|"|||
| jJ                  | jN                  ||¬«	       |rQ|j                  rE|!rC|j                  j�                  |!jƒ                  «       «      }(t…        dt‡        |(||«      d   «      }"|"S # tl        $ �rS}%t        j                  j                  «       |z
  }&to        |%tp        tr        f«      r|%jt                  }'nt        jv                  |%«      }'|�»t7        j8                  t:        j<                  «      r˜t?        t6        t@        jx                  |jD                  jF                  |&|'t        t        |«      «      |||| jH                  | jJ                  | jL                  d   | jL                  d	   | jN                  to        |%tr        «      ¬«       |r5|€J ‚|
€J ‚|j{                  |&|'|||
| jJ                  | jN                  |¬«       ‚ d}%~%ww xY w)aÕ  Execute a command over the socket, or raise socket.error.

    :param conn: a Connection instance
    :param dbname: name of the database on which to run the command
    :param spec: a command document as an ordered dict type, eg SON.
    :param is_mongos: are we connected to a mongos?
    :param read_preference: a read preference
    :param codec_options: a CodecOptions instance
    :param session: optional ClientSession instance.
    :param client: optional MongoClient instance for updating $clusterTime.
    :param check: raise OperationFailure if there are errors
    :param allowable_errors: errors to ignore if `check` is True
    :param address: the (host, port) of `conn`
    :param listeners: An instance of :class:`~pymongo.monitoring.EventListeners`
    :param max_bson_size: The maximum encoded bson size for this server
    :param read_concern: The read concern for this command.
    :param parse_write_concern_error: Whether to parse the ``writeConcernError``
        field in the command response.
    :param collation: The collation for this command.
    :param compression_ctx: optional compression Context.
    :param use_op_msg: True if we should use OP_MSG.
    :param unacknowledged: True if this is an unacknowledged command.
    :param user_fields: Response fields that should be decoded
        using the TypeDecoders from codec_options, passed to
        bson._decode_all_selective.
    :param exhaust_allowed: True if we should enable OP_MSG exhaustAllowed.
    z.$cmdFNÚreadConcernÚ	collationr   )Úctxéÿÿÿÿé   )r   ÚclientIdÚcommandÚcommandNameÚdatabaseNameÚ	requestIdÚoperationIdÚdriverConnectionIdÚserverConnectionIdÚ
serverHostÚ
serverPortÚ	serviceId)Ú
service_idÚok)Úcodec_optionsÚuser_fieldsz$clusterTime)Úparse_write_concern_error)r   r/   Ú
durationMSÚfailurer1   r2   r3   r4   r5   r6   r7   r8   r9   ÚisServerSideError)r:   Údatabase_nameÚspeculativeAuthenticate)r   r/   r?   Úreplyr1   r2   r3   r4   r5   r6   r7   r8   r9   Úspeculative_authenticate)r:   Úspeculative_hellorB   r&   )DÚnextÚiterr   Ú_maybe_add_read_preferenceÚin_transactionÚlevelÚdocumentÚ_update_read_concernÚenabled_for_commandsÚdatetimeÚnowr   Úlowerr   Ú
_encrypterÚ_bypass_auto_encryptionÚencryptÚapply_timeoutr   Úapply_write_concernr   ÚMORE_TO_COMEÚEXHAUST_ALLOWEDÚ_op_msgÚ_raise_document_too_largeÚ_queryÚ_COMMAND_OVERHEADr   ÚisEnabledForÚloggingÚDEBUGr   r   ÚSTARTEDÚ_topology_settingsÚ_topology_idÚidÚserver_connection_idÚaddressr:   Úpublish_command_startr   ÚconnÚget_connr   Úmore_to_comeÚunpack_responseÚreadyÚgetÚ_cluster_timeÚ_process_responser   Ú_check_command_responseÚmax_wire_versionÚ	ExceptionÚ
isinstancer   r   ÚdetailsÚ_convert_exceptionÚFAILEDÚpublish_command_failureÚ	SUCCEEDEDÚpublish_command_successÚdecryptÚraw_command_responser   r   ))rg   ÚdbnameÚspecÚ	is_mongosÚread_preferencer<   ÚsessionÚclientÚcheckÚallowable_errorsre   Ú	listenersÚmax_bson_sizeÚread_concernr>   r+   Úcompression_ctxÚ
use_op_msgÚunacknowledgedr=   Úexhaust_allowedÚwrite_concernÚnameÚnsrF   ÚorigÚpublishÚstartÚflagsÚ
request_idÚmsgÚsizeÚmax_doc_sizerD   Úresponse_docÚunpacked_docsÚcluster_timeÚexcÚdurationr@   Ú	decrypteds)                                            ú^/var/www/pod-logistic/pod-api/venv/lib/python3.12/site-packages/pymongo/synchronous/network.pyr0   r0   =   s(  € ôf ”�T“
Ó€DØ	�'Ñ	€BØÐð €DÙ™ØÐ*Ð*Ð*Ü×1Ñ1°$¸ÓHˆÙ™W¨×)?Ò)?Ø×ÒØ".×"7Ñ"7ˆD�ÑÙØ×(Ñ(¨¨tÔ4ØÐØ%ˆˆ[Ñà˜tÐ#ÒF¨	×(FÑ(F€GÜ×Ñ×!Ñ!Ó#€EÙÜ8¸¸tÓDÐá˜4Ÿ:™:›<¬?Ñ:Øˆá�&×#Ò#¨F×,=Ñ,=×,UÒ,UØ×'Ñ'×/Ñ/°¸¸mÓLÐLˆˆtñ Ø×Ñ˜6 4Ô(Ü	×Ñ˜d MÔ2áÙ'5”×#Ò#¸1ˆØ©?”×'Ò'ÀÑAˆÜ.5¯o©oØ�4˜ °-À_ô/
Ñ+ˆ
�C˜˜|ñ
 ˜mÐ7¸LÈ=Ò<XÜ×-Ñ-¨d°D¸-ÕHä '§¡Øˆr�1�b˜$  m°_ó!
Ñˆ
�C˜ð Ð  T¨M¼G×<UÑ<UÑ,UÒ%UÜ×)Ñ)¨$°°mÄg×F_ÑF_Ñ6_Ô`ØÐÜ×'Ñ'¬¯©Ô6ÜÜÜ-×5Ñ5Ø×2Ñ2×?Ñ?ØÜ ¤ d£Ó,Ø#Ø$Ø&Ø#'§7¡7Ø#'×#<Ñ#<ØŸ<™<¨™?ØŸ<™<¨™?ØŸ/™/õñ ØÐ$Ð$Ð$ØÐ"Ð"Ð"Ø×'Ñ'ØØØØØ×%Ñ%Ø—‘ð 	(ô 	
ðAÜ�—	‘	×"Ñ" CÔ(Ù™.àˆEØ*.°¨‰Lä# D¨*Ó5ˆEØ %× 2Ñ 2ˆDÔØ!×1Ñ1Ø+¸ð 2ó ˆMð )¨Ñ+ˆLØ—:’:Ø+×/Ñ/°Ó?�ÙØ)5�DÔ&ÙØ×(Ñ(¨°wÔ?ÙÜ×6Ñ6Ø Ø×)Ñ)Ø$Ø.Gõ	ôZ × Ñ ×$Ñ$Ó&¨Ñ.€HØÐÜ×'Ñ'¬¯©Ô6ÜÜÜ-×7Ñ7Ø×2Ñ2×?Ñ?Ø#Ø"Ü ¤ d£Ó,Ø#Ø$Ø&Ø#'§7¡7Ø#'×#<Ñ#<ØŸ<™<¨™?ØŸ<™<¨™?ØŸ/™/Ø)BÀdÐ)Jõñ" ØÐ$Ð$Ð$ØÐ"Ð"Ð"Ø×)Ñ)ØØØØØØ×%Ñ%Ø—‘Ø/Ø ð 	*ô 
	
ñ �&×#Ò#©Ø×%Ñ%×-Ñ-¨e×.HÑ.HÓ.JÓKˆ	ÜØÔ1°)¸]ÈKÓXÐYZÑ[ó
ˆð Ðøôa ó &Ü×$Ñ$×(Ñ(Ó*¨UÑ2ˆÜ�cœOÔ-=Ð>Ô?Ø$'§K¡K‰Gä×0Ñ0°Ó5ˆGØÐÜ×+Ñ+¬G¯M©MÔ:ÜÜ#Ü1×8Ñ8Ø#×6Ñ6×CÑCØ'Ø#Ü $¤T¨$£ZÓ 0Ø!'Ø(Ø *Ø'+§w¡wØ'+×'@Ñ'@Ø#Ÿ|™|¨A™Ø#Ÿ|™|¨A™Ø"Ÿo™oÜ&0°Ô6FÓ&Gõñ" ØÐ(Ð(Ð(ØÐ&Ð&Ð&Ø×-Ñ-ØØØØØØ×)Ñ)ØŸ?™?Ø$ð .ô 	ð 	ûðM&ús   Ë8B?T Ô
Y3Ô EY.Ù.Y3)TNNNNNFNNFFNFN).rg   r#   r{   Ústrr|   zMutableMapping[str, Any]r}   Úboolr~   zOptional[_ServerMode]r<   zCodecOptions[_DocumentType]r   zOptional[ClientSession]r€   zOptional[MongoClient[Any]]r�   r�   r‚   z#Optional[Sequence[Union[str, int]]]re   zOptional[_Address]rƒ   zOptional[_EventListeners]r„   zOptional[int]r…   zOptional[ReadConcern]r>   r�   r+   zOptional[_CollationIn]r†   z4Union[SnappyContext, ZlibContext, ZstdContext, None]r‡   r�   rˆ   r�   r=   zOptional[Mapping[str, Any]]r‰   r�   rŠ   zOptional[WriteConcern]Úreturnr'   )<Ú__doc__Ú
__future__r   rO   r^   Útypingr   r   r   r   r   r	   r
   r   Úbsonr   Úpymongor   r   r   Úpymongo.compression_supportr   Úpymongo.errorsr   r   Úpymongo.loggerr   r   r   Úpymongo.messager   Úpymongo.monitoringr   Úpymongo.network_layerr   r   r   r   r   r   r   Úpymongo.read_concernr   Úpymongo.read_preferencesr    Ú"pymongo.synchronous.client_sessionr!   Ú pymongo.synchronous.mongo_clientr"   Úpymongo.synchronous.poolr#   Úpymongo.typingsr$   r%   r&   r'   Úpymongo.write_concernr(   Ú_IS_SYNCr0   © ó    r›   ú<module>r´      s£  ðñ -Ý "ã Û ÷	÷ 	ó 	õ 'ß 2Ñ 2Ý 7÷÷ NÑ MÝ "Ý ;÷ñ
 Ý!ßSÑSÝ2Ý0Ý4Ý@Ý<Ý3ßSÓSÝ2à€ð Ø<@Ø"&Ø+/Ø#'Ø*.Ø&+Ø(,ØLPØØ Ø/3Ø!Ø,0ð-mØ
ðmàðmð #ðmð ð	mð
 +ðmð /ðmð %ðmð 'ðmð ðmð :ðmð  ðmð )ðmð !ðmð (ðmð  $ðmð  &ð!mð" Jð#mð$ ð%mð& ð'mð( -ð)mð* ð+mð, *ð-mð. ô/mr³   