
    Xj	                     &   d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	  e	e
          Zde j                            dd           Z ee                                          Z ee j                            d	 eej         ed
 eej                  dz
                                                   Z ee j                            d eedz  dz                                Z G d de          Zedefd            Z e            ZdS )    N)	lru_cache)Path)BaseSettingsSettingsConfigDict)
get_loggerz.env.APP_ENVdevelopmentPROJECT_ROOT      	DATA_ROOTdata_centerdatac                   N   e Zd ZU  eeddd          ZdZeed<   dZ	eed<   dZ
eed	<   d
Zeed<   eed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZedz  ed<   dZedz  ed<   dZeed<   dZeed<   edeeef         fd            ZdZeed <   d!Zeed"<   d!Zeed#<   d$Zeed%<   d&Zeed'<   d(Z eed)<   d*Z!eed+<    ee"          Z#eed,<   ede$fd-            Z%ede$fd.            Z&ede$fd/            Z'dZ(edz  ed0<   dZ)edz  ed1<   edefd2            Z*dS )3Settingszutf-8Fignore)env_fileenv_file_encodingcase_sensitiveextrazTax Data Centerapp_namez1.0.0app_versiondebugINFO	log_leveldatabase_urlr   database_schemazredis://localhost:6379/0	redis_urlcelery_broker_urlcelery_result_backenddata_center_queuecelery_task_queuezhttp://localhost:8000base_platform_urlNbase_platform_api_keyinternal_api_tokenr   base_platform_kb_id base_platform_category_mapreturnc                    | j                                         si S i }| j                             d          D ]}|                                }d|v r|                    dd          \  }}	 t          |                                          |t          |                                          <   x# t          $ r  t
                              d|            Y w xY w|S )N,:r   z#failed to parse category map pair: )r(   stripsplitint
ValueErrorloggerwarning)selfresultpairleftrights        8/lsinfo/ai/hellotax_ai/data_center/backend/app/config.pykb_category_id_mapzSettings.kb_category_id_map#   s    .4466 	I399#>> 	Q 	QD::<<Dd{{"jja00eQ03EKKMM0B0BF3tzz||,,--! Q Q QNN#O#O#OPPPPPQ	  s   ,AB00'CCcrawler_delay_min   crawler_delay_maxcrawler_max_concurrent   crawler_request_timeoutr   crawler_max_retrieszknowledge-documentsminio_bucketztax-data-centerminio_prefix	data_rootc                     t           S )N)_PROJECT_ROOTr3   s    r8   project_rootzSettings.project_root:   s        c                 6    t          | j                  dz  dz  S )Nchinatax_policyrawr   rC   rF   s    r8   raw_data_dirzSettings.raw_data_dir>   s    DN##&77%??rH   c                 6    t          | j                  dz  dz  S )NrJ   	processedrL   rF   s    r8   processed_data_dirzSettings.processed_data_dirB   s    DN##&77+EErH   
http_proxyhttps_proxyc                 &    | j          d| j         dS )Nz?options=-c%20search_path=z,public)r   r   rF   s    r8   database_url_with_schemaz!Settings.database_url_with_schemaH   s    #\\t?S\\\\rH   )+__name__
__module____qualname__r   	_ENV_FILEmodel_configr   str__annotations__r   r   boolr   r   r   r   r    r"   r#   r$   r%   r&   r/   r(   propertydictr9   r:   r<   r=   r?   r@   rA   rB   
_DATA_ROOTrC   r   rG   rM   rP   rQ   rR   rT    rH   r8   r   r      s        %%yGdiqyzzzL%Hc%%%KE4Is(OS(((/Is///7s777!;3;;;0s0004s444(,3:,,,%)d
)))    &((((DcN    X ss"#C####%S%%%    -L#---)L#)))S__Is$$$d    X @d @ @ @ X@ FD F F F XF!Jd
!!!"Kt"""]# ] ] ] X] ] ]rH   r   r)   c                  f    t                      } t                              dt                      | S )Nzconfiguration loaded from )r   r1   inforX   )ss    r8   get_settingsrd   L   s+    

A
KK8Y88999HrH   )os	functoolsr   pathlibr   pydantic_settingsr   r   common_loggingr   rU   r1   environgetrX   __file__resolve_thisrZ   parentsminlenrE   r_   r   rd   settingsr`   rH   r8   <module>rs      s   				             > > > > > > > > % % % % % %	H		>BJNN9m<<>>	X  RZ^^NCCcc!SSQVQ^M_M_bcMcFdFd8e4f4fgghhT"*..cc--2ORX2X.Y.YZZ[[
9] 9] 9] 9] 9]| 9] 9] 9]v h     <>>rH   