"""Preserve function defaults.
Preserve the default argument values of function signatures in source code
and keep them not evaluated for readability.
"""
from __future__ import annotations
from typing import TYPE_CHECKING
from sphinx.ext.autodoc._dynamic._preserve_defaults import (
DefaultValue, # NoQA: F401
_get_arguments, # NoQA: F401
_get_arguments_inner, # NoQA: F401
_is_lambda, # NoQA: F401
get_default_value, # NoQA: F401
update_default_value,
)
if TYPE_CHECKING:
from typing import Any
from sphinx.application import Sphinx
# Retained: legacy class-based
def update_defvalue(app: Sphinx, obj: Any, bound_method: bool) -> None:
"""Update defvalue info of *obj* using type_comments."""
if not app.config.autodoc_preserve_defaults:
return
update_default_value(obj, bound_method)