o
    i                     @   s   U d Z ddlmZmZmZ ddlmZ ddlmZ da	eeee
e
f   ed< deee
e
f  fdd	Zdee
 fd
dZde
defddZdS )zp
Region utilities for Pipecat Cloud CLI.

Provides functions to fetch and cache available regions from the API.
    )DictListOptional)API)configN_regions_cachereturnc                     s>   t du rtd} tj| dI dH \}}|s|sg S |a t S )av  
    Fetch available regions from the API with caching.

    This function is cached so the API is only called once per CLI session.

    Returns:
        List of region objects with 'code' and 'display_name' fields
        Example: [
            {"code": "us-west", "display_name": "US West"},
            {"code": "eu-central", "display_name": "EU Central"}
        ]
    Norg)r	   )r   r   getr   regions)r	   dataerror r   O/home/ubuntu/.local/lib/python3.10/site-packages/pipecatcloud/_utils/regions.pyget_regions   s   
r   c                     s   t  I dH } dd | D S )z
    Get list of region codes only.

    Returns:
        List of region codes (e.g., ['us-west', 'eu-central', 'ap-south'])
    Nc                 S   s   g | ]}|d  qS )coder   ).0rr   r   r   
<listcomp>8   s    z$get_region_codes.<locals>.<listcomp>)r   )r   r   r   r   get_region_codes0   s   r   regionc                    s   t  I dH }| |v S )z
    Validate that a region code is supported.

    Args:
        region: Region code to validate

    Returns:
        True if region is valid, False otherwise
    N)r   )r   valid_codesr   r   r   validate_region;   s   
r   )__doc__typingr   r   r   pipecatcloud.cli.apir   pipecatcloud.cli.configr   r   str__annotations__r   r   boolr   r   r   r   r   <module>   s   