diff --git a/nextcloud_mcp_server/app.py b/nextcloud_mcp_server/app.py index 00481f4..21939a4 100644 --- a/nextcloud_mcp_server/app.py +++ b/nextcloud_mcp_server/app.py @@ -5,6 +5,7 @@ from contextlib import AsyncExitStack, asynccontextmanager from dataclasses import dataclass import click +import httpx import uvicorn from mcp.server.auth.settings import AuthSettings from mcp.server.fastmcp import Context, FastMCP @@ -14,7 +15,7 @@ from starlette.routing import Mount from nextcloud_mcp_server.auth import NextcloudTokenVerifier, load_or_register_client from nextcloud_mcp_server.client import NextcloudClient -from nextcloud_mcp_server.config import setup_logging, LOGGING_CONFIG +from nextcloud_mcp_server.config import LOGGING_CONFIG, setup_logging from nextcloud_mcp_server.context import get_client as get_nextcloud_client from nextcloud_mcp_server.server import ( configure_calendar_tools, @@ -176,8 +177,6 @@ async def app_lifespan_oauth(server: FastMCP) -> AsyncIterator[OAuthAppContext]: try: # Fetch OIDC discovery - import httpx - async with httpx.AsyncClient() as client: response = await client.get(discovery_url) response.raise_for_status() @@ -266,8 +265,6 @@ async def setup_oauth_config(): logger.info(f"Performing OIDC discovery: {discovery_url}") # Fetch OIDC discovery - import httpx - async with httpx.AsyncClient() as client: response = await client.get(discovery_url) response.raise_for_status() diff --git a/nextcloud_mcp_server/client/__init__.py b/nextcloud_mcp_server/client/__init__.py index ae37e79..094a85f 100644 --- a/nextcloud_mcp_server/client/__init__.py +++ b/nextcloud_mcp_server/client/__init__.py @@ -21,8 +21,8 @@ from .groups import GroupsClient from .notes import NotesClient from .sharing import SharingClient from .tables import TablesClient -from .webdav import WebDAVClient from .users import UsersClient +from .webdav import WebDAVClient logger = logging.getLogger(__name__) diff --git a/nextcloud_mcp_server/client/calendar.py b/nextcloud_mcp_server/client/calendar.py index 98830d3..22112e1 100644 --- a/nextcloud_mcp_server/client/calendar.py +++ b/nextcloud_mcp_server/client/calendar.py @@ -7,9 +7,8 @@ import xml.etree.ElementTree as ET from typing import Any, Dict, List, Optional, Tuple from httpx import HTTPStatusError -from icalendar import Alarm, Calendar +from icalendar import Alarm, Calendar, vRecur from icalendar import Event as ICalEvent -from icalendar import vRecur from .base import BaseNextcloudClient diff --git a/nextcloud_mcp_server/client/users.py b/nextcloud_mcp_server/client/users.py index 210fea7..b85af69 100644 --- a/nextcloud_mcp_server/client/users.py +++ b/nextcloud_mcp_server/client/users.py @@ -1,4 +1,5 @@ -from typing import List, Optional, Dict +from typing import Dict, List, Optional + from nextcloud_mcp_server.client.base import BaseNextcloudClient from nextcloud_mcp_server.models.users import UserDetails diff --git a/nextcloud_mcp_server/models/users.py b/nextcloud_mcp_server/models/users.py index 784254f..770e490 100644 --- a/nextcloud_mcp_server/models/users.py +++ b/nextcloud_mcp_server/models/users.py @@ -1,4 +1,5 @@ from typing import Any, Dict, List, Optional, Union + from pydantic import BaseModel, ConfigDict, Field diff --git a/nextcloud_mcp_server/server/sharing.py b/nextcloud_mcp_server/server/sharing.py index d1a07a4..2c31e9e 100644 --- a/nextcloud_mcp_server/server/sharing.py +++ b/nextcloud_mcp_server/server/sharing.py @@ -2,9 +2,10 @@ import json -from nextcloud_mcp_server.context import get_client from mcp.server.fastmcp import Context, FastMCP +from nextcloud_mcp_server.context import get_client + def configure_sharing_tools(mcp: FastMCP): """Configure sharing-related MCP tools. diff --git a/pyproject.toml b/pyproject.toml index bdd36e3..2ce516a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,6 +40,9 @@ version_provider = "uv" update_changelog_on_bump = true major_version_zero = true +[tool.ruff.lint] +extend-select = ["I"] + [build-system] requires = ["poetry-core>=2.0.0,<3.0.0"] build-backend = "poetry.core.masonry.api" diff --git a/tests/load/oauth_workloads.py b/tests/load/oauth_workloads.py index 8f54a4e..bbd4b32 100644 --- a/tests/load/oauth_workloads.py +++ b/tests/load/oauth_workloads.py @@ -13,7 +13,7 @@ import time import uuid from abc import ABC, abstractmethod from dataclasses import dataclass, field -from typing import Any, Callable, Awaitable +from typing import Any, Awaitable, Callable from tests.load.oauth_pool import UserSessionWrapper diff --git a/tests/server/test_mcp_oauth.py b/tests/server/test_mcp_oauth.py index ad3b09b..308b3dd 100644 --- a/tests/server/test_mcp_oauth.py +++ b/tests/server/test_mcp_oauth.py @@ -1,5 +1,6 @@ import json import logging + import pytest logger = logging.getLogger(__name__) diff --git a/tests/server/test_users_api.py b/tests/server/test_users_api.py index 172aa15..f81c4f8 100644 --- a/tests/server/test_users_api.py +++ b/tests/server/test_users_api.py @@ -1,4 +1,5 @@ import pytest + from nextcloud_mcp_server.client import NextcloudClient