Skip to content

Parameter

Parameter

Parameter(name: str, kind: ParameterKind, type: Any = EMPTY, default: Any = EMPTY, description: str | None = None, infer_type: bool = True)

A Parameter instance contains information about a function or method parameter, including its name, type, default value, and description.

Initialize a Parameter instance.

Parameters:

Name Type Description Default
name str

The name of the parameter.

required
kind _ParameterKind

The kind of the parameter, i.e. POSITIONAL_ONLY, POSITIONAL_OR_KEYWORD, VAR_POSITIONAL, KEYWORD_ONLY, or VAR_KEYWORD.

required
type Any

The type of the parameter.

EMPTY
default Any

The default value of the parameter.

EMPTY
description str | None

The description of the parameter.

None
infer_type bool

Infer the type of the parameter based on its default value.

True
Source code in objinspect/parameter.py
def __init__(
    self,
    name: str,
    kind: ParameterKind,
    type: Any = EMPTY,
    default: Any = EMPTY,
    description: str | None = None,
    infer_type: bool = True,
) -> None:
    """
    Initialize a `Parameter` instance.

    Args:
        name (str): The name of the parameter.
        kind (inspect._ParameterKind): The kind of the parameter, i.e. POSITIONAL_ONLY, POSITIONAL_OR_KEYWORD, VAR_POSITIONAL,
            KEYWORD_ONLY, or VAR_KEYWORD.
        type (Any): The type of the parameter.
        default (Any): The default value of the parameter.
        description (str | None): The description of the parameter.
        infer_type (bool): Infer the type of the parameter based on its default value.
    """
    self.name = name
    self.type = type
    self.default = default
    self.description = description
    self.kind = kind
    if infer_type and not self.is_typed:
        self.type = self.get_infered_type()

get_infered_type

get_infered_type()

Infer the type of the parameter based on its default value.

Source code in objinspect/parameter.py
def get_infered_type(self):
    """Infer the type of the parameter based on its default value."""
    if self.default is EMPTY:
        return EMPTY
    return type(self.default)

as_str

as_str(*, color: bool = True, theme: ParameterStrTheme | None = None) -> str

Return a string representation of the parameter.

Parameters:

Name Type Description Default
color bool

Whether to colorize the output.

True
theme ParameterStrTheme

Color theme to use. Default will be used if None.

None
Source code in objinspect/parameter.py
def as_str(self, *, color: bool = True, theme: ParameterStrTheme | None = None) -> str:
    """
    Return a string representation of the parameter.

    Args:
        color (bool, optional): Whether to colorize the output.
        theme (ParameterStrTheme, optional): Color theme to use. Default will be used if None.
    """
    if theme is None:
        theme = ParameterStrTheme()

    if self.is_typed:
        if color:
            type_str = colored_type(self.type, style=TextStyle(theme.type), simplify=False)
        else:
            type_str = type_name(self.type)
    else:
        type_str = ""

    default_str = f"{self.default}" if self.is_optional else ""
    if self.default is not EMPTY:
        if color:
            default_str = colored(default_str, theme.default)
        default_str = f" = {default_str}"
    else:
        default_str = ""

    name_str = self.name if not color else colored(self.name, theme.name)
    return f"{name_str}{type_str}{default_str}"