+\h  UdZddlmZddlZddlZddlZddlmZddl m Z m Z m Z m Z mZmZmZmZmZddlZddlmZmZmZddlmZddlmZmZmZmZdd lmZdd l m!Z! dd l"m#Z#d Z$ddl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.ddl/m0Z0m1Z1e rddl2m3Z3m4Z4m5Z5ddl6m7Z7ddl8m9Z9m:Z:m;Z;mdZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJeAdeBd eCd!iZKd"d#d$d%d&ZLed'(ZMd)eNd*<dd+ZO dd,ZPdd-ZQdd.ZR dd/ZSdd0d1d2d3d4ZTd5d6d7d8d9d:d;dd>d?d@ ZU d ddAZV ddBZWejdCjZZdDZ[ ddEZ\ejdFjZ]ddGZ^ejdHjZ_ejdIjZ`ejdJjZa ddKZb ddLZc ddMZde$r e#jZd d ddNZe ddOZf ddPZg ddQZhe$r e#jZh d ddRZjejdSjZkddTZl ddUZm ddVZne$r e#jZn d ddWZpeAdXeBdYeCdZiZqGd[d\ZrGd]d^erZsGd_d`esZtddaZudbZv ddcZw dddZxe$r e#jZx ddeZy ddfZze$r e#jZz ddgZ{GdhdierZ|djZ} ddkZ~ ddlZ ddmZ ddnZ ddoZ ddpZ ddqZe$r e#jZ ddrZGdsdtZGdudvZejejejejiZdweNdx<GdydzZGd{d|ZGd}d~eZGddeZGddeZy#e%$rd Z$YewxYw)zTools for creating `messages `_ to be sent to MongoDB. .. note:: This module is for internal use and is generally not needed by application developers. ) annotationsN)BytesIO) TYPE_CHECKINGAnyCallableIterableMappingMutableMappingNoReturnOptionalUnion) CodecOptions _dict_to_bson_make_c_string)Int64)_RAW_ARRAY_BSON_OPTIONSDEFAULT_RAW_BSON_OPTIONSRawBSONDocument _inflate_bson) HelloCompat)_EventListeners) _cmessageTF)ConfigurationErrorCursorNotFoundDocumentTooLargeExecutionTimeoutInvalidOperationNotPrimaryErrorOperationFailure ProtocolError)ReadPreference _ServerMode) SnappyContext ZlibContext ZstdContext) ReadConcern)_Address_AgnosticClientSession_AgnosticConnection_AgnosticMongoClient _DocumentOutiii?ssssdocumentss updatess deletes documentsupdatesdeletesops)insertupdatedelete bulkWritereplace)unicode_decode_error_handlerzCodecOptions[Mapping[str, Any]]_UNICODE_REPLACE_CODEC_OPTIONSc>tjttS)z(Generate a pseudo random 32 bit integer.)randomrandint MIN_INT32 MAX_INT32r.R/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pymongo/message.py_randintrDts >>)Y //r.c|j}|j}|r8|tjjk7st |dkDr d|vrd|i}||d<|S)z-Add $readPreference to spec when appropriate.r,$query$readPreference)modedocumentr!SECONDARY_PREFERREDlen)specread_preferencerHrIs rC_maybe_add_read_preferencerNys`   D''H  ;;@@@CMTUDU 4 d#D"*  Kr.cFt||jjdS)z&QEF"#))#4i "'C JHw{+,C J h   )*6*3EFGC O J ZZ) *e 3A Y'*F+//%)?@C)*378C O Jr.rd )tailable oplogReplaynoCursorTimeout awaitDataallowPartialResultsfiltersorthintcommentmaxScan maxTimeMSmaxmin returnKey showRecordIdsnapshot) rFz$orderbyz$hintz$commentz$maxScanz $maxTimeMSz$maxz$minz $returnKeyz $showRecordIdz $showDiskLocz $snapshotc |d|i} d|vrr| j|jD cgc]\} } | tvr t| | fn| | fc} } d| vr| jdd| vr| jdn|| d<|r|| d<|r|| d<|rt || d<|d krd | d <|r||k(r|d z }|| d <|j r| r | j s|j| d<|r|| d<| | | d<|r>| jtjD cgc]\}} || zs |d fc} }| Scc} } wcc} }w)z!Generate a find command document.findrF$explainrGr| projectionskiplimitrT singleBatchr, batchSize readConcern collation allowDiskUse) r7items _MODIFIERSpopabslevelin_transactionrI_OPTIONS)collrLrrr batch_sizeoptions read_concernrsessionallow_disk_usecmdkeyvalopts rC_gen_find_commandrsk"4.C4 !%  C+.*;C#&#sK    GGJ   # GG% &H &L F  5zG 19!%C  J  !OJ%K7w/E/E)22M$K!,N 0@RHCGcMS$KRS JG BSs!D2  D8 "D8 cX||d}|r||d<|||d<||jdk\r||d<|S)z$Generate a getMore command document.)getMore collectionrr r)max_wire_version) cursor_idrrmax_await_time_msrconnrs rC_gen_get_more_commandrsL'0tDC%K$,Kt449 I Jr.z39=G $ r.zz$_op_msg_no_header..as!Cs#c(!Cc32K|]}t|ywrrrs rCrz$_op_msg_no_header..ds<3s8:| 33IsCcTt|||||\}}}td||\} }| |||fS)zInternal OP_MSG message helper.)rr) rrnrrrrmsgr max_bson_sizers rC_op_msg_compressedrks@&7ugzSWY]%^"C]sC(HC Z ..r.cRt|||||\}}}td|\}} || ||fS)z*Internal compressed OP_MSG message helper.r)rr) rrnrrrrrrr op_messages rC_op_msg_uncompressedrys?'8w TXZ^&_#D*m+D$7J z:} </=)TVY ZZr.c0tdt|||S)z Internal getMore message helper.r)rrrs rC_get_more_uncompressedrs $ y Y ZZr.c<|rt||||St|||S)zGet a **getMore** message.)rrrs rC _get_morer (s' #O]IsSS !/=) LLr.s documentssupdatessdeletesceZdZdZdZ d dZed dZed dZed dZ ed dZ d dZ dd Z y )_BulkWriteContextBasez]Private base class for wrapping around AsyncConnection to use with write splitting functions.) db_namerop_idrfieldpublish start_time listenersrrop_typecodecc @||_||_||_||_|j|_||_t|j |_tjj|_ ||_ t|j|_||_||_yr)r rrrenabled_for_commandsrrrrdatetimenowrrboolcompression_contextrrr) self database_namecmd_namer operation_idrrrrs rC__init__z_BulkWriteContextBase.__init__Ps%  ! " 55   * "++//1 T556   r.c.|jjS)z#A proxy for SockInfo.max_bson_size.)rrrs rCrz#_BulkWriteContextBase.max_bson_sizehsyy&&&r.cx|jr|jjdz S|jjS)z&A proxy for SockInfo.max_message_size.rt)rrmax_message_sizer!s rCr#z&_BulkWriteContextBase.max_message_sizems0 ==99--2 2yy)))r.c.|jjS)z*A proxy for SockInfo.max_write_batch_size.)rmax_write_batch_sizer!s rCr%z*_BulkWriteContextBase.max_write_batch_sizeusyy---r.c|jS)z:The maximum size of a BSON command before batch splitting.)rr!s rCmax_split_sizez$_BulkWriteContextBase.max_split_sizezs!!!r.c |jj|||j||jj|jj |j |jj|j y)z Publish a CommandSucceededEvent.rN) rpublish_command_successrraddressserver_connection_idr service_idr )rrreplydurations rC_succeedz_BulkWriteContextBase._succeeds^ ..   II  II   II * * JJ II ,, / r.c |jj|||j||jj|jj |j |jj|j y)zPublish a CommandFailedEvent.r)N) rpublish_command_failurerrr+r,rr-r )rrfailurer/s rC_failz_BulkWriteContextBase._fails^ ..   II  II   II * * JJ II ,, / r.NrrRrrRrr)rintrrr Optional[_AgnosticClientSession]rr6rrreturnr6)rr6r.r+r/datetime.timedeltar9None)rr6r3r+r/r:r9r;) rT __module__ __qualname____doc__ __slots__rpropertyrr#r%r'r0r4rBr.rCr r >sg I"    # 20''**..""    r.r cteZdZdZdZ dfd Z ddZ ddZxZS) _BulkWriteContextz]A wrapper around AsyncConnection/Connection for use with the collection-level bulk write API.rBc 2t |||||||||yrsuperr) rrrrrrrrrrSs rCrz_BulkWriteContext.__init__s*          r.c|jdz}t||j|||j|\}}}|s t d|||fS)N.$cmdcannot do an empty bulk write)r _do_batched_op_msgrrr)rrr namespacerrto_sends rC batch_commandz_BulkWriteContext.batch_commandsVLL7* #5 t||S$ D$  C"#BC C3''r.c |||j<|jj||j||jj |jj |j|jj|S)Publish a CommandStartedEvent.) rrpublish_command_startr rr+r,rr-)rrrrs rC_startz_BulkWriteContext._startseDJJ ,,  LL  II   II * * JJ II   r.r5)rMutableMapping[str, Any]rlist[Mapping[str, Any]]r9zAtuple[int, Union[bytes, dict[str, Any]], list[Mapping[str, Any]]])rrQrr6rrRr9rQ rTr<r=r>r?rrLrP __classcell__rSs@rCrBrBsgI   "    #  2   , (+ (3J ( J (+9<D[ !r.rBc6eZdZdZ ddZeddZy)_EncryptedBulkWriteContextrBc|jdz}t||j|||j|\}}|s t d|j dddz}t t||dt}d||fS)NrGrHr0rr) r _encode_batched_write_commandrrrrer memoryviewr)rrrrJrrK cmd_startoutgoings rCrLz(_EncryptedBulkWriteContext.batch_commandsLL7* 4 t||S$ D W"#BC CIIgq)A-  C!<>VW8W$$r.ctS)z Reduce the batch splitting size.)_MAX_SPLIT_SIZE_ENCr!s rCr'z)_EncryptedBulkWriteContext.max_split_sizes #"r.N)rrQrrRr9z3tuple[int, dict[str, Any], list[Mapping[str, Any]]]r8)rTr<r=r?rLr@r'rBr.rCrWrWs8I %+ %3J % < %##r.rWcH|dk(rtd||fzt|d)z-Internal helper for raising DocumentTooLarge.r6zfBSON document too large (%d bytes) - the connected server supports BSON document sizes up to %d bytes.z command document too large)r)rmdoc_sizemax_sizes rC_raise_document_too_largercs@H "8, -  ).IJKKr.i c|j}|j}|j} |rdnd} |j| |jd|jt |d||jd|j } |jd |jt |g} d} |D]}t |d|}t|}|j |z}| dk(xr|| kD}| xr||kD}|s|r6ttj|}t|t|||| kDrn0|j|| j|| d z } | |k(sn|j }|j| |jt!|| z | |fS#t$r tddwxYw) zCreate a batched OP_MSG write.r1r0FUnknown commandNrr,)rr%r#writertell _OP_MSG_MAPrrrKlistrkeysrcappendseekr)rmrnrackrrbufrr%r#r size_locationrKidxrvalue doc_lengthnew_message_size doc_too_largeunacked_doc_too_largewrite_oplengths rC_batched_op_msg_implrzs%%M33++#& ,?EIIeIIgIImGUD12IIgHHJMII!"< +i()G Cc5$/Z 88: 2qJ&69I&I %( HZ--G 1JOO-.y9H %hE M J . .  %s q & & 16XXZFHH]IIi./0 F?I <01t;7 ""r.ct||||||\}}|jjJtd||jj\}} || |fS)z]Create the next batched insert, update, or delete operation with OP_MSG, compressed. r)rrrr) rmrnrrorrrrKrrs rC_batched_op_msg_compressedrZs\+9gtS$PSTMD' 88 ' ' 33 3dCHH,H,HIOJ sG ##r.c pt}|jt|jdt|||||||\}}|j dt } |jt | |j d|jt || |j|fS)z"OP_MSG implementation entry point.rr)r|rh_ZERO_64rzrnrDrr}) rmrnrrorrrprKryrs rC_batched_op_msgrls *CIIhII12*9gtS$PSUXYOGVHHQKJIIi #$HHQKIIi s||~w ..r.c|jddd|d<d|vrt|djdd}nd}|jjrt ||||||St ||||||S)zRCreate the next batched insert, update, or delete operation using OP_MSG. .r,rr writeConcernwT)splitrrlrrrr)rJrmrnrrrros rCrIrIs}__S!,Q/GEN 7>*..sA67 xx##))WdCsSS 9gtS$ DDr.cxeZdZdZdZ dfd Z ddZ ddZxZS) _ClientBulkWriteContextzYA wrapper around AsyncConnection/Connection for use with the client-level bulk write API.rBc 2t|||||||d|y)NrrD) rrrrrrrrrSs rCrz _ClientBulkWriteContext.__init__s*         r.cdt||||j|\}}}}|s td||||fS)NrH)_client_do_batched_op_msgrr)rr operations namespacesrr to_send_ops to_send_nss rCrLz%_ClientBulkWriteContext.batch_commandsG 4M ZT4 0 Cj"#BC C3 Z77r.c ||d<||d<|jj||j||jj|jj |j |jj|S)rNr5nsInfo)rrOr rr+r,rr-)rrrop_docsns_docss rCrPz_ClientBulkWriteContext._startsjE H  ,,  LL  II   II * * JJ II   r.)rrRrrRrr)rr6rrrr7rr)rrQr#list[tuple[str, Mapping[str, Any]]]r list[str]r9zZtuple[int, Union[bytes, dict[str, Any]], list[Mapping[str, Any]], list[Mapping[str, Any]]]) rrQrr6rrRrrRr9rQrSrUs@rCrrscI   "    #  2  * 8 % 88 8 8 d 8 %)  )  " r.ric|rdnd}|j||jd|j||jd|j}|jd|jd|D]}|j||j}|j} |j||jt| |z |j||jd|j}|jd|jd|D]} |j| |j} |j||jt| |z | S)Nr1rer0rfsopssnsInfo)rhrirnr) command_encodedto_send_ops_encodedto_send_ns_encodedrorprrq op_encodedresume_locationry ns_encodeds rC_client_construct_op_msgrsG$' ,?EIIeIIgIIoIIgHHJMII!"IIj)  *hhjO XXZFHH]IIi./0HH_IIgHHJMII!"IIm(  *XXZFHH]IIi./0 Mr.c dd}|j}|j} |j} t|d|} |s|dt | |t zgd} |j dr| jd|j dr| jd|j dr| jd| D cic]} | ||  }} t t|d|}| t|zz }i}g}g}g}g}d}d}d}t||D]Q\\}}}|}|d k(r%|s#t t|d d|}|||||d k(r'd }|s#t t|d d|}||||d}d}||vrd|i}t |} | ||<||||<t|d|}!t |!}"|rt|d|}#t |#}|s|||"|t z||z|"z|z}$|$|kDr|dk(rt||"|t zn_|j||j|!||"z }|r'|j||j#||z }|dz }|| k(sRnt| ||||}%|||%fScc} w)z:Create a batched OP_MSG write for client-level bulk write.c*||kDrt|||yyr)rc)rrars rC_check_doc_size_limitsz;_client_batched_op_msg_impl.._check_doc_size_limitss e  %gx ? r.Fr9)r9 errorsOnlyorderedbypassDocumentValidationrletrr6rIr:r7 updateModsNnsr,)rrRrar6rr6r9r;) rr%r#rrK_COMMAND_OVERHEADrlrm_OP_MSG_OVERHEADziprcr)&rnrrrorrrprrr%r#r abridged_keysrcommand_abridgedcommand_len_abridgedmax_doc_sequences_bytesns_inforrrrtotal_ops_lengthtotal_ns_lengthrr real_op_typeop_docrJrrans_doc ns_length new_ns_indexop_doc_encoded op_lengthns_doc_encodedrurys& rC_client_batched_op_msg_implrs.@@@@  @%%M33++#GUD9O {C,@-RcBcd;M{{-.78{{9Y'{{5U#5BCcWS\)CC}-=udKL/2BEY2YZG+-K*,J')&(O C-0Z-H8)v  8 #}VJ-?MN&|X}M 9 $G}VL-A5$OP&|X}M G #I&Fz?L!-GI "),w'vud;' *65$?NN+I "7I}GX7X Y+o= IIU 5 5ax)'9mN_>_`  6""">2I%    f %  % %n 5 y (O q & & q8v&,.@#sF  F **]Ds I>c ft}t|||||||\}}} |j||fS)zLEncode the next batched client-level bulkWrite operation as OP_MSG. )r|rr}) rnrrrorrrprrr~s rC_client_encode_batched_op_msgrs@ *C!<ZdC"KQ <<>; 22r.ct||||||\}}}|jjJtd||jj\} } | | ||fS)zZCreate the next batched client-level bulkWrite operation with OP_MSG, compressed. r)rrrr) rnrrrorrrrrrrs rC!_client_batched_op_msg_compressedrsf%BZdC%!D+z 88 ' ' 33 3dCHH,H,HIOJ sK 33r.c tt}|jt|jdt|||||||\}}} |j dt } |jt | |j d|jt | | |j||fS)z=OP_MSG implementation entry point for client-level bulkWrite.rrr)r|rhrrrnrDrr}) rnrrrorrrprrryrs rC_client_batched_op_msgrs *CIIhII12&AZdC'#KV HHQKJIIi #$HHQKIIi s||~{J >>r.cd|d<d|vrt|djdd}nd}|jjrt ||||||St ||||||S)zOCreate the next batched client-level bulkWrite operation using OP_MSG. adminrrrr,T)rrlrrrr)rnrrrrros rCrrspGEN 7>*..sA67 xx##0*jRUW[]`aa !':z3c RRr.c bt}t|||||||\}}|j|fS)z:Encode the next batched insert, update, or delete command.)r|_batched_write_command_implr}) rJrmrnrrrrprKr~s rCrZrZs9 *C,Y 7DRVX[]`aJGQ <<>7 ""r.c|j}|j}|tz} |j} |j t |j |j d|j t|j t|j} |j tj ||jdd|j |j t||jdz } g} d}|D]}t!|j d}t#|d|}t%|| kD}|r6t't(j+|}t-|t%|||d k\xr+|jt%|zt%|z| k\}||k\}|s|rne|j t.|j ||j t|j || j1||d z }|j t2|j}|j| |j t5|| z d z |j| |j t5|| z | |fS#t$r tddwxYw) z(Create a batched OP_QUERY write command.utf8rYr-rgNrrFr,)rr%rr'rhrencode_ZERO_8_SKIPLIMrirrntruncate_OP_MAPrrrRrrKrkrrlrc_BSONOBJrm_ZERO_16r)rJrmrnrrrrprr% max_cmd_sizer' command_start list_startrKrrrrrsrvrx enough_dataenough_documentsrys rCrrsU%%M33!#44L''NIIhIIiv&'IIgIIhHHJMIIdkk'"#HHROLLN< ')$% aJG C#hoof%c5$/E \1 JOO-.y9H %hE M JQhYCHHJS$9CJ$F>#Y "66 *  ( # ' %s q'.IIhXXZFHHZIIi+a/01HH]IIi./0 F?O <01t; ::> #$HII4ylBCb9F b&1 1 ZZ!^!%4>>!:!A!A!CL  # #D! ,F#..{/G/GH%l6&:LII!!&)R/= & $$V[9<;K;KF;SUa#$|'7'7'??  (  >>NN# # r.Fc|j||r tj|j|Stj|j||S)aUnpack a response from the database and decode the BSON document(s). Check the response for errors and unpack, returning a dictionary containing the response data. Can raise CursorNotFound, NotPrimaryError, ExecutionTimeout, or OperationFailure. :param cursor_id: cursor_id we sent to get this response - used for raising an informative exception when we get cursor id not valid at server response :param codec_options: an instance of :class:`~bson.codec_options.CodecOptions` :param user_fields: Response fields that should be decoded using the TypeDecoders from codec_options, passed to bson._decode_all_selective. )rr decode_allr2_decode_all_selectiverr codec_optionsrlegacy_responses rCunpack_responsez_OpReply.unpack_response}sC0 )$ ??4>>=A A))$..-UUr.cR|j|}|jdk(sJ|dS)Unpack a command response.rr,r)rr)rrrs rCcommand_responsez_OpReply.command_responses2##-#@##q(((Awr.ctz)Return the bytes of the command response.)NotImplementedErrorr!s rCraw_command_responsez_OpReply.raw_command_responses "!r.cy)+Is the moreToCome bit set on this response?FrBr!s rC more_to_comez_OpReply.more_to_comesr.cN|j|\}}}}|dd}|||||S)z%Construct an _OpReply from raw bytes.N) UNPACK_FROM)clsrrrr~rr2s rCunpackz_OpReply.unpacks703s/C,y!_H 5)_i@@r.)rr6rr6rr6r2bytes)NN)r Optional[int]rOptional[Mapping[str, Any]]r9 list[bytes] rrrrrrrrr9zlist[dict[str, Any]]rrr9dict[str, Any])r9r r9r)rrr9r)rTr<r=r>r?structStruct unpack_fromrOP_CODErrr<rrrr@r classmethodrrBr.rCrrCs.FI&--(44KG#[_*&*1 sectionN)rCHECKSUM_PRESENTr rrK)rrrfirst_payload_typefirst_payload_sizer s rCrz _OpMsg.unpacks9<8L5!#5 A:s+++#&QRWXYQZ$[\\s'''#&B5)$LMM  ""EFXYZE[ \] ] s8)A- - FG Gqr75*++r.)rr6r r)rrrrr9rRrr)r9rr)rrr9r )rTr<r=r>r?rrrrr rrEXHAUST_ALLOWEDrrr<rrrr@rr rrBr.rCr r s,MI&--'33KGLO1 $(35 #  #1 # ! # $(&D37 % ] ]$]1 ]  ]  ](D%44,,r.r z5dict[int, Callable[[bytes], Union[_OpReply, _OpMsg]]] _UNPACK_REPLYceZdZdZdZdZdZ d dZd dZd dZ ddZ ddZ d dd Z d dd Z y)_QueryzA query operation.)rdbrntoskiprLfieldsrrMrrrrrrclientr _as_commandexhaustNc||_||_||_||_||_||_||_||_| |_| |_ | |_ | |_ | |_ ||_ ||_d|_d|_||_y)Nr)rr!rr"rLr#rrMrrrrrr$rrr%r&)rrr!rr"rLr#rrMrrrrrr$rr&s rCrz_Query.__init__*s&     *.( $"  , AE r.cd|_yrr%r!s rCresetz _Query.resetP r.c8|jd|jSNrr!rr!s rCrJz_Query.namespaceS''!DII;''r.c d}|jsd}nV|jdk\rd}nD|jjs.t d|jj |jfz|j |j|j|S)NFTrdzDread concern level of %s is not valid with a max wire version of %d.) r&rr ok_for_legacyrrvalidate_sessionr$r)rr use_find_cmds rC use_commandz_Query.use_commandVs ||L  " "a 'L""00$1484E4E4K4KTMbMb3cd  dkk4<<8r.c*||jf|_yrr!r%rrs rCupdate_commandz_Query.update_commandf<r.c *|j |jSd|jv}t|j|j|j|j |j |j|j|j|j|j|j }|r d|_ d|i}|j||jr\|jj|d|j ||s2|jj"s|jj%|||j'||j|j(|r|j+|j(|||j,f|_|jS)z.Return a find command document for this query.rexplainFr)r%rLrrr#r"rrrrrrrradd_server_api _apply_torMr_update_read_concernsend_cluster_timer$ apply_timeoutr!)rrrAr;rs rC as_commandz_Query.as_commandisA    '## # )/ II II KK LL JJ OO JJ    NN LL      !DIc"C C << LL " "3t/C/CT J4<<#>#> 11#t< sDLL$++>    t{{  4<r.c ||_|jr|jdz}n |j}|j}|j}|rM|j |d}t d||j||j|j\}}} } ||| fS|jdk(xrdxs |j} |jr%| rt|j| } n |j} |jrt|tsJt!||}t#|||j$| ||rdn |j&|j|jS)z:Get a query message, possibly setting the secondaryOk bit.rrrr,r-N)rMrHrrJrLrBrr!rrrrr is_mongos isinstancer rNrr"r#) rrMruse_cmdrrrLrrrr~ ntoreturns rC get_messagez_Query.get_messages; /   JJNEJJE ^^ yy ??4(+D'."",, ( $JT1sD( ( OOq(.QA$// :: I6  JJ >>dN3 33-dODD   LL  D   ((  r.) rr6r!rRrrRr"r6rLMapping[str, Any]r#rrrrMr"rr6rr6rr&rrrr7r$r*rOptional[bool]r&rr9r;r9rRrr)r9rrrr9r;Frr)rArr9ztuple[dict[str, Any], str])rMr"rr)rGrr9tuple[int, bytes, int])rTr<r=r>r?conn_mgrrrr*rJr4r8rBrIrBr.rCr r s!I,HI$$ $ $  $  $,$$$%$$$"$/$2$%$ '!$"#$L ( (@E% '% 8<% #% PX]2 *2 2E2 PT2 2 r.r ceZdZdZdZdZ d dZd dZddZddZ ddZ d dd Z d dd Z y )_GetMorezA getmore operation.) r!rrHrrrrMrr$rSr%r&rrc ||_||_||_||_||_||_||_||_| |_| |_ d|_ | |_ | |_ yr) r!rrHrrrMrr$rrSr%r&r) rr!rrHrrrMrr$rrSr&rs rCrz_GetMore.__init__sc ""*.  !2  AE  r.cd|_yrr)r!s rCr*z_GetMore.resetr+r.c8|jd|jSr-r.r!s rCrJz_GetMore.namespacer/r.cd}|jsd}n|jdk\rd}|j|j|j|S)NFTrd)r&rr2r$r)rrrGs rCr4z_GetMore.use_commandsC||G  " "a 'G dkk4<<8r.c*||jf|_yrr6r7s rCr8z_GetMore.update_commandr9r.c |j |jSt|j|j|j|j |j |}|jr(|jj|d|j||j||j||j|j|r|j|jd||jf|_|jS)z1Return a getMore command document for this query.NFr<)r%rrrrHrrrr>rMr=r@r$rAr!)rrrArs rCrBz_GetMore.as_command s    '## #3 NN II NN  " " LL    << LL " "3t/C/CT J C  sDLL$++>    t{{  5<r.cr|j}|j}|rx|j|d}|jr|jrt j }nd}t|||jd|j|j\}} } } || | fSt||j|j|S)zGet a getmore message.rNrD) rJrrBrSr&r rrr!rr rHr) rdummy0rrGrrrLrrrrr~s rCrIz_GetMore.get_message%s^^ && ??4(+D}}..'.tTWWdD,>,>DD\D\( $JT1sD( (T^^T^^SAAr.N)r!rRrrRrHr6rr6rrrMr"rr7r$r*rrrSrr&rrrrLrMrNrOrPrQ)r]rrr)rGrr9z0Union[tuple[int, bytes, int], tuple[int, bytes]]) rTr<r=r>r?rrr*rJr4r8rBrIrBr.rCrUrUsI D     $ %2%): ( (@E ' 8< # 6GLBB!4B?CB 9Br.rUc eZdZdfd ZxZS)_RawBatchQueryc^t|||jdk\ry|jsyyNrdTFrEr4rr&rrrSs rCr4z_RawBatchQuery.use_command;. D!  A %r.rNrTr<r=r4rTrUs@rCr_r_: r.r_c eZdZdfd ZxZS)_RawBatchGetMorec^t|||jdk\ry|jsyyrarbrcs rCr4z_RawBatchGetMore.use_commandGrdr.rNrerUs@rCrhrhFrfr.rhcNeZdZUdZded<d dZed dZd dZd dZ d dZ y )_CursorAddresszEThe server address (host, port) of a cursor, with namespace property.r_CursorAddress__namespacec@tj||}||_|Sr)tuple__new__rl)rr+rJrs rCroz_CursorAddress.__new__Ws}}S'*$ r.c|jS)zThe namespace this cursor.)rlr!s rCrJz_CursorAddress.namespace\sr.c@g||jjSr)rl__hash__r!s rCrrz_CursorAddress.__hash__as#*$)(()3355r.ct|tr2t|t|k(xr|j|jk(StSr)rFrkrnrJNotImplementedrothers rC__eq__z_CursorAddress.__eq__fs7 e^ ,;%,.T4>>U__3T Tr.c||k( SrrBrus rC__ne__z_CursorAddress.__ne__ks5=  r.N)r+r'rJrRr9rkrMr8)rvobjectr9r) rTr<r=r>__annotations__ror@rJrrrwryrBr.rCrkrkRs3O   6  !r.rkr8)rLrQrMr"r9rQ)rV Exceptionr9r)rmrRrnrJrorJr9r)NNN)rrRrLrJrz1Optional[Union[Mapping[str, Any], Iterable[str]]]rr6rr6rrrrrr&rrrr7rrKr9r)rrrrRrrrrrz Optional[Any]rr)r9r)rmr6rrr.Union[SnappyContext, ZlibContext, ZstdContext]r9tuple[int, bytes])rmr6rrr9r~) rr6rnrJrrRr!Optional[list[Mapping[str, Any]]]rrr9ztuple[bytes, int, int])rr6rnrJrrRrrrrrr}r9tuple[int, bytes, int, int]) rr6rnrJrrRrrrrr9rr)rr6rnrQrrRrMzOptional[_ServerMode]rrr4Union[SnappyContext, ZlibContext, ZstdContext, None]r9r)rr6rrRrr6rr6rrJrrrrr9ztuple[bytes, int])rr6rrRrr6rr6rrJrrrrrr}r9rR)rr6rrRrr6rr6rrJrrrrr9rR)rr6rrRrr6rr6rrJrrrrrrr9rR)rrRrr6rr6r9r) rrRrr6rr6rr}r9r~)rrRrr6rr6r9r~) rrRrr6rr6rrr9r~)rmrRrar6rbr6r9r )rmr6rnrJrrRrorrrrrBrpr|r9#tuple[list[Mapping[str, Any]], int])rmr6rnrJrrRrorrrrrBr9%tuple[bytes, list[Mapping[str, Any]]])rmr6rnrJrrRrorrrrrBr9*tuple[int, bytes, list[Mapping[str, Any]]])rJrRrmr6rnrQrrRrrrrBr9r) rrrrrrrorrpr|r9r6)rnrJrrrrrorrrrrrpr|r9ztuple[bytes, list[Mapping[str, Any]], list[Mapping[str, Any]]])rnrJrrrrrorrrrrr9Ctuple[int, bytes, list[Mapping[str, Any]], list[Mapping[str, Any]]]) rnrQrrrrrrrrr9r)rJrRrmr6rnrQrrRrrrrBr9r)rJrRrmr6rnrQrrRrrrrBrpr|r9r)r> __future__rrr>riorr|typingrrrrr r r r r rrrr bson.int64r bson.raw_bsonrrrr pymongo.hellorpymongo.monitoringrpymongor_use_c ImportErrorpymongo.errorsrrrrrrrr pymongo.read_preferencesr!r"pymongo.compression_supportr#r$r%pymongo.read_concernr&pymongo.typingsr'r(r)r*r+rAr@r_INSERT_UPDATE_DELETE_EMPTYrrrrrrrrr<r{rDrNrWrZrsrrrrrpackrrrrrrrrrrrrrrr_query_messagerrrrr_get_more_messager rjr rBrWrcr_rzrrrrIrrrrrrrrrZrrr r rrr rUr_rhrnrkrBr.rCrs # "    << &.! F   ASS0            . . 1 / /    CO!*C ? 0  "5@$O !!.!8I!!J     #"  2.204%)4 4 4B4  4  4  444+4.4#44n %     &)6==499+++&T++&v}}W%**  FMM$  $ $ '&--.33 V]]4 % % 4 4 44 , 4  4  4@ /  /  / / , /  / 8 /! / =  =  = = , =  = ! = $,,AE ' ' %' '+ '  ' > '!'@     0  ># ### #  # 0 # # 8##$# ### #  # 0 # ##" #22AE     0   >( &--%** [[[[ 8 [  [[[),[9<[[ &88AE M M M M > M  M   ^ ^ [ [ |4-4n#!2#0 L&AA A "A  A  A  A A)AH## # "#  #  #  #+#" &==$$ $ "$  $  $  $0$$// / "/  /  /  /0/8 //OEEE&E " E  E  E0E*:3:z--$-$-  -  -  -`s+ s+3s+s+  s+  s+ ! s+ s+Bs+l3 3333  3  3 ! 3D3&4 4344  4  4 ! 4I4(? ?3??  ?  ? ! ?I?<S %S3SS  S ! S I S. # # #& # " #  #  #+ # $-$K$K!JJJ&J " J  J  J J)JZnAnAbQ,Q,j hoo NNFMMH D t t nrBrBj V  x !U!u8 FsSS  S