Ë
    Ü_Ëi·  ã                  óÐ   — 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 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 ddlmZ ddlmZmZ dZ  G d„ d«      Z!y)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                  óæ  — e Zd Zddddddeeej                  ddddej                  dej                  d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                óh  — |	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| _        || _        |�|| _        nt7        «       | _        dj9                  t;        j<                  «       dd «      | _        y)zyRepresent MongoClient's configuration.

        Take a list of (host, port) pairs and optional replica set name.
        z+heartbeatFrequencyMS cannot be less than %diè  )Ú	localhosti‰i  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                     ú`/var/www/pod-logistic/pod-api/venv/lib/python3.12/site-packages/pymongo/asynchronous/settings.pyÚ__init__zTopologySettings.__init__$   s#  € ð0 ¤×!>Ñ!>Ò>Ü$Ø=Ü×0Ñ0°4Ñ7Ð9ñ:óð ð
 49Ò3RÐ=QÐ<RˆŒØ!1ˆÔØ'1Ò'>´T·Y±YˆÔØ*6Ò*G¼+»-ˆÔØ5BÒ5UÄgÇoÁoˆÔØ;JÒ;aÌi×NaÑNaˆÔØ#5ˆÔ Ø)AˆÔ&Ø /ˆÔØˆŒ
Ø$7ˆÔ!Ø(ˆŒØ+ˆÔØ!1ˆÔØ+Ò0¨qˆÔØ'=ˆÔ$ØÐ"Ø +ˆDÕä (£
ˆDÔð —g‘gœi×4Ñ4Ó6°s¸Ð;Ó<ˆ�ó    c                ó   — | j                   S )zList of server addresses.)r   ©r4   s    rF   r5   zTopologySettings.seedsZ   s   € ð �{‰{ÐrH   c                ó   — | j                   S ©N)r   rJ   s    rF   r6   z!TopologySettings.replica_set_name_   s   € à×%Ñ%Ð%rH   c                ó   — | j                   S rL   )r   rJ   s    rF   r7   zTopologySettings.pool_classc   s   € à×ÑÐrH   c                ó   — | j                   S rL   )r   rJ   s    rF   r8   zTopologySettings.pool_optionsg   s   € à×!Ñ!Ð!rH   c                ó   — | j                   S rL   )r!   rJ   s    rF   r9   zTopologySettings.monitor_classk   s   € à×"Ñ"Ð"rH   c                ó   — | j                   S rL   )r$   rJ   s    rF   r:   z TopologySettings.condition_classo   ó   € à×$Ñ$Ð$rH   c                ó   — | j                   S rL   )r%   rJ   s    rF   r;   z#TopologySettings.local_threshold_mss   s   € à×'Ñ'Ð'rH   c                ó   — | j                   S rL   )r&   rJ   s    rF   r<   z)TopologySettings.server_selection_timeoutw   s   € à×-Ñ-Ð-rH   c                ó   — | j                   S rL   )r'   rJ   s    rF   r>   z TopologySettings.server_selector{   rQ   rH   c                ó   — | j                   S rL   )r)   rJ   s    rF   r=   z$TopologySettings.heartbeat_frequency   s   € à×(Ñ(Ð(rH   c                ó   — | j                   S rL   )r(   rJ   s    rF   r?   zTopologySettings.fqdnƒ   s   € à�z‰zÐrH   c                ó   — | j                   S )z‚Connect directly to a single server, or use a set of servers?

        True if there is one seed and no replica_set_name.
        )r*   rJ   s    rF   ÚdirectzTopologySettings.direct‡   s   € ð �|‰|ÐrH   c                ó   — | j                   S )z@True if the client was configured to connect to a load balancer.)r+   rJ   s    rF   rA   zTopologySettings.load_balanced�   ó   € ð ×"Ñ"Ð"rH   c                ó   — | j                   S )zThe srvServiceName.)r,   rJ   s    rF   rB   z!TopologySettings.srv_service_name”   s   € ð ×%Ñ%Ð%rH   c                ó   — | j                   S )zThe srvMaxHosts.)r-   rJ   s    rF   rC   zTopologySettings.srv_max_hosts™   rZ   rH   c                ó   — | j                   S )zThe serverMonitoringMode.)r.   rJ   s    rF   rD   z'TopologySettings.server_monitoring_modež   s   € ð ×+Ñ+Ð+rH   c                óÊ   — | j                   rt        j                  S | j                  rt        j                  S | j
                  �t        j                  S t        j                  S rL   )rA   r   ÚLoadBalancedrX   ÚSingler6   ÚReplicaSetNoPrimaryÚUnknownrJ   s    rF   Úget_topology_typez"TopologySettings.get_topology_type£   sN   € Ø×ÒÜ ×-Ñ-Ð-Ø�[Š[Ü ×'Ñ'Ð'Ø×"Ñ"Ð.Ü ×4Ñ4Ð4ä ×(Ñ(Ð(rH   c                óT   — | j                   D �ci c]  }|t        |«      “Œ c}S c c}w )z;Initial dict of (address, ServerDescription) for all seeds.)r5   r   )r4   Úaddresss     rF   Úget_server_descriptionsz(TopologySettings.get_server_descriptions­   s%   € àCGÇ:Á:ÖN¸�Ô*¨7Ó3Ñ3ÒNÐNùÒNs   �%)"r5   z%Optional[Collection[tuple[str, int]]]r6   úOptional[str]r7   zOptional[Type[Pool]]r8   zOptional[PoolOptions]r9   zOptional[Type[monitor.Monitor]]r:   z#Optional[Type[threading.Condition]]r;   Úintr<   rh   r=   rh   r>   úOptional[_ServerSelector]r?   rg   r@   úOptional[bool]rA   rj   rB   ÚstrrC   rh   rD   rk   rE   zOptional[ObjectId])ÚreturnzCollection[tuple[str, int]])rl   rg   )rl   z
Type[Pool])rl   r   )rl   zType[monitor.Monitor])rl   zType[threading.Condition])rl   rh   )rl   ri   )rl   rj   )rl   rk   )rl   z4dict[Union[tuple[str, int], Any], ServerDescription])Ú__name__Ú
__module__Ú__qualname__r   r   r
   ÚHEARTBEAT_FREQUENCYÚSRV_SERVICE_NAMEÚSERVER_MONITORING_MODErG   Úpropertyr5   r6   r7   r8   r9   r:   r;   r<   r>   r=   r?   rX   rA   rB   rC   rD   rc   rf   © rH   rF   r   r   #   sB  „ ð 8<Ø*.Ø+/Ø.2Ø9=Ø?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rH   r   )"Ú__doc__Ú
__future__r   r"   r1   Ú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   rt   rH   rF   ú<module>r‚      sG   ðñ -Ý "ã Û ß 9Õ 9å "Ý ß .Ý *ß GÝ -Ý ,Ý 8ß Gà€÷LOò LOrH   