
    i$im"                        U d dl  d dlmZ d Z e        ej                  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 )    )*Nc                  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	        d       t        j                  d   }t        j                  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      rd	t        j                  vrt        d       t        d| d|	 d| d       |j                  j                  j                  |      d   }
d|
v r|
d   }
dddd||	<   ||	   j                  |
       t        d|	 dt!        |
j#                                       + |rEt        dt!        |j#                                       t        j                  j                  |       nt        d       dt        j                  v rt        j                  d   }d	}	t        t        d      rd	t        j$                  vrt        d       y t        d|	 d| d       |j                  j                  j                  |      d   }d|v r|d   }i }d d!d"d#d$d%d&d'|d	<   |d	   j                  |       t        d(t!        |j#                                dt!        |j#                                       t        j$                  d	   j                  |       y t        d)       y )*Nr   	VAULT_URLVAULT_TOKENuM   VAULT Error! Не указаны параметры VAULT_URL и VAULT_TOKEN!)urltokenVAULT_REDIS
   _PATHdefault_NAMEu   VAULT Укажите cache_settingsuE   VAULT Для текущего APP не используется Redisu1   VAULT Получаем настройки для r
   z ())path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exitClientrangeappendgethasattrr   r4   secretskvread_secretupdatelistkeysr?   )rD   r-   r.   clientredis_settingsredis_prefixesiredis_prefixr6   nameredis_connection_configpg_connection_configpg_settingss                r$   
vault_initr]   5   s   bjj(M,KacGjj%

=)E2$ 'r 	5A!!Ks"34	5* 	YL::>>\N%"89D}, zz~~e&<=1,uEFG6#34	I^I^8^]_El^STUYTZZ\]a\bbcde&,nn&7&7&C&C&C&Nv&V#00*A&*I'  	$N4  4 ''(?@himhnnpqu  wN  wS  wS  wU  rV  qW  X  Y;	Y> jkop~  qD  qD  qF  lG  kH  I  J!!((8QS BJJ.::34DD6>2ivGZGZ6Z`bNtfTVW[V\\]^_#)>>#4#4#@#@d#@#KF#S --';F'C$ K$ )*+/(3,0+.+/
&K	" 	"))*>?klpq|  rB  rB  rD  mE  lF  FH  IM  Nb  Ng  Ng  Ni  Ij  Hk  l  m	*11+>VXr&   c                       e Zd Zd Zy)AppProxyc                 &    ddl m} t        ||      S )Nr   )APP)cmf.appra   getattr)selfrY   ra   s      r$   __getattr__zAppProxy.__getattr__   s    sD!!r&   N)__name__
__module____qualname__re    r&   r$   r_   r_      s    "r&   r_   ra   zcmf.app.Flask)cmf_deferred_jobCmfDeferredJobWrapper)on_server_eventcmf_emit_server_event)SAModelAccessor)cmfutil)#ra   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)Ocmf.include_cmfcmf.config_loadconfig_loadr   r%   rE   rF   rL   lowerrG   r]   CORS_ALLOWED_DOMAINS
isinstancestrr   tmp.__autogen_models_tmp__autogen_models_tmpmodelscmf.base_errorobjectr_   globalsra   __annotations__cmf.cmf_deferred_jobrj   rk   cmf.cmf_server_event_listenerrl   rm   cmf.data_providers.sqlalchemyrn   _SAModelAccessorsar   
UPLOAD_DIRcmf.utilro   rb   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   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  ::>>/2&,,.&8	
:;cYJ 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(