code: def leave_OperationDefinition(
      self, operation, key, parent, path, ancestors
  ):
      variable_name_used = set()
      usages = self.context.get_recursive_variable_usages(operation)
      op_name = operation.name and operation.name.value or None
  
      for variable_usage in usages:
          variable_name_used.add(variable_usage.node.name.value)
  
      for variable_definition in self.variable_definitions:
          if (
              variable_definition.variable.name.value
              not in variable_name_used
          ):
              self.context.report_error(
                  GraphQLError(
                      self.unused_variable_message(
                          variable_definition.variable.name.value,
                          op_name,
                      ),
                      [variable_definition],
                  )
              )
  
file_path: wandb/wandb/vendor/graphql-core-1.1/wandb_graphql/validation/rules/no_unused_variables.py
imports: from ...error import GraphQLError
  from .base import ValidationRule
label_desc: Use image node_id 3 for calling the NoUnusedVariables obj's underlying member method code with example usage: obj.leave_OperationDefinition(operation, key, parent, path, ancestors) without return types