MCPcopy Index your code
hub / github.com/mongodb/mongo-python-driver / __init__

Method __init__

pymongo/asynchronous/topology.py:107–216  ·  view source on GitHub ↗
(self, topology_settings: TopologySettings)

Source from the content-addressed store, hash-verified

105 """Monitor a topology of one or more servers."""
106
107 def __init__(self, topology_settings: TopologySettings):
108 self._topology_id = topology_settings._topology_id
109 self._listeners = topology_settings._pool_options._event_listeners
110 self._publish_server = self._listeners is not None and self._listeners.enabled_for_server
111 self._publish_tp = self._listeners is not None and self._listeners.enabled_for_topology
112
113 # Create events queue if there are publishers.
114 self._events: queue.Queue[Any] | None = None
115 self.__events_executor: Any = None
116
117 if self._publish_server or self._publish_tp:
118 self._events = queue.Queue(maxsize=100)
119
120 if _SDAM_LOGGER.isEnabledFor(logging.DEBUG):
121 _debug_log(
122 _SDAM_LOGGER,
123 message=_SDAMStatusMessage.START_TOPOLOGY,
124 topologyId=self._topology_id,
125 )
126
127 if self._publish_tp:
128 assert self._events is not None
129 assert self._listeners is not None
130 self._events.put((self._listeners.publish_topology_opened, (self._topology_id,)))
131 self._settings = topology_settings
132 topology_description = TopologyDescription(
133 topology_settings.get_topology_type(),
134 topology_settings.get_server_descriptions(),
135 topology_settings.replica_set_name,
136 None,
137 None,
138 topology_settings,
139 )
140
141 self._description = topology_description
142 initial_td = TopologyDescription(
143 TOPOLOGY_TYPE.Unknown, {}, None, None, None, self._settings
144 )
145 if self._publish_tp:
146 assert self._events is not None
147 assert self._listeners is not None
148 self._events.put(
149 (
150 self._listeners.publish_topology_description_changed,
151 (initial_td, self._description, self._topology_id),
152 )
153 )
154 if _SDAM_LOGGER.isEnabledFor(logging.DEBUG):
155 _debug_log(
156 _SDAM_LOGGER,
157 message=_SDAMStatusMessage.TOPOLOGY_CHANGE,
158 topologyId=self._topology_id,
159 previousDescription=repr(initial_td),
160 newDescription=repr(self._description),
161 )
162
163 for seed in topology_settings.seeds:
164 if self._publish_server:

Callers

nothing calls this directly

Calls 11

server_descriptionsMethod · 0.95
openMethod · 0.95
_debug_logFunction · 0.90
TopologyDescriptionClass · 0.90
_async_create_lockFunction · 0.90
_async_create_conditionFunction · 0.90
_ServerSessionPoolClass · 0.90
SrvMonitorClass · 0.90
putMethod · 0.45
get_topology_typeMethod · 0.45

Tested by

no test coverage detected