chore: add ast-grep rule to convert Optional[T] to T | None (#25560)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
-LAN-
2025-09-15 13:06:33 +08:00
committed by GitHub
parent 2e44ebe98d
commit bab4975809
394 changed files with 2555 additions and 2792 deletions

View File

@ -8,7 +8,7 @@ eliminates the need for repetitive language switching logic.
from dataclasses import dataclass
from enum import StrEnum, auto
from typing import Any, Optional, Protocol
from typing import Any, Protocol
from flask import render_template
from pydantic import BaseModel, Field
@ -171,7 +171,7 @@ class EmailI18nService:
email_type: EmailType,
language_code: str,
to: str,
template_context: Optional[dict[str, Any]] = None,
template_context: dict[str, Any] | None = None,
):
"""
Send internationalized email with branding support.
@ -515,7 +515,7 @@ def get_default_email_i18n_service() -> EmailI18nService:
# Global instance
_email_i18n_service: Optional[EmailI18nService] = None
_email_i18n_service: EmailI18nService | None = None
def get_email_i18n_service() -> EmailI18nService:

View File

@ -1,11 +1,9 @@
from typing import Optional
from werkzeug.exceptions import HTTPException
class BaseHTTPException(HTTPException):
error_code: str = "unknown"
data: Optional[dict] = None
data: dict | None = None
def __init__(self, description=None, response=None):
super().__init__(description, response)

View File

@ -269,8 +269,8 @@ class TokenManager:
cls,
token_type: str,
account: Optional["Account"] = None,
email: Optional[str] = None,
additional_data: Optional[dict] = None,
email: str | None = None,
additional_data: dict | None = None,
) -> str:
if account is None and email is None:
raise ValueError("Account or email must be provided")
@ -312,19 +312,19 @@ class TokenManager:
redis_client.delete(token_key)
@classmethod
def get_token_data(cls, token: str, token_type: str) -> Optional[dict[str, Any]]:
def get_token_data(cls, token: str, token_type: str) -> dict[str, Any] | None:
key = cls._get_token_key(token, token_type)
token_data_json = redis_client.get(key)
if token_data_json is None:
logger.warning("%s token %s not found with key %s", token_type, token, key)
return None
token_data: Optional[dict[str, Any]] = json.loads(token_data_json)
token_data: dict[str, Any] | None = json.loads(token_data_json)
return token_data
@classmethod
def _get_current_token_for_account(cls, account_id: str, token_type: str) -> Optional[str]:
def _get_current_token_for_account(cls, account_id: str, token_type: str) -> str | None:
key = cls._get_account_token_key(account_id, token_type)
current_token: Optional[str] = redis_client.get(key)
current_token: str | None = redis_client.get(key)
return current_token
@classmethod

View File

@ -1,6 +1,5 @@
import urllib.parse
from dataclasses import dataclass
from typing import Optional
import requests
@ -41,7 +40,7 @@ class GitHubOAuth(OAuth):
_USER_INFO_URL = "https://api.github.com/user"
_EMAIL_INFO_URL = "https://api.github.com/user/emails"
def get_authorization_url(self, invite_token: Optional[str] = None):
def get_authorization_url(self, invite_token: str | None = None):
params = {
"client_id": self.client_id,
"redirect_uri": self.redirect_uri,
@ -93,7 +92,7 @@ class GoogleOAuth(OAuth):
_TOKEN_URL = "https://oauth2.googleapis.com/token"
_USER_INFO_URL = "https://www.googleapis.com/oauth2/v3/userinfo"
def get_authorization_url(self, invite_token: Optional[str] = None):
def get_authorization_url(self, invite_token: str | None = None):
params = {
"client_id": self.client_id,
"response_type": "code",

View File

@ -1,4 +1,4 @@
from typing import Any, Optional
from typing import Any
import orjson
@ -6,6 +6,6 @@ import orjson
def orjson_dumps(
obj: Any,
encoding: str = "utf-8",
option: Optional[int] = None,
option: int | None = None,
) -> str:
return orjson.dumps(obj, option=option).decode(encoding)