
    i"                        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      rdt        j                  vrt        d       t        d| d|
 d|	 d       |j                  j                  j                   j#                  |	|      d   d   }dddd||
<   ||
   j%                  |       t        d|
 dt'        |j)                                       0 |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                   j#                  |	|      d   d   }i }d"d#d$d%d&d'd(d)|d<   |d   j%                  |       d*t'        |j)                                dt'        |j)                                }t        |       t        j*                  d   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   r6   secretskvv2read_secretupdatelistkeysrB   )rG   r/   r0   r9   clientredis_settingsredis_prefixesiredis_prefixr8   nameredis_connection_configpg_connection_configpg_settings	vault_msgs                  r$   
vault_initrd   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	I^I^8^]^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 jkop~  qD  qD  qF  lG  kH  I  J!!((8QR BJJ.::34DD6>2ivGZGZ6Z`aNtfTVW[V\\]^_ $*>>#4#4#7#7#C#C[f#C#ghn#opv#w  K$ )*+/(3,0+.+/
&K	" 	"))*>? j((*+,Bt4H4M4M4O/P.QS  )	*11+i2HIVWr&   c                       e Zd Zd Zy)AppProxyc                 &    ddl m} t        ||      S )Nr   )APP)cmf.apprh   getattr)selfr_   rh   s      r$   __getattr__zAppProxy.__getattr__   s    sD!!r&   N)__name__
__module____qualname__rl    r&   r$   rf   rf      s    "r&   rf   rh   zcmf.app.Flask)cmf_deferred_jobCmfDeferredJobWrapper)on_server_eventcmf_emit_server_event)SAModelAccessor)cmfutil)#rh   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   rd   CORS_ALLOWED_DOMAINS
isinstancestrr   tmp.__autogen_models_tmp__autogen_models_tmpmodelscmf.base_errorobjectrf   globalsrh   __annotations__cmf.cmf_deferred_jobrq   rr   cmf.cmf_server_event_listenerrs   rt   cmf.data_providers.sqlalchemyru   _SAModelAccessorsar   
UPLOAD_DIRcmf.utilrv   ri   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   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	
:;eXN 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"