10
10
11
11
Author: Krish Subramaniam
12
12
'''
13
+ from os .path import splitext
13
14
import numpy as np
14
15
15
16
from nibabel .volumeutils import allopen , array_to_file , array_from_file , \
@@ -427,7 +428,7 @@ def writeftr_to(self, fileobj):
427
428
class MGHImage (SpatialImage ):
428
429
header_class = MGHHeader
429
430
files_types = (('image' , '.mgh' ),)
430
- _compressed_exts = ('.mgz' , )
431
+ _compressed_exts = (( '.gz' ,) )
431
432
432
433
ImageArrayProxy = ArrayProxy
433
434
@@ -437,24 +438,10 @@ def get_header(self):
437
438
438
439
@classmethod
439
440
def filespec_to_file_map (klass , filespec ):
440
- ''' Method reimplemented from nibabel.spatialimages because it does not
441
- allow enforce_extensions in types_filenames() to be False.
442
- This is needed because MGH's compressed format is not filename.mgh.gz,
443
- but it is filename.mgz.. types_filenames() removes the .mgz and gives
444
- an error because it then doesn't find the file 'filename' in the system
445
- '''
446
- try :
447
- filenames = types_filenames (filespec ,
448
- klass .files_types ,
449
- trailing_suffixes = klass ._compressed_exts ,
450
- enforce_extensions = False )
451
- except TypesFilenamesError :
452
- raise ImageFileError ('Filespec "%s" does not look right for '
453
- 'class %s ' % (filespec , klass ))
454
- file_map = {}
455
- for key , fname in filenames .items ():
456
- file_map [key ] = FileHolder (filename = fname )
457
- return file_map
441
+ """ Check for compressed .mgz format, then .mgh format """
442
+ if splitext (filespec )[1 ] == '.mgz' :
443
+ return dict (image = FileHolder (filename = filespec ))
444
+ return super (MGHImage , klass ).filespec_to_file_map (filespec )
458
445
459
446
@classmethod
460
447
def from_file_map (klass , file_map ):
0 commit comments