
    Zg                         S r SSKrSSKJr  SSKJrJrJrJrJ	r	  SSK
Jr  SS\S\\   S\4S	 jjr\	" S
5      r\	" S5      rS\S\S\S\\\\\4   \\\\\4   4   4S jrg)zShared utility functions.    N)format_exception)AnyDictOptionalTupleTypeVar)VERSIONskiplimitreturnc                     [         R                  " 5       u  p#n[        U 5       H  nUc  M  UR                  nM     SR	                  [        X#XA5      5      R                  5       $ )z>Like traceback.format_exc but allow skipping the first frames. )sysexc_inforangetb_nextjoinr   rstrip)r
   r   etypevaltb_s         -/usr/lib/python3/dist-packages/pynvim/util.pyformat_exc_skipr   
   sO    \\^NE4[>B  GG$U;<DDFF    T1T2kindtype_method_specc                 z    SR                  [        R                  S   U 5      nSSS.nU[        R                  XU4$ )z&Returns a tuple describing the client.zpython{}-{}r   z	Apache v2zgithub.com/neovim/pynvim)licensewebsite)formatr   version_infor	   __dict__)r   r   r    name
attributess        r   get_client_infor)      sA      0 0 3T:D(5OPJ'""E
CCr   )N)__doc__r   	tracebackr   typingr   r   r   r   r   pynvim._versionr	   intstrr   r   r   r)    r   r   <module>r1      s     
 & 6 6 #G# Ghsm Gs G T]T]D
DD')D
3S#XBS#X67Dr   