+\hFH HUdZddlmZddlZddlZddlZddlZddlmZddl m Z m Z m Z m Z ddlZddlmZddlmZmZmZmZmZmZe r$ddlmZdd lmZdd lmZdd lmZdd l m!Z!dd l"m#Z#ddediZ$de%d<ej jMdr;ejNZ(e(e(ejRejTde$d<nej dk(rKejNejNejRejVdde$d<nJej dk(rnejXZ-ddej\j_dxsejRdjae1e2e-ddde-dxsdzde$d<nej jMdr#ejfd\Z(Z-Z4e(e(e4e-de$d<nejjejNejTejlZ7ejNd jae7dd!Dcgc]}|s| c}ejRe7d!de$d<ejpjMd"rjd jaejpdjae1e2ejrd#djae1e2ejtzfe$d$<nej jMdryd jaejpdjae1e2ejtd%d jaejNejTfzfe$d$<nEd jaejpdjae1e2ejtfe$d$<d&Z;d'Zd8d*Z?d9d+Z@d9d,ZAd9d-ZBd9d.ZCd9d/ZDd:d0ZEd;d1ZFd2ZGdttjdS)NFUNCTIONS_WORKER_RUNTIMEboolrr6r<r:_is_azure_funcrIs  45 66r<clttjdxstjdS)N K_SERVICE FUNCTION_NAMErFrHr<r: _is_gcp_funcrMs$  +&D"))O*D EEr<c>ttjdS)NVERCELrFrHr<r: _is_vercelrPs  (# $$r<c^txs"txstxs tSN)rCrIrMrPrHr<r:_is_faasrSs < M>+ M|~ MMr<chtj|}|sy t|S#t$rYywxYw)zMLike os.getenv but returns an int, or None if the value is missing/malformed.N)rr6int ValueError)keyvals r: _getenv_intrYs5 ))C.C 3x s % 11c8i}t}|r||d<tttt fj ddk7r|Str5d|d<t jd}|r||d<td}|||d <|Strd |d<|StrGd |d<t jd }|r||d<td }|||d <td}|||d<|St r!d|d<t jd}|r||d<|S)Nr9Tz aws.lambdar AWS_REGIONregionAWS_LAMBDA_FUNCTION_MEMORY_SIZE memory_mbz azure.funczgcp.funcFUNCTION_REGIONFUNCTION_MEMORY_MBFUNCTION_TIMEOUT_SEC timeout_secvercel VERCEL_REGION) r;rCrIrMrPcountrr6rY)rBr9r]r_rcs r: _metadata_envrgs@C&(I$K n&  EKKDQUVV |"F <( "CM AB  (C & J%  "F " J!  F ,- "CM 45  (C !"89  "!,C  J F ?+ "CM Jr<icttj|tkry|j dij d}|rd|i|d<ttj|tkry|j dij d}|rd|i|d<ttj|tkry|j ddttj|}|tkry|tz }|j dd}|r|d| }|r||d<n|j ddttj|}|tkry|tz }|j di}|r|j d d| }t|tt dd k\r ||dd <nt dd |dd <ttj|}|tkry|tz }|j dd| }t|tt ddk\r ||dd<yt dd|dd<yy) zPerform metadata truncation.NrBrrrr,rr)lenbsonencode_MAX_METADATA_SIZEgetpopr) metadataenv_nameos_type encoded_sizeoverflowplatrdriver_version driver_names r:_truncate_metadatarxs> 4;;x !%77||E2&**62H!8, 4;;x !%77ll4$((0G '* 4;;x !%77 LLt{{8,-L))00H << B 'D JhY # Z&t{{8,-L))00H \\(B 'F I.z : ~ #i&9)&D"E E,:HX y ),5h,? ,JHX y )4;;x01 - - "44jj(8)4 { s9X#6v#>? ?)4HX v &)28)DOOM * 707)&11DOOH %f -07)&11DOOH %f -   ! !& )o %(DOOE "4??+r<c(|jrJ|jj|jddjjdvryt j |j}|jr(dj |dd|j|dd<|jr(dj |dd|j|dd<|jr"dj |d|j|d<||_y)zUpdates the client's metadatarr|Nrrr,) rlowerrsplitrrrrr,)rrrps r:rzPoolOptions._update_metadatas ;;6;;,,.$//(2KF2S2Y2Y2[2a2a 3   ==1 ;;)0"6* *HX v & >>,3NN"9--HX y ) ??#*>>(:2F#XHZ "r<c|jS)z;A :class:`~pymongo.auth.MongoCredentials` instance or None.)rrs r: _credentialszPoolOptions._credentials!!!r<ci}|jtk7r|j|d<|jtk7r|j|d<|jt k7r |jJ|jdz|d<|j tk7r |j J|j dz|d<|jtk7r|j|d<|S)zqThe non-default options this pool was created with. Added for CMAP's :class:`PoolCreatedEvent`. maxPoolSize minPoolSizei maxIdleTimeMSwaitQueueTimeoutMS maxConnecting) rr rr rr rrrr )roptss r:non_default_optionszPoolOptions.non_default_optionss    = 0"&"6"6D    = 0"&"6"6D   ' '+< <//; ;;$($@$@4$GD !  $ $(: :,,8 88)-)B)BT)ID% &  N 2$($9$9D ! r<c|jS)aQThe maximum allowable number of concurrent connections to each connected server. Requests to a server will block if there are `maxPoolSize` outstanding connections to the requested server. Defaults to 100. Cannot be 0. When a server's pool has reached `max_pool_size`, operations for that server block waiting for a socket to be returned to the pool. If ``waitQueueTimeoutMS`` is set, a blocked operation will raise :exc:`~pymongo.errors.ConnectionFailure` after a timeout. By default ``waitQueueTimeoutMS`` is not set. )rrs r:rzPoolOptions.max_pool_sizes###r<c|jS)zThe minimum required number of concurrent connections that the pool will maintain to each connected server. Default is 0. )rrs r:rzPoolOptions.min_pool_sizes ###r<c|jS)zgThe maximum number of concurrent connection creation attempts per pool. Defaults to 2. )rrs r:rzPoolOptions.max_connectings $$$r<c|jSrR)rrs r:rzPoolOptions.pause_enableds###r<c|jS)zThe maximum number of seconds that a connection can remain idle in the pool before being removed and replaced. Defaults to `None` (no limit). )rrs r:rz!PoolOptions.max_idle_time_secondss +++r<c|jS)z>How long a connection can take to be opened before timing out.)rrs r:rzPoolOptions.connect_timeout%%%r<c|jS)zBHow long a send or receive on a socket can take before timing out.)rrs r:rzPoolOptions.socket_timeouts$$$r<c|jS)zhHow long a thread will wait for a socket from the pool if the pool has no free sockets. )rrs r:rzPoolOptions.wait_queue_timeouts (((r<c|jS)zAn SSLContext instance or None.)rrs r: _ssl_contextzPoolOptions._ssl_contextrr<c|jS)z If True skip ssl.match_hostname.)rrs r:rz'PoolOptions.tls_allow_invalid_hostnamess111r<c|jS)z2An instance of pymongo.monitoring._EventListeners.)rrs r:_event_listenerszPoolOptions._event_listenersrr<c|jS)zAThe application name, for sending with hello in server handshake.)rrs r:rzPoolOptions.appnames~~r<c|jS)z=Driver name and version, for sending with hello in handshake.)rrs r:rzPoolOptions.drivers}}r<c|jSrR)rrs r:_compression_settingsz!PoolOptions._compression_settingss***r<c6|jjS)zCA dict of metadata about the application, driver, os, and platform.)rrrs r:rpzPoolOptions.metadata s##%%r<c|jS)z'A pymongo.server_api.ServerApi or None.)rrs r:rzPoolOptions.server_apis   r<c|jS)z6True if this Pool is configured in load balanced mode.)rrs r:rzPoolOptions.load_balanceds###r<)$rrUrrUr Optional[int]rOptional[float]rrrrrOptional[SSLContext]rrGrOptional[_EventListeners]r Optional[str]rOptional[DriverInfo]rOptional[CompressionSettings]rrUrrGrOptional[ServerApi]rOptional[bool]rOptional[MongoCredential]rr)rrreturnNone)rrrr)rfloat)rrUrrG)rr)rr)rr)rr)rr)rr)rr)rr)rr) __name__ __module__ __qualname____doc__ __slots__r r r rr rrpropertyrrrrrrrrrrrrrrrrrprrrHr<r:r|r|s I.+*/@+/*.,>,0,159!%'+>B,"*.(,15"&'D,D,D, - D, ) D, ( D,*D,*D,&*D,3D,D,%D,<D,D,D, (!D,"&#D,$/%D,& 'D,L#0""( $ $$$ %% $$,,&&%%)) ""22&&++&&!!$$r<r|)rzdict[str, str]r)rWstrrrr)rpzMutableMapping[str, Any]rr)Kr __future__rrrr,syspathlibrtypingrrrrrkpymongor pymongo.commonr r r r rrpymongo.auth_sharedrpymongo.compression_supportrpymongo.driver_inforpymongo.monitoringrpymongo.pyopenssl_contextrpymongo.server_apirr__annotations__rAsystem_namemachinereleasemac_vergetwindowsversion_verenvironrnjoinmaprjava_ver_arch system_aliasr_aliasedpython_implementationpypy_version_info version_infor3r7r5r8r;rCrIrMrPrSrYrgrmrxrlr|)parts0r:rs#  ?? 3?.24,& k'RS >S<<7# HOO E(((*#8##% IdO \\X!!(((*$8##%a( IdO \\W 3 "D '?@VDTHDTDTDV88CT"1X./CRC7H2II IdO \\V$***,R0E4IdO%x$$_X__%68H8H8H8JL\HL\L\L^_H!8BQ<@44$@A(((*A; IdO"8!!#..v6HH *H * * , HHSc334 5 CHHSc.>.>%?@ @ Ij \\V$HH *H * * , HHSc../ 0 SXXx02B(2B2B2DEF F Ij HH ' ' ' )388CS=M=M4N+OPIj ' $ 7F%N"J4Ev V~$~$sAs P P