class_docstr: Performs the same function and has the same interface as
  :class:`GenericScanKernel`, but uses a dead-simple, sequential scan.  Works
  best on CPU platforms, and helps isolate bugs in scans by removing the
  potential for issues originating in parallel execution.
  
  .. automethod:: __call__
class_docstr_tok: ["Performs","the","same","function","and","has","the","same","interface","as",":","class",":","`","GenericScanKernel","`",",","but","uses","a","dead-simple",",","sequential","scan",".","Works","best","on","CPU","platforms",",","and","helps","isolate","bugs","in","scans","by","removing","the","potential","for","issues","originating","in","parallel","execution",".","..","automethod",":",":","__call__"]
code: def finish_setup(self) -> None:
      scan_tpl = _make_template(DEBUG_SCAN_TEMPLATE)
      scan_src = str(
          scan_tpl.render(
              output_statement=self.output_statement,
              arg_offset_adjustment=get_arg_offset_adjuster_code(
                  self.parsed_args
              ),
              argument_signature=", ".join(
                  arg.declarator() for arg in self.parsed_args
              ),
              is_segment_start_expr=self.is_segment_start_expr,
              input_expr=_process_code_for_macro(self.input_expr),
              input_fetch_exprs=self.input_fetch_exprs,
              wg_size=1,
              **self.code_variables,
          )
      )
  
      scan_prg = cl.Program(self.context, scan_src).build(self.options)
      self.kernel = getattr(scan_prg, f"{self.name_prefix}_debug_scan")
      scalar_arg_dtypes = (
          [None]
          + get_arg_list_scalar_arg_dtypes(self.parsed_args)
          + [self.index_dtype]
      )
      self.kernel.set_scalar_arg_dtypes(scalar_arg_dtypes)
  
imports: from abc import ABC, abstractmethod
  from dataclasses import dataclass
  from typing import Any, Dict, List, Optional, Set, Tuple, Union
  import numpy
  import pyopencl
  import pyopencl.array
  from pyopencl.tools import KernelTemplateBase, DtypedArgument, bitlog2, context_dependent_memoize, dtype_to_ctype, get_arg_list_scalar_arg_dtypes, get_arg_offset_adjuster_code, _process_code_for_macro, _NumpyTypesKeyBuilder
  import pyopencl._mymako
  from pyopencl._cluda import CLUDA_PREAMBLE
  from pytools.persistent_dict import WriteOncePersistentDict
  import logging
label_desc: Use image node_id 1 for calling the GenericDebugScanKernel obj's underlying member method code with example usage: obj.finish_setup() without return types