Check if inputs have changed for nipype node within interface

I’m using my own interface that runs an external utility. This utility can run for a long time (hours to days) and has its internal caching mechanism. If the inputs change, I want to set a flag telling this utility that the cache should be removed. I think it could be done if I can request the caching status of input files during _init(), something like that:

def __init__(self, command=None, terminal_output=None, **inputs):
    if self.inputs_changed():
         inputs['overwrite'] = True
         inputs['overwrite'] = False
    super(CommandLine, self).__init__(command=None, terminal_output=None, **inputs)

But how can I check the inputs status? Also if there’s a better way to do it, any advice will be appreciated.

@achetverikov - not sure if this solves your problem, but have you read about caching.memory module?