ó
    €Ï<  ã                   óL   • S r SSKrSSKJr  SSKJr  SSKJr  S rS r	S r
S	 rg)
z*Formatter to parse logs into single lines.é    N)Útimestamp_pb2)Úapis)Ú
text_utilsc                 óD  • [        U [        R                  " SS5      R                  5      n[	        SX5      nU(       d  gUR                  S5      n[        U5      S:  a  gUS   n[        X5      /nUS:X  an  [	        S	X5      n[	        S
UU5      n[	        SX5      n[	        SX5      n	UR                  U5        UR                  [        U5      5        UR                  U	5        O+US:X  d  US:X  a  [	        SX5      n
UR                  U
5        OgSR                  U5      $ )zFormat logs for a service.ÚloggingÚv2Úlog_nameÚ z%2Fé   é   ÚrequestsÚhttp_requestÚrequest_methodÚstatusÚrequest_urlÚstderrÚstdoutÚtext_payloadÚ )Ú
isinstancer   ÚGetMessagesModuleÚLogEntryÚGetAttributeFieldFromLogÚsplitÚlenÚGetTimestampFromLogFormatÚappendÚstrÚjoin)ÚlogÚis_log_entryÚlog_entry_lineÚ	split_logÚlog_typeÚ
log_outputr   Úhttp_methodr   Úurlr   s              Ú/lib/googlecloudsdk/api_lib/logging/formatter.pyÚ	FormatLogr)      s  € ä˜CÜ ×2Ò2°9¸dÓC×LÑLóN€,ä+¨J¸ÓJ€.Þ	ØØ×"Ñ" 5Ó)€)Üˆƒ^aÓØØq‰\€(Ü)¨,Ó<Ð=€*ØÓÜ+¨N¸LÓN€LÜ*Ð+;¸\Ø+7ó9€Kä% h°ÓK€FÜ
" =°,Ó
M€CØ×ÑkÔ"Ø×Ñ”c˜&“kÔ"Ø×ÑcÕØ8Ó˜x¨8Ó3Ü+¨N¸LÓN€LØ×ÑlÕ#àØ	‰*Ó	Ðó    c                 ó  • [        SX5      nU (       aV  [        R                  " 5       nUR                  U5        UR	                  5       n[
        R
                  R                  US5      $ [
        R
                  R                  US5      $ )z9Returns timestamp in 'YYYY-MM-DD HH:MM:SS' string format.Ú	timestampz%Y-%m-%d %H:%M:%S)r   r   Ú	TimestampÚFromJsonStringÚ
ToDatetimeÚdatetimeÚstrftime)r!   r    r,   ÚtsÚlog_entry_timestamps        r(   r   r   6   sn   € ä& {°LÓF€)ÞÜ	×	 Ò	 Ó	"€BØ×ÑiÔ ØŸ-™-›/ÐÜ×Ñ×%Ñ%Ð&9Ð;NÓOÐOÜ	×	Ñ	×	#Ñ	# IÐ/BÓ	CÐCr*   c                 ó@   • [        U[        X5      S 5      =(       d    S$ )Nr
   )ÚgetattrÚGetProperField)Ú
field_namer!   Úlog_objs      r(   r   r   A   s   € Ü	œ.¨ÓBÀDÓ	I×	OÈRÐOr*   c                 ó@   • U(       d  U $ [         R                  " U 5      $ )zeRetrieve the proper atrribute from LogEntry depending if it is in MessageModule or GapiClient format.)r   ÚSnakeCaseToCamelCase)r7   r!   s     r(   r6   r6   E   s   € æ	ØÐÜ	×	(Ò	(¨Ó	4Ð4r*   )Ú__doc__r0   Úcloudsdk.google.protobufr   Úgooglecloudsdk.api_lib.utilr   Ú$googlecloudsdk.command_lib.privatecar   r)   r   r   r6   © r*   r(   Ú<module>r@      s.   ðñ 1ó å 2Ý ,Ý ;òò:DòPó5r*   