Introduction
Inspect Recursive
Inspect Recursive is a Python package that provides functionality for inspecting the structure of Python objects recursively.
Features
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.
Installation
You can install Inspect Recursive using pip:
pip install inspect-recursive
Usage
inspect_object_structure
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'> ...
...
> > > > > > > > > > > > > > > > > > > > > > > > >
Contributing
Contributions are welcome! Please feel free to open issues or submit pull requests on GitHub.
License
This project is licensed under the MIT License - see the LICENSE file for details.