o
    R+ i	                     @  s   d Z ddlmZ ddlmZ ddlmZmZ ddl	m
Z
mZ ddlmZmZ er3ddladd	lmZ ndadddZG dd dee
ZdgZdS )zYAML file settings source.    )annotations)Path)TYPE_CHECKINGAny   )ConfigFileSourceMixinInitSettingsSource)DEFAULT_PATHPathTypeN)BaseSettingsreturnNonec               
   C  s>   t d urd S zdd l a W d S  ty }  ztd| d } ~ ww )Nr   zBPyYAML is not installed, run `pip install pydantic-settings[yaml]`)yamlImportError)e r   t/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/pydantic_settings/sources/providers/yaml.pyimport_yaml   s   
r   c                      s>   e Zd ZdZeddfd fd
dZdddZdddZ  ZS )YamlConfigSettingsSourcez>
    A source class that loads variables from a yaml file
    Nsettings_clstype[BaseSettings]	yaml_filePathType | Noneyaml_file_encoding
str | Noneyaml_config_sectionc                   s   |t kr|n|jd| _|d ur|n|jd| _|d ur |n|jd| _| | j| _| jrNz	| j| j | _W n tyM   td| j d| j w t	 
|| j d S )Nr   r   r   zyaml_config_section key "z" not found in )r	   Zmodel_configgetyaml_file_pathr   r   Z_read_filesZ	yaml_dataKeyErrorsuper__init__)selfr   r   r   r   	__class__r   r   r    %   s&   

z!YamlConfigSettingsSource.__init__	file_pathr   r   dict[str, Any]c                 C  sF   t   t|| jd}t|pi W  d    S 1 sw   Y  d S )N)encoding)r   openr   r   Z	safe_load)r!   r$   r   r   r   r   
_read_fileB   s   $z#YamlConfigSettingsSource._read_filestrc                 C  s   | j j d| j dS )Nz(yaml_file=))r#   __name__r   )r!   r   r   r   __repr__G   s   z!YamlConfigSettingsSource.__repr__)r   r   r   r   r   r   r   r   )r$   r   r   r%   )r   r)   )	r+   
__module____qualname____doc__r	   r    r(   r,   __classcell__r   r   r"   r   r       s    
r   )r   r   )r/   
__future__r   Z_annotationspathlibr   typingr   r   baser   r   typesr	   r
   r   Zpydantic_settings.mainr   r   r   __all__r   r   r   r   <module>   s    


+