
    z
                     N    d Z ddlmZ ddlmZ ddlmZ ddlZddlmZ dZdZ	d	 Z
y)
zUtilities for error reporting.    )absolute_import)division)unicode_literalsN)encodingzv(?P<stacktrace>Traceback \(most recent call last\):\n(?: {2}File ".*", line \d+, in .+\n {4}.+\n)+)(?P<exception>\S.+)z: {2}File "(?P<file>.*)google-cloud-sdk.*", line \d+, in .+c                     t        j                  t        |       }|sy| j                         }g }t        j                  t
              }d}|D ]q  }|j                  |      }|r3|j                  |j                  |j                  d      d             d}I|dz  }|dkD  r|dxx   |z  cc<   a|j                  |       s |d   }t        j                  |      j                  dd      d   }||d<   d	j                  d
 |D              d	z   }|S )zGiven a stacktrace, only include Cloud SDK files in path.

  Args:
    traceback: str, the original unformatted traceback

  Returns:
    str, A new stacktrace with the private paths removed
    None, If traceback does not match traceback pattern
  Nr   file       :
c              3       K   | ]  }|  y w)N ).0lines     6lib/googlecloudsdk/command_lib/error_reporting_util.py	<genexpr>z8RemovePrivateInformationFromTraceback.<locals>.<genexpr>O   s      #42td2s   )researchPARTITION_TRACEBACK_PATTERN
splitlinescompileFILE_PATH_PATTERNmatchappendreplacegroupr   Decodesplitjoin)		tracebackr   stacktrace_listremove_path_stacktrace_listpattern_file_pathlines_since_matchr   exception_lineformatted_stacktraces	            r   %RemovePrivateInformationFromTracebackr)   %   s    ))/
;%	 ((*/ "jj!23d##D)E!((ekk&6I2)NO1	Q	#B'4/'#**40   /r2.??>288a@C.$2b! #42#4 46:;	    )__doc__
__future__r   r   r   r   googlecloudsdk.core.utilr   r   r   r)   r   r*   r   <module>r.      s3     % &  ' 	 -  B ,r*   