File: generics.py

package info (click to toggle)
ipython 9.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 8,624 kB
  • sloc: python: 45,268; sh: 317; makefile: 168
file content (32 lines) | stat: -rw-r--r-- 807 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# encoding: utf-8
"""Generic functions for extending IPython."""

from __future__ import annotations

from typing import Any

from IPython.core.error import TryNext
from functools import singledispatch


@singledispatch
def inspect_object(obj: Any) -> None:
    """Called when you do obj?"""
    raise TryNext


@singledispatch
def complete_object(obj: Any, prev_completions: list[str]) -> list[str]:
    """Custom completer dispatching for python objects.

    Parameters
    ----------
    obj : object
        The object to complete.
    prev_completions : list
        List of attributes discovered so far.
    This should return the list of attributes in obj. If you only wish to
    add to the attributes already discovered normally, return
    own_attrs + prev_completions.
    """
    raise TryNext