storage.py (1069B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\clonegrade\storage.py 2 import collections 3 import fsdlite 4 import immutable 5 6 class CloneGrade(object): 7 __metaclass__ = immutable.Immutable 8 9 def __new__(cls, *args, **kwargs): 10 obj = object.__new__(cls, *args, **kwargs) 11 obj.internalDescription = None 12 obj._skills = None 13 obj.skillsByTypeID = None 14 return obj 15 16 def _get_skills(self): 17 return self._skills 18 19 def _set_skills(self, skills): 20 self._skills = skills 21 self.skillsByTypeID = {skill.typeID:skill for skill in skills} 22 23 skills = property(_get_skills, _set_skills) 24 25 26 Skill = collections.namedtuple('Skill', ['typeID', 'level']) 27 MAPPING = [('$', CloneGrade), ('skills$', Skill)] 28 29 def CloneGradeStorage(): 30 try: 31 return CloneGradeStorage._storage 32 except AttributeError: 33 CloneGradeStorage._storage = fsdlite.EveStorage(data='clonegrades', cache='clonegrades.static', mapping=MAPPING, coerce=int) 34 return CloneGradeStorage._storage