
    FCf                        d Z ddlmZ ddlZddlZddlmZmZmZm	Z	m
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mZ dd
lmZ ddlmZmZ  G d d      Zy)z&Represent MongoClient's configuration.    )annotationsN)Any
CollectionOptionalTypeUnion)ObjectId)commonmonitorpool)LOCAL_THRESHOLD_MSSERVER_SELECTION_TIMEOUT)ConfigurationError)PoolPoolOptions)ServerDescription)TOPOLOGY_TYPE_ServerSelectorc                     e Zd Zddddddeeej                  ddddej                  dej                  f	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	e
dd       Ze
dd       Ze
dd       Ze
dd       Ze
dd	       Ze
dd
       Ze
dd       Ze
dd       Ze
dd       Ze
dd       Ze
dd       Ze
d d       Ze
d d       Ze
d!d       Ze
dd       Ze
d!d       ZddZd"dZy)#TopologySettingsNFr   c                N   |	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                  | _        || _        || _        |
| _        || _        |	| _        || _        || _        || _        |xs d| _        || _        t5               | _        dj9                  t;        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  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                    P/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/pymongo/settings.py__init__z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67    c                    | j                   S )zList of server addresses.)r   r3   s    rD   r4   zTopologySettings.seedsS   s     {{rF   c                    | j                   S N)r   rH   s    rD   r5   z!TopologySettings.replica_set_nameX   s    %%%rF   c                    | j                   S rJ   )r   rH   s    rD   r6   zTopologySettings.pool_class\   s    rF   c                    | j                   S rJ   )r   rH   s    rD   r7   zTopologySettings.pool_options`   s    !!!rF   c                    | j                   S rJ   )r    rH   s    rD   r8   zTopologySettings.monitor_classd   s    """rF   c                    | j                   S rJ   )r#   rH   s    rD   r9   z TopologySettings.condition_classh       $$$rF   c                    | j                   S rJ   )r$   rH   s    rD   r:   z#TopologySettings.local_threshold_msl   s    '''rF   c                    | j                   S rJ   )r%   rH   s    rD   r;   z)TopologySettings.server_selection_timeoutp   s    ---rF   c                    | j                   S rJ   )r&   rH   s    rD   r=   z TopologySettings.server_selectort   rO   rF   c                    | j                   S rJ   )r(   rH   s    rD   r<   z$TopologySettings.heartbeat_frequencyx   s    (((rF   c                    | j                   S rJ   )r'   rH   s    rD   r>   zTopologySettings.fqdn|   s    zzrF   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)   rH   s    rD   directzTopologySettings.direct   s     ||rF   c                    | j                   S )z@True if the client was configured to connect to a load balancer.)r*   rH   s    rD   r@   zTopologySettings.load_balanced        """rF   c                    | j                   S )zThe srvServiceName.)r+   rH   s    rD   rA   z!TopologySettings.srv_service_name   s     %%%rF   c                    | j                   S )zThe srvMaxHosts.)r,   rH   s    rD   rB   zTopologySettings.srv_max_hosts   rX   rF   c                    | j                   S )zThe serverMonitoringMode.)r-   rH   s    rD   rC   z'TopologySettings.server_monitoring_mode   s     +++rF   c                    | j                   rt        j                  S | j                  rt        j                  S | j
                  t        j                  S t        j                  S rJ   )r@   r   LoadBalancedrV   Singler5   ReplicaSetNoPrimaryUnknownrH   s    rD   get_topology_typez"TopologySettings.get_topology_type   sN     ---[[ '''"". 444 (((rF   c                T    | j                   D ci c]  }|t        |       c}S c c}w )z;Initial dict of (address, ServerDescription) for all seeds.)r4   r   )r3   addresss     rD   get_server_descriptionsz(TopologySettings.get_server_descriptions   s%    CG::N*733NNNs   %) r4   z%Optional[Collection[tuple[str, int]]]r5   Optional[str]r6   zOptional[Type[Pool]]r7   zOptional[PoolOptions]r8   zOptional[Type[monitor.Monitor]]r9   z#Optional[Type[threading.Condition]]r:   intr;   rf   r<   rf   r=   Optional[_ServerSelector]r>   re   r?   Optional[bool]r@   rh   rA   strrB   rf   rC   ri   )returnzCollection[tuple[str, int]])rj   re   )rj   z
Type[Pool])rj   r   )rj   zType[monitor.Monitor])rj   zType[threading.Condition])rj   rf   )rj   rg   )rj   rh   )rj   ri   )rj   z4dict[Union[tuple[str, int], Any], ServerDescription])__name__
__module____qualname__r   r   r
   HEARTBEAT_FREQUENCYSRV_SERVICE_NAMESERVER_MONITORING_MODErE   propertyr4   r5   r6   r7   r8   r9   r:   r;   r=   r<   r>   rV   r@   rA   rB   rC   ra   rd    rF   rD   r   r      s5    8<*.+/.29=?C"4(@#)#=#=59",1(, & 7 7&,&C&C#18418 (18 )	18
 ,18 718 =18  18 #&18 !18 318 18 *18 &18 18  !18" !$#18f   & &     " " # # % % ( ( . . % % ) )     # # & & # # , ,)OrF   r   )__doc__
__future__r   r!   r0   typingr   r   r   r   r   bson.objectidr	   pymongor
   r   r   pymongo.commonr   r   pymongo.errorsr   pymongo.poolr   r   pymongo.server_descriptionr   pymongo.topology_descriptionr   r   r   rr   rF   rD   <module>r}      s?    - "   9 9 " ) ) G - * 8 GIO IOrF   