
    ei"                        U d dl Z d dl d dlmZ d Z e        ej                  dd      j                         dk(  r e	d       d Z
 e
        ej                  rC eej                  e      r0ej                  j                         D  cg c]  } | s| 	 c} e_        d dlmZ d dl  G d	 d
e      Zd e       vr e       Zded<   d dlmZmZ d dlmZmZ d dlmZ   e        Z!ejD                  Z"ejF                  Z#d dl$m%Z% d dl&mZm'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZH d dlIZJd dlKZJd dlLZJd dlMmNZN yc c} w )    N)*c                  8   ddl m}   | t        j                  d      }d }d } | d      } | d      }|j	                         r|j                         j                  d      }|j	                         r|j                         j                  d      }|j	                         r|dz  j                         j                  d      }d|v r]|j                  d	      d
   }||j                  dd      d
   z  }|j	                         r"|j                         j                  d      }n|}|t        _        |t        _	        |t        _
        t        j                  Et        j                  r4dD ].  }t        j                  j                  |      s#dt        _         y  y y y )Nr   )Pathz.gitz/opt/eva_branchz/opt/eva_version
HEADzref: /    )maxsplit)develreleasemasterT)pathlibr   configPROJECT_DIRexists	read_textstripsplitCMF_VERSIONEVA_VERSION
EVA_BRANCH
PRODUCTION
startswith)	r   git_pathbranchversionbranch_pathversion_pathhead	head_pathbranch_prefixs	            ./cmf/include.pyinit_versionsr%      sk   F&&/HFG()K*+L&&(..t4((*006 **,2248d?ZZ_R(F $**S1*"=b"ABI!#--/55d;G F FF V%6%6; 	M  ++M:$(!	 &7     VAULT_ENABLED trueu.   Включена интеграция с vaultc            
         dd l } dt        j                  vsdt        j                  vr t        d       t	        j
                  d       t        j                  d   }t        j                  d   }t        j                  dd      }| j                  ||      }i }dg}t        d	      D ]  }|j                  d|         |D ]  }t        j                  j                  | d
      }	|	s)|dk(  rd}
n>t        j                  j                  | d      }
|
st        d| d       t        d       t        t        d      st        d       t        d| d|
 d|	 d       |j                  j                  j                  j!                  |	|      d   d   }dddd||
<   ||
   j#                  |       t        d|
 dt%        |j'                                        |rm|j)                         D ]4  \  }}t        j*                  j-                  |i       j#                  |       6 t        dt%        |j'                                       nt        d       dt        j                  v rt        j                  d   }	d}
t        t        d      st        d        y t        d!|
 d|	 d       |j                  j                  j                  j!                  |	|      d   d   }i }d"d#d$d%d&d'd(d)|d<   |d   j#                  |       d*t%        |j'                                dt%        |j'                                }t        |       t        j.                  j-                  di       j#                  |d          y t        d+       y ),Nr   	VAULT_URLVAULT_TOKENuM   VAULT Error! Не указаны параметры VAULT_URL и VAULT_TOKEN!VAULT_MOUNT_POINTsecret)urltokenVAULT_REDIS
   _PATHdefault_NAMEu   VAULT Укажите cache_settingsuE   VAULT Для текущего APP не используется Redisu1   VAULT Получаем настройки для r
   z ())pathmount_pointdataredis6379   )typeportdbuT   VAULT Получили настройки доступа в Redis из vault для z: uV   VAULT Применили настройки доступа в Redis из vault для u=   VAULT найстройки для Redis не переданыVAULT_POSTGRES_PATHdata_sourcesuH   VAULT Для текущего APP не используется Postgresu:   VAULT Получаем настройки для Postgres 
sqlalchemy   i  	QueuePoolTd   i  )r>   zsqlalchemy.pool_sizezsqlalchemy.pool_recyclezsqlalchemy.poolclasszsqlalchemy.pool_use_lifozsqlalchemy.max_overflowzsqlalchemy.pool_timeoutuW   VAULT Получили настройки доступа в Postgres из vault для uB   VAULT Найстройки для PostgreSQL не переданы)hvacosenvironprintsysexitgetenvClientrangeappendgethasattrr   secretskvv2read_secretupdatelistkeysitemsr6   
setdefaultrB   )rG   r/   r0   r9   clientredis_settingsredis_prefixesiredis_prefixr8   nameredis_connection_configkeyvaluepg_connection_configpg_settings	vault_msgs                    r$   
vault_initrh   7   s   bjj(M,KabHHQKjj%

=)ii 3X>E2$ 'r 	5A!!Ks"34	5* 	YL::>>\N%"89D}, zz~~e&<=1,uEFG6#34]^El^STUYTZZ\]a\bbcde&,nn&7&7&:&:&F&FD^i&F&jkq&rsy&z#  	$N4  4 ''(?@himhnnpqu  wN  wS  wS  wU  rV  qW  X  Y5	Y8 ,224 H
U%%00b9@@GH jkop~  qD  qD  qF  lG  kH  I  J QR BJJ.::34DD6>2`aNtfTVW[V\\]^_ $*>>#4#4#7#7#C#C[f#C#ghn#opv#w  K$ )*+/(3,0+.+/
&K	" 	"))*>? j((*+,Bt4H4M4M4O/P.QS  )**9b9@@YAWXVWr&   c                       e Zd Zd Zy)AppProxyc                 &    ddl m} t        ||      S )Nr   )APP)cmf.apprl   getattr)selfra   rl   s      r$   __getattr__zAppProxy.__getattr__   s    sD!!r&   N)__name__
__module____qualname__rp    r&   r$   rj   rj      s    "r&   rj   rl   zcmf.app.Flask)cmf_deferred_jobCmfDeferredJobWrapper)on_server_eventcmf_emit_server_event)SAModelAccessor)cmfutil)#rl   send_staticsocketioREDIS_DBprint_debug	CMF_CACHE	cmf_alertcmf_notecmf_emit_eventrun_bash_commandrsa_sign_pack_jwt
create_jwtcmf_get_versioncmf_remove_filewhatsapp_siowhatsapp_go_siostart_viewsschedule_deferred_jobcommit_with_eventrollback_purge_eventcmf_pycharm_debuggen_eva_app_tokencall_eva_account
cmf_commitcmf_rollbackapp_base_hrefauth_base_hrefstart_of_day
end_of_daystart_of_weekend_of_weekstart_of_monthend_of_monthstart_of_yearend_of_year)CmfUiMenuNode)OrK   cmf.include_cmfcmf.config_loadconfig_loadr   r%   rH   rM   lowerrJ   rh   CORS_ALLOWED_DOMAINS
isinstancestrr   tmp.__autogen_models_tmp__autogen_models_tmpmodelscmf.base_errorobjectrj   globalsrl   __annotations__cmf.cmf_deferred_jobru   rv   cmf.cmf_server_event_listenerrw   rx   cmf.data_providers.sqlalchemyry   _SAModelAccessorsar   
UPLOAD_DIRcmf.utilrz   rm   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	cmf.viewscmf
cmf.fields
cmf.modelscmf.models.base_modelr   )domains   0r$   <module>r      s<   
   #L  99_b!'')V3	
:;hXT L 
:f.I.I3#O8>8S8S8Y8Y8["ff_e6"fF ) "v " 		#:C% I P M  
 J J J J J J J J J J    /y #gs   E"E"