Skip to content

Commit 0ce7225

Browse files
authored
Fix int enum class inheritance (#208)
1 parent 26d7492 commit 0ce7225

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

backend/app/common/enums.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
#!/usr/bin/env python3
22
# -*- coding: utf-8 -*-
3-
from enum import Enum
3+
from enum import Enum, IntEnum as SourceIntEnum
4+
from typing import Type
45

56

6-
class EnumBase(Enum):
7+
class _EnumBase:
78
@classmethod
8-
def get_member_values(cls):
9-
return [item.value for item in cls._member_map_.values()]
9+
def get_member_keys(cls: Type[Enum]) -> list[str]:
10+
return [name for name in cls.__members__.keys()]
1011

1112
@classmethod
12-
def get_member_names(cls):
13-
return [name for name in cls._member_names_]
13+
def get_member_values(cls: Type[Enum]) -> list:
14+
return [item.value for item in cls.__members__.values()]
1415

1516

16-
class IntEnum(int, EnumBase):
17+
class IntEnum(_EnumBase, SourceIntEnum):
1718
"""整型枚举"""
1819

1920
pass
2021

2122

22-
class StrEnum(str, EnumBase):
23+
class StrEnum(_EnumBase, str, Enum):
2324
"""字符串枚举"""
2425

2526
pass

backend/app/utils/request_parse.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,11 @@ async def parse_ip_info(request: Request) -> tuple[str, str, str, str]:
8888
country = location_info.get('country')
8989
region = location_info.get('regionName')
9090
city = location_info.get('city')
91-
await redis_client.set(f'{settings.IP_LOCATION_REDIS_PREFIX}:{ip}', f'{country} {region} {city}',
92-
ex=settings.IP_LOCATION_EXPIRE_SECONDS)
91+
await redis_client.set(
92+
f'{settings.IP_LOCATION_REDIS_PREFIX}:{ip}',
93+
f'{country} {region} {city}',
94+
ex=settings.IP_LOCATION_EXPIRE_SECONDS,
95+
)
9396
return ip, country, region, city
9497

9598

0 commit comments

Comments
 (0)