
    qi                    <    d Z ddlmZ ddlZ G d de      ZdddZy)	zrEnvironment variable helpers.

This module provides small, centralized parsing helpers for environment variables.
    )annotationsNc                  $     e Zd ZdZd fdZ xZS )InvalidEnvVarValueErrorz;Raised when an environment variable value cannot be parsed.c           	     b    t         |   d|d|d| d       || _        || _        || _        y)z&Initialize an InvalidEnvVarValueError.zInvalid value for env var z: z. Expected .N)super__init__namevalueexpected)selfr
   r   r   	__class__s       C/opt/pipecat/venv/lib/python3.12/site-packages/pipecat/utils/env.pyr	   z InvalidEnvVarValueError.__init__   s>    5dXRyT\S]]^_`	
     )r
   strr   r   r   r   )__name__
__module____qualname____doc__r	   __classcell__)r   s   @r   r   r      s    E! !r   r   c                    t        j                  |       }||S |j                         j                         }|dv ry|dv ryt	        | |d      )a  Interpret an environment variable as a boolean.

    - If the variable is **not set**, returns `default`.
    - If the variable is set to a recognized boolean string, returns the parsed value.
    - Otherwise, raises `InvalidEnvVarValueError`.

    Recognized values (case-insensitive, whitespace ignored):
    - Truthy: "1", "true", "yes", "y", "on"
    - Falsy:  "0", "false", "no", "n", "off", ""
    >   1yonyestrueT>    0nnoofffalseFztrue or false)r
   r   r   )osgetenvstriplowerr   )r
   defaultrawvals       r   
env_truthyr*      s]     ))D/C
{
))+


C
--
22
!  r   )F)r
   r   r'   boolreturnr+   )r   
__future__r   r#   
ValueErrorr   r*    r   r   <module>r0      s#   
 # 	!j !r   