mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2025-12-19 23:04:25 +01:00
rename mcp_python to mcp
This commit is contained in:
@@ -3,7 +3,7 @@ requires = ["hatchling"]
|
|||||||
build-backend = "hatchling.build"
|
build-backend = "hatchling.build"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "mcp-python"
|
name = "mcp"
|
||||||
version = "0.7.0.dev"
|
version = "0.7.0.dev"
|
||||||
description = "Model Context Protocol implementation for Python"
|
description = "Model Context Protocol implementation for Python"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
@@ -18,10 +18,10 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[tool.hatch.build.targets.wheel]
|
[tool.hatch.build.targets.wheel]
|
||||||
packages = ["mcp_python"]
|
packages = ["src/mcp"]
|
||||||
|
|
||||||
[tool.pyright]
|
[tool.pyright]
|
||||||
include = ["mcp_python", "tests"]
|
include = ["src/mcp", "tests"]
|
||||||
venvPath = "."
|
venvPath = "."
|
||||||
venv = ".venv"
|
venv = ".venv"
|
||||||
|
|
||||||
@@ -31,14 +31,14 @@ ignore = []
|
|||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
line-length = 88
|
line-length = 88
|
||||||
target-version = "py38"
|
target-version = "py310"
|
||||||
|
|
||||||
[tool.ruff.lint.per-file-ignores]
|
[tool.ruff.lint.per-file-ignores]
|
||||||
"__init__.py" = ["F401"]
|
"__init__.py" = ["F401"]
|
||||||
|
|
||||||
[tool.uv]
|
[tool.uv]
|
||||||
dev-dependencies = [
|
dev-dependencies = [
|
||||||
"pyright>=1.1.384",
|
"pyright>=1.1.378",
|
||||||
"pytest>=8.3.3",
|
"pytest>=8.3.3",
|
||||||
"ruff>=0.6.9",
|
"ruff>=0.6.9",
|
||||||
"trio>=0.26.2",
|
"trio>=0.26.2",
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ from urllib.parse import urlparse
|
|||||||
import anyio
|
import anyio
|
||||||
import click
|
import click
|
||||||
|
|
||||||
from mcp_python.client.session import ClientSession
|
from mcp.client.session import ClientSession
|
||||||
from mcp_python.client.sse import sse_client
|
from mcp.client.sse import sse_client
|
||||||
from mcp_python.client.stdio import StdioServerParameters, stdio_client
|
from mcp.client.stdio import StdioServerParameters, stdio_client
|
||||||
|
|
||||||
if not sys.warnoptions:
|
if not sys.warnoptions:
|
||||||
import warnings
|
import warnings
|
||||||
@@ -3,9 +3,9 @@ from datetime import timedelta
|
|||||||
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
||||||
from pydantic import AnyUrl
|
from pydantic import AnyUrl
|
||||||
|
|
||||||
from mcp_python.shared.session import BaseSession
|
from mcp.shared.session import BaseSession
|
||||||
from mcp_python.shared.version import SUPPORTED_PROTOCOL_VERSIONS
|
from mcp.shared.version import SUPPORTED_PROTOCOL_VERSIONS
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
LATEST_PROTOCOL_VERSION,
|
LATEST_PROTOCOL_VERSION,
|
||||||
CallToolResult,
|
CallToolResult,
|
||||||
ClientCapabilities,
|
ClientCapabilities,
|
||||||
@@ -56,7 +56,7 @@ class ClientSession(
|
|||||||
)
|
)
|
||||||
|
|
||||||
async def initialize(self) -> InitializeResult:
|
async def initialize(self) -> InitializeResult:
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
InitializeRequest,
|
InitializeRequest,
|
||||||
InitializeRequestParams,
|
InitializeRequestParams,
|
||||||
)
|
)
|
||||||
@@ -77,7 +77,7 @@ class ClientSession(
|
|||||||
listChanged=True
|
listChanged=True
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
clientInfo=Implementation(name="mcp_python", version="0.1.0"),
|
clientInfo=Implementation(name="mcp", version="0.1.0"),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@@ -100,7 +100,7 @@ class ClientSession(
|
|||||||
|
|
||||||
async def send_ping(self) -> EmptyResult:
|
async def send_ping(self) -> EmptyResult:
|
||||||
"""Send a ping request."""
|
"""Send a ping request."""
|
||||||
from mcp_python.types import PingRequest
|
from mcp.types import PingRequest
|
||||||
|
|
||||||
return await self.send_request(
|
return await self.send_request(
|
||||||
ClientRequest(
|
ClientRequest(
|
||||||
@@ -115,7 +115,7 @@ class ClientSession(
|
|||||||
self, progress_token: str | int, progress: float, total: float | None = None
|
self, progress_token: str | int, progress: float, total: float | None = None
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Send a progress notification."""
|
"""Send a progress notification."""
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
ProgressNotification,
|
ProgressNotification,
|
||||||
ProgressNotificationParams,
|
ProgressNotificationParams,
|
||||||
)
|
)
|
||||||
@@ -135,7 +135,7 @@ class ClientSession(
|
|||||||
|
|
||||||
async def set_logging_level(self, level: LoggingLevel) -> EmptyResult:
|
async def set_logging_level(self, level: LoggingLevel) -> EmptyResult:
|
||||||
"""Send a logging/setLevel request."""
|
"""Send a logging/setLevel request."""
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
SetLevelRequest,
|
SetLevelRequest,
|
||||||
SetLevelRequestParams,
|
SetLevelRequestParams,
|
||||||
)
|
)
|
||||||
@@ -152,7 +152,7 @@ class ClientSession(
|
|||||||
|
|
||||||
async def list_resources(self) -> ListResourcesResult:
|
async def list_resources(self) -> ListResourcesResult:
|
||||||
"""Send a resources/list request."""
|
"""Send a resources/list request."""
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
ListResourcesRequest,
|
ListResourcesRequest,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@ class ClientSession(
|
|||||||
|
|
||||||
async def read_resource(self, uri: AnyUrl) -> ReadResourceResult:
|
async def read_resource(self, uri: AnyUrl) -> ReadResourceResult:
|
||||||
"""Send a resources/read request."""
|
"""Send a resources/read request."""
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
ReadResourceRequest,
|
ReadResourceRequest,
|
||||||
ReadResourceRequestParams,
|
ReadResourceRequestParams,
|
||||||
)
|
)
|
||||||
@@ -184,7 +184,7 @@ class ClientSession(
|
|||||||
|
|
||||||
async def subscribe_resource(self, uri: AnyUrl) -> EmptyResult:
|
async def subscribe_resource(self, uri: AnyUrl) -> EmptyResult:
|
||||||
"""Send a resources/subscribe request."""
|
"""Send a resources/subscribe request."""
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
SubscribeRequest,
|
SubscribeRequest,
|
||||||
SubscribeRequestParams,
|
SubscribeRequestParams,
|
||||||
)
|
)
|
||||||
@@ -201,7 +201,7 @@ class ClientSession(
|
|||||||
|
|
||||||
async def unsubscribe_resource(self, uri: AnyUrl) -> EmptyResult:
|
async def unsubscribe_resource(self, uri: AnyUrl) -> EmptyResult:
|
||||||
"""Send a resources/unsubscribe request."""
|
"""Send a resources/unsubscribe request."""
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
UnsubscribeRequest,
|
UnsubscribeRequest,
|
||||||
UnsubscribeRequestParams,
|
UnsubscribeRequestParams,
|
||||||
)
|
)
|
||||||
@@ -220,7 +220,7 @@ class ClientSession(
|
|||||||
self, name: str, arguments: dict | None = None
|
self, name: str, arguments: dict | None = None
|
||||||
) -> CallToolResult:
|
) -> CallToolResult:
|
||||||
"""Send a tools/call request."""
|
"""Send a tools/call request."""
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
CallToolRequest,
|
CallToolRequest,
|
||||||
CallToolRequestParams,
|
CallToolRequestParams,
|
||||||
)
|
)
|
||||||
@@ -237,7 +237,7 @@ class ClientSession(
|
|||||||
|
|
||||||
async def list_prompts(self) -> ListPromptsResult:
|
async def list_prompts(self) -> ListPromptsResult:
|
||||||
"""Send a prompts/list request."""
|
"""Send a prompts/list request."""
|
||||||
from mcp_python.types import ListPromptsRequest
|
from mcp.types import ListPromptsRequest
|
||||||
|
|
||||||
return await self.send_request(
|
return await self.send_request(
|
||||||
ClientRequest(
|
ClientRequest(
|
||||||
@@ -252,7 +252,7 @@ class ClientSession(
|
|||||||
self, name: str, arguments: dict[str, str] | None = None
|
self, name: str, arguments: dict[str, str] | None = None
|
||||||
) -> GetPromptResult:
|
) -> GetPromptResult:
|
||||||
"""Send a prompts/get request."""
|
"""Send a prompts/get request."""
|
||||||
from mcp_python.types import GetPromptRequest, GetPromptRequestParams
|
from mcp.types import GetPromptRequest, GetPromptRequestParams
|
||||||
|
|
||||||
return await self.send_request(
|
return await self.send_request(
|
||||||
ClientRequest(
|
ClientRequest(
|
||||||
@@ -268,7 +268,7 @@ class ClientSession(
|
|||||||
self, ref: ResourceReference | PromptReference, argument: dict
|
self, ref: ResourceReference | PromptReference, argument: dict
|
||||||
) -> CompleteResult:
|
) -> CompleteResult:
|
||||||
"""Send a completion/complete request."""
|
"""Send a completion/complete request."""
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
CompleteRequest,
|
CompleteRequest,
|
||||||
CompleteRequestParams,
|
CompleteRequestParams,
|
||||||
CompletionArgument,
|
CompletionArgument,
|
||||||
@@ -289,7 +289,7 @@ class ClientSession(
|
|||||||
|
|
||||||
async def list_tools(self) -> ListToolsResult:
|
async def list_tools(self) -> ListToolsResult:
|
||||||
"""Send a tools/list request."""
|
"""Send a tools/list request."""
|
||||||
from mcp_python.types import ListToolsRequest
|
from mcp.types import ListToolsRequest
|
||||||
|
|
||||||
return await self.send_request(
|
return await self.send_request(
|
||||||
ClientRequest(
|
ClientRequest(
|
||||||
@@ -302,7 +302,7 @@ class ClientSession(
|
|||||||
|
|
||||||
async def send_roots_list_changed(self) -> None:
|
async def send_roots_list_changed(self) -> None:
|
||||||
"""Send a roots/list_changed notification."""
|
"""Send a roots/list_changed notification."""
|
||||||
from mcp_python.types import RootsListChangedNotification
|
from mcp.types import RootsListChangedNotification
|
||||||
|
|
||||||
await self.send_notification(
|
await self.send_notification(
|
||||||
ClientNotification(
|
ClientNotification(
|
||||||
@@ -9,7 +9,7 @@ from anyio.abc import TaskStatus
|
|||||||
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
||||||
from httpx_sse import aconnect_sse
|
from httpx_sse import aconnect_sse
|
||||||
|
|
||||||
from mcp_python.types import JSONRPCMessage
|
from mcp.types import JSONRPCMessage
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStre
|
|||||||
from anyio.streams.text import TextReceiveStream
|
from anyio.streams.text import TextReceiveStream
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
from mcp_python.types import JSONRPCMessage
|
from mcp.types import JSONRPCMessage
|
||||||
|
|
||||||
# Environment variables to inherit by default
|
# Environment variables to inherit by default
|
||||||
DEFAULT_INHERITED_ENV_VARS = (
|
DEFAULT_INHERITED_ENV_VARS = (
|
||||||
@@ -7,12 +7,12 @@ from typing import Any, Sequence
|
|||||||
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
||||||
from pydantic import AnyUrl
|
from pydantic import AnyUrl
|
||||||
|
|
||||||
from mcp_python.server import types
|
from mcp.server import types
|
||||||
from mcp_python.server.session import ServerSession
|
from mcp.server.session import ServerSession
|
||||||
from mcp_python.server.stdio import stdio_server as stdio_server
|
from mcp.server.stdio import stdio_server as stdio_server
|
||||||
from mcp_python.shared.context import RequestContext
|
from mcp.shared.context import RequestContext
|
||||||
from mcp_python.shared.session import RequestResponder
|
from mcp.shared.session import RequestResponder
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
METHOD_NOT_FOUND,
|
METHOD_NOT_FOUND,
|
||||||
CallToolRequest,
|
CallToolRequest,
|
||||||
ClientNotification,
|
ClientNotification,
|
||||||
@@ -101,7 +101,7 @@ class Server:
|
|||||||
|
|
||||||
return types.InitializationOptions(
|
return types.InitializationOptions(
|
||||||
server_name=self.name,
|
server_name=self.name,
|
||||||
server_version=pkg_version("mcp_python"),
|
server_version=pkg_version("mcp"),
|
||||||
capabilities=self.get_capabilities(
|
capabilities=self.get_capabilities(
|
||||||
notification_options or NotificationOptions(),
|
notification_options or NotificationOptions(),
|
||||||
experimental_capabilities or {},
|
experimental_capabilities or {},
|
||||||
@@ -168,12 +168,12 @@ class Server:
|
|||||||
return decorator
|
return decorator
|
||||||
|
|
||||||
def get_prompt(self):
|
def get_prompt(self):
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
GetPromptRequest,
|
GetPromptRequest,
|
||||||
GetPromptResult,
|
GetPromptResult,
|
||||||
ImageContent,
|
ImageContent,
|
||||||
)
|
)
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
Role as Role,
|
Role as Role,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -232,7 +232,7 @@ class Server:
|
|||||||
return decorator
|
return decorator
|
||||||
|
|
||||||
def read_resource(self):
|
def read_resource(self):
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
BlobResourceContents,
|
BlobResourceContents,
|
||||||
TextResourceContents,
|
TextResourceContents,
|
||||||
)
|
)
|
||||||
@@ -270,7 +270,7 @@ class Server:
|
|||||||
return decorator
|
return decorator
|
||||||
|
|
||||||
def set_logging_level(self):
|
def set_logging_level(self):
|
||||||
from mcp_python.types import EmptyResult
|
from mcp.types import EmptyResult
|
||||||
|
|
||||||
def decorator(func: Callable[[LoggingLevel], Awaitable[None]]):
|
def decorator(func: Callable[[LoggingLevel], Awaitable[None]]):
|
||||||
logger.debug("Registering handler for SetLevelRequest")
|
logger.debug("Registering handler for SetLevelRequest")
|
||||||
@@ -285,7 +285,7 @@ class Server:
|
|||||||
return decorator
|
return decorator
|
||||||
|
|
||||||
def subscribe_resource(self):
|
def subscribe_resource(self):
|
||||||
from mcp_python.types import EmptyResult
|
from mcp.types import EmptyResult
|
||||||
|
|
||||||
def decorator(func: Callable[[AnyUrl], Awaitable[None]]):
|
def decorator(func: Callable[[AnyUrl], Awaitable[None]]):
|
||||||
logger.debug("Registering handler for SubscribeRequest")
|
logger.debug("Registering handler for SubscribeRequest")
|
||||||
@@ -300,7 +300,7 @@ class Server:
|
|||||||
return decorator
|
return decorator
|
||||||
|
|
||||||
def unsubscribe_resource(self):
|
def unsubscribe_resource(self):
|
||||||
from mcp_python.types import EmptyResult
|
from mcp.types import EmptyResult
|
||||||
|
|
||||||
def decorator(func: Callable[[AnyUrl], Awaitable[None]]):
|
def decorator(func: Callable[[AnyUrl], Awaitable[None]]):
|
||||||
logger.debug("Registering handler for UnsubscribeRequest")
|
logger.debug("Registering handler for UnsubscribeRequest")
|
||||||
@@ -328,7 +328,7 @@ class Server:
|
|||||||
return decorator
|
return decorator
|
||||||
|
|
||||||
def call_tool(self):
|
def call_tool(self):
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
CallToolResult,
|
CallToolResult,
|
||||||
EmbeddedResource,
|
EmbeddedResource,
|
||||||
ImageContent,
|
ImageContent,
|
||||||
@@ -337,7 +337,8 @@ class Server:
|
|||||||
|
|
||||||
def decorator(
|
def decorator(
|
||||||
func: Callable[
|
func: Callable[
|
||||||
..., Awaitable[Sequence[str | types.ImageContent | types.EmbeddedResource]]
|
...,
|
||||||
|
Awaitable[Sequence[str | types.ImageContent | types.EmbeddedResource]],
|
||||||
],
|
],
|
||||||
):
|
):
|
||||||
logger.debug("Registering handler for CallToolRequest")
|
logger.debug("Registering handler for CallToolRequest")
|
||||||
@@ -397,7 +398,7 @@ class Server:
|
|||||||
|
|
||||||
def completion(self):
|
def completion(self):
|
||||||
"""Provides completions for prompts and resource templates"""
|
"""Provides completions for prompts and resource templates"""
|
||||||
from mcp_python.types import CompleteResult, Completion, CompletionArgument
|
from mcp.types import CompleteResult, Completion, CompletionArgument
|
||||||
|
|
||||||
def decorator(
|
def decorator(
|
||||||
func: Callable[
|
func: Callable[
|
||||||
@@ -4,10 +4,10 @@ import sys
|
|||||||
|
|
||||||
import anyio
|
import anyio
|
||||||
|
|
||||||
from mcp_python.server.session import ServerSession
|
from mcp.server.session import ServerSession
|
||||||
from mcp_python.server.stdio import stdio_server
|
from mcp.server.stdio import stdio_server
|
||||||
from mcp_python.server.types import InitializationOptions
|
from mcp.server.types import InitializationOptions
|
||||||
from mcp_python.types import ServerCapabilities
|
from mcp.types import ServerCapabilities
|
||||||
|
|
||||||
if not sys.warnoptions:
|
if not sys.warnoptions:
|
||||||
import warnings
|
import warnings
|
||||||
@@ -29,14 +29,14 @@ async def receive_loop(session: ServerSession):
|
|||||||
|
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
version = importlib.metadata.version("mcp_python")
|
version = importlib.metadata.version("mcp")
|
||||||
async with stdio_server() as (read_stream, write_stream):
|
async with stdio_server() as (read_stream, write_stream):
|
||||||
async with (
|
async with (
|
||||||
ServerSession(
|
ServerSession(
|
||||||
read_stream,
|
read_stream,
|
||||||
write_stream,
|
write_stream,
|
||||||
InitializationOptions(
|
InitializationOptions(
|
||||||
server_name="mcp_python",
|
server_name="mcp",
|
||||||
server_version=version,
|
server_version=version,
|
||||||
capabilities=ServerCapabilities(),
|
capabilities=ServerCapabilities(),
|
||||||
),
|
),
|
||||||
@@ -6,12 +6,12 @@ import anyio.lowlevel
|
|||||||
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
||||||
from pydantic import AnyUrl
|
from pydantic import AnyUrl
|
||||||
|
|
||||||
from mcp_python.server.types import InitializationOptions
|
from mcp.server.types import InitializationOptions
|
||||||
from mcp_python.shared.session import (
|
from mcp.shared.session import (
|
||||||
BaseSession,
|
BaseSession,
|
||||||
RequestResponder,
|
RequestResponder,
|
||||||
)
|
)
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
LATEST_PROTOCOL_VERSION,
|
LATEST_PROTOCOL_VERSION,
|
||||||
ClientNotification,
|
ClientNotification,
|
||||||
ClientRequest,
|
ClientRequest,
|
||||||
@@ -103,7 +103,7 @@ class ServerSession(
|
|||||||
self, level: LoggingLevel, data: Any, logger: str | None = None
|
self, level: LoggingLevel, data: Any, logger: str | None = None
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Send a log message notification."""
|
"""Send a log message notification."""
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
LoggingMessageNotification,
|
LoggingMessageNotification,
|
||||||
LoggingMessageNotificationParams,
|
LoggingMessageNotificationParams,
|
||||||
)
|
)
|
||||||
@@ -123,7 +123,7 @@ class ServerSession(
|
|||||||
|
|
||||||
async def send_resource_updated(self, uri: AnyUrl) -> None:
|
async def send_resource_updated(self, uri: AnyUrl) -> None:
|
||||||
"""Send a resource updated notification."""
|
"""Send a resource updated notification."""
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
ResourceUpdatedNotification,
|
ResourceUpdatedNotification,
|
||||||
ResourceUpdatedNotificationParams,
|
ResourceUpdatedNotificationParams,
|
||||||
)
|
)
|
||||||
@@ -150,7 +150,7 @@ class ServerSession(
|
|||||||
model_preferences: ModelPreferences | None = None,
|
model_preferences: ModelPreferences | None = None,
|
||||||
) -> CreateMessageResult:
|
) -> CreateMessageResult:
|
||||||
"""Send a sampling/create_message request."""
|
"""Send a sampling/create_message request."""
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
CreateMessageRequest,
|
CreateMessageRequest,
|
||||||
CreateMessageRequestParams,
|
CreateMessageRequestParams,
|
||||||
)
|
)
|
||||||
@@ -176,7 +176,7 @@ class ServerSession(
|
|||||||
|
|
||||||
async def list_roots(self) -> ListRootsResult:
|
async def list_roots(self) -> ListRootsResult:
|
||||||
"""Send a roots/list request."""
|
"""Send a roots/list request."""
|
||||||
from mcp_python.types import ListRootsRequest
|
from mcp.types import ListRootsRequest
|
||||||
|
|
||||||
return await self.send_request(
|
return await self.send_request(
|
||||||
ServerRequest(
|
ServerRequest(
|
||||||
@@ -189,7 +189,7 @@ class ServerSession(
|
|||||||
|
|
||||||
async def send_ping(self) -> EmptyResult:
|
async def send_ping(self) -> EmptyResult:
|
||||||
"""Send a ping request."""
|
"""Send a ping request."""
|
||||||
from mcp_python.types import PingRequest
|
from mcp.types import PingRequest
|
||||||
|
|
||||||
return await self.send_request(
|
return await self.send_request(
|
||||||
ServerRequest(
|
ServerRequest(
|
||||||
@@ -204,7 +204,7 @@ class ServerSession(
|
|||||||
self, progress_token: str | int, progress: float, total: float | None = None
|
self, progress_token: str | int, progress: float, total: float | None = None
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Send a progress notification."""
|
"""Send a progress notification."""
|
||||||
from mcp_python.types import ProgressNotification, ProgressNotificationParams
|
from mcp.types import ProgressNotification, ProgressNotificationParams
|
||||||
|
|
||||||
await self.send_notification(
|
await self.send_notification(
|
||||||
ServerNotification(
|
ServerNotification(
|
||||||
@@ -12,7 +12,7 @@ from starlette.requests import Request
|
|||||||
from starlette.responses import Response
|
from starlette.responses import Response
|
||||||
from starlette.types import Receive, Scope, Send
|
from starlette.types import Receive, Scope, Send
|
||||||
|
|
||||||
from mcp_python.types import JSONRPCMessage
|
from mcp.types import JSONRPCMessage
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -5,7 +5,7 @@ import anyio
|
|||||||
import anyio.lowlevel
|
import anyio.lowlevel
|
||||||
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
||||||
|
|
||||||
from mcp_python.types import JSONRPCMessage
|
from mcp.types import JSONRPCMessage
|
||||||
|
|
||||||
|
|
||||||
@asynccontextmanager
|
@asynccontextmanager
|
||||||
@@ -8,7 +8,7 @@ from typing import Literal
|
|||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
BlobResourceContents,
|
BlobResourceContents,
|
||||||
Role,
|
Role,
|
||||||
ServerCapabilities,
|
ServerCapabilities,
|
||||||
@@ -6,7 +6,7 @@ from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStre
|
|||||||
from starlette.types import Receive, Scope, Send
|
from starlette.types import Receive, Scope, Send
|
||||||
from starlette.websockets import WebSocket
|
from starlette.websockets import WebSocket
|
||||||
|
|
||||||
from mcp_python.types import JSONRPCMessage
|
from mcp.types import JSONRPCMessage
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Generic, TypeVar
|
from typing import Generic, TypeVar
|
||||||
|
|
||||||
from mcp_python.shared.session import BaseSession
|
from mcp.shared.session import BaseSession
|
||||||
from mcp_python.types import RequestId, RequestParams
|
from mcp.types import RequestId, RequestParams
|
||||||
|
|
||||||
SessionT = TypeVar("SessionT", bound=BaseSession)
|
SessionT = TypeVar("SessionT", bound=BaseSession)
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from mcp_python.types import ErrorData
|
from mcp.types import ErrorData
|
||||||
|
|
||||||
|
|
||||||
class McpError(Exception):
|
class McpError(Exception):
|
||||||
@@ -9,9 +9,9 @@ from typing import AsyncGenerator
|
|||||||
import anyio
|
import anyio
|
||||||
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
||||||
|
|
||||||
from mcp_python.client.session import ClientSession
|
from mcp.client.session import ClientSession
|
||||||
from mcp_python.server import Server
|
from mcp.server import Server
|
||||||
from mcp_python.types import JSONRPCMessage
|
from mcp.types import JSONRPCMessage
|
||||||
|
|
||||||
MessageStream = tuple[
|
MessageStream = tuple[
|
||||||
MemoryObjectReceiveStream[JSONRPCMessage | Exception],
|
MemoryObjectReceiveStream[JSONRPCMessage | Exception],
|
||||||
@@ -3,9 +3,9 @@ from dataclasses import dataclass, field
|
|||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from mcp_python.shared.context import RequestContext
|
from mcp.shared.context import RequestContext
|
||||||
from mcp_python.shared.session import BaseSession
|
from mcp.shared.session import BaseSession
|
||||||
from mcp_python.types import ProgressToken
|
from mcp.types import ProgressToken
|
||||||
|
|
||||||
|
|
||||||
class Progress(BaseModel):
|
class Progress(BaseModel):
|
||||||
@@ -8,8 +8,8 @@ import httpx
|
|||||||
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from mcp_python.shared.exceptions import McpError
|
from mcp.shared.exceptions import McpError
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
ClientNotification,
|
ClientNotification,
|
||||||
ClientRequest,
|
ClientRequest,
|
||||||
ClientResult,
|
ClientResult,
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
from mcp_python.types import LATEST_PROTOCOL_VERSION
|
from mcp.types import LATEST_PROTOCOL_VERSION
|
||||||
|
|
||||||
SUPPORTED_PROTOCOL_VERSIONS = [1, LATEST_PROTOCOL_VERSION]
|
SUPPORTED_PROTOCOL_VERSIONS = [1, LATEST_PROTOCOL_VERSION]
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
import anyio
|
import anyio
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from mcp_python.client.session import ClientSession
|
from mcp.client.session import ClientSession
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
LATEST_PROTOCOL_VERSION,
|
LATEST_PROTOCOL_VERSION,
|
||||||
ClientNotification,
|
ClientNotification,
|
||||||
ClientRequest,
|
ClientRequest,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from mcp_python.client.stdio import StdioServerParameters, stdio_client
|
from mcp.client.stdio import StdioServerParameters, stdio_client
|
||||||
from mcp_python.types import JSONRPCMessage, JSONRPCRequest, JSONRPCResponse
|
from mcp.types import JSONRPCMessage, JSONRPCRequest, JSONRPCResponse
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.anyio
|
@pytest.mark.anyio
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import pytest
|
import pytest
|
||||||
from pydantic import AnyUrl
|
from pydantic import AnyUrl
|
||||||
|
|
||||||
from mcp_python.server import Server
|
from mcp.server import Server
|
||||||
from mcp_python.server.types import InitializationOptions
|
from mcp.server.types import InitializationOptions
|
||||||
from mcp_python.types import Resource, ServerCapabilities
|
from mcp.types import Resource, ServerCapabilities
|
||||||
|
|
||||||
TEST_INITIALIZATION_OPTIONS = InitializationOptions(
|
TEST_INITIALIZATION_OPTIONS = InitializationOptions(
|
||||||
server_name="my_mcp_server",
|
server_name="my_mcp_server",
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import anyio
|
import anyio
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from mcp_python.client.session import ClientSession
|
from mcp.client.session import ClientSession
|
||||||
from mcp_python.server import NotificationOptions, Server
|
from mcp.server import NotificationOptions, Server
|
||||||
from mcp_python.server.session import ServerSession
|
from mcp.server.session import ServerSession
|
||||||
from mcp_python.server.types import InitializationOptions
|
from mcp.server.types import InitializationOptions
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
ClientNotification,
|
ClientNotification,
|
||||||
InitializedNotification,
|
InitializedNotification,
|
||||||
JSONRPCMessage,
|
JSONRPCMessage,
|
||||||
@@ -38,7 +38,7 @@ async def test_server_session_initialize():
|
|||||||
client_to_server_receive,
|
client_to_server_receive,
|
||||||
server_to_client_send,
|
server_to_client_send,
|
||||||
InitializationOptions(
|
InitializationOptions(
|
||||||
server_name="mcp_python",
|
server_name="mcp",
|
||||||
server_version="0.1.0",
|
server_version="0.1.0",
|
||||||
capabilities=ServerCapabilities(),
|
capabilities=ServerCapabilities(),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import io
|
|||||||
import anyio
|
import anyio
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from mcp_python.server.stdio import stdio_server
|
from mcp.server.stdio import stdio_server
|
||||||
from mcp_python.types import JSONRPCMessage, JSONRPCRequest, JSONRPCResponse
|
from mcp.types import JSONRPCMessage, JSONRPCRequest, JSONRPCResponse
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.anyio
|
@pytest.mark.anyio
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import pytest
|
import pytest
|
||||||
from typing_extensions import AsyncGenerator
|
from typing_extensions import AsyncGenerator
|
||||||
|
|
||||||
from mcp_python.client.session import ClientSession
|
from mcp.client.session import ClientSession
|
||||||
from mcp_python.server import Server
|
from mcp.server import Server
|
||||||
from mcp_python.shared.memory import (
|
from mcp.shared.memory import (
|
||||||
create_connected_server_and_client_session,
|
create_connected_server_and_client_session,
|
||||||
)
|
)
|
||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
EmptyResult,
|
EmptyResult,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from mcp_python.types import (
|
from mcp.types import (
|
||||||
LATEST_PROTOCOL_VERSION,
|
LATEST_PROTOCOL_VERSION,
|
||||||
ClientRequest,
|
ClientRequest,
|
||||||
JSONRPCMessage,
|
JSONRPCMessage,
|
||||||
@@ -14,7 +14,7 @@ def test_jsonrpc_request():
|
|||||||
"params": {
|
"params": {
|
||||||
"protocolVersion": LATEST_PROTOCOL_VERSION,
|
"protocolVersion": LATEST_PROTOCOL_VERSION,
|
||||||
"capabilities": {"batch": None, "sampling": None},
|
"capabilities": {"batch": None, "sampling": None},
|
||||||
"clientInfo": {"name": "mcp_python", "version": "0.1.0"},
|
"clientInfo": {"name": "mcp", "version": "0.1.0"},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
62
uv.lock
generated
62
uv.lock
generated
@@ -162,8 +162,8 @@ wheels = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mcp-python"
|
name = "mcp"
|
||||||
version = "0.6.1"
|
version = "0.7.0.dev0"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "anyio" },
|
{ name = "anyio" },
|
||||||
@@ -194,7 +194,7 @@ requires-dist = [
|
|||||||
|
|
||||||
[package.metadata.requires-dev]
|
[package.metadata.requires-dev]
|
||||||
dev = [
|
dev = [
|
||||||
{ name = "pyright", specifier = ">=1.1.384" },
|
{ name = "pyright", specifier = ">=1.1.378" },
|
||||||
{ name = "pytest", specifier = ">=8.3.3" },
|
{ name = "pytest", specifier = ">=8.3.3" },
|
||||||
{ name = "ruff", specifier = ">=0.6.9" },
|
{ name = "ruff", specifier = ">=0.6.9" },
|
||||||
{ name = "trio", specifier = ">=0.26.2" },
|
{ name = "trio", specifier = ">=0.26.2" },
|
||||||
@@ -223,11 +223,11 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "packaging"
|
name = "packaging"
|
||||||
version = "24.1"
|
version = "24.2"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/51/65/50db4dda066951078f0a96cf12f4b9ada6e4b811516bf0262c0f4f7064d4/packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", size = 148788 }
|
sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124", size = 53985 },
|
{ url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -331,15 +331,15 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyright"
|
name = "pyright"
|
||||||
version = "1.1.385"
|
version = "1.1.388"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "nodeenv" },
|
{ name = "nodeenv" },
|
||||||
{ name = "typing-extensions" },
|
{ name = "typing-extensions" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/29/ca/3238db97766ecfd6b2758fb50727a0b433e7b1bb6be0de090ed08b291fff/pyright-1.1.385.tar.gz", hash = "sha256:1bf042b8f080441534aa02101dea30f8fc2efa8f7b6f1ab05197c21317f5bfa7", size = 21971 }
|
sdist = { url = "https://files.pythonhosted.org/packages/9c/83/e9867538a794638d2d20ac3ab3106a31aca1d9cfea530c9b2921809dae03/pyright-1.1.388.tar.gz", hash = "sha256:0166d19b716b77fd2d9055de29f71d844874dbc6b9d3472ccd22df91db3dfa34", size = 21939 }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/e3/39/877484412a1079003a7645375b487bd7c422692f4e5b7c2030dea3e83043/pyright-1.1.385-py3-none-any.whl", hash = "sha256:e5b9a1b8d492e13004d822af94d07d235f2c7c158457293b51ab2214c8c5b375", size = 18579 },
|
{ url = "https://files.pythonhosted.org/packages/03/57/7fb00363b7f267a398c5bdf4f55f3e64f7c2076b2e7d2901b3373d52b6ff/pyright-1.1.388-py3-none-any.whl", hash = "sha256:c7068e9f2c23539c6ac35fc9efac6c6c1b9aa5a0ce97a9a8a6cf0090d7cbf84c", size = 18579 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -361,27 +361,27 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruff"
|
name = "ruff"
|
||||||
version = "0.7.0"
|
version = "0.7.3"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/2c/c7/f3367d1da5d568192968c5c9e7f3d51fb317b9ac04828493b23d8fce8ce6/ruff-0.7.0.tar.gz", hash = "sha256:47a86360cf62d9cd53ebfb0b5eb0e882193fc191c6d717e8bef4462bc3b9ea2b", size = 3146645 }
|
sdist = { url = "https://files.pythonhosted.org/packages/4b/06/09d1276df977eece383d0ed66052fc24ec4550a61f8fbc0a11200e690496/ruff-0.7.3.tar.gz", hash = "sha256:e1d1ba2e40b6e71a61b063354d04be669ab0d39c352461f3d789cac68b54a313", size = 3243664 }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/48/59/a0275a0913f3539498d116046dd679cd657fe3b7caf5afe1733319414932/ruff-0.7.0-py3-none-linux_armv6l.whl", hash = "sha256:0cdf20c2b6ff98e37df47b2b0bd3a34aaa155f59a11182c1303cce79be715628", size = 10434007 },
|
{ url = "https://files.pythonhosted.org/packages/c0/56/933d433c2489e4642487b835f53dd9ff015fb3d8fa459b09bb2ce42d7c4b/ruff-0.7.3-py3-none-linux_armv6l.whl", hash = "sha256:34f2339dc22687ec7e7002792d1f50712bf84a13d5152e75712ac08be565d344", size = 10372090 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/cd/94/da0ba5f956d04c90dd899209904210600009dcda039ce840d83eb4298c7d/ruff-0.7.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:496494d350c7fdeb36ca4ef1c9f21d80d182423718782222c29b3e72b3512737", size = 10048066 },
|
{ url = "https://files.pythonhosted.org/packages/20/ea/1f0a22a6bcdd3fc26c73f63a025d05bd565901b729d56bcb093c722a6c4c/ruff-0.7.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:fb397332a1879b9764a3455a0bb1087bda876c2db8aca3a3cbb67b3dbce8cda0", size = 10190037 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/57/1d/e5cc149ecc46e4f203403a79ccd170fad52d316f98b87d0f63b1945567db/ruff-0.7.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:214b88498684e20b6b2b8852c01d50f0651f3cc6118dfa113b4def9f14faaf06", size = 9711389 },
|
{ url = "https://files.pythonhosted.org/packages/16/74/aca75666e0d481fe394e76a8647c44ea919087748024924baa1a17371e3e/ruff-0.7.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:37d0b619546103274e7f62643d14e1adcbccb242efda4e4bdb9544d7764782e9", size = 9811998 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/05/67/fb7ea2c869c539725a16c5bc294e9aa34f8b1b6fe702f1d173a5da517c2b/ruff-0.7.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630fce3fefe9844e91ea5bbf7ceadab4f9981f42b704fae011bb8efcaf5d84be", size = 10755174 },
|
{ url = "https://files.pythonhosted.org/packages/20/a1/cf446a0d7f78ea1f0bd2b9171c11dfe746585c0c4a734b25966121eb4f5d/ruff-0.7.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d59f0c3ee4d1a6787614e7135b72e21024875266101142a09a61439cb6e38a5", size = 10620626 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/5f/f0/13703bc50536a0613ea3dce991116e5f0917a1f05528c6ab738b33c08d3f/ruff-0.7.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:211d877674e9373d4bb0f1c80f97a0201c61bcd1e9d045b6e9726adc42c156aa", size = 10196040 },
|
{ url = "https://files.pythonhosted.org/packages/cd/c1/82b27d09286ae855f5d03b1ad37cf243f21eb0081732d4d7b0d658d439cb/ruff-0.7.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:44eb93c2499a169d49fafd07bc62ac89b1bc800b197e50ff4633aed212569299", size = 10177598 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/99/c1/77b04ab20324ab03d333522ee55fb0f1c38e3ca0d326b4905f82ce6b6c70/ruff-0.7.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:194d6c46c98c73949a106425ed40a576f52291c12bc21399eb8f13a0f7073495", size = 11033684 },
|
{ url = "https://files.pythonhosted.org/packages/b9/42/c0acac22753bf74013d035a5ef6c5c4c40ad4d6686bfb3fda7c6f37d9b37/ruff-0.7.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6d0242ce53f3a576c35ee32d907475a8d569944c0407f91d207c8af5be5dae4e", size = 11171963 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/f2/97/f463334dc4efeea3551cd109163df15561c18a1c3ec13d51643740fd36ba/ruff-0.7.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:82c2579b82b9973a110fab281860403b397c08c403de92de19568f32f7178598", size = 11803700 },
|
{ url = "https://files.pythonhosted.org/packages/43/18/bb0befb7fb9121dd9009e6a72eb98e24f1bacb07c6f3ecb55f032ba98aed/ruff-0.7.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:6b6224af8b5e09772c2ecb8dc9f3f344c1aa48201c7f07e7315367f6dd90ac29", size = 11856157 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/b4/f8/a31d40c4bb92933d376a53e7c5d0245d9b27841357e4820e96d38f54b480/ruff-0.7.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9af971fe85dcd5eaed8f585ddbc6bdbe8c217fb8fcf510ea6bca5bdfff56040e", size = 11347848 },
|
{ url = "https://files.pythonhosted.org/packages/5e/91/04e98d7d6e32eca9d1372be595f9abc7b7f048795e32eb2edbd8794d50bd/ruff-0.7.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c50f95a82b94421c964fae4c27c0242890a20fe67d203d127e84fbb8013855f5", size = 11440331 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/83/62/0c133b35ddaf91c65c30a56718b80bdef36bfffc35684d29e3a4878e0ea3/ruff-0.7.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b641c7f16939b7d24b7bfc0be4102c56562a18281f84f635604e8a6989948914", size = 12480632 },
|
{ url = "https://files.pythonhosted.org/packages/f5/dc/3fe99f2ce10b76d389041a1b9f99e7066332e479435d4bebcceea16caff5/ruff-0.7.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7f3eff9961b5d2644bcf1616c606e93baa2d6b349e8aa8b035f654df252c8c67", size = 12725354 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/46/96/464058dd1d980014fb5aa0a1254e78799efb3096fc7a4823cd66a1621276/ruff-0.7.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d71672336e46b34e0c90a790afeac8a31954fd42872c1f6adaea1dff76fd44f9", size = 10941919 },
|
{ url = "https://files.pythonhosted.org/packages/43/7b/1daa712de1c5bc6cbbf9fa60e9c41cc48cda962dc6d2c4f2a224d2c3007e/ruff-0.7.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8963cab06d130c4df2fd52c84e9f10d297826d2e8169ae0c798b6221be1d1d2", size = 11010091 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/a0/f7/bda37ec77986a435dde44e1f59374aebf4282a5fa9cf17735315b847141f/ruff-0.7.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ab7d98c7eed355166f367597e513a6c82408df4181a937628dbec79abb2a1fe4", size = 10745519 },
|
{ url = "https://files.pythonhosted.org/packages/b6/db/1227a903587432eb569e57a95b15a4f191a71fe315cde4c0312df7bc85da/ruff-0.7.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:61b46049d6edc0e4317fb14b33bd693245281a3007288b68a3f5b74a22a0746d", size = 10610687 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/c2/33/5f77fc317027c057b61a848020a47442a1cbf12e592df0e41e21f4d0f3bd/ruff-0.7.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1eb54986f770f49edb14f71d33312d79e00e629a57387382200b1ef12d6a4ef9", size = 10284872 },
|
{ url = "https://files.pythonhosted.org/packages/db/e2/dc41ee90c3085aadad4da614d310d834f641aaafddf3dfbba08210c616ce/ruff-0.7.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:10ebce7696afe4644e8c1a23b3cf8c0f2193a310c18387c06e583ae9ef284de2", size = 10254843 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/ff/50/98aec292bc9537f640b8d031c55f3414bf15b6ed13b3e943fed75ac927b9/ruff-0.7.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:dc452ba6f2bb9cf8726a84aa877061a2462afe9ae0ea1d411c53d226661c601d", size = 10600334 },
|
{ url = "https://files.pythonhosted.org/packages/6f/09/5f6cac1c91542bc5bd33d40b4c13b637bf64d7bb29e091dadb01b62527fe/ruff-0.7.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:3f36d56326b3aef8eeee150b700e519880d1aab92f471eefdef656fd57492aa2", size = 10730962 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/f2/85/12607ae3201423a179b8cfadc7cb1e57d02cd0135e45bd0445acb4cef327/ruff-0.7.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:4b406c2dce5be9bad59f2de26139a86017a517e6bcd2688da515481c05a2cb11", size = 11017333 },
|
{ url = "https://files.pythonhosted.org/packages/d3/42/89a4b9a24ef7d00269e24086c417a006f9a3ffeac2c80f2629eb5ce140ee/ruff-0.7.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:5d024301109a0007b78d57ab0ba190087b43dce852e552734ebf0b0b85e4fb16", size = 11101907 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/d4/7f/3b85a56879e705d5f46ec14daf8a439fca05c3081720fe3dc3209100922d/ruff-0.7.0-py3-none-win32.whl", hash = "sha256:f6c968509f767776f524a8430426539587d5ec5c662f6addb6aa25bc2e8195ec", size = 8570962 },
|
{ url = "https://files.pythonhosted.org/packages/b0/5c/efdb4777686683a8edce94ffd812783bddcd3d2454d38c5ac193fef7c500/ruff-0.7.3-py3-none-win32.whl", hash = "sha256:4ba81a5f0c5478aa61674c5a2194de8b02652f17addf8dfc40c8937e6e7d79fc", size = 8611095 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/39/9f/c5ee2b40d377354dabcc23cff47eb299de4b4d06d345068f8f8cc1eadac8/ruff-0.7.0-py3-none-win_amd64.whl", hash = "sha256:ff4aabfbaaba880e85d394603b9e75d32b0693152e16fa659a3064a85df7fce2", size = 9365544 },
|
{ url = "https://files.pythonhosted.org/packages/bb/b8/28fbc6a4efa50178f973972d1c84b2d0a33cdc731588522ab751ac3da2f5/ruff-0.7.3-py3-none-win_amd64.whl", hash = "sha256:588a9ff2fecf01025ed065fe28809cd5a53b43505f48b69a1ac7707b1b7e4088", size = 9418283 },
|
||||||
{ url = "https://files.pythonhosted.org/packages/89/8b/ee1509f60148cecba644aa718f6633216784302458340311898aaf0b1bed/ruff-0.7.0-py3-none-win_arm64.whl", hash = "sha256:10842f69c245e78d6adec7e1db0a7d9ddc2fff0621d730e61657b64fa36f207e", size = 8695763 },
|
{ url = "https://files.pythonhosted.org/packages/3f/77/b587cba6febd5e2003374f37eb89633f79f161e71084f94057c8653b7fb3/ruff-0.7.3-py3-none-win_arm64.whl", hash = "sha256:1713e2c5545863cdbfe2cbce21f69ffaf37b813bfd1fb3b90dc9a6f1963f5a8c", size = 8725228 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -418,14 +418,14 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "starlette"
|
name = "starlette"
|
||||||
version = "0.41.0"
|
version = "0.41.2"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "anyio" },
|
{ name = "anyio" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/78/53/c3a36690a923706e7ac841f649c64f5108889ab1ec44218dac45771f252a/starlette-0.41.0.tar.gz", hash = "sha256:39cbd8768b107d68bfe1ff1672b38a2c38b49777de46d2a592841d58e3bf7c2a", size = 2573755 }
|
sdist = { url = "https://files.pythonhosted.org/packages/3e/da/1fb4bdb72ae12b834becd7e1e7e47001d32f91ec0ce8d7bc1b618d9f0bd9/starlette-0.41.2.tar.gz", hash = "sha256:9834fd799d1a87fd346deb76158668cfa0b0d56f85caefe8268e2d97c3468b62", size = 2573867 }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/35/c6/a4443bfabf5629129512ca0e07866c4c3c094079ba4e9b2551006927253c/starlette-0.41.0-py3-none-any.whl", hash = "sha256:a0193a3c413ebc9c78bff1c3546a45bb8c8bcb4a84cae8747d650a65bd37210a", size = 73216 },
|
{ url = "https://files.pythonhosted.org/packages/54/43/f185bfd0ca1d213beb4293bed51d92254df23d8ceaf6c0e17146d508a776/starlette-0.41.2-py3-none-any.whl", hash = "sha256:fbc189474b4731cf30fcef52f18a8d070e3f3b46c6a04c97579e85e6ffca942d", size = 73259 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
Reference in New Issue
Block a user