Completed
Push — master ( 0d56a8...9e1177 )
by Jasper
10s
created

NiftiFile.attach()   A

Complexity

Conditions 1

Size

Total Lines 15

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 15
rs 9.4285
1
from datetime import datetime
2
from niprov.basefile import BaseFile
3
from niprov.libraries import Libraries
4
5
6
class NiftiFile(BaseFile):
7
8
    def __init__(self, location, **kwargs):
9
        super(NiftiFile, self).__init__(location, **kwargs)
10
        self.libs = self.dependencies.getLibraries()
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