-
Notifications
You must be signed in to change notification settings - Fork 0
/
loader.py
37 lines (28 loc) · 1020 Bytes
/
loader.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from spell import ATTRIBUTE_COLUMNS
from spells.models import Spell
import csv
class Spells:
spell_file_path = 'spells.csv'
def __init__(self):
self.spells = []
with open(self.spell_file_path) as spell_file:
rows = [row for row in csv.reader(spell_file)]
spell_rows = rows[2:]
for spell_row in spell_rows:
spell = Spell()
for i, attr_pair in enumerate(ATTRIBUTE_COLUMNS):
if spell_row[i] == 'TRUE':
spell_row[i] = True
elif spell_row[i] == 'FALSE':
spell_row[i] = False
setattr(spell, attr_pair[0], spell_row[i])
spell.level = int(spell.display_level[0])
spell.save()
def spells_for(self, class_name, max_level):
return sorted([
spell for spell in self.spells
if spell.class_match(class_name)
and spell.level <= max_level
])
if __name__ == '__main__':
Spells()