Loads a docs-derived public surface manifest for a SnakeBridge library.
A manifest is a JSON file that encodes which Python modules/objects should be treated as the "public surface" for wrapper generation. This enables:
- small, stable default bindings (e.g.
:summary) - an opt-in "everything the docs publish" surface (e.g.
:full) - deterministic builds without walking large Python package trees
Summary
Types
@type object_entry() :: %{name: String.t(), kind: object_kind()}
@type object_kind() :: :class | :function | :data | :unknown
@type profile() :: %{modules: [String.t()], objects: [object_entry()]}
Functions
@spec load_profile(SnakeBridge.Config.Library.t()) :: {:ok, profile()} | {:error, term()}