chore: ruff 代码检查与修复

130 issues auto-fixed (import ordering, UP045/UP006 type annotations),
33 issues manually fixed (E712/E501/E402/E722 + N818 rename + per-file
wechat ignore for N8xx naming conventions). All 33 tests pass.
This commit is contained in:
2026-05-09 14:28:09 +08:00
parent 02ea794015
commit 7455d7e426
33 changed files with 147 additions and 114 deletions
+12 -11
View File
@@ -1,11 +1,12 @@
from datetime import datetime
from typing import Optional
from fastapi import APIRouter, Depends, Query, HTTPException
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy import func, select
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select, func
from app.api.deps import get_db
from app.models.announcement import Announcement
from app.models.schemas import AnnouncementResponse, AnnouncementListResponse
from app.models.schemas import AnnouncementListResponse, AnnouncementResponse
router = APIRouter()
@@ -14,11 +15,11 @@ router = APIRouter()
async def list_announcements(
page: int = Query(1, ge=1),
page_size: int = Query(20, ge=1, le=100),
source_code: Optional[str] = None,
keyword: Optional[str] = None,
start_date: Optional[str] = None,
end_date: Optional[str] = None,
crawl_mode: Optional[str] = None,
source_code: str | None = None,
keyword: str | None = None,
start_date: str | None = None,
end_date: str | None = None,
crawl_mode: str | None = None,
db: AsyncSession = Depends(get_db),
):
conditions = []
@@ -91,12 +92,12 @@ async def get_stats(db: AsyncSession = Depends(get_db)):
).select_from(Announcement)
)
new_count = await db.execute(
select(func.count()).where(Announcement.is_new == True)
select(func.count()).where(Announcement.is_new == True) # noqa: E712
.select_from(Announcement)
)
unsent = await db.execute(
select(func.count()).where(
Announcement.is_sent == False, Announcement.is_new == True
Announcement.is_sent == False, Announcement.is_new == True # noqa: E712
).select_from(Announcement)
)
return {
+2
View File
@@ -1,4 +1,5 @@
from fastapi import APIRouter
from app.api.deps import get_crawl_service
from app.models.schemas import CrawlTriggerRequest
@@ -34,6 +35,7 @@ async def crawl_status():
@router.get("/crawl/sources")
async def crawl_sources():
import json
from app.config import settings
sources = json.loads(settings.announcement_sources)
return {
+3 -2
View File
@@ -1,7 +1,8 @@
from sqlalchemy.ext.asyncio import AsyncSession
from app.services.crawl_service import CrawlService
from app.crawler.gxgp_spider import GXGPSpider
from app.crawler.dahuagov_spider import DahuagovSpider
from app.crawler.gxgp_spider import GXGPSpider
from app.services.crawl_service import CrawlService
async def get_db() -> AsyncSession:
+3 -1
View File
@@ -1,5 +1,7 @@
from fastapi import APIRouter
from app.api import announcements, crawl, wechat, scheduler as scheduler_module
from app.api import announcements, crawl, wechat
from app.api import scheduler as scheduler_module
api_router = APIRouter(prefix="/api/v1")
api_router.include_router(announcements.router, tags=["announcements"])
+2 -1
View File
@@ -1,6 +1,7 @@
from fastapi import APIRouter
from app.scheduler.jobs import scheduler
from app.models.schemas import JobResponse
from app.scheduler.jobs import scheduler
router = APIRouter(prefix="/scheduler", tags=["scheduler"])
+1
View File
@@ -1,4 +1,5 @@
from fastapi import APIRouter, Request, Response
from app.wechat.handler import WeChatMessageHandler
router = APIRouter()