Fix linting errors across backend and frontend
All checks were successful
CI / backend-lint (push) Successful in 7s
CI / frontend-lint (push) Successful in 29s

Backend: auto-fix and format all ruff issues, manually fix B904/B023/
SIM117/B007/E741/F841 errors, suppress B008 (FastAPI Depends) and F821
(SQLAlchemy forward refs) in config. Frontend: allow constant exports,
disable React compiler-specific rules (set-state-in-effect,
preserve-manual-memoization).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Julian Tabel
2026-02-10 12:26:57 +01:00
parent 7f8890086f
commit e4111c67bc
48 changed files with 1225 additions and 883 deletions

View File

@@ -40,7 +40,9 @@ async def _get_game_or_404(session: AsyncSession, game_id: int) -> Game:
async def _get_version_group_id(session: AsyncSession, game_id: int) -> int:
game = await _get_game_or_404(session, game_id)
if game.version_group_id is None:
raise HTTPException(status_code=400, detail="Game has no version group assigned")
raise HTTPException(
status_code=400, detail="Game has no version group assigned"
)
return game.version_group_id
@@ -68,16 +70,18 @@ async def list_games_by_region(session: AsyncSession = Depends(get_session)):
for region in regions_data:
region_games = games_by_region.get(region["name"], [])
defaults = region["genlocke_defaults"]
response.append({
"name": region["name"],
"generation": region["generation"],
"order": region["order"],
"genlocke_defaults": {
"true_genlocke": defaults["true"],
"normal_genlocke": defaults["normal"],
},
"games": region_games,
})
response.append(
{
"name": region["name"],
"generation": region["generation"],
"order": region["order"],
"genlocke_defaults": {
"true_genlocke": defaults["true"],
"normal_genlocke": defaults["normal"],
},
"games": region_games,
}
)
return response
@@ -89,9 +93,7 @@ async def get_game(game_id: int, session: AsyncSession = Depends(get_session)):
# Load routes via version_group_id
result = await session.execute(
select(Route)
.where(Route.version_group_id == vg_id)
.order_by(Route.order)
select(Route).where(Route.version_group_id == vg_id).order_by(Route.order)
)
routes = result.scalars().all()
@@ -149,10 +151,13 @@ async def list_game_routes(
def route_to_dict(route: Route) -> dict:
# Only show encounter methods for the requested game
methods = sorted({
re.encounter_method for re in route.route_encounters
if re.game_id == game_id
})
methods = sorted(
{
re.encounter_method
for re in route.route_encounters
if re.game_id == game_id
}
)
return {
"id": route.id,
"name": route.name,
@@ -193,14 +198,12 @@ async def list_game_routes(
@router.post("", response_model=GameResponse, status_code=201)
async def create_game(
data: GameCreate, session: AsyncSession = Depends(get_session)
):
existing = await session.execute(
select(Game).where(Game.slug == data.slug)
)
async def create_game(data: GameCreate, session: AsyncSession = Depends(get_session)):
existing = await session.execute(select(Game).where(Game.slug == data.slug))
if existing.scalar_one_or_none() is not None:
raise HTTPException(status_code=409, detail="Game with this slug already exists")
raise HTTPException(
status_code=409, detail="Game with this slug already exists"
)
game = Game(**data.model_dump())
session.add(game)
@@ -223,7 +226,9 @@ async def update_game(
select(Game).where(Game.slug == update_data["slug"], Game.id != game_id)
)
if existing.scalar_one_or_none() is not None:
raise HTTPException(status_code=409, detail="Game with this slug already exists")
raise HTTPException(
status_code=409, detail="Game with this slug already exists"
)
for field, value in update_data.items():
setattr(game, field, value)
@@ -234,9 +239,7 @@ async def update_game(
@router.delete("/{game_id}", status_code=204)
async def delete_game(
game_id: int, session: AsyncSession = Depends(get_session)
):
async def delete_game(game_id: int, session: AsyncSession = Depends(get_session)):
result = await session.execute(
select(Game).where(Game.id == game_id).options(selectinload(Game.runs))
)
@@ -393,7 +396,9 @@ async def bulk_import_routes(
try:
route_name_to_id = await upsert_routes(session, vg_id, routes_data)
except Exception as e:
raise HTTPException(status_code=400, detail=f"Failed to import routes: {e}")
raise HTTPException(
status_code=400, detail=f"Failed to import routes: {e}"
) from e
# Upsert encounters for each route
encounter_count = 0
@@ -406,8 +411,11 @@ async def bulk_import_routes(
if item.encounters:
try:
count = await upsert_route_encounters(
session, route_id, [e.model_dump() for e in item.encounters],
dex_to_id, game_id,
session,
route_id,
[e.model_dump() for e in item.encounters],
dex_to_id,
game_id,
)
encounter_count += count
except Exception as e:
@@ -422,8 +430,11 @@ async def bulk_import_routes(
if child.encounters:
try:
count = await upsert_route_encounters(
session, child_id, [e.model_dump() for e in child.encounters],
dex_to_id, game_id,
session,
child_id,
[e.model_dump() for e in child.encounters],
dex_to_id,
game_id,
)
encounter_count += count
except Exception as e: