Module: core.oinspect
Tools for inspecting Python objects.
Uses syntax highlighting for presenting the various information elements.
Similar in spirit to the inspect module, but all calls take a name argument to reference the name under which an object is being read.
4 Classes
- class IPython.core.oinspect.OInfo(ismagic: bool, isalias: bool, found: bool, namespace: str | None, parent: Any, obj: Any)
Bases:
object- get(field)
Get a field from the object for backward compatibility with before 8.12
- class IPython.core.oinspect.InspectorHookData(obj: Any, info: OInfo | None, info_dict: InfoDict, detail_level: int, omit_sections: list[str])
Bases:
objectData passed to the mime hook
- class IPython.core.oinspect.Inspector(**kwargs: Any)
Bases:
Configurable- __init__(*, theme_name: str, str_detail_level=0, parent=None, config=None)
Create a configurable given a config config.
- Parameters:
config (Config) – If this is empty, default values are used. If config is a
Configinstance, it will be used to configure the instance.parent (Configurable instance, optional) – The parent Configurable instance of this object.
Notes
Subclasses of Configurable must call the
__init__()method ofConfigurablebefore doing anything else and usingsuper():class MyConfigurable(Configurable): def __init__(self, config=None): super(MyConfigurable, self).__init__(config=config) # Then any other code you need to finish initialization.
This ensures that instances will be configured properly.
- format_mime(bundle: Dict[str, List[Tuple[str, str]]]) Dict[str, str]
Format a mimebundle being created by _make_info_unformatted into a real mimebundle
- info(obj, oname='', info=None, detail_level=0) InfoDict
Compute a dict with detailed information about an object.
- Parameters:
obj (any) – An object to find information about
oname (str (default: '')) – Name of the variable pointing to
obj.info ((default: None)) – A struct (dict like with attr access) with some information fields which may have been precomputed already.
detail_level (int (default:0)) – If set to 1, more information is given.
- Return type:
An object info dict with known fields from
info_fields(seeInfoDict).
- mime_hooks
dictionary of mime to callable to add information into help mimebundle dict
- noinfo(msg, oname)
Generic message when no information is found.
- pdef(obj, oname='')
Print the call signature for any callable object.
If the object is a class, print the constructor information.
- pdoc(obj, oname='', formatter=None)
Print the docstring for any object.
Optional: -formatter: a function to run the docstring through for specially formatted docstrings.
Examples
- In [1]: class NoInit:
…: pass
- In [2]: class NoDoc:
…: def __init__(self): …: pass
In [3]: %pdoc NoDoc No documentation found for NoDoc
In [4]: %pdoc NoInit No documentation found for NoInit
In [5]: obj = NoInit()
In [6]: %pdoc obj No documentation found for obj
In [5]: obj2 = NoDoc()
In [6]: %pdoc obj2 No documentation found for obj2
- pfile(obj, oname='')
Show the whole file where an object was defined.
- pinfo(obj, oname='', formatter=None, info: OInfo | None = None, detail_level=0, enable_html_pager=True, omit_sections=())
Show detailed information about an object.
Optional arguments:
oname: name of the variable pointing to the object.
- formatter: callable (optional)
A special formatter for docstrings.
The formatter is a callable that takes a string as an input and returns either a formatted string or a mime type bundle in the form of a dictionary.
Although the support of custom formatter returning a string instead of a mime type bundle is deprecated.
info: a structure with some information fields which may have been precomputed already.
detail_level: if set to 1, more information is given.
omit_sections: set of section keys and titles to omit
- psearch(pattern, ns_table, ns_search=[], ignore_case=False, show_all=False, *, list_types=False)
Search namespaces with wildcards for objects.
Arguments:
pattern: string containing shell-like wildcards to use in namespace searches and optionally a type specification to narrow the search to objects of that type.
ns_table: dict of name->namespaces for search.
Optional arguments:
ns_search: list of namespace names to include in search.
ignore_case(False): make the search case-insensitive.
show_all(False): show all names, including those starting with underscores.
list_types(False): list all available object types for object matching.
- psource(obj, oname='')
Print the source code for an object.
7 Functions
- IPython.core.oinspect.pylight(code)
- IPython.core.oinspect.get_encoding(obj)
Get encoding for python source file defining obj
Returns None if obj is not defined in a sourcefile.
- IPython.core.oinspect.getdoc(obj) str | None
Stable wrapper around inspect.getdoc.
This can’t crash because of attribute problems.
It also attempts to call a getdoc() method on the given object. This allows objects which provide their docstrings via non-standard mechanisms (like Pyro proxies) to still be inspected by ipython’s ? system.
- IPython.core.oinspect.getsource(obj, oname='') str | None
Wrapper around inspect.getsource.
This can be modified by other projects to provide customized source extraction.
- IPython.core.oinspect.is_simple_callable(obj)
True if obj is a function ()
- IPython.core.oinspect.find_file(obj) str | None
Find the absolute path to the file where an object was defined.
This is essentially a robust wrapper around
inspect.getabsfile.Returns None if no file can be found.
- Parameters:
obj (any Python object)
- Returns:
fname – The absolute path to the file where the object was defined.
- Return type:
- IPython.core.oinspect.find_source_lines(obj)
Find the line number in a file where an object was defined.
This is essentially a robust wrapper around
inspect.getsourcelines.Returns None if no file can be found.
- Parameters:
obj (any Python object)
- Returns:
lineno – The line number where the object definition starts.
- Return type: