
    hu                         d Z ddlZddlZddlmZ ddlmZmZmZ ddl	m
Z
mZ ddlmZ ddlmZ ddlmZ dd	lmZ  G d
 de      Zy)z&Represent MongoClient's configuration.    N)ObjectId)commonmonitorpool)LOCAL_THRESHOLD_MSSERVER_SELECTION_TIMEOUT)ConfigurationError)PoolOptions)ServerDescription)TOPOLOGY_TYPEc                      e Zd Zddddddeeej                  ddddfdZed        Z	ed        Z
ed        Zed        Zed        Zed        Zed	        Zed
        Zed        Zed        Zed        Zed        Zed        Zd Zd Zy)TopologySettingsNc                 z   |	t         j                  k  r t        dt         j                  dz  fz        |xs dg| _        || _        |xs t
        j                  | _        |xs
 t               | _	        |xs t        j                  | _        |xs t        j                  | _        || _        || _        |
| _        || _        |	| _        |-t+        | j                        dk(  xr | j,                   | _        n|| _        || _        t3               | _        dj7                  t9        j:                               | _        y)zyRepresent MongoClient's configuration.

        Take a list of (host, port) pairs and optional replica set name.
        z+heartbeatFrequencyMS cannot be less than %di  )	localhostii  N    )r   MIN_HEARTBEAT_INTERVALr	   _seeds_replica_set_namer   Pool_pool_classr
   _pool_optionsr   Monitor_monitor_class	threading	Condition_condition_class_local_threshold_ms_server_selection_timeout_server_selector_fqdn_heartbeat_frequencylenreplica_set_name_direct_load_balancedr   _topology_idjoin	tracebackformat_stack_stack)selfseedsr$   
pool_classpool_optionsmonitor_classcondition_classlocal_threshold_msserver_selection_timeoutheartbeat_frequencyserver_selectorfqdndirect_connectionload_balanceds                 N/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/pymongo/settings.py__init__zTopologySettings.__init__   s   ( !>!>>$=00479: 
 5 45!1%2):[]+>w / F93F3F#5 )A& /
$7!$t{{+q0N9N9N5NDL,DL+$J ggi4467    c                     | j                   S )zList of server addresses.)r   r,   s    r9   r-   zTopologySettings.seedsO   s     {{r;   c                     | j                   S N)r   r=   s    r9   r$   z!TopologySettings.replica_set_nameT   s    %%%r;   c                     | j                   S r?   )r   r=   s    r9   r.   zTopologySettings.pool_classX   s    r;   c                     | j                   S r?   )r   r=   s    r9   r/   zTopologySettings.pool_options\   s    !!!r;   c                     | j                   S r?   )r   r=   s    r9   r0   zTopologySettings.monitor_class`   s    """r;   c                     | j                   S r?   )r   r=   s    r9   r1   z TopologySettings.condition_classd       $$$r;   c                     | j                   S r?   )r   r=   s    r9   r2   z#TopologySettings.local_threshold_msh   s    '''r;   c                     | j                   S r?   )r   r=   s    r9   r3   z)TopologySettings.server_selection_timeoutl   s    ---r;   c                     | j                   S r?   )r    r=   s    r9   r5   z TopologySettings.server_selectorp   rD   r;   c                     | j                   S r?   )r"   r=   s    r9   r4   z$TopologySettings.heartbeat_frequencyt   s    (((r;   c                     | j                   S r?   )r!   r=   s    r9   r6   zTopologySettings.fqdnx   s    zzr;   c                     | j                   S )zConnect directly to a single server, or use a set of servers?

        True if there is one seed and no replica_set_name.
        )r%   r=   s    r9   directzTopologySettings.direct|   s     ||r;   c                     | j                   S )z@True if the client was configured to connect to a load balancer.)r&   r=   s    r9   r8   zTopologySettings.load_balanced   s     """r;   c                     | j                   rt        j                  S | j                  rt        j                  S | j
                  t        j                  S t        j                  S r?   )r8   r   LoadBalancedrK   Singler$   ReplicaSetNoPrimaryUnknownr=   s    r9   get_topology_typez"TopologySettings.get_topology_type   sN     ---[[ '''"". 444 (((r;   c           	      h    t        | j                  D cg c]  }|t        |      f c}      S c c}w )z;Initial dict of (address, ServerDescription) for all seeds.)dictr-   r   )r,   addresss     r9   get_server_descriptionsz(TopologySettings.get_server_descriptions   s*    $**Uwg09:UVVUs   /)__name__
__module____qualname__r   r   r   HEARTBEAT_FREQUENCYr:   propertyr-   r$   r.   r/   r0   r1   r2   r3   r5   r4   r6   rK   r8   rR   rV    r;   r9   r   r      sF    -!9"66/8b   & &     " " # # % % ( ( . . % % ) )     # #)Wr;   r   )__doc__r   r)   bson.objectidr   pymongor   r   r   pymongo.commonr   r   pymongo.errorsr	   pymongo.poolr
   pymongo.server_descriptionr   pymongo.topology_descriptionr   objectr   r\   r;   r9   <module>rf      s8    -   " ) ) G - $ 8 6xWv xWr;   