
    iU+                        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e j                         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jF                  Z#ejH                  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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI d dlJZKd dlLZKd dlMZKd dlNmOZO 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.   Включена интеграция с vaultfilec            
      B   dd l } dt        j                  vsdt        j                  vr0t        dt        j
                         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}
nNt        j                  j                  | d      }
|
s*t        d| dt        j
                         t        d       t        t        d      st        dt        j
                         t        d| d|
 d|	 dt        j
                         |j                  j                  j                   j#                  |	|      d   d   }dddd||
<   ||
   j%                  |       t        d|
 dt'        |j)                                t        j
                         ^ |r}|j+                         D ]4  \  }}t        j,                  j/                  |i       j%                  |       6 t        dt'        |j)                                t        j
                         nt        dt        j
                         dt        j                  v r?t        j                  d   }	d}
t        t        d       st        d!t        j
                         y t        d"|
 d|	 dt        j
                         |j                  j                  j                   j#                  |	|      d   d   }i }d#d$d%d&d'd(d)d*|d<   |d   j%                  |       t        d+t'        |j)                                dt'        |j)                                t        j
                         t        j0                  j/                  di       j%                  |d          nt        d,t        j
                         d-t        j                  v r9t        j                  d-   }	d}
t        t        d       rd.t        j0                  vrt        d/t        j
                         y t        d0|
 d|	 dt        j
                         |j                  j                  j#                  |	1      d   }d|v r|d   }i }d2d3i|d.<   |d.   j%                  |       t        d4t'        |j)                                dt'        |j)                                t        j
                         t        j0                  d.   j%                  |d.          y t        d5t        j
                         y )6Nr   	VAULT_URLVAULT_TOKENuM   VAULT Error! Не указаны параметры VAULT_URL и VAULT_TOKEN!r*   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 не переданыVAULT_RDISK_PATHrdiskuE   VAULT Для текущего APP не используется Rdisku7   VAULT Получаем настройки для Rdisk )r:   classz/modules.rdisk.data_driver.rdisk:RDiskDataDriveruT   VAULT Получили настройки доступа в Rdisk из vault для u=   VAULT Найстройки для Rdisk не переданы)hvacosenvironprintsysstderrexitgetenvClientrangeappendgethasattrr   secretskvv2read_secretupdatelistkeysitemsr8   
setdefaultrD   )rL   r1   r2   r;   clientredis_settingsredis_prefixesiredis_prefixr:   nameredis_connection_configkeyvaluepg_connection_configpg_settingsrdisk_configrdisk_settingss                     r$   
vault_initro   8   s   bjj(M,KahkhrhrsHHQKjj%

=)ii 3X>E2( 'r 	5A!!Ks"34	5* 	kL::>>\N%"89D}, zz~~e&<=1,uESZZXG6#34]eheoeopEl^STUYTZZ\]a\bbcdlolvlvw&,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  `c  `j  `j  k5	k8 ,224 H
U%%00b9@@GH jkop~  qD  qD  qF  lG  kH  I  PS  PZ  PZ  [ QY\YcYcd BJJ.::34DD6>2`ilisistNtfTVW[V\\]^fifpfpq $*>>#4#4#7#7#C#C[f#C#ghn#opv#w  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  tw  t~  t~  **9b9@@YAWXV^a^h^hi+::01DD6>2gVEXEX6X]fifpfpqKD6QSTXSYYZ[cfcmcmn!>>,,88d8CFKL%+F3  NJ'N7# 7#**<8himn|  oB  oB  oD  jE  iF  FH  IM  NZ  N_  N_  Na  Ib  Hc  d  lo  lv  lv  w(//w0GHQZ]ZdZder&   c                       e Zd Zd Zy)AppProxyc                 &    ddl m} t        ||      S )Nr   )APP)cmf.apprs   getattr)selfrg   rs   s      r$   __getattr__zAppProxy.__getattr__   s    sD!!r&   N)__name__
__module____qualname__rw    r&   r$   rq   rq      s    "r&   rq   rs   zcmf.app.Flask)cmf_deferred_jobCmfDeferredJobWrapper)on_server_eventcmf_emit_server_event)SAModelAccessor)cmfutil)#rs   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)PrP   cmf.include_cmfcmf.config_loadconfig_loadr   r%   rM   rS   lowerrO   rQ   ro   CORS_ALLOWED_DOMAINS
isinstancestrr   tmp.__autogen_models_tmp__autogen_models_tmpmodelscmf.base_errorobjectrq   globalsrs   __annotations__cmf.cmf_deferred_jobr|   r}   cmf.cmf_server_event_listenerr~   r   cmf.data_providers.sqlalchemyr   _SAModelAccessorsar   
UPLOAD_DIRcmf.utilr   rt   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      sB   
   #L  99_b!'')V3	
:LNf` 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.