
    &g$I                       % S r SSKJr  SSKrSSKrSSKrSSKrSSKJr  SSK	J
r
JrJrJr  SSKrSSKJr  SSKJrJrJrJrJrJr  \
(       a$  SSKJr  SS	KJr  SS
KJr  SSKJr  SSK J!r!  SSK"J#r#  SS\S.0r$S\%S'   \R
                  RM                  S5      (       a;  \RN                  " 5       r(\(\(\RR                  " 5       \RT                  " 5       S.\$S'   GO\R
                  S:X  aK  \RN                  " 5       \RN                  " 5       \RR                  " 5       \RV                  " 5       S   S.\$S'   GOb\R
                  S:X  ax  \RX                  " 5       r-SS\R\                  R_                  S5      =(       d    \RR                  " 5       SRa                  \1" \2\-SS 5      5      S\-S   =(       d    S 3-   S.\$S'   O\R
                  RM                  S5      (       a#  \Rf                  " 5       S   u  r(r-r4\(\(\4\-S.\$S'   O\Rj                  " \RN                  " 5       \RT                  " 5       \Rl                  " 5       5      r7\RN                  " 5       S Ra                  \7SS!  V s/ s H  o (       d  M  U PM     sn 5      \RR                  " 5       \7S!   S.\$S'   \Rp                  " 5       RM                  S"5      (       aj  S Ra                  \Rp                  " 5       SRa                  \1" \2\Rr                  5      5      S#SRa                  \1" \2\Rt                  5      5      -  45      \$S$'   O\R
                  RM                  S5      (       ay  S Ra                  \Rp                  " 5       SRa                  \1" \2\Rt                  5      5      S%S Ra                  \RN                  " 5       \RT                  " 5       45      -  45      \$S$'   OES Ra                  \Rp                  " 5       SRa                  \1" \2\Rt                  5      5      45      \$S$'   S&r;S'r<S(r=S)r>S8S* jr?S9S+ jr@S9S, jrAS9S- jrBS9S. jrCS9S/ jrDS:S0 jrES;S1 jrFS2rGS<S3 jrHS4R                  S55         " S6 S75      rJgs  sn f )=zPool options for AsyncMongoClient/MongoClient.

.. seealso:: This module is compatible with both the synchronous and asynchronous PyMongo APIs.
    )annotationsN)Path)TYPE_CHECKINGAnyMutableMappingOptional)__version__)MAX_CONNECTINGMAX_IDLE_TIME_SECMAX_POOL_SIZEMIN_POOL_SIZEWAIT_QUEUE_TIMEOUThas_c)MongoCredential)CompressionSettings)
DriverInfo)_EventListeners)
SSLContext)	ServerApidriverPyMongo)nameversiondict[str, Any]	_METADATAlinux)typer   architecturer   osdarwinwin32WindowsPROCESSOR_ARCHITECTURE.   z-SP0java    PyPyz(Python %s)platformz(%s)z/.dockerenvKUBERNETES_SERVICE_HOSTdocker
kubernetesc                     0 n [        [        5      R                  5       (       a	  [        U S'   [        R
                  " [        5      (       a	  [        U S'   U $ )zReturns the runtime and orchestrator of a container.
If neither value is present, the metadata client.env.container field will be omitted.runtimeorchestrator)r   DOCKER_ENV_PATHexistsRUNTIME_NAME_DOCKERr   getenvENV_VAR_K8SORCHESTRATOR_NAME_K8S)	containers    YC:\Suresh\moveshuttle\MDcreated\moveengine\venv\Lib\site-packages\pymongo/pool_options.pyget_container_env_infor;      sF     IO##%%2	)	yy$9	.!    c                     [         R                  " S5      (       a  g[         R                  " S5      n U (       a  U R                  S5      $ g)NAWS_LAMBDA_RUNTIME_APITAWS_EXECUTION_ENVAWS_Lambda_F)r   r6   
startswith)envs    r:   
_is_lambdarC      s9    	yy)**
))'
(C
~~m,,r<   c                 @    [        [        R                  " S5      5      $ )NFUNCTIONS_WORKER_RUNTIMEboolr   r6    r<   r:   _is_azure_funcrI      s    		4566r<   c                 z    [        [        R                  " S5      =(       d    [        R                  " S5      5      $ )N	K_SERVICEFUNCTION_NAMErF   rH   r<   r:   _is_gcp_funcrM      s$    		+&D"))O*DEEr<   c                 @    [        [        R                  " S5      5      $ )NVERCELrF   rH   r<   r:   
_is_vercelrP      s    		(#$$r<   c                 |    [        5       =(       d,    [        5       =(       d    [        5       =(       d
    [        5       $ N)rC   rI   rM   rP   rH   r<   r:   _is_faasrS      s     <M>+M|~MMr<   c                v    [         R                  " U 5      nU(       d  g [        U5      $ ! [         a     gf = f)zMLike os.getenv but returns an int, or None if the value is missing/malformed.N)r   r6   int
ValueError)keyvals     r:   _getenv_intrY      s5    
))C.C3x s   
+ 
88c                    0 n [        5       nU(       a  XS'   [        5       [        5       [        5       [	        5       4R                  S5      S:w  a  U $ [        5       (       a:  SU S'   [        R                  " S5      nU(       a  X S'   [        S5      nUb  X0S	'   U $ [        5       (       a  S
U S'   U $ [        5       (       aL  SU S'   [        R                  " S5      nU(       a  X S'   [        S5      nUb  X0S	'   [        S5      nUb  X@S'   U $ [	        5       (       a&  SU S'   [        R                  " S5      nU(       a  X S'   U $ )Nr9   T   z
aws.lambdar   
AWS_REGIONregionAWS_LAMBDA_FUNCTION_MEMORY_SIZE	memory_mbz
azure.funczgcp.funcFUNCTION_REGIONFUNCTION_MEMORY_MBFUNCTION_TIMEOUT_SECtimeout_secvercelVERCEL_REGION)	r;   rC   rI   rM   rP   countr   r6   rY   )rB   r9   r]   r_   rc   s        r:   _metadata_envrg      s;   C&(I$Kn&
EKKDQUVV
||"F<("M AB	 (& J% 
		"F" J! 
 F,-"M 45	 (!"89"!, J 
F?+"MJr<   i   c                   [        [        R                  " U 5      5      [        ::  a  gU R	                  S0 5      R	                  S5      nU(       a  SU0U S'   [        [        R                  " U 5      5      [        ::  a  gU R	                  S0 5      R	                  S5      nU(       a  SU0U S'   [        [        R                  " U 5      5      [        ::  a  gU R                  SS5        [        [        R                  " U 5      5      nU[        ::  a  gU[        -
  nU R	                  SS5      nU(       a  USU*  nU(       a  XPS'   OU R                  SS5        [        [        R                  " U 5      5      nU[        ::  a  gU[        -
  nU R	                  S0 5      nU(       a  UR	                  S	5      SU*  n[        U5      [        [        S   S	   5      :  a  XpS   S	'   O[        S   S	   U S   S	'   [        [        R                  " U 5      5      nU[        ::  a  gU[        -
  nUR	                  S5      SU*  n[        U5      [        [        S   S   5      :  a  XS   S'   g[        S   S   U S   S'   gg)
zPerform metadata truncation.NrB   r   r   r   r,    r   r   )lenbsonencode_MAX_METADATA_SIZEgetpopr   )	metadataenv_nameos_typeencoded_sizeoverflowplatr   driver_versiondriver_names	            r:   _truncate_metadatarx      s8   
4;;x !%77||E2&**62H!8,
4;;x !%77ll4$((0G '*
4;;x !%77LLt{{8,-L))00H<<
B'DJhY#Z&t{{8,-L))00H\\(B'FI.z	:~#i&9)&D"EE,:Xy),5h,?	,JHXy)4;;x01--"44jj(8)4{s9X#6v#>??)4Xv&)28)<V)DHXv&! r<   fooidnac                     \ rS rSrSrSr\\\SS\	SSSSSS\
SSSSS4                                   SS jjr\SS j5       r\SS	 j5       r\SS
 j5       r\S S j5       r\S S j5       r\S!S j5       r\S"S j5       r\S#S j5       r\S#S j5       r\S"S j5       r\S$S j5       r\S!S j5       r\S%S j5       r\S&S j5       r\S'S j5       r\S(S j5       r\SS j5       r\S)S j5       r\S*S j5       rSr g)+PoolOptionsi  aO  Read only connection pool options for an AsyncMongoClient/MongoClient.

Should not be instantiated directly by application developers. Access
a client's pool options via
:attr:`~pymongo.client_options.ClientOptions.pool_options` instead::

  pool_opts = client.options.pool_options
  pool_opts.max_pool_size
  pool_opts.min_pool_size

)__max_pool_size__min_pool_size__max_idle_time_seconds__connect_timeout__socket_timeout__wait_queue_timeout__ssl_context__tls_allow_invalid_hostnames__event_listeners	__appname__driver
__metadata__compression_settings__max_connecting__pause_enabled__server_api__load_balanced__credentialsNFTc                X   Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        Xl	        Xl
        Xl        Xl        Xl        Xl        UU l        UU l        ["        R$                  " [&        5      U l        U
(       a  SU
0U R(                  S'   [+        5       (       a2  SR-                  U R(                  S   S   S5      U R(                  S   S'   U(       d2  SR-                  U R(                  S   S   S5      U R(                  S   S'   U(       a  UR.                  (       a<  SR-                  U R(                  S   S   UR.                  5      U R(                  S   S'   UR0                  (       a6  SR-                  [&        S   S   UR0                  5      U R(                  S   S'   UR2                  (       a0  SR-                  [&        S   UR2                  5      U R(                  S'   [5        5       nU(       a  UU R(                  S	'   [7        U R(                  5        g )
Nr   applicationz{}|{}r   casyncr   r,   rB   )_PoolOptions__max_pool_size_PoolOptions__min_pool_size#_PoolOptions__max_idle_time_seconds_PoolOptions__connect_timeout_PoolOptions__socket_timeout _PoolOptions__wait_queue_timeout_PoolOptions__ssl_context)_PoolOptions__tls_allow_invalid_hostnames_PoolOptions__event_listeners_PoolOptions__appname_PoolOptions__driver"_PoolOptions__compression_settings_PoolOptions__max_connecting_PoolOptions__pause_enabled_PoolOptions__server_api_PoolOptions__load_balanced_PoolOptions__credentialscopydeepcopyr   _PoolOptions__metadatar   formatr   r   r,   rg   rx   )selfmax_pool_sizemin_pool_sizemax_idle_time_secondsconnect_timeoutsocket_timeoutwait_queue_timeoutssl_contexttls_allow_invalid_hostnamesevent_listenersappnamer   compression_settingsmax_connectingpause_enabled
server_apiload_balancedcredentialsis_syncrB   s                       r:   __init__PoolOptions.__init__=  s   *  -,'<$!0 .$6!(-H*!0 &:# .,&,(--	2.4g->DOOM* 7707)&11DOOH%f- 07)&11DOOH%f- {{4;NNOOH-f5KK5)&1 ~~7>~~h'	2NN8))4 .5nnYz=RTZTcTc.d
+o%(DOOE"4??+r<   c                    U R                   $ )z;A :class:`~pymongo.auth.MongoCredentials` instance or None.)r   r   s    r:   _credentialsPoolOptions._credentials       !!!r<   c                   0 nU R                   [        :w  a  U R                   US'   U R                  [        :w  a  U R                  US'   U R                  [
        :w  a!  U R                  c   eU R                  S-  US'   U R                  [        :w  a!  U R                  c   eU R                  S-  US'   U R                  [        :w  a  U R                  US'   U$ )zaThe non-default options this pool was created with.

Added for CMAP's :class:`PoolCreatedEvent`.
maxPoolSizeminPoolSizei  maxIdleTimeMSwaitQueueTimeoutMSmaxConnecting)
r   r   r   r   r   r   r   r   r   r
   )r   optss     r:   non_default_optionsPoolOptions.non_default_options  s     =0"&"6"6D=0"&"6"6D''+<<//;;;$($@$@4$GD!$$(::,,888)-)B)BT)ID%&  N2$($9$9D!r<   c                    U R                   $ )a	  The 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.
)r   r   s    r:   r   PoolOptions.max_pool_size  s     ###r<   c                    U R                   $ )zzThe minimum required number of concurrent connections that the pool
will maintain to each connected server. Default is 0.
)r   r   s    r:   r   PoolOptions.min_pool_size  s    
 ###r<   c                    U R                   $ )zWThe maximum number of concurrent connection creation attempts per
pool. Defaults to 2.
)r   r   s    r:   r   PoolOptions.max_connecting  s    
 $$$r<   c                    U R                   $ rR   )r   r   s    r:   r   PoolOptions.pause_enabled  s    ###r<   c                    U R                   $ )zThe maximum number of seconds that a connection can remain
idle in the pool before being removed and replaced. Defaults to
`None` (no limit).
)r   r   s    r:   r   !PoolOptions.max_idle_time_seconds  s     +++r<   c                    U R                   $ )z>How long a connection can take to be opened before timing out.)r   r   s    r:   r   PoolOptions.connect_timeout       %%%r<   c                    U R                   $ )zBHow long a send or receive on a socket can take before timing out.)r   r   s    r:   r   PoolOptions.socket_timeout  s     $$$r<   c                    U R                   $ )zXHow long a thread will wait for a socket from the pool if the pool
has no free sockets.
)r   r   s    r:   r   PoolOptions.wait_queue_timeout  s    
 (((r<   c                    U R                   $ )zAn SSLContext instance or None.)r   r   s    r:   _ssl_contextPoolOptions._ssl_context  r   r<   c                    U R                   $ )z If True skip ssl.match_hostname.)r   r   s    r:   r   'PoolOptions.tls_allow_invalid_hostnames  s     111r<   c                    U R                   $ )z2An instance of pymongo.monitoring._EventListeners.)r   r   s    r:   _event_listenersPoolOptions._event_listeners  r   r<   c                    U R                   $ )zAThe application name, for sending with hello in server handshake.)r   r   s    r:   r   PoolOptions.appname  s     ~~r<   c                    U R                   $ )z=Driver name and version, for sending with hello in handshake.)r   r   s    r:   r   PoolOptions.driver  s     }}r<   c                    U R                   $ rR   )r   r   s    r:   _compression_settings!PoolOptions._compression_settings  s    ***r<   c                6    U R                   R                  5       $ )zCA dict of metadata about the application, driver, os, and platform.)r   r   r   s    r:   rp   PoolOptions.metadata  s     ##%%r<   c                    U R                   $ )z'A pymongo.server_api.ServerApi or None.)r   r   s    r:   r   PoolOptions.server_api  s        r<   c                    U R                   $ )z6True if this Pool is configured in load balanced mode.)r   r   s    r:   r   PoolOptions.load_balanced	  s     ###r<   )r   r   r   r   r   r   r   r   r   r}   r   r~   r   r   r   r   r   r   )$r   rU   r   rU   r   Optional[int]r   Optional[float]r   r   r   r   r   Optional[SSLContext]r   rG   r   Optional[_EventListeners]r   Optional[str]r   Optional[DriverInfo]r   Optional[CompressionSettings]r   rU   r   rG   r   Optional[ServerApi]r   Optional[bool]r   Optional[MongoCredential]r   r   )returnr   r   r   )r   float)r   rU   r   rG   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )!__name__
__module____qualname____firstlineno____doc__	__slots__r   r   r   r   r
   r   propertyr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rp   r   r   __static_attributes__rH   r<   r:   r|   r|     s   
I. +*/@+/*.,>,0,159!%'+>B,"*.(,15"&'O,O, O,  -	O,
 )O, (O, *O, *O, &*O, 3O, O, %O, <O, O, O,  (!O," &#O,$ /%O,&  'O,b " "  ( $ $ $ $ % % $ $ , , & & % % ) ) " " 2 2 & &     + + & & ! ! $ $r<   r|   )r   zdict[str, str]r   )rW   strr   r   r   )rp   zMutableMapping[str, Any]r   None)Kr  
__future__r   r   r   r,   syspathlibr   typingr   r   r   r   rk   pymongor	   pymongo.commonr
   r   r   r   r   r   pymongo.auth_sharedr   pymongo.compression_supportr   pymongo.driver_infor   pymongo.monitoringr   pymongo.pyopenssl_contextr   pymongo.server_apir   r   __annotations__rA   system_namemachinereleasemac_vergetwindowsversion_verenvironrn   joinmapr  java_ver_archsystem_aliasr   _aliasedpython_implementationpypy_version_infoversion_infor3   r7   r5   r8   r;   rC   rI   rM   rP   rS   rY   rg   rm   rx   rl   r|   )parts   0r:   <module>r'     s   #  	  
  ? ?    3?.24, &	k'RS	> S<<7##
 OOE ((*##%IdO 	\\X!! ((* ##%a(IdO 	\\W  "D

'?@VHDTDTDV88CT"1X./CRC7H2IIIdO 	\\V$$!**,R0E4 IdO $$X__%68H8H8JHL\L\L^_H!8BQ<@<44$<@A ((*A;	IdO !!#..v66HH**,HHSc3345CHHSc.>.>%?@@	
Ij 	\\V$$HH**,HHSc../0SXXx0(2B2B2DEFF	
Ij  HH		'	'	)388CS=M=M4N+OPIj  ' $ 
7F%N"J  4Ev V q$ q$s As   !
Q
/Q
