Inspect Recursive is a Python package that provides functionality for inspecting the structure of Python objects recursively.
- Inspect the structure of Python objects, including nested dictionaries, lists, and other iterable objects.
- Print the structure of objects as a tree, displaying their types and contents.
- Handle specific types like NumPy arrays and pandas DataFrames, if installed.
You can install Inspect Recursive using pip:
pip install inspect-recursive
- Example 1: Inspecting a simple dictionary
import inspect_recursive as ipr
simple_dict = {"a": 1, "b": 2, "c": 3}
ipr.what(simple_dict)
<<<<<<<<<<<<<<<<<<<<inspector<<<<<<<<<<<<<<<<<<<<<
- object : <class 'dict'>
>len=3 content-type=<class 'str'> vals="['a', 'b', 'c']"
- idx0 : <class 'str'>
>val="'a'"
- idx1 : <class 'str'>
>val="'b'"
> > > > > > > > > > > > > > > > > > > > > > > > >
- Example 2: Inspecting a nested dictionary
import inspect_recursive as ipr
nested_dict = {"a": {"x": 1, "y": 2}, "b": {"z": 3}}
what(nested_dict)
<<<<<<<<<<<<<<<<<<<<inspector<<<<<<<<<<<<<<<<<<<<<
- object : <class 'dict'>
>len=2 content-type=<class 'str'> vals="['a', 'b']"
- idx0 : <class 'str'>
>val="'a'"
- idx1 : <class 'str'>
>val="'b'"
> > > > > > > > > > > > > > > > > > > > > > > > >
- Example 3: Inspecting a list of strings
list_of_strings = ["apple", "banana", "cherry"]
what(list_of_strings)
<<<<<<<<<<<<<<<<<<<<inspector<<<<<<<<<<<<<<<<<<<<<
- object : <class 'list'>
>len=3 content-type=<class 'str'> vals="['apple', 'banana', 'cherry']"
- idx0 : <class 'str'>
>val="'apple'"
- idx1 : <class 'str'>
>val="'banana'"
> > > > > > > > > > > > > > > > > > > > > > > > >
- Example 4: Inspecting a more complex object
import open3d as o3d
open3d_mesh = o3d.io.read_point_cloud(ply_filepath)
what(open3d_mesh, max_depth=6, thresh_iter_list=5, thresh_iter_dict=5)
<<<<<<<<<<<<<<<<<<<<inspector<<<<<<<<<<<<<<<<<<<<<
- object : <class 'open3d.geometry.PointCloud'>
>len=1000 content-type=<class 'open3d.utility.Vector3dVector'>
- idx0 : <class 'open3d.utility.Vector3d'>
>val="Vector3d(0.002537, -0.01984, -0.08411)"
- idx1 : <class 'open3d.utility.Vector3d'>
>val="Vector3d(-0.02286, -0.04225, -0.07801)"
- idx2 : <class 'open3d.utility.Vector3d'>
>val="Vector3d(-0.03108, -0.04534, -0.0755)"
...
>len=3 content-type=<class 'numpy.ndarray'> ...
>len=2 content-type=<class 'dict'> ...
...
> > > > > > > > > > > > > > > > > > > > > > > > >
Contributions are welcome! Please feel free to open issues or submit pull requests on GitHub.
This project is licensed under the MIT License - see the LICENSE file for details.