modify_parameter

utilipy.utils.inspect.modify_parameter(sig: inspect.Signature, param: Union[str, int], name: Union[str, inspect._empty], kind: Any, default: Any, annotation: Any)inspect.Signature[source]

Modify a Parameter.

Similar to replace, but more convenient for modifying a single parameter Parameters are immutable, so will create a new Signature object

Parameters
sig: Signature

Signature object

param: int or str

the parameter index (or name) in self.parameters

name: str

new parameter name, defaults to old parameter name default: None

kind: type

new parameter kind, defaults to old parameter kind default: None

default: any

new parameter default, defaults to old parameter default default: None

annotation: any

new parameter annotation, defaults to old parameter annotation default: None

Returns
Signature

a new Signature object with the replaced parameter