class_docstr: Replaces non-input nodes during a fingerprint run.
docstr: Calculates the fingerprint key to determine if cached output can be used.
  
  If the fingerprint key matches an entry in the cache it means that there has
  been a previous node execution which matches the same component class, component
  config and input values. This means that we can potentially prune this node
  from the schema, or replace it with a cached value before the next graph run.
  
  Args:
      **kwargs: Inputs from all parent nodes.
  
  Returns:
      A `FingerprintStatus` determining if the run was a hit, and if it was a hit
      also the output fingerprint from the cache.
docstr_tok: ["Calculates","the","fingerprint","key","to","determine","if","cached","output","can","be","used",".","If","the","fingerprint","key","matches","an","entry","in","the","cache","it","means","that","there","has","been","a","previous","node","execution","which","matches","the","same","component","class",",","component","config","and","input","values",".","This","means","that","we","can","potentially","prune","this","node","from","the","schema",",","or","replace","it","with","a","cached","value","before","the","next","graph","run",".","Args",":","*","*","kwargs",":","Inputs","from","all","parent","nodes",".","Returns",":","A","`","FingerprintStatus","`","determining","if","the","run","was","a","hit",",","and","if","it","was","a","hit","also","the","output","fingerprint","from","the","cache","."]
code: def run(self, **kwargs: Any) -> FingerprintStatus:
      """Calculates the fingerprint key to determine if cached output can be used.
  
      If the fingerprint key matches an entry in the cache it means that there has
      been a previous node execution which matches the same component class, component
      config and input values. This means that we can potentially prune this node
      from the schema, or replace it with a cached value before the next graph run.
  
      Args:
          **kwargs: Inputs from all parent nodes.
  
      Returns:
          A `FingerprintStatus` determining if the run was a hit, and if it was a hit
          also the output fingerprint from the cache.
      """
      fingerprint_key = fingerprinting.calculate_fingerprint_key(
          graph_component_class=self._class_of_replaced_component,
          config={
              **self._class_of_replaced_component.get_default_config(),
              **self._config_of_replaced_component,
          },
          inputs=kwargs,
      )
  
      output_fingerprint = self._cache.get_cached_output_fingerprint(
          fingerprint_key
      )
  
      return FingerprintStatus(
          is_hit=output_fingerprint is not None,
          output_fingerprint=output_fingerprint,
      )
  
imports: from __future__ import annotations
  from typing import Any, Dict, Optional, Text, Type
  import dataclasses
  import uuid
  from rasa.engine.caching import Cacheable, TrainingCache
  from rasa.engine.graph import ExecutionContext, GraphComponent, SchemaNode
  from rasa.engine.storage.resource import Resource
  from rasa.engine.storage.storage import ModelStorage
  from rasa.engine.training import fingerprinting
label_desc: Use image node_id 3 for calling the FingerprintComponent obj's underlying member method code with example usage: obj.run() and returns: FingerprintStatus