
    @hc                        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  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r  " S S5      r!g)z&Represent MongoClient's configuration.    )annotationsN)Any
CollectionOptionalTypeUnion)ObjectId)common)LOCAL_THRESHOLD_MSSERVER_SELECTION_TIMEOUT)ConfigurationError)PoolOptions)ServerDescription)monitorpool)Pool)TOPOLOGY_TYPE_ServerSelectorTc                     \ rS rSrSSSSSS\\\R                  SSSS\R                  S\R                  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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        Ub  UU l        O[7        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_mode_topology_idr	   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_modetopology_ids                     aC:\Suresh\moveshuttle\MDcreated\moveengine\venv\Lib\site-packages\pymongo/synchronous/settings.py__init__TopologySettings.__init__$   s   0 !>!>>$=00479: 
 493R=Q<R!1'1'>TYY*6*G+-5B5Ugoo;J;aiNaNa#5 )A& /
$7!(+!1+0q'=$" +D (
D ggi446s;<    c                    U R                   $ )zList of server addresses.)r   r5   s    rG   r6   TopologySettings.seedsZ   s     {{rJ   c                    U R                   $ N)r   rL   s    rG   r7   !TopologySettings.replica_set_name_   s    %%%rJ   c                    U R                   $ rO   )r   rL   s    rG   r8   TopologySettings.pool_classc   s    rJ   c                    U R                   $ rO   )r    rL   s    rG   r9   TopologySettings.pool_optionsg   s    !!!rJ   c                    U R                   $ rO   )r"   rL   s    rG   r:   TopologySettings.monitor_classk   s    """rJ   c                    U R                   $ rO   )r%   rL   s    rG   r;    TopologySettings.condition_classo       $$$rJ   c                    U R                   $ rO   )r&   rL   s    rG   r<   #TopologySettings.local_threshold_mss   s    '''rJ   c                    U R                   $ rO   )r'   rL   s    rG   r=   )TopologySettings.server_selection_timeoutw   s    ---rJ   c                    U R                   $ rO   )r(   rL   s    rG   r?    TopologySettings.server_selector{   rY   rJ   c                    U R                   $ rO   )r*   rL   s    rG   r>   $TopologySettings.heartbeat_frequency   s    (((rJ   c                    U R                   $ rO   )r)   rL   s    rG   r@   TopologySettings.fqdn   s    zzrJ   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+   rL   s    rG   directTopologySettings.direct   s     ||rJ   c                    U R                   $ )z@True if the client was configured to connect to a load balancer.)r,   rL   s    rG   rB   TopologySettings.load_balanced        """rJ   c                    U R                   $ )zThe srvServiceName.)r-   rL   s    rG   rC   !TopologySettings.srv_service_name   s     %%%rJ   c                    U R                   $ )zThe srvMaxHosts.)r.   rL   s    rG   rD   TopologySettings.srv_max_hosts   ri   rJ   c                    U R                   $ )zThe serverMonitoringMode.)r/   rL   s    rG   rE   'TopologySettings.server_monitoring_mode   s     +++rJ   c                    U R                   (       a  [        R                  $ U R                  (       a  [        R                  $ U R
                  b  [        R                  $ [        R                  $ rO   )rB   r   LoadBalancedre   Singler7   ReplicaSetNoPrimaryUnknownrL   s    rG   get_topology_type"TopologySettings.get_topology_type   sN     ---[[ '''"". 444 (((rJ   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     rG   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@   r{   rA   Optional[bool]rB   r~   rC   strrD   r|   rE   r   rF   zOptional[ObjectId])returnzCollection[tuple[str, int]])r   r{   )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_MODErH   propertyr6   r7   r8   r9   r:   r;   r<   r=   r?   r>   r@   re   rB   rC   rD   rE   ru   ry   __static_attributes__ rJ   rG   r   r   #   sB    8<*.+/.29=?C"4(@#)#=#=59",1(, & 7 7&,&C&C*.%4=44= (4= )	4=
 ,4= 74= =4=  4= #&4= !4= 34= 4= *4= &4= 4=  !4=" !$#4=$ (%4=l   & &     " " # # % % ( ( . . % % ) )     # # & & # # , ,)OrJ   r   )"__doc__
__future__r   r#   r2   typingr   r   r   r   r   bson.objectidr	   pymongor
   pymongo.commonr   r   pymongo.errorsr   pymongo.pool_optionsr   pymongo.server_descriptionr   pymongo.synchronousr   r   pymongo.synchronous.poolr   pymongo.topology_descriptionr   r   _IS_SYNCr   r   rJ   rG   <module>r      sG    - "   9 9 "  G - , 8 - ) GLO LOrJ   