| Total Complexity | 3 |
| Total Lines | 28 |
| Duplicated Lines | 0 % |
| Changes | 1 | ||
| Bugs | 0 | Features | 0 |
| 1 | from datetime import datetime |
||
| 5 | class NiftiFile(BaseFile): |
||
| 6 | |||
| 7 | def __init__(self, location, **kwargs): |
||
| 8 | super(NiftiFile, self).__init__(location, **kwargs) |
||
| 9 | self.libs = self.dependencies.getLibraries() |
||
| 10 | self.camera = self.dependencies.getCamera() |
||
| 11 | |||
| 12 | def attach(self, form='json'): |
||
| 13 | """ |
||
| 14 | Attach the current provenance to the file by injecting it as a |
||
| 15 | json-encoded extension to the nifti header. |
||
| 16 | |||
| 17 | Args: |
||
| 18 | form (str): Data format in which to serialize provenance. Defaults |
||
| 19 | to 'json'. |
||
| 20 | """ |
||
| 21 | img = self.libs.nibabel.load(self.path) |
||
| 22 | provstr = self.getProvenance(form) |
||
| 23 | ext = self.libs.nibabel.nifti1.Nifti1Extension('comment', provstr) |
||
| 24 | hdr = img.get_header() |
||
| 25 | hdr.extensions.append(ext) |
||
| 26 | img.to_filename(self.path) |
||
| 27 | |||
| 28 | def inspect(self): |
||
| 29 | provenance = super(NiftiFile, self).inspect() |
||
| 30 | img = self.libs.nibabel.load(self.path) |
||
| 31 | self.camera.saveSnapshot(img.get_data(), for_=self) |
||
| 32 | return provenance |
||
| 33 |