# `Snakepit.Compatibility`
[🔗](https://github.com/nshkrdotcom/snakepit/blob/v0.13.0/lib/snakepit/compatibility.ex#L1)

Thread-safety compatibility matrix for common Python libraries.

> #### Legacy Optional Module {: .warning}
>
> `Snakepit` does not call this module internally. It remains available for
> compatibility and may be removed in `v0.16.0` or later.
>
> Prefer explicit worker-profile and adapter-level thread-safety
> configuration in your host application.

# `library_info`

```elixir
@type library_info() :: %{thread_safe: thread_safety(), notes: String.t()}
```

# `thread_safety`

```elixir
@type thread_safety() :: true | false | :conditional
```

# `check`

```elixir
@spec check(String.t() | atom(), :thread | :process) ::
  {:ok, String.t()} | {:warning, String.t()} | {:error, String.t()}
```

# `generate_report`

```elixir
@spec generate_report([String.t() | atom()], :thread | :process) ::
  {:ok, map()} | {:error, term()}
```

# `get_library_info`

```elixir
@spec get_library_info(String.t() | atom()) :: library_info() | nil
```

# `list_all`

```elixir
@spec list_all(:thread_safe | :thread_unsafe | :conditional | :all) :: [String.t()]
```

---

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