class_docstr: Introspect UDF bytecode and determine if we can rewrite as native expression.
class_docstr_tok: ["Introspect","UDF","bytecode","and","determine","if","we","can","rewrite","as","native","expression","."]
docstr: Return single function parameter name.
code: def _get_param_name(function: Callable[[Any], Any]) -> str | None:
      """Return single function parameter name."""
      try:
          # note: we do not parse/handle functions with > 1 params
          sig = signature(function)
      except ValueError:
          return None
      return (
          next(iter(parameters.keys()))
          if len(parameters := sig.parameters) == 1
          else None
      )
  
imports: from __future__ import annotations
  import datetime
  import dis
  import inspect
  import re
  import sys
  import warnings
  from bisect import bisect_left
  from collections import defaultdict
  from dis import get_instructions
  from inspect import signature
  from itertools import count, zip_longest
  from pathlib import Path
  from typing import TYPE_CHECKING, AbstractSet, Any, Callable, ClassVar, Iterator, Literal, NamedTuple, Union
label_desc: Use image node_id 2 for calling the BytecodeParser obj's underlying member method code with example usage: obj._get_param_name(function) and returns: unknown, None