
    j                         d dl Z d dlZd dlZd dlZd dlT d dlZd dlmZ d dlm	Z	  ed          Z
 G d dej        j                  ZdS )    N)*)BoundedSemaphore)ProcessGroupManager   c                   <    e Zd ZdZej        j        d             ZdS )PlantumlView/c                    t                               dd           	 t          j                    5 }t          j                            dd          }t          j                            dd           }t                               d| d| d           t          j        	                    |d	|           }|d
k    rit          j
        d                                                                         }ddddt          j        	                    t          j        d          d|g}n7d}t          j        	                    |d          }	 t          |d          5 }	t          j
        d                             |          }
|
r<|	                    |
           t          j
        d                             |          }
|
<d d d            n# 1 swxY w Y   t                               d| d           n2# t"          $ r%}t                               d| d            d }~ww xY wddddt          j        	                    t          j        d          dd| d||g
}t                               dd	                    |           d           t%          j                    }d }d }	 t(          5  t+          |dt,          j        t,          j                  5 }|                                }t%          j                    |z
  }t                               d|d d!d           |d"k    r<|j        pd#}t                               d$| d           t-          j        |          |j        }|j        }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   nK# t,          j        $ r9 t%          j                    |z
  }t                               d%|d d!d            w xY w|d
k    r|s0t                               d&d           t-          j        d'          t          |d          5 }	|	                    |                                           d d d            n# 1 swxY w Y   t                               d(| d           nj|                    d)          D ]T}d*|v rN|                    d*          d+                                         }t                               d,| d            nUt                               d-| d           	 t@          j!        "                    |d./          cd d d            S # tF          $ rF t                               d0d1           t@          $                    d23          cY cd d d            S w xY w# 1 swxY w Y   d S # t,          j        $ rH}t                               d4| d           t@          $                    d5| d63          cY d }~S d }~wtJ          $ rH}t                               d7| d           t@          $                    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   s2   	U]deee`	f,.. X6'#N..x??	 ++Hd;;T	TTFTT\cddd gll74Ii4I4IJJ&&&-mF&;&@&@&B&B&I&I&K&KO'=:V%7HH$oCC "&J$&GLL-$H$HM	!-77 O1$+M&$9$>$>z$J$JE"' O !(/f(=(B(B:(N(N #( OO O O O O O O O O O O O O O O
  eVc e emtuuuu"    hef h hpwxxx
 (=:V%7HH"(Y((g%
C OOOW^___)++""+ 6 60bakapqqq 6uy"&))++C'+'8':':U'BHGG$gRZ$g$g$g$govGwww"axx.2k.?R !(qdo(q(q  zA  !B  !B  !B&0&@&M&M M +/+K*.+K6 6 6 6 6 6 6 6 6 6 6 6 6 6 66 6 6 6 6 6 6 6 6 6 6 6 6 6 6 "0   #022U:HGGjU]jjjjryGzzz
 &&& k ksz{{{(89ijjjk511 6Q 2 2 4 45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6GG[k[[cjGkkkk
 !, 1 1$ 7 7 " "+t33*.**5E*F*Fq*I*O*O*Q*QKGG$Kk$K$KSZG[[[!E 4
 EEEWUUU6 =22;d2SSkX6 X6 X6 X6 X6 X6 X6 X6l ' 6 6 6GG  G  OXG  Y  Y  Y >>>5555qX6 X6 X6 X6 X6 X6 X6 X6l6mX6 X6 X6 X6 X6 X6 X6 X6 X6 X6t ) 	` 	` 	`GG[XY[[cjGkkk>>"Rq"R"R[^>________ 	f 	f 	fGGE!EEWGUUU>>"XUV"X"Xad>eeeeeeee	fsJ  V* DV	G4A$G	=G4	G	G4G	"G43V4
H#> HH##BV'N!.(NBM>2N>NNNN	N!N	N!N	N! V!AO))AV4(Q(V(Q,	,V/Q,	0B,V U
=V* 
AVVV* VVV!!V* $V!%V* *Y9=W<6Y<Y	=YYYN)__name__
__module____qualname____url__cmfviewsactionrU        rT   r   r      sB        GYef ef ef ef efr^   r   )loggingr%   r3   r    cmf.includer0   	threadingr   common.process_utilsr   r2   rZ   r[   BaseViewr   r]   r^   rT   <module>rd      s     				           & & & & & & 4 4 4 4 4 4%%a(( if if if if if39% if if if if ifr^   