
    &g                        S r SSKJr  SSKrSSKrSSKJrJrJrJ	r	J
r
  SSKJr  SSKJr  SSKJrJr  SSKJr  SS	KJrJr  SS
KJr  SSKJr  SSKJr  SSKJrJr  Sr  " S S5      r!g)z&Represent MongoClient's configuration.    )annotationsN)Any
CollectionOptionalTypeUnion)ObjectId)common)monitorpool)Pool)LOCAL_THRESHOLD_MSSERVER_SELECTION_TIMEOUT)ConfigurationError)PoolOptions)ServerDescription)TOPOLOGY_TYPE_ServerSelectorFc                     \ rS rSrSSSSSS\\\R                  SSSS\R                  S\R                  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rS$S jrSrg)%TopologySettings#   NFr   c                   U	[         R                  :  a   [        S[         R                  S-  4-  5      eU=(       d    S/U l        X l        U=(       d    [
        R                  U l        U=(       d
    [        5       U l	        U=(       d    [        R                  U l        U=(       d    [        R                  U l        Xpl        Xl        Xl        Xl        Xl        Xl        Xl        Xl        U=(       d    SU l        UU l        [5        5       U l        SR9                  [:        R<                  " 5       SS 5      U l        g)ziRepresent MongoClient's configuration.

Take a list of (host, port) pairs and optional replica set name.
z+heartbeatFrequencyMS cannot be less than %di  )	localhostii  r    N) r
   MIN_HEARTBEAT_INTERVALr   _seeds_replica_set_namer   r   _pool_classr   _pool_optionsr   Monitor_monitor_class	threading	Condition_condition_class_local_threshold_ms_server_selection_timeout_server_selector_fqdn_heartbeat_frequency_direct_load_balanced_srv_service_name_srv_max_hosts_server_monitoring_moder	   _topology_idjoin	tracebackformat_stack_stack)selfseedsreplica_set_name
pool_classpool_optionsmonitor_classcondition_classlocal_threshold_msserver_selection_timeoutheartbeat_frequencyserver_selectorfqdndirect_connectionload_balancedsrv_service_namesrv_max_hostsserver_monitoring_modes                    bC:\Suresh\moveshuttle\MDcreated\moveengine\venv\Lib\site-packages\pymongo/asynchronous/settings.py__init__TopologySettings.__init__$   s   . !>!>>$=00479: 
 493R=Q<R!1'1'>TYY*6*G+-5B5Ugoo;J;aiNaNa#5 )A& /
$7!(+!1+0q'=$$J ggi446s;<    c                    U R                   $ )zList of server addresses.)r   r5   s    rF   r6   TopologySettings.seedsW   s     {{rI   c                    U R                   $ N)r   rK   s    rF   r7   !TopologySettings.replica_set_name\   s    %%%rI   c                    U R                   $ rN   )r   rK   s    rF   r8   TopologySettings.pool_class`   s    rI   c                    U R                   $ rN   )r    rK   s    rF   r9   TopologySettings.pool_optionsd   s    !!!rI   c                    U R                   $ rN   )r"   rK   s    rF   r:   TopologySettings.monitor_classh   s    """rI   c                    U R                   $ rN   )r%   rK   s    rF   r;    TopologySettings.condition_classl       $$$rI   c                    U R                   $ rN   )r&   rK   s    rF   r<   #TopologySettings.local_threshold_msp   s    '''rI   c                    U R                   $ rN   )r'   rK   s    rF   r=   )TopologySettings.server_selection_timeoutt   s    ---rI   c                    U R                   $ rN   )r(   rK   s    rF   r?    TopologySettings.server_selectorx   rX   rI   c                    U R                   $ rN   )r*   rK   s    rF   r>   $TopologySettings.heartbeat_frequency|   s    (((rI   c                    U R                   $ rN   )r)   rK   s    rF   r@   TopologySettings.fqdn   s    zzrI   c                    U R                   $ )zrConnect directly to a single server, or use a set of servers?

True if there is one seed and no replica_set_name.
)r+   rK   s    rF   directTopologySettings.direct   s     ||rI   c                    U R                   $ )z@True if the client was configured to connect to a load balancer.)r,   rK   s    rF   rB   TopologySettings.load_balanced        """rI   c                    U R                   $ )zThe srvServiceName.)r-   rK   s    rF   rC   !TopologySettings.srv_service_name   s     %%%rI   c                    U R                   $ )zThe srvMaxHosts.)r.   rK   s    rF   rD   TopologySettings.srv_max_hosts   rh   rI   c                    U R                   $ )zThe serverMonitoringMode.)r/   rK   s    rF   rE   'TopologySettings.server_monitoring_mode   s     +++rI   c                    U R                   (       a  [        R                  $ U R                  (       a  [        R                  $ U R
                  b  [        R                  $ [        R                  $ rN   )rB   r   LoadBalancedrd   Singler7   ReplicaSetNoPrimaryUnknownrK   s    rF   get_topology_type"TopologySettings.get_topology_type   sN     ---[[ '''"". 444 (((rI   c                X    U R                    Vs0 s H  o[        U5      _M     sn$ s  snf )z;Initial dict of (address, ServerDescription) for all seeds.)r6   r   )r5   addresss     rF   get_server_descriptions(TopologySettings.get_server_descriptions   s'    CG::N:*733:NNNs   ')r%   r+   r)   r*   r,   r&   r"   r   r    r   r   r/   r'   r(   r.   r-   r4   r0   ) r6   z%Optional[Collection[tuple[str, int]]]r7   Optional[str]r8   zOptional[Type[Pool]]r9   zOptional[PoolOptions]r:   zOptional[Type[monitor.Monitor]]r;   z#Optional[Type[threading.Condition]]r<   intr=   r{   r>   r{   r?   Optional[_ServerSelector]r@   rz   rA   Optional[bool]rB   r}   rC   strrD   r{   rE   r~   )returnzCollection[tuple[str, int]])r   rz   )r   z
Type[Pool])r   r   )r   zType[monitor.Monitor])r   zType[threading.Condition])r   r{   )r   r|   )r   r}   )r   r~   )r   z4dict[Union[tuple[str, int], Any], ServerDescription])__name__
__module____qualname____firstlineno__r   r   r
   HEARTBEAT_FREQUENCYSRV_SERVICE_NAMESERVER_MONITORING_MODErG   propertyr6   r7   r8   r9   r:   r;   r<   r=   r?   r>   r@   rd   rB   rC   rD   rE   rt   rx   __static_attributes__ rI   rF   r   r   #   s5    8<*.+/.29=?C"4(@#)#=#=59",1(, & 7 7&,&C&C#1=41= (1= )	1=
 ,1= 71= =1=  1= #&1= !1= 31= 1= *1= &1= 1=  !1=" !$#1=f   & &     " " # # % % ( ( . . % % ) )     # # & & # # , ,)OrI   r   )"__doc__
__future__r   r#   r2   typingr   r   r   r   r   bson.objectidr	   pymongor
   pymongo.asynchronousr   r   pymongo.asynchronous.poolr   pymongo.commonr   r   pymongo.errorsr   pymongo.pool_optionsr   pymongo.server_descriptionr   pymongo.topology_descriptionr   r   _IS_SYNCr   r   rI   rF   <module>r      sG    - "   9 9 "  . * G - , 8 GIO IOrI   