class_docstr: Replaces one value in an ``args, kwargs`` pair.
  
  Inspects the function signature to find an argument by name
  whether it is passed by position or keyword.  For use in decorators
  and similar wrappers.
class_docstr_tok: ["Replaces","one","value","in","an","``","args",",","kwargs","``","pair",".","Inspects","the","function","signature","to","find","an","argument","by","name","whether","it","is","passed","by","position","or","keyword",".","For","use","in","decorators","and","similar","wrappers","."]
code: def _getargnames(self, func: Callable) -> List[str]:
      try:
          return getfullargspec(func).args
      except TypeError:
          if hasattr(func, "func_code"):
              # Cython-generated code has all the attributes needed
              # by inspect.getfullargspec, but the inspect module only
              # works with ordinary functions. Inline the portion of
              # getfullargspec that we need here. Note that for static
              # functions the @cython.binding(True) decorator must
              # be used (for methods it works out of the box).
              code = func.func_code  # type: ignore
              return code.co_varnames[: code.co_argcount]
          raise
  
imports: import array
  import asyncio
  import atexit
  from inspect import getfullargspec
  import os
  import re
  import typing
  import zlib
  from typing import Any, Optional, Dict, Mapping, List, Tuple, Match, Callable, Type, Sequence
label_desc: Use image node_id 2 for calling the ArgReplacer obj's underlying member method code with example usage: obj._getargnames(func) and returns: getfullargspec, code