Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-10 08:39:06

0001 # Derived JobSpec to preserve changed attributes in pickle as it is impossible to change JobSpec.reserveChangedState
0002 # consistently with all clients at the same time
0003 
0004 from pandaserver.taskbuffer.JobSpec import JobSpec
0005 from pandaserver.taskbuffer.PickleFileSpec import PickleFileSpec
0006 
0007 
0008 class PickleJobSpec(JobSpec):
0009     def __init__(self):
0010         JobSpec.__init__(self)
0011         object.__setattr__(self, "_reserveChangedState", True)
0012 
0013     def update(self, spec):
0014         spec._reserveChangedState = True
0015         self.__setstate__(spec.__getstate__())
0016         p_file_list = []
0017         for file in self.Files:
0018             p_file = PickleFileSpec()
0019             p_file.update(file)
0020             p_file_list.append(p_file)
0021         object.__setattr__(self, "Files", p_file_list)
0022 
0023     def __setstate__(self, state):
0024         object.__setattr__(self, "_reserveChangedState", True)
0025         JobSpec.__setstate__(self, state)