o
    `+ i                     @  sL   d dl mZ d dlZd dlmZ d dlmZ G dd deeeef  Z	dS )    )annotationsN)Optional)BaseOutputParserc                   @  sZ   e Zd ZU dZedddZded< 	 ded	< 	 d
Zded< 	 edddZ	dddZ
d
S )RegexParserz.Parse the output of an LLM call using a regex.returnboolc                 C     dS )NT )clsr	   r	   j/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/langchain/output_parsers/regex.pyis_lc_serializable   s   zRegexParser.is_lc_serializablestrregexz	list[str]output_keysNzOptional[str]default_output_keyc                 C  r   )zReturn the type key.Zregex_parserr	   )selfr	   r	   r   _type   s   zRegexParser._typetextdict[str, str]c                   s\   t j  r fddtjD S jdu r#d }t|fddjD S )z Parse the output of an LLM call.c                   s    i | ]\}}|  |d  qS )   )group).0ikey)matchr	   r   
<dictcomp>    s     z%RegexParser.parse.<locals>.<dictcomp>NzCould not parse output: c                   s    i | ]}|| j krnd qS ) )r   )r   r   )r   r   r	   r   r   $   s    )researchr   	enumerater   r   
ValueError)r   r   msgr	   )r   r   r   r   parse   s   

zRegexParser.parse)r   r   )r   r   )r   r   r   r   )__name__
__module____qualname____doc__classmethodr   __annotations__r   propertyr   r"   r	   r	   r	   r   r   	   s   
 r   )

__future__r   r   typingr   Zlangchain_core.output_parsersr   dictr   r   r	   r	   r	   r   <module>   s
     