HeNj<ddlmZddlmZddlmZddlZddlZddlZddlmZ ddl m Z ddl m Z dd d Zd Zd Zd ZdZGddeZdS))print_function)division)absolute_importNescape) basestring) iteritemsz"z')"')=+-@  cnt|tr|trd|zS|S)ao Prefix a single quote when the cell starts with a spreadsheet formula leader, so Excel/LibreOffice render the literal text instead of executing it. Returns the value unchanged when it is not a leader-prefixed string. Non-string scalars are passed through (numbers and booleans cannot be formula leaders once the csv writer stringifies them). r ) isinstancer startswith_CSV_FORMULA_LEADERS)values M/opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/clselectprint.py_csv_neutralizers;%$$)9)9:N)O)OU{ Lcht|trt|tSt|tt fr+g}|D]$}|t|%|St|tr+i}t|D]\}}t|||<|S|SN) rr_escapeHTML_ESCAPE_TABLEtuplelistappend escape_stringdictr )datanew_datarnew_dictkvs rr!r!,s$ ## t./// D5$- ( (  2 2E OOM%00 1 1 1 1 D$  dOO + +DAq'**HQKK Krc(d|vr |d|d<dSdS)Nmessagedetailsr#s rvalidate_json_messager-<s(   y/Y  rc*eZdZd dZeeZdZeeZd dZeeZdZeeZd dZ ee Z dZ ee Z d dZ ee Z ed Z d Z ee Z d d ZeeZdS) clprintNc|j|j|j|jd} ||||dS#t$r|d|YdSwxYw){ Dispatches data to corresponing routine for printing @param fmt: string @param data: dict jsonperlcsvtextrr6N) print_json print_perl print_csv print_textKeyError)clsfmtr#r dispatchers r print_datazclprint.print_dataDsNN=N    % JsOD 0 0 0 0 0 0 % % % Jv t $ $ $ $ $ $ %s2AAc|j|j|j|jd} |||dS#t$r|d|YdSwxYw)r1r2r6N)print_diag_jsonprint_diag_perlprint_diag_csvprint_diag_textr;)r<r=r#r>s r print_diagzclprint.print_diagVs''%'    % JsOD ! ! ! ! ! % % % Jv t $ $ $ $ $ $ %s0AActjtjtj}t |D]}t|g}t||D]G\}}|rt|}| t|t|gH| |dS)zQ Prints data as comma separated values @param data: dict quotingN) r5writersysstdout QUOTE_ALLsortedkeysrr r!extendwriterow)r#rcsv_outopt flat_arraykeyrs rr9zclprint.print_csvhs *SZ???$))++&& ) )C)#../J'S 22 R R U1)%00E!!?3#7#79O9O"PQQQQ   Z ( ( ( (  ) )rct|tjtjtj}|t|dt|dgdS)z` Prints diagnostic messages as comma separated values @param data: dict rGstatusr)N)r-r5rIrJrKrLrPr)r#rQs rrCzclprint.print_diag_csvwsb d###*SZ???/$x.99?4PY?;[;[\]]]]]rc|r7|rt|}ttjd|ddSttjddidS)z? Prints data as JSON @param data: dict OK)rVr#rVN)r!print simplejsondumps)r#rs rr7zclprint.print_jsons  6 +$T** *"$$      *"Hd#344 5 5 5 5 5rcHttj|dS)zN Prints diagnostic messages as JSON @param data: dict N)rYrZr[r,s rrAzclprint.print_diag_jsons# jt$$%%%%%rc4t|D]u}td|t||D]<\}}|rt |}t|d|=tdvdS)zE Prints data as plain text @param data: dict zTITLE::N)rMrNrYr r!upper)r#rrRrTr's rr:zclprint.print_texts $))++&&  C E% & & &#DI.. 2 2Q)%a((Aaa01111 "IIII   rclt|t|dd|dtj|drctdtjt|dd|diztjd Sd S) zT Prints diagnostic messages as plain text @param data: dict rVr^r))filer*zDetails:r_contextN)r-rYrJstderrgetr,s rrDzclprint.print_diag_texts d### hi9 KKKK 88I   V *3: . . . . $((9b))DHHY,C,CC#* U U U U U U V Vrcht|td|dd|dddS)z] Prints diagnostic messages as perl data structure @param data: dict z {status=>rVz ,message=>r)}N)r-rYr,s rrBzclprint.print_diag_perls= d### DNNNDOOOLMMMMMrcg}t|D]}g}|d|dt||D]1\}}|rt |}||d|d2|dd|zt dd|ddS) zN Prints data as perl data structure @param data: dict ztitle=>'r z=>'z{%s},[]N)rMrNr r r!joinrY)r#routrR structurer&r's rr8zclprint.print_perls $))++&& 7 7CI    ccc4 5 5 5!$s),, 6 61)%a((A  qqq!!!!45555 JJv)!4!45 6 6 6 6  '(((((rr)__name__ __module__ __qualname__r? classmethodrEr9 staticmethodrCr7rAr:rDrBr8r+rrr/r/Csi%%%% Z((J%%% Z((J ) ) ) ) Y''I^^^"\.11N 6 6 6 6j))J&&& #l?33O    j))J V V\ VNNN#l?33O))))j))JJJrr/) __future__rrrr5rZrJxml.sax.saxutilsrr past.builtinsr future.utilsr rrrr!r-objectr/r+rrrys&%%%%%&&&&&&  ......$$$$$$""""""  8       ***G*G*G*G*G*fG*G*G*G*G*r