
    ,h                    d    d Z ddlmZ ddlmZ ddlmZ ddlm	Z	 erddl
mZ  G d d	e	      Zd	gZy
)z$Pyproject TOML file settings source.    )annotations)Path)TYPE_CHECKING   )TomlConfigSettingsSource)BaseSettingsc                  D     e Zd ZdZ	 d	 	 	 	 	 d fdZedd       Z xZS )!PyprojectTomlConfigSettingsSourcezK
    A source class that loads variables from a `pyproject.toml` file.
    c                   | j                  ||j                  j                  dd            | _        |j                  j                  dd      | _        | j                  | j                        | _        | j                  D ]#  }| j                  j                  |i       | _        % t        t        | '  || j                         y )Npyproject_toml_depthr   pyproject_toml_table_header)toolzpydantic-settings)
_pick_pyproject_toml_filemodel_configgettoml_file_pathtoml_table_header_read_files	toml_datasuperr   __init__)selfsettings_cls	toml_filekey	__class__s       o/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pydantic_settings/sources/providers/pyproject.pyr   z*PyprojectTomlConfigSettingsSource.__init__   s    
 #<<|00445KQO
 3?2K2K2O2O)+H3
 ))$*=*=>)) 	9C!^^//R8DN	9&6|T^^T    c                n   | r| j                         S t        j                         dz  }d}|j                         sy|j                  j                  dz  }||k  r[|j                         r|S t        |j                        |j                  k(  r	 |S |j                  j                  dz  }|dz  }||k  r[|S )zPick a `pyproject.toml` file path to use.

        Args:
            provided: Explicit path provided when instantiating this class.
            depth: Number of directories up the tree to check of a pyproject.toml.

        zpyproject.tomlr   r   )resolver   cwdis_fileparentstrroot)provideddepthrvcountchilds        r   r   z;PyprojectTomlConfigSettingsSource._pick_pyproject_toml_file%   s     ##%%XXZ**zz|II$$'77E%-==? Lu||$/ 	 ++.>>
 %- 	r   )N)r   ztype[BaseSettings]r   Path | NonereturnNone)r&   r+   r'   intr,   r   )__name__
__module____qualname____doc__r   staticmethodr   __classcell__)r   s   @r   r
   r
      sF     "&U(U U 
	U   r   r
   N)r2   
__future__r   _annotationspathlibr   typingr   tomlr   pydantic_settings.mainr   r
   __all__ r   r   <module>r=      s6    * 2  +3+(@ +\ /
/r   