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}]
endOr 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):
$SNAKEBRIDGE_VENVenvironment variable:snakebridge, :venv_pathconfig- Snakepit-managed venv (default:
priv/snakepit/python/venv) .venvin the current project root.venvin SnakeBridge's installation directory (for path deps or hex deps)
For PYTHONPATH, it includes:
- Snakepit's priv/python directory
- SnakeBridge's priv/python directory
Summary
Functions
Auto-configures Snakepit for use with SnakeBridge at runtime.
Returns configuration values for debugging.
Returns snakepit configuration for use with SnakeBridge.
Functions
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.
Returns configuration values for debugging.
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}]
endOptions:
: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):adapter_env- Extra environment variables for the Python adapter (merged into each pool):pools- Multi-pool config list (maps or keyword lists); defaults apply per pool