def fingerprint(self):
    """Returns a fingerprint for the identity of the task.

    A task fingerprint is composed of the options the task is currently running under.
    Useful for invalidating unchanging targets being executed beneath changing task
    options that affect outputted artifacts.

    A task's fingerprint is only valid after the task has been fully initialized.
    """
    hasher = sha1()
    hasher.update(self.stable_name().encode('utf-8'))
    hasher.update(self._options_fingerprint(self.options_scope).encode('utf-8'))
    hasher.update(self.implementation_version_str().encode('utf-8'))
    for dep in self.subsystem_closure_iter():
      hasher.update(self._options_fingerprint(dep.options_scope).encode('utf-8'))
    return hasher.hexdigest() if PY3 else hasher.hexdigest().decode('utf-8')
def fingerprint ( self ) : hasher = sha1 ( ) hasher . update ( self . stable_name ( ) . encode ( 'utf-8' ) ) hasher . update ( self . _options_fingerprint ( self . options_scope ) . encode ( 'utf-8' ) ) hasher . update ( self . implementation_version_str ( ) . encode ( 'utf-8' ) ) for dep in self . subsystem_closure_iter ( ) : hasher . update ( self . _options_fingerprint ( dep . options_scope ) . encode ( 'utf-8' ) ) return hasher . hexdigest ( ) if PY3 else hasher . hexdigest ( ) . decode ( 'utf-8' )
Returns a fingerprint for the identity of the task.

    A task fingerprint is composed of the options the task is currently running under.
    Useful for invalidating unchanging targets being executed beneath changing task
    options that affect outputted artifacts.

    A task's fingerprint is only valid after the task has been fully initialized.