class_docstr: Base class for Ufunc and FusedFunc.
code: def get_prototypes(self, nptypes_for_h=False):
      prototypes = []
      for func_name, inarg, outarg, ret, header in self.signatures:
          ret = ret.replace("*", "")
          c_args = [C_TYPES[x] for x in inarg] + [
              C_TYPES[x] + " *" for x in outarg
          ]
          cy_args = [CY_TYPES[x] for x in inarg] + [
              CY_TYPES[x] + " *" for x in outarg
          ]
          c_proto = "{} (*)({})".format(C_TYPES[ret], ", ".join(c_args))
          if header.endswith("h") and nptypes_for_h:
              cy_proto = c_proto + "nogil"
          else:
              cy_proto = "{} (*)({}) noexcept nogil".format(
                  CY_TYPES[ret], ", ".join(cy_args)
              )
          prototypes.append((func_name, c_proto, cy_proto, header))
      return prototypes
  
imports: import itertools
  import json
  import os
  from stat import ST_MTIME
  import argparse
  import re
  import textwrap
  import numpy
label_desc: Use image node_id 3 for calling the Func obj's underlying member method code with example usage: obj.get_prototypes(nptypes_for_h) and returns: prototypes