Skip to content

Commit 3730b1f

Browse files
committed
chore: apply new ruff rules
1 parent d1e5cab commit 3730b1f

5 files changed

Lines changed: 39 additions & 37 deletions

File tree

app/core/jwt.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1-
from datetime import datetime, timedelta, timezone
2-
from typing import Any, Dict
1+
from datetime import UTC, datetime, timedelta
2+
from typing import Any
33

44
import jwt
55

66
from core.config import settings
77

88

9-
def create_access_token(data: Dict):
9+
def create_access_token(data: dict):
1010
to_encode = data.copy()
11-
expire = datetime.now(timezone.utc) + timedelta(
12-
minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES
13-
)
11+
expire = datetime.now(UTC) + timedelta(minutes=settings.ACCESS_TOKEN_EXPIRE_MINUTES)
1412
to_encode.update({"exp": expire, "type": "access"})
1513
encoded_jwt = jwt.encode(
1614
to_encode,
@@ -20,11 +18,9 @@ def create_access_token(data: Dict):
2018
return encoded_jwt
2119

2220

23-
def create_refresh_token(data: Dict[str, str]) -> str:
24-
to_encode: Dict[str, Any] = data.copy()
25-
expire = datetime.now(timezone.utc) + timedelta(
26-
days=settings.REFRESH_TOKEN_EXPIRE_DAYS
27-
)
21+
def create_refresh_token(data: dict[str, str]) -> str:
22+
to_encode: dict[str, Any] = data.copy()
23+
expire = datetime.now(UTC) + timedelta(days=settings.REFRESH_TOKEN_EXPIRE_DAYS)
2824
to_encode.update({"exp": expire, "type": "refresh"})
2925
encoded_jwt = jwt.encode(
3026
to_encode,
@@ -38,7 +34,7 @@ def decode_access_token(token: str):
3834
return jwt.decode(token, settings.SECRET_KEY, algorithms=[settings.JWT_ALGORITHM])
3935

4036

41-
def verify_refresh_token(token: str) -> Dict | None:
37+
def verify_refresh_token(token: str) -> dict | None:
4238
payload = jwt.decode(
4339
token, settings.SECRET_KEY, algorithms=[settings.JWT_ALGORITHM]
4440
)

app/core/logger.py

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,19 @@
22
import logging
33
import logging.config
44
import sys
5-
from datetime import datetime, timezone
5+
from datetime import UTC, datetime
66
from pathlib import Path
7-
from typing import Any, Dict
7+
from typing import Any
8+
9+
_EXTRA_LOG_FIELDS = (
10+
"request_id",
11+
"method",
12+
"path",
13+
"client_host",
14+
"query_params",
15+
"status_code",
16+
"duration_ms",
17+
)
818

919

1020
class JsonFormatter(logging.Formatter):
@@ -23,8 +33,8 @@ def format(self, record: logging.LogRecord) -> str:
2333
Returns:
2434
JSON-formatted string with log information.
2535
"""
26-
log_data: Dict[str, Any] = {
27-
"timestamp": datetime.now(timezone.utc).isoformat(),
36+
log_data: dict[str, Any] = {
37+
"timestamp": datetime.now(UTC).isoformat(),
2838
"level": record.levelname,
2939
"logger": record.name,
3040
"module": record.module,
@@ -34,22 +44,10 @@ def format(self, record: logging.LogRecord) -> str:
3444
}
3545
if record.exc_info:
3646
log_data["exception"] = self.formatException(record.exc_info)
37-
# core/logging.py
38-
if hasattr(record, "request_id"):
39-
log_data["request_id"] = getattr(record, "request_id")
40-
if hasattr(record, "method"):
41-
log_data["method"] = getattr(record, "method")
42-
if hasattr(record, "path"):
43-
log_data["path"] = getattr(record, "path")
44-
if hasattr(record, "client_host"):
45-
log_data["client_host"] = getattr(record, "client_host")
46-
if hasattr(record, "query_params"):
47-
log_data["query_params"] = getattr(record, "query_params")
48-
if hasattr(record, "status_code"):
49-
log_data["status_code"] = getattr(record, "status_code")
50-
if hasattr(record, "duration_ms"):
51-
log_data["duration_ms"] = getattr(record, "duration_ms")
52-
# all routers
47+
for field in _EXTRA_LOG_FIELDS:
48+
value = getattr(record, field, None)
49+
if value is not None:
50+
log_data[field] = value
5351
return json.dumps(log_data, default=str)
5452

5553

app/middlewares/logging.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import time
22
import uuid
3-
from typing import Callable
3+
from collections.abc import Callable
44

55
from core.logger import get_logger
66
from fastapi import Request, Response

app/services/auth.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ async def get_current_user(
4848
username = payload.get("sub")
4949
if not username:
5050
raise credentials_exception
51-
except InvalidTokenError:
52-
raise credentials_exception
51+
except InvalidTokenError as err:
52+
raise credentials_exception from err
5353
user = await get_user(username=username)
5454
if not user:
5555
raise credentials_exception

app/services/user.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ async def create_user(user: UserCreate) -> User | None:
2727
**user.model_dump(exclude={"password"}), hashed_password=hashed_password
2828
)
2929
created_user = await insert_user(user=user_in_db)
30-
return User(**created_user.model_dump(exclude={"hashed_password"})) if created_user else None
30+
return (
31+
User(**created_user.model_dump(exclude={"hashed_password"}))
32+
if created_user
33+
else None
34+
)
3135

3236

3337
async def change_password(user: User, new_password: str) -> User | None:
@@ -39,4 +43,8 @@ async def change_password(user: User, new_password: str) -> User | None:
3943
**user.model_dump(exclude={"password"}), hashed_password=hashed_password
4044
)
4145
updated_user = await update_user(user=user_in_db)
42-
return User(**updated_user.model_dump(exclude={"hashed_password"})) if updated_user else None
46+
return (
47+
User(**updated_user.model_dump(exclude={"hashed_password"}))
48+
if updated_user
49+
else None
50+
)

0 commit comments

Comments
 (0)