ó
    fjA  ã                   óV   • S r SSKJr  SSKJrJrJr  SSKJr  SSK	J
r
   " S S\
5      rg)	z/
Configuration management for the application.
é    )ÚPath)ÚAnyÚDictÚOptional©Úload_dotenv)Ú	BaseModelc                   ób  • \ rS rSr% SrSr\\   \S'   Sr	\\   \S'   Sr
\\   \S'   Sr\\   \S'   Sr\\   \S'   S	r\\S
'   Sr\\   \S'   Sr\\S'   Sr\\S'   \" S5      r\\S'   \" S5      r\\S'   Sr\\S'   Sr\\S'   \SS\\   SS 4S jj5       rS\S\\   4S jrS\\\4   4S jrSrg) ÚConfigé   zApplication configuration.NÚanthropic_api_keyÚopenai_api_keyÚgroq_api_keyÚgemini_api_keyÚlogfire_tokenÚ	anthropicÚdefault_providerÚdefault_modelé   Úmax_concurrent_tablesé   Útable_analysis_timeoutÚoutputÚ
output_dirÚexperimentsÚexperiments_dirÚINFOÚ	log_levelTÚenable_logfireÚenv_fileÚreturnc                 óV   • U(       a  [        U5        U " 5       $ [        5         U " 5       $ )z‚
Load configuration from environment and .env file.

Args:
    env_file: Optional path to .env file

Returns:
    Config instance
r   )Úclsr    s     Ú0/home/mande/repo/quber/src/quber/utils/config.pyÚloadÚConfig.load$   s(   € ö Ü˜Ô!ñ
 ‹uˆô ŒMñ ‹uˆó    Úproviderc                 óž   • U R                   U R                  U R                  U R                  S.nUR	                  UR                  5       5      $ )zg
Get API key for a specific provider.

Args:
    provider: Provider name

Returns:
    API key or None
)r   ÚopenaiÚgroqÚgemini)r   r   r   r   ÚgetÚlower)Úselfr(   Úkey_maps      r$   Úget_api_keyÚConfig.get_api_key8   sG   € ð ×/Ñ/Ø×)Ñ)Ø×%Ñ%Ø×)Ñ)ñ	
ˆð �{‰{˜8Ÿ>™>Ó+Ó,Ð,r'   c                 ó&   • U R                  S1 SkS9$ )zConvert config to dictionary.T>   r   r   r   r   r   )Úexclude_noneÚexclude)Ú
model_dump)r/   s    r$   Úto_dictÚConfig.to_dictJ   s    € à�‰Øòð ð 	
ð 		
r'   © )N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   ÚstrÚ__annotations__r   r   r   r   r   r   r   Úintr   r   r   r   r   r   ÚboolÚclassmethodr%   r1   r   r   r7   Ú__static_attributes__r9   r'   r$   r   r      s  ‡ Ù$ð (,Ð�x ‘}Ó+Ø$(€N�H˜S‘MÓ(Ø"&€L�(˜3‘-Ó&Ø$(€N�H˜S‘MÓ(Ø#'€M�8˜C‘=Ó'ð (Ð�cÓ'Ø#'€M�8˜C‘=Ó'Ø!"Ð˜3Ó"Ø"$Ð˜CÓ$ñ ˜H“~€J�Ó%Ù  Ó/€O�TÓ/ð €IˆsÓØ€N�DÓàñ˜H S™Mð °Xô ó ðð&- Cð -¨H°S©Mô -ð$
˜˜c 3˜h™÷ 
r'   r   N)r>   Úpathlibr   Útypingr   r   r   Údotenvr   Úpydanticr	   r   r9   r'   r$   Ú<module>rI      s)   ðñõ ß &Ñ &å Ý ôI
ˆYõ I
r'   