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

Configuration helper for auto-configuring Snakepit to work with SnakeBridge.

## Usage

In your `config/config.exs`, replace manual snakepit configuration with:

    import Config

    # Auto-configure snakepit for snakebridge
    for {key, value} <- SnakeBridge.ConfigHelper.snakepit_config() do
      config :snakepit, [{key, value}]
    end

Or for a cleaner look, use the convenience macro in `config/runtime.exs`:

    import Config
    SnakeBridge.ConfigHelper.configure_snakepit!()

Multi-pool configuration (with per-pool affinity):

    import Config
    SnakeBridge.ConfigHelper.configure_snakepit!(
      pools: [
        %{name: :hint_pool, pool_size: 2, affinity: :hint},
        %{name: :strict_pool, pool_size: 2, affinity: :strict_queue}
      ]
    )

## How It Works

The helper looks for a Python venv in these locations (in order):
1. `$SNAKEBRIDGE_VENV` environment variable
2. `:snakebridge, :venv_path` config
3. Snakepit-managed venv (default: `priv/snakepit/python/venv`)
4. `.venv` in the current project root
5. `.venv` in SnakeBridge's installation directory (for path deps or hex deps)

For PYTHONPATH, it includes:
- Snakepit's priv/python directory
- SnakeBridge's priv/python directory

# `configure_snakepit!`
[🔗](https://github.com/nshkrdotcom/snakebridge/blob/v0.14.0/lib/snakebridge/config_helper.ex#L113)

Auto-configures Snakepit for use with SnakeBridge at runtime.

Best used in `config/runtime.exs`:

    import Config
    SnakeBridge.ConfigHelper.configure_snakepit!()

This applies configuration via Application.put_env, which works in runtime.exs.

# `debug_config`
[🔗](https://github.com/nshkrdotcom/snakebridge/blob/v0.14.0/lib/snakebridge/config_helper.ex#L129)

Returns configuration values for debugging.

# `snakepit_config`
[🔗](https://github.com/nshkrdotcom/snakebridge/blob/v0.14.0/lib/snakebridge/config_helper.ex#L61)

```elixir
@spec snakepit_config(keyword()) :: keyword()
```

Returns snakepit configuration for use with SnakeBridge.

Use this in `config/config.exs`:

    for {key, value} <- SnakeBridge.ConfigHelper.snakepit_config() do
      config :snakepit, [{key, value}]
    end

Options:
- `:pool_size` - Number of Python workers (default: 2)
- `:venv_path` - Explicit path to venv directory
- `:affinity` - Snakepit session affinity mode (`:hint`, `:strict_queue`, `:strict_fail_fast`)
- `:pools` - Multi-pool config list (maps or keyword lists); defaults apply per pool

---

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