Passed
Push — main ( 7d42dd...dc9e44 )
by Máté
01:09
created

question.Question.__str__()   A

Complexity

Conditions 4

Size

Total Lines 11
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 11
dl 0
loc 11
rs 9.85
c 0
b 0
f 0
cc 4
nop 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