docs: def _server_property(self, attr_name):
          """An attribute of the current server's description.
  
          If the client is not connected, this will block until a connection is
          established or raise ServerSelectionTimeoutError if no server is
          available.
  
          Not threadsafe if used multiple times in a single method, since
          the server may change. In such cases, store a local reference to a
          ServerDescription first, then use its properties.
          """
          server = self._topology.select_server(
              writable_server_selector)
  
          return getattr(server.description, attr_name)