class_docstr: Function wrapper to replace ``**settings`` in the signature with printer defaults
code: def __signature__(self) -> inspect.Signature:
      settings = self.__print_cls._get_initial_settings()
      return inspect.Signature(
          parameters=self.__other_params
          + [
              inspect.Parameter(
                  k, inspect.Parameter.KEYWORD_ONLY, default=v
              )
              for k, v in settings.items()
          ],
          return_annotation=self.__wrapped__.__annotations__.get(
              "return", inspect.Signature.empty
          ),  # type:ignore
      )
  
imports: from __future__ import annotations
  import sys
  from typing import Any, Type
  import inspect
  from contextlib import contextmanager
  from functools import cmp_to_key, update_wrapper
  from sympy.core.add import Add
  from sympy.core.basic import Basic
  from sympy.core.function import AppliedUndef, UndefinedFunction, Function
label_desc: Use image node_id 4 for calling the _PrintFunction obj's underlying member method code with example usage: obj.__signature__() and returns: inspect