Passed
Push — main ( 7be5d4...629e09 )
by Máté
01:10
created

src.question   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 6
eloc 32
dl 0
loc 36
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A Question.__hash__() 0 2 1
A Question.__str__() 0 11 4
A Question.__init__() 0 15 1
1
from src.grading_types import GradingType
2
from src.question_types import QuestionType
3
4
5
class Question:
6
    def __init__(
7
            self,
8
            q_type: QuestionType,
9
            text: str,
10
            illustration: bool,
11
            answers: list[str],
12
            correct_answers: list[int],
13
            grading: GradingType | None = None,
14
    ):
15
        self.q_type = q_type
16
        self.text = text
17
        self.illustration = illustration
18
        self.grading = grading
19
        self.answers = answers
20
        self.correct_answers = correct_answers
21
    
22
    def __str__(self) -> str:
23
        text = f"== {self.text} =="
24
        if self.illustration:
25
            text += "\n[[Fájl:.png|bélyegkép]]"
26
        text += f"\n\n{{{{kvízkérdés|típus={self.q_type.value}|válasz={",".join([str(answer) for answer in self.correct_answers])}"
27
        if self.grading:
28
            text += f"|pontozás={self.grading}"
29
        text += "}}"
30
        for answer in self.answers:
31
            text += f"\n# {answer}"
32
        return text
33
    
34
    def __hash__(self) -> int:
35
        return hash(frozenset((self.q_type, self.text, self.answers.sort(), self.correct_answers.sort(), self.grading)))
36