Changeset ff85433 in flexograder
- Timestamp:
- 09/29/25 15:41:41 (4 months ago)
- Branches:
- master
- Children:
- f3c4ec6
- Parents:
- 6425452
- File:
-
- 1 edited
-
generator/import_radioamateur.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
generator/import_radioamateur.py
r6425452 rff85433 6 6 7 7 from builder.exam import Exam 8 8 9 9 10 if len(sys.argv) != 2: … … 24 25 25 26 27 def mapping(): 28 return [{"TAG": "BA", "START": 101, "END": 111, 29 "TOPIC": "Betriebliche Kenntnisse#Internationales Buchstabieralphabet"}, 30 {"TAG": "BB", "START": 101, "END": 111, 31 "TOPIC": "Betriebliche Kenntnisse#Betriebliche Abkürzungen"}, 32 {"TAG": "BB", "START": 201, "END": 209, 33 "TOPIC": "Betriebliche Kenntnisse#Q-Schlüssel"}, 34 {"TAG": "BB", "START": 301, "END": 312, 35 "TOPIC": "Betriebliche Kenntnisse#Signalbeurteilung"}, 36 {"TAG": "BB", "START": 401, "END": 407, 37 "TOPIC": "Betriebliche Kenntnisse#Bezeichnung der Aussendungen (Sendearten)"}, 38 {"TAG": "BC", "START": 101, "END": 114, 39 "TOPIC": "Betriebliche Kenntnisse#Frequenzbereiche des Amateurfunkdienstes"}, 40 {"TAG": "BC", "START": 201, "END": 220, 41 "TOPIC": "Betriebliche Kenntnisse#IARU-Bandpläne"}, 42 {"TAG": "BD", "START": 101, "END": 115, 43 "TOPIC": "Betriebliche Kenntnisse#Deutsche Rufzeichen"}, 44 {"TAG": "BD", "START": 201, "END": 210, 45 "TOPIC": "Betriebliche Kenntnisse#Europäische Landeskenner"}, 46 {"TAG": "BD", "START": 301, "END": 309, 47 "TOPIC": "Betriebliche Kenntnisse#Internationale Landeskenner"}, 48 {"TAG": "BE", "START": 101, "END": 119, 49 "TOPIC": "Betriebliche Kenntnisse#Betriebsabwicklung, allgemein"}, 50 {"TAG": "BE", "START": 201, "END": 216, 51 "TOPIC": "Betriebliche Kenntnisse#Betriebsabwicklung, speziell"}, 52 {"TAG": "BE", "START": 301, "END": 310, 53 "TOPIC": "Betriebliche Kenntnisse#Betriebsabwicklung bei besonderen Betriebsarten"}, 54 {"TAG": "BE", "START": 401, "END": 411, 55 "TOPIC": "Betriebliche Kenntnisse#Relaisfunkstellen, Transponder, Satelliten, Baken"}, 56 {"TAG": "BF", "START": 101, "END": 110, 57 "TOPIC": "Betriebliche Kenntnisse#Notfunkverkehr und Nachrichtenverkehr bei Naturkatastrophen"}, 58 {"TAG": "BG", "START": 101, "END": 115, 59 "TOPIC": "Betriebliche Kenntnisse#Stationstagebuch, QSL-Karte"} 60 ] 61 62 63 def get_topic(qid: str): 64 # Split into prefix and number 65 tag, number = qid[:2], int(qid[2:]) 66 for entry in mapping(): 67 if entry["TAG"] == tag and entry["START"] <= number <= entry["END"]: 68 if entry["TOPIC"] is not None: 69 return entry["TOPIC"].split("#") 70 return [], [] 71 72 26 73 json_file = sys.argv[1] 27 74 … … 30 77 for each_page in exam.pages: 31 78 for each_question in each_page.questions: 32 if id_in_range(each_question.id, 'BA', 101, 111): 33 each_question.topic = "Internationales Buchstabieralphabet" 34 if id_in_range(each_question.id, 'BB', 101, 111): 35 each_question.topic = "Betriebliche Abkürzungen" 36 if id_in_range(each_question.id, 'BB', 201, 209): 37 each_question.topic = "Q-Schlüssel" 38 if id_in_range(each_question.id, 'BB', 301, 312): 39 each_question.topic = "Signalbeurteilung" 40 if id_in_range(each_question.id, 'BB', 401, 407): 41 each_question.topic = "Bezeichnung der Aussendungen (Sendearten)" 42 if id_in_range(each_question.id, 'BC', 101, 114): 43 each_question.topic = "Frequenzbereiche des Amateurfunkdienstes" 44 if id_in_range(each_question.id, 'BC', 201, 220): 45 each_question.topic = "IARU-Bandpläne" 46 if id_in_range(each_question.id, 'BD', 101, 115): 47 each_question.topic = "Deutsche Rufzeichen" 48 if id_in_range(each_question.id, 'BD', 201, 210): 49 each_question.topic = "Europäische Landeskenner" 50 if id_in_range(each_question.id, 'BD', 301, 309): 51 each_question.topic = "Internationale Landeskenner" 52 if id_in_range(each_question.id, 'BE', 101, 119): 53 each_question.topic = "Betriebsabwicklung, allgemein" 54 if id_in_range(each_question.id, 'BE', 201, 216): 55 each_question.topic = "Betriebsabwicklung, speziell" 56 if id_in_range(each_question.id, 'BE', 301, 310): 57 each_question.topic = "Betriebsabwicklung bei besonderen Betriebsarten" 58 if id_in_range(each_question.id, 'BE', 401, 411): 59 each_question.topic = "Relaisfunkstellen, Transponder, Satelliten, Baken" 60 if id_in_range(each_question.id, 'BF', 101, 110): 61 each_question.topic = "Notfunkverkehr und Nachrichtenverkehr bei Naturkatastrophen" 62 if id_in_range(each_question.id, 'BG', 101, 115): 63 each_question.topic = "Stationstagebuch, QSL-Karte" 64 print(each_question.topic) 79 if each_question.id != "candidate_id": 80 domain, topic = get_topic(each_question.id) 81 if domain and topic: 82 each_question.domain = domain 83 each_question.topic = topic 65 84 66 85 print(exam.to_dict()) 67 86 exam.shuffle_options() 68 87 env = Environment(
Note:
See TracChangeset
for help on using the changeset viewer.
