diff --git a/backend/app/common/enums.py b/backend/app/common/enums.py index 905ae489..342d5fb1 100644 --- a/backend/app/common/enums.py +++ b/backend/app/common/enums.py @@ -1,25 +1,26 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -from enum import Enum +from enum import Enum, IntEnum as SourceIntEnum +from typing import Type -class EnumBase(Enum): +class _EnumBase: @classmethod - def get_member_values(cls): - return [item.value for item in cls._member_map_.values()] + def get_member_keys(cls: Type[Enum]) -> list[str]: + return [name for name in cls.__members__.keys()] @classmethod - def get_member_names(cls): - return [name for name in cls._member_names_] + def get_member_values(cls: Type[Enum]) -> list: + return [item.value for item in cls.__members__.values()] -class IntEnum(int, EnumBase): +class IntEnum(_EnumBase, SourceIntEnum): """整型枚举""" pass -class StrEnum(str, EnumBase): +class StrEnum(_EnumBase, str, Enum): """字符串枚举""" pass diff --git a/backend/app/utils/request_parse.py b/backend/app/utils/request_parse.py index 4420872e..c77a98da 100644 --- a/backend/app/utils/request_parse.py +++ b/backend/app/utils/request_parse.py @@ -88,8 +88,11 @@ async def parse_ip_info(request: Request) -> tuple[str, str, str, str]: country = location_info.get('country') region = location_info.get('regionName') city = location_info.get('city') - await redis_client.set(f'{settings.IP_LOCATION_REDIS_PREFIX}:{ip}', f'{country} {region} {city}', - ex=settings.IP_LOCATION_EXPIRE_SECONDS) + await redis_client.set( + f'{settings.IP_LOCATION_REDIS_PREFIX}:{ip}', + f'{country} {region} {city}', + ex=settings.IP_LOCATION_EXPIRE_SECONDS, + ) return ip, country, region, city