mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-24 06:24:18 +02:00
Use anyio.event
This commit is contained in:
parent
814a6e4419
commit
fdfa1fe108
3 changed files with 11 additions and 9 deletions
|
|
@ -196,8 +196,8 @@ class Client(Generic[ClientTransportT]):
|
|||
self._nesting_counter: int = 0
|
||||
self._context_lock = anyio.Lock()
|
||||
self._session_task: asyncio.Task | None = None
|
||||
self._ready_event = asyncio.Event()
|
||||
self._stop_event = asyncio.Event()
|
||||
self._ready_event = anyio.Event()
|
||||
self._stop_event = anyio.Event()
|
||||
|
||||
@property
|
||||
def session(self) -> ClientSession:
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ from typing import (
|
|||
overload,
|
||||
)
|
||||
|
||||
import anyio
|
||||
import httpx
|
||||
from mcp import ClientSession, StdioServerParameters
|
||||
from mcp.client.session import (
|
||||
|
|
@ -327,8 +328,8 @@ class StdioTransport(ClientTransport):
|
|||
|
||||
self._session: ClientSession | None = None
|
||||
self._connect_task: asyncio.Task | None = None
|
||||
self._ready_event = asyncio.Event()
|
||||
self._stop_event = asyncio.Event()
|
||||
self._ready_event = anyio.Event()
|
||||
self._stop_event = anyio.Event()
|
||||
|
||||
@contextlib.asynccontextmanager
|
||||
async def connect_session(
|
||||
|
|
@ -391,8 +392,8 @@ class StdioTransport(ClientTransport):
|
|||
|
||||
# reset variables and events for potential future reconnects
|
||||
self._connect_task = None
|
||||
self._stop_event = asyncio.Event()
|
||||
self._ready_event = asyncio.Event()
|
||||
self._stop_event = anyio.Event()
|
||||
self._ready_event = anyio.Event()
|
||||
|
||||
async def close(self):
|
||||
await self.disconnect()
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import asyncio
|
|||
import logging
|
||||
from unittest.mock import AsyncMock, Mock, patch
|
||||
|
||||
import anyio
|
||||
import pytest
|
||||
|
||||
from fastmcp.server.server import FastMCP
|
||||
|
|
@ -27,7 +28,7 @@ async def test_uvicorn_logging_default_level(
|
|||
"""Tests that FastMCP passes log_level to uvicorn.Config if no log_config is given."""
|
||||
mock_server_instance = AsyncMock()
|
||||
mock_uvicorn_server_constructor.return_value = mock_server_instance
|
||||
serve_finished_event = asyncio.Event()
|
||||
serve_finished_event = anyio.Event()
|
||||
mock_server_instance.serve.side_effect = serve_finished_event.wait
|
||||
|
||||
test_log_level = "warning"
|
||||
|
|
@ -63,7 +64,7 @@ async def test_uvicorn_logging_with_custom_log_config(
|
|||
"""Tests that FastMCP passes log_config to uvicorn.Config and not log_level."""
|
||||
mock_server_instance = AsyncMock()
|
||||
mock_uvicorn_server_constructor.return_value = mock_server_instance
|
||||
serve_finished_event = asyncio.Event()
|
||||
serve_finished_event = anyio.Event()
|
||||
mock_server_instance.serve.side_effect = serve_finished_event.wait
|
||||
|
||||
sample_log_config = {
|
||||
|
|
@ -123,7 +124,7 @@ async def test_uvicorn_logging_custom_log_config_overrides_log_level_param(
|
|||
"""Tests log_config precedence if log_level is also passed to run_http_async."""
|
||||
mock_server_instance = AsyncMock()
|
||||
mock_uvicorn_server_constructor.return_value = mock_server_instance
|
||||
serve_finished_event = asyncio.Event()
|
||||
serve_finished_event = anyio.Event()
|
||||
mock_server_instance.serve.side_effect = serve_finished_event.wait
|
||||
|
||||
sample_log_config = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue