mirror of
https://github.com/fastapi-practices/fastapi-best-architecture.git
synced 2026-09-21 21:15:13 +00:00
Fix int enum class inheritance (#208)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user