PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  pYO@sddlZddlZddlmZed\ZZZZZ ej dej ej Bj Zej dej jZej dej ejBjZej dej jZej dej jZej d ej jZGd d d eZGd d d ZdS)N)Mappingz ^ [ \t]* (?: while | else | def | return | assert | break | class | continue | elif | try | except | raise | import | yield ) \b z' [ \t]* (?: \# \S .* )? \n aK \""" [^"\\]* (?: (?: \\. | "(?!"") ) [^"\\]* )* (?: \""" )? | " [^"\\\n]* (?: \\. [^"\\\n]* )* "? | ''' [^'\\]* (?: (?: \\. | '(?!'') ) [^'\\]* )* (?: ''' )? | ' [^'\\\n]* (?: \\. [^'\\\n]* )* '? zM [ \t]* [^\s#\\] # if we match, m.end()-1 is the interesting char z_ \s* (?: return | break | continue | raise | pass ) \b z [^[\](){}#'"\\]+ c@sUeZdZdZddZddZddZdd Zd d d Zd S) StringTranslatePseudoMappingaTUtility class to be used with str.translate() This Mapping class wraps a given dict. When a value for a key is requested via __getitem__() or get(), the key is looked up in the given dict. If found there, the value from the dict is returned. Otherwise, the default value given upon initialization is returned. This allows using str.translate() to make some replacements, and to replace all characters for which no replacement was specified with a given character instead of leaving them as-is. For example, to replace everything except whitespace with 'x': >>> whitespace_chars = ' \t\n\r' >>> preserve_dict = {ord(c): ord(c) for c in whitespace_chars} >>> mapping = StringTranslatePseudoMapping(preserve_dict, ord('x')) >>> text = "a + b\tc\nd" >>> text.translate(mapping) 'x x x\tx\nx' cCs4||_||_|j|dd}||_dS)NcSs |||S)N)key_getZ_defaultrr&/opt/python35/lib/python3.5/PyParse.pyrysz3StringTranslatePseudoMapping.__init__.._get) _non_defaultsZ_default_valuegetr)selfZ non_defaults default_valuerrrr__init__us  z%StringTranslatePseudoMapping.__init__cCs |j|S)N)r)r itemrrr __getitem__}sz(StringTranslatePseudoMapping.__getitem__cCs t|jS)N)lenr )r rrr__len__sz$StringTranslatePseudoMapping.__len__cCs t|jS)N)iterr )r rrr__iter__sz%StringTranslatePseudoMapping.__iter__NcCs |j|S)N)r)r rdefaultrrrr sz StringTranslatePseudoMapping.get) __name__ __module__ __qualname____doc__r rrrr rrrrr`s     rc@sBeZdZddZddZdeddZdd ZiZej d d d Dej d d dDej dd dDe ede dZddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$ZdZd%d&ZdZd'd(ZdS))ParsercCs||_||_dS)N) indentwidthtabwidth)r rrrrrr s zParser.__init__cCs||_d|_dS)Nr)str study_level)r srrrset_strs zParser.set_strNc CsI|jd}}|sdSt|}xtdD]}|jdd|}|dkr[P|jdd|d}||||}|r||j r|j}P|}q3W|dkr||}|r||j r|j}|S|d}xA|||}|r@|j\} }|| sA| }qPqW|S)Nrz: r )rrrangerfindstartspan) r Zis_char_in_string_synchrerposlimitZtriesimrrrrfind_good_parse_starts8         zParser.find_good_parse_startcCs&|dkr"|j|d|_dS)Nr)r)r lorrrset_los z Parser.set_loccs'|]}t|tdfVqdS)(N)ord).0crrr szParser.z({[ccs'|]}t|tdfVqdS))N)r/)r0r1rrrr2sz)}]ccs'|]}t|t|fVqdS)N)r/)r0r1rrrr2sz"'\ #r xc Csp|jdkrdSd|_|j}|j|j}|jdd}|jdd}|jdd}|jdd}|jdd}t}d}}dg|_}|j}dt|}}xO||kr||} |d}| dkrq| dkr.|d}|dkr||q| d krG|d}q| d krf|r|d}q| d ks~| d kr| } ||d|d | dkr| d} |} t| d} || }x||kr||} |d}| dkrq||d|| | kr+|| }P| dkrg|d}| dkr|dkrc||Pq| dkr||dkr|d}|d}qqW|d| krt }qt }q| dkr|j d|}q||dkr|d}|d|krt }|d}qW|t krI|t krI|dkrIt }||_|d|krl||dS)Nr!Zxxxxxxxxr4ZxxxxZxxz xr rr.r3"'\#)rr translate_tranreplaceC_NONE goodlinesappendrC_STRING_FIRST_LINEC_STRING_NEXT_LINESfind C_BACKSLASH C_BRACKET continuation) r rrGlevellnor@Z push_goodr)nchquoteZfirstlnowrrr_study1s               "                   zParser._study1cCs|j|jS)N)rNrG)r rrrget_continuation_typegs zParser.get_continuation_typecCsg|jdkrdS|jd|_|j|j}}t|d}t|}xp|r|}x@t||d||D]#}|jdd|dd}qWt||r|d}qXPqXW|dkr|}|||_|_ d}g}|j } |dfg} x$||kr7t |||} | r| j } | d}x*||krz||dkrz|d}qQW||kr||}| }||krP||} | dkr| || j |t|f| }|d}q| dkr5|r |d =| }|d}| j |t|fq| d ksM| d kr| j |t|df| }t |||j }| j |t|fq| d kr| j |t|df|jd||d}| j |t|fq|d}||dkr*| ||}|d}qW||_|rT|d |_t| |_dS)Nr7r!r rz z([{z)]}r5r6r:r;r;)rrNrr@rr"r#_junkre stmt_startstmt_endrA_chew_ordinaryreend_match_stringrerDlastchlastopenbracketpostuplestmt_bracketing)r rr@r)pqZnothingrWstackZ push_stackZ bracketingr*ZnewprKrrr_study2|s    "!                  zParser._study2cCs|j|j}|j}t|}|jdd|d}}|d}x||krt||}|r|jd}d}PqR|jd|d}}qRW|}}x||dkr|d}qW|j}t|||j |j |S)Nr rr!z ) r^rXrrr#_itemrerUrDr expandtabsr)r jrrJZorigir)r*extrarrrcompute_bracket_indents$       zParser.compute_bracket_indentcCs#|j|j}|d|dS)Nr!r7r;)rNr@)r r@rrrget_num_lines_in_stmts  zParser.get_num_lines_in_stmtcCs|j|j}|j}x||dkr<|d}qW|}|jd|d}d}}x ||krn||}|dkr|d}|d}qf|dkr|r|d}|d}qf|dks|dkrt|||j}qf|d kr Pqf|dkra|d kra|dksC||dd kra||dd krad}Pqf|d}qfW|r|d}tjd |||dk}|s|}x||d kr|d}qWt||j|j |j dS)Nz r!r rz([{z)]}r5r6r:=z=<>!z\s*\\z ) r^rrRrDrVrUrematchrr`r)r rr)startposendposfoundrHrKrrrcompute_backslash_indentsH              "zParser.compute_backslash_indentcCsg|j|j|j}}|}|j}x*||krX||dkrX|d}q/W|||S)Nz r!)r^rRrSr)r r)rJrarrrrget_base_indent_stringFs  zParser.get_base_indent_stringcCs|j|jdkS)N:)r^rW)r rrris_block_openerQs zParser.is_block_openercCs#|jt|j|jdk S)N)r^_closererrR)r rrris_block_closerWs zParser.is_block_closercCs|j|jS)N)r^rX)r rrrget_last_open_bracket_pos^s z Parser.get_last_open_bracket_poscCs|j|jS)N)r^rZ)r rrrget_last_stmt_bracketinggs zParser.get_last_stmt_bracketing)rrrr rr&r+r-r=updaterr/rNrOr^rcrerlrmrorqrXrrrZrsrrrrrs.   3   m  5   r)rgsys collectionsrr"r?rErBrCrFcompileVERBOSE MULTILINEsearchr&rhrQDOTALLrVr_rprTrrrrrrs"   *