code: def __call__(self, block: Block) -> Scores:
      record_ids, records = zip(*(zip(*each) for each in block))
  
      features = self.featurizer(records)
      scores = self.classifier.predict_proba(features)[:, -1]
  
      id_type = sniff_id_type(record_ids)
      ids = numpy.array(record_ids, dtype=id_type)
  
      mask = scores > 0
      scores = scores[mask]
      ids = ids[mask]
  
      dtype = numpy.dtype([("pairs", id_type, 2), ("score", "f4")])
      scored_pairs: Scores = numpy.empty(shape=len(scores), dtype=dtype)
      scored_pairs["pairs"] = ids
      scored_pairs["score"] = scores
  
      return scored_pairs
  
imports: from __future__ import annotations
  import collections
  import functools
  import itertools
  import multiprocessing
  import multiprocessing.dummy
  import os
  import queue
  import tempfile
  from typing import TYPE_CHECKING, overload
  import numpy
  from dedupe.backport import RLock
label_desc: Use image node_id 2 for calling the ScoreGazette obj's underlying member method code with example usage: obj.__call__(block) and returns: scored_pairs