IPython Documentation

Table Of Contents

Previous topic

Module: utils.rlineimpl

Next topic

Module: utils.strdispatch

This Page

Note

This documentation is for a development version of IPython. There may be significant differences from the latest stable release (1.2.1).

Module: utils.signatures

Function signature objects for callables.

Back port of Python 3.3’s function signature tools from the inspect module, modified to be compatible with Python 2.7 and 3.2+.

3 Classes

class IPython.utils.signatures.Parameter(name, kind, default=<class 'IPython.utils.signatures._empty'>, annotation=<class 'IPython.utils.signatures._empty'>, _partial_kwarg=False)

Bases: object

Represents a parameter in a function signature.

Has the following public attributes:

  • name : str

    The name of the parameter as a string.

  • default : object

    The default value for the parameter if specified. If the parameter has no default value, this attribute is not set.

  • annotation

    The annotation for the parameter if specified. If the parameter has no annotation, this attribute is not set.

  • kind : str

    Describes how argument values are bound to the parameter. Possible values: Parameter.POSITIONAL_ONLY, Parameter.POSITIONAL_OR_KEYWORD, Parameter.VAR_POSITIONAL, Parameter.KEYWORD_ONLY, Parameter.VAR_KEYWORD.

__init__(name, kind, default=<class 'IPython.utils.signatures._empty'>, annotation=<class 'IPython.utils.signatures._empty'>, _partial_kwarg=False)
replace(name=<class 'IPython.utils.signatures._void'>, kind=<class 'IPython.utils.signatures._void'>, annotation=<class 'IPython.utils.signatures._void'>, default=<class 'IPython.utils.signatures._void'>, _partial_kwarg=<class 'IPython.utils.signatures._void'>)

Creates a customized copy of the Parameter.

class IPython.utils.signatures.BoundArguments(signature, arguments)

Bases: object

Result of Signature.bind() call. Holds the mapping of arguments to the function’s parameters.

Has the following public attributes:

arguments : collections.OrderedDict
An ordered mutable mapping of parameters’ names to arguments’ values. Does not contain arguments’ default values.
signature : Signature
The Signature object that created this instance.
args : tuple
Tuple of positional arguments values.
kwargs : dict
Dict of keyword arguments values.
__init__(signature, arguments)
class IPython.utils.signatures.Signature(parameters=None, return_annotation=<class 'IPython.utils.signatures._empty'>, __validate_parameters__=True)

Bases: object

A Signature object represents the overall signature of a function. It stores a Parameter object for each parameter accepted by the function, as well as information specific to the function itself.

A Signature object has the following public attributes:

parameters : collections.OrderedDict
An ordered mapping of parameters’ names to the corresponding Parameter objects (keyword-only arguments are in the same order as listed in code.co_varnames).
return_annotation
The annotation for the return type of the function if specified. If the function has no annotation for its return type, this attribute is not set.
__init__(parameters=None, return_annotation=<class 'IPython.utils.signatures._empty'>, __validate_parameters__=True)

Constructs Signature from the given list of Parameter objects and ‘return_annotation’. All arguments are optional.

bind(*args, **kwargs)

Get a BoundArguments object, that maps the passed args and kwargs to the function’s signature. Raises TypeError if the passed arguments can not be bound.

bind_partial(*args, **kwargs)

Get a BoundArguments object, that partially maps the passed args and kwargs to the function’s signature. Raises TypeError if the passed arguments can not be bound.

classmethod from_function(func)

Constructs Signature for the given python function

replace(parameters=<class 'IPython.utils.signatures._void'>, return_annotation=<class 'IPython.utils.signatures._void'>)

Creates a customized copy of the Signature. Pass ‘parameters’ and/or ‘return_annotation’ arguments to override them in the new copy.

2 Functions

IPython.utils.signatures.formatannotation(annotation, base_module=None)
IPython.utils.signatures.signature(obj)

Get a signature object for the passed callable.