
    %e                         d Z ddlZd Zd ZdS )z!A bunch of useful code utilities.    Nc                     d}d}g }t          |           D ]J\  }}|dk    r|dk    r|dz   }|dz  }|dk    r(|dz  }|dk    r|                    | ||                    K|S )aa  Parse argument strings from all outer parentheses in a line of code.

    Parameters
    ----------
    line : str
        A line of code

    Returns
    -------
    list of strings
        Contents of the outer parentheses

    Example
    -------
    >>> line = 'foo(bar, baz), "a", my(func)'
    >>> extract_args(line)
    ['bar, baz', 'func']

    r   N(   ))	enumerateappend)linestack
startIndexresultsics         3lib/python3.11/site-packages/streamlit/code_util.pyextract_argsr      s    ( EJG$ 3 3188zzU
QJEE#XXQJEzztJqL1222N    c                     t          |          d         }t          |           dk    r@t          j        d|          }t          |          t          |           k    s
J d            n|g}|S )a  Parse arguments from a stringified arguments list inside parentheses

    Parameters
    ----------
    args : list
        A list where it's size matches the expected number of parsed arguments
    line : str
        Stringified line of code with method arguments inside parentheses

    Returns
    -------
    list of strings
        Parsed arguments

    Example
    -------
    >>> line = 'foo(bar, baz, my(func, tion))'
    >>>
    >>> get_method_args_from_code(range(0, 3), line)
    ['bar', 'baz', 'my(func, tion)']

    r   r   z,\s*(?![^(){}[\]]*\))zCould not split arguments)r   lenresplit)argsr	   	line_argsinputss       r   get_method_args_from_coder   8   sn    . T""1%I 4yy1}}2I>>6{{c$ii''')D''''Mr   )__doc__r   r   r    r   r   <module>r      s?    ( ' 				! ! !H    r   