Skip to content

Commit e5e22ea

Browse files
committed
Small refactoring
1 parent 37daef0 commit e5e22ea

File tree

1 file changed

+14
-21
lines changed

1 file changed

+14
-21
lines changed

views/utils.py

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import tokenize
88
from dataclasses import dataclass, field
99
from enum import StrEnum
10-
from functools import lru_cache
1110
from pathlib import Path
1211
from typing import ClassVar
1312

@@ -41,12 +40,6 @@ def parse_code(self):
4140
self.user_code, _, self.test_code = self.code.partition(self.CODE_SPLITTER)
4241

4342

44-
@dataclass(frozen=True, slots=True)
45-
class ChallengeInfo:
46-
name: ChallengeName
47-
level: Level
48-
49-
5043
@dataclass(frozen=True, slots=True)
5144
class TypeCheckResult:
5245
message: str
@@ -56,20 +49,7 @@ class TypeCheckResult:
5649
class ChallengeManager:
5750
def __init__(self):
5851
self.challenges: dict[ChallengeName, Challenge] = self._load_challenges()
59-
self.challenges_groupby_level = self.get_challenges_groupby_level()
60-
61-
def get_challenges_groupby_level(self) -> dict[Level, list[ChallengeName]]:
62-
groups: dict[str, list[ChallengeName]] = {}
63-
64-
for challenge in self.challenges.values():
65-
groups.setdefault(challenge.level, []).append(challenge.name)
66-
67-
# Sort challenge by name alphabetically.
68-
for challenge_names in groups.values():
69-
challenge_names.sort()
70-
71-
# Make sure groups are ordered by level (from easy to hard)
72-
return {level: groups[level] for level in Level}
52+
self.challenges_groupby_level = self._get_challenges_groupby_level()
7353

7454
def has_challenge(self, name: str) -> bool:
7555
return name in self.challenges
@@ -97,6 +77,19 @@ def _load_challenges() -> dict[ChallengeName, Challenge]:
9777

9878
return challenges
9979

80+
def _get_challenges_groupby_level(self) -> dict[Level, list[ChallengeName]]:
81+
groups: dict[str, list[ChallengeName]] = {}
82+
83+
for challenge in self.challenges.values():
84+
groups.setdefault(challenge.level, []).append(challenge.name)
85+
86+
# Sort challenge by name alphabetically.
87+
for challenge_names in groups.values():
88+
challenge_names.sort()
89+
90+
# Make sure groups are ordered by level (from easy to hard)
91+
return {level: groups[level] for level in Level}
92+
10093
EXPECT_ERROR_COMMENT = "expect-type-error"
10194

10295
# Pyright error messages look like:

0 commit comments

Comments
 (0)