Fix int enum class inheritance (#208)

This commit is contained in:
Wu Clan
2023-09-02 17:17:23 +08:00
committed by GitHub
parent 26d7492d6b
commit 0ce7225738
2 changed files with 14 additions and 10 deletions
+9 -8
View File
@@ -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
+5 -2
View File
@@ -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