Introspects Python functions using the standalone introspection script.
Summary
Functions
Introspects a single attribute on a module to determine its type.
Introspect an entire Python module to discover all public symbols.
Fetch module docstrings without introspecting symbols.
Types
Functions
@spec introspect(SnakeBridge.Config.Library.t() | map(), [function_name()]) :: {:ok, map()} | {:error, term()}
@spec introspect( SnakeBridge.Config.Library.t() | map(), [function_name()], String.t() | nil ) :: {:ok, map()} | {:error, term()}
@spec introspect_attribute(String.t() | atom(), String.t() | atom(), keyword()) :: {:ok, map()} | {:error, term()}
Introspects a single attribute on a module to determine its type.
@spec introspect_batch([{SnakeBridge.Config.Library.t() | map(), String.t(), list()}]) :: [ {SnakeBridge.Config.Library.t() | map(), {:ok, list()} | {:error, term()}, String.t()} ]
@spec introspect_module( SnakeBridge.Config.Library.t() | map(), keyword() ) :: {:ok, map()} | {:error, term()}
Introspect an entire Python module to discover all public symbols.
This is used when generate: :all is specified for a library.
Unlike introspect/2 which only inspects specific symbols, this
function discovers all public functions, classes, and attributes.
Options
:submodules- List of submodule names to also introspect (e.g., ["linalg", "fft"]):flat- If true, use flat format (v2.0); otherwise use namespaced format (v2.1)
Examples
{:ok, result} = Introspector.introspect_module(library)
{:ok, result} = Introspector.introspect_module(library, submodules: ["linalg"])
@spec introspect_module_docs(SnakeBridge.Config.Library.t() | map(), [String.t()]) :: {:ok, list()} | {:error, term()}
Fetch module docstrings without introspecting symbols.