# `SnakeBridge.ModuleResolver`
[🔗](https://github.com/nshkrdotcom/snakebridge/blob/v0.14.0/lib/snakebridge/module_resolver.ex#L1)

Resolves ambiguous module paths to class attributes or submodules.

# `resolution`
[🔗](https://github.com/nshkrdotcom/snakebridge/blob/v0.14.0/lib/snakebridge/module_resolver.ex#L8)

```elixir
@type resolution() ::
  {:class, String.t(), String.t()} | {:submodule, String.t()} | {:error, term()}
```

# `resolve_class_or_submodule`
[🔗](https://github.com/nshkrdotcom/snakebridge/blob/v0.14.0/lib/snakebridge/module_resolver.ex#L22)

```elixir
@spec resolve_class_or_submodule(map(), module()) :: resolution()
```

Determines if an Elixir module maps to a Python class attribute or submodule.

Returns:
  - `{:class, class_name, parent_module}` when the last path segment is a class.
  - `{:submodule, module_path}` when the path resolves to a submodule.
  - `{:error, reason}` when introspection fails.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
