@@ -326,7 +326,7 @@ class NiftiExtension(ty.Generic[T]):
326326
327327 code : int
328328 encoding : str | None = None
329- _content : bytes
329+ _raw : bytes
330330 _object : T | None = None
331331
332332 def __init__ (
@@ -351,10 +351,14 @@ def __init__(
351351 self .code = extension_codes .code [code ] # type: ignore[assignment]
352352 except KeyError :
353353 self .code = code # type: ignore[assignment]
354- self ._content = content
354+ self ._raw = content
355355 if object is not None :
356356 self ._object = object
357357
358+ @property
359+ def _content (self ):
360+ return self .get_object ()
361+
358362 @classmethod
359363 def from_bytes (cls , content : bytes ) -> Self :
360364 """Create an extension from raw bytes.
@@ -394,15 +398,15 @@ def _sync(self) -> None:
394398 and updates the bytes representation accordingly.
395399 """
396400 if self ._object is not None :
397- self ._content = self ._mangle (self ._object )
401+ self ._raw = self ._mangle (self ._object )
398402
399403 def __repr__ (self ) -> str :
400404 try :
401405 code = extension_codes .label [self .code ]
402406 except KeyError :
403407 # deal with unknown codes
404408 code = self .code
405- return f'{ self .__class__ .__name__ } ({ code } , { self ._content !r} )'
409+ return f'{ self .__class__ .__name__ } ({ code } , { self ._raw !r} )'
406410
407411 def __eq__ (self , other : object ) -> bool :
408412 return (
@@ -425,7 +429,7 @@ def get_code(self):
425429 def content (self ) -> bytes :
426430 """Return the extension content as raw bytes."""
427431 self ._sync ()
428- return self ._content
432+ return self ._raw
429433
430434 @property
431435 def text (self ) -> str :
@@ -452,7 +456,7 @@ def get_object(self) -> T:
452456 instead.
453457 """
454458 if self ._object is None :
455- self ._object = self ._unmangle (self ._content )
459+ self ._object = self ._unmangle (self ._raw )
456460 return self ._object
457461
458462 # Backwards compatibility
@@ -488,7 +492,7 @@ def write_to(self, fileobj: ty.BinaryIO, byteswap: bool = False) -> None:
488492 extinfo = extinfo .byteswap ()
489493 fileobj .write (extinfo .tobytes ())
490494 # followed by the actual extension content, synced above
491- fileobj .write (self ._content )
495+ fileobj .write (self ._raw )
492496 # be nice and zero out remaining part of the extension till the
493497 # next 16 byte border
494498 pad = extstart + rawsize - fileobj .tell ()
@@ -671,7 +675,7 @@ def _mangle(self, dataset: DicomDataset) -> bytes:
671675 (38 , 'eval' , NiftiExtension ),
672676 (40 , 'matlab' , NiftiExtension ),
673677 (42 , 'quantiphyse' , NiftiExtension ),
674- (44 , 'mrs' , NiftiExtension [ dict [ str , ty . Any ]] ),
678+ (44 , 'mrs' , Nifti1Extension ),
675679 ),
676680 fields = ('code' , 'label' , 'handler' ),
677681)
0 commit comments