Decompress file within interface

I have an interface in which I would like to decompress a .nii.gz to .nii before passing it to an SPM function. (I know I could create a Gunzip() node but I would prefer to do this without creating an additional node if possible)

A very simplistic case: let’s say the user inputs a .nii.gz file and I want the file to be decompressed before it is passed to fslmaths to be binarized.

class BINInputSpec(FSLCommandInputSpec):
    in_file = File(exists=True, argstr="%s -bin")

class BINOutputSpec(TraitedSpec):
     out_file = File(exists = True)

class BIN(FSLCommand):
    input_spec = BINInputSpec
    output_spec = BINOutputSpec
    _cmd = 'fslmaths'

I don’t really know how to go from here and define a function that can take the in_file and convert it to .nii before running the fslmaths command. Should I be using _format_arg for this?