Skip to content

Commit 11fdddc

Browse files
author
Sharpienero
committed
Add unknown to all models that extend BaseEnum, rewrite _missing_
1 parent 68c188f commit 11fdddc

File tree

5 files changed

+21
-10
lines changed

5 files changed

+21
-10
lines changed

wom/enums.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,15 @@ def __eq__(self, other: object) -> bool:
5959
def __hash__(self) -> int:
6060
return hash(self.value)
6161

62+
@classmethod
63+
def _missing_(cls, value: object) -> BaseEnum:
64+
print(
65+
f"{value!r} is not a valid {cls.__name__} variant. "
66+
"Please report this issue on github at https://github.com/Jonxslays/wom.py/issues/new",
67+
file=sys.stderr,
68+
)
69+
return cls.Unknown # type: ignore
70+
6271
@classmethod
6372
def at_random(cls: t.Type[T]) -> T:
6473
"""Generates a random variant of this enum.
@@ -68,15 +77,6 @@ def at_random(cls: t.Type[T]) -> T:
6877
"""
6978
return random.choice(tuple(cls))
7079

71-
@classmethod
72-
def _missing_(cls: t.Type[T], value: object) -> t.Optional[T]:
73-
print(
74-
f"{value!r} is not a valid {cls.__name__} variant. "
75-
"Please report this issue on github at https://github.com/Jonxslays/wom.py/issues/new",
76-
file=sys.stderr,
77-
)
78-
return cls.__getitem__("Unknown")
79-
8080

8181
class Period(BaseEnum):
8282
"""A period of time used by the API."""
@@ -215,7 +215,7 @@ class Metric(BaseEnum):
215215
Unknown = "unknown"
216216

217217

218-
ComputedMetrics: t.FrozenSet[Metric] = frozenset({Metric.Ehp, Metric.Ehb})
218+
ComputedMetrics: t.FrozenSet[Metric] = frozenset({Metric.Ehp, Metric.Ehb, Metric.Unknown})
219219
"""Set containing all the types of computed metrics."""
220220

221221
Skills: t.FrozenSet[Metric] = frozenset(

wom/models/competitions/enums.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class CompetitionType(BaseEnum):
3333

3434
Classic = "classic"
3535
Team = "team"
36+
Unknown = "unknown"
3637

3738

3839
class CompetitionStatus(BaseEnum):
@@ -41,6 +42,7 @@ class CompetitionStatus(BaseEnum):
4142
Upcoming = "upcoming"
4243
Ongoing = "ongoing"
4344
Finished = "finished"
45+
Unknown = "unknown"
4446

4547

4648
class CompetitionCSVTableType(BaseEnum):
@@ -49,3 +51,4 @@ class CompetitionCSVTableType(BaseEnum):
4951
Participants = "participants"
5052
Team = "team"
5153
Teams = "teams"
54+
Unknown = "unknown"

wom/models/groups/enums.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class GroupActivityType(BaseEnum):
3232
ChangedRole = "changed_role"
3333
Joined = "joined"
3434
Left = "left"
35+
Unknown = "unknown"
3536

3637

3738
class GroupRole(BaseEnum):
@@ -306,3 +307,4 @@ class GroupRole(BaseEnum):
306307
Zarosian = "zarosian"
307308
Zealot = "zealot"
308309
Zenyte = "zenyte"
310+
Unknown = "unknown"

wom/models/names/enums.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class NameChangeStatus(BaseEnum):
3232
Pending = "pending"
3333
Approved = "approved"
3434
Denied = "denied"
35+
Unknown = "unknown"
3536

3637

3738
class NameChangeReviewReason(BaseEnum):
@@ -42,3 +43,4 @@ class NameChangeReviewReason(BaseEnum):
4243
TransitionTooLong = "transition_period_too_long"
4344
ExcessiveGains = "excessive_gains"
4445
TotalLevelTooLow = "total_level_too_low"
46+
Unknown = "unknown"

wom/models/players/enums.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ class PlayerBuild(BaseEnum):
5353
Def1 = "def1"
5454
Hp10 = "hp10"
5555
F2pLvl3 = "f2p_lvl3"
56+
Unknown = "unknown"
5657

5758

5859
class PlayerStatus(BaseEnum):
@@ -63,6 +64,7 @@ class PlayerStatus(BaseEnum):
6364
Flagged = "flagged"
6465
Archived = "archived"
6566
Banned = "banned"
67+
Unknown = "unknown"
6668

6769

6870
class AchievementMeasure(BaseEnum):
@@ -73,6 +75,7 @@ class AchievementMeasure(BaseEnum):
7375
Kills = "kills"
7476
Score = "score"
7577
Value = "value"
78+
Unknown = "unknown"
7679

7780

7881
class Country(BaseEnum):
@@ -327,3 +330,4 @@ class Country(BaseEnum):
327330
Za = "ZA"
328331
Zm = "ZM"
329332
Zw = "ZW"
333+
Unknown = "unknown"

0 commit comments

Comments
 (0)