docs: def open_connection(
          self,
          connection: str,
          configuration: Config,
          hostname: Optional[str] = None,
          username: Optional[str] = None,
          password: Optional[str] = None,
          port: Optional[int] = None,
          platform: Optional[str] = None,
          extras: Optional[Dict[str, Any]] = None,
          default_to_host_attributes: bool = True,
      ) -> ConnectionPlugin:
          """
          Open a new connection.
  
          If ``default_to_host_attributes`` is set to ``True`` arguments will default to host
          attributes if not specified.
  
          Raises:
              AttributeError: if it's unknown how to establish a connection for the given type
  
          Returns:
              An already established connection
          """
          if connection in self.connections:
              raise ConnectionAlreadyOpen(connection)
  
          self.connections[connection] = self.connections.get_plugin(connection)()
          if default_to_host_attributes:
              conn_params = self.get_connection_parameters(connection)
              self.connections[connection].open(
                  hostname=hostname if hostname is not None else conn_params.hostname,
                  username=username if username is not None else conn_params.username,
                  password=password if password is not None else conn_params.password,
                  port=port if port is not None else conn_params.port,
                  platform=platform if platform is not None else conn_params.platform,
                  extras=extras if extras is not None else conn_params.extras,
                  configuration=configuration,
              )
          else:
              self.connections[connection].open(
                  hostname=hostname,
                  username=username,
                  password=password,
                  port=port,
                  platform=platform,
                  extras=extras,
                  configuration=configuration,
              )
          return self.connections[connection]