
    j                         d dl Z d dlZd dlZd dlZd dl d dlZd dlmZ d dlm	Z	  ed      Z
 G d dej                  j                        Zy)    N)*)BoundedSemaphore)ProcessGroupManager   c                   H    e Zd ZdZej
                  j                  d        Zy)PlantumlView/c                    t         j                  dd       	 t        j                         5 }t        j
                  j                  dd      }t        j
                  j                  dd       }t         j                  d| d| d       t        j                  j                  |d	|       }|d
k(  ret        j                  d   j                         j                         }ddddt        j                  j                  t        j                  d      d|g}nd}t        j                  j                  |d      }	 t        |d      5 }	t        j                  d   j                  |      }
|
r6|	j!                  |
       t        j                  d   j                  |      }
|
r6d d d        t         j                  d| d       ddddt        j                  j                  t        j                  d      dd| d||g
}t         j                  ddj                  |       d       t%        j&                         }d }d }	 t(        5  t+        |dt,        j.                  t,        j.                        5 }|j1                         }t%        j&                         |z
  }t         j                  d|d d!d       |d"k7  r?|j2                  xs d#}t         j                  d$| d       t-        j4                  |      |j6                  }|j2                  }d d d        d d d        |d
k(  r}|s,t         j                  d&d       t-        j4                  d'      t        |d      5 }	|	j!                  |j;                                d d d        t         j                  d(| d       nX|j=                  d)      D ]D  }d*|v s|j=                  d*      d+   j?                         }t         j                  d,| d        n t         j                  d-| d       	 t@        jB                  jE                  |d./      cd d d        S # 1 sw Y   xY w# t"        $ r }t         j                  d| d        d }~ww xY w# 1 sw Y   jxY w# 1 sw Y   oxY w# t,        j8                  $ r5 t%        j&                         |z
  }t         j                  d%|d d!d        w xY w# 1 sw Y   `xY w# tF        $ r9 t         j                  d0d1       t@        jI                  d23      cY cd d d        S w xY w# 1 sw Y   y xY w# t,        j4                  $ r>}t         j                  d4| d       t@        jI                  d5| d63      cY d }~S d }~wtJ        $ r>}t         j                  d7| d       t@        jI                  d8| d63      cY d }~S d }~ww xY w)9NuC   Начало выполнения метода post в PlantumlViewDEBUG)levelformatsvgobj_idu   Получен формат: z	, obj_id=zresult.pumlfilez/usr/bin/javaz#-DPLANTUML_SECURITY_PROFILE=SANDBOXz -Djava.net.useSystemProxies=truez-jarzplantuml.jarz
-decodeurli    zresult.pumlzwb+u3   Загруженный файл записан в: uB   Ошибка при записи временного файла: ERRORz-verbosez-tz-ou%   Выполнение команды:     )timeoutstdoutstderru+   Команда завершилась за z.2fu    секr    u9   Команда завершилась с ошибкой: u6   Команда превысила таймаут за uI   Не получен stdout от команды для формата pumlu.   Не получен stdout от командыu/   Записан результат в файл: 
zCreating file:   u   Создан файл: u   Отправка файла: T)as_attachmentuh   Клиент разорвал соединение до завершения передачи файлаWARNINGi  )statusuA   Ошибка выполнения внешней команды: u*   Ошибка обработки PlantUML: i  u+   Исключение в методе post: u0   Ошибка обработки запроса: )&gdebugtempfileTemporaryDirectoryrequestvaluesgetospathjoinfilesreaddecodeconfigPROJECT_DIRopenwriteIOErrortimeperf_counterPLANTUML_SEMAPHOREr   
subprocessPIPEwaitr   SubprocessErrorr   TimeoutExpiredencodesplitstripflaskhelpers	send_fileBrokenPipeErrorResponse	Exception)selftmp_dir	to_formatr   result_filedecoded_contentcmd
chunk_sizetemp_filenamefchunkestartstdout_datastderr_dataprocretdurationstderr_textlines                       !./modules/plantuml/views/index.pypostzPlantumlView.post   s   	U]de`	f,,. X6'#NN..x?	 ++Hd;7	{)F8T\cd ggll7gi[4IJ&&-mmF&;&@&@&B&I&I&KO'=:V%7%7H$oC "&J$&GGLL-$HM	!-7 O1$+MM&$9$>$>z$JE"' !(/f(=(B(B:(N #(O
 "UVcUd emtu (=:V%7%7H"YK(g%
C ?OW^_))+""+ 60bakapapq 6uy"&))+C'+'8'8':U'BHGG&QRZ[^Q__f$govGw"ax.2kk.?R !*cdocp(q  zA  !B&0&@&@&M M +/++K*.++K66& && ksz{(889ijjk51 6Q 2 2 456GGMk][cjGk
 !, 1 1$ 7 "+t3*.**5E*Fq*I*O*O*QKGG&=k]$KSZG[!	" 7}EWU6 ==22;d2SkX6 X6(O O # "defdg hpwx,6 66 6 "00 #002U:HGGTU]^aTbbijryGz6 6  ' 6GG  G  OXG  Y >>>55qX6 X6l6mX6 X6t )) 	`GGWXYWZ[cjGk>>$Nqc"R[^>__ 	fGGA!EWGU>>$TUVTW"Xad>ee	fs  T> DT2;QAQ""QA<T2R,R3B Q;RR#?T2" S ;T2>AT2 S-8	T> Q	Q	Q8Q33Q88T2;R RR	RAST2 S*	%T2-6T/#T2$	T> .T//T22T;7T> ;T> >W3V
W
W3W	WWN)__name__
__module____qualname____url__cmfviewsactionrU        rT   r   r      s'    GYYef efr^   r   )loggingr%   r3   r    cmf.includer0   	threadingr   common.process_utilsr   r2   rZ   r[   BaseViewr   r]   r^   rT   <module>rd      sB     	     & 4%a( if399%% ifr^   