MINI MINI MANI MO
3
  \.                 @   s   d ddddddddd	d
dgZ dd
lZdZdZdZee ZdZed d ZdZdZ	ee e	 e Z
dddZdd
lZ
ddlmZ G dd deZG dd dedZG dd
 d
Zd
S )
ascii_lettersascii_lowercaseascii_uppercasecapwordsdigits	hexdigits	octdigits	printablepunctuation
whitespace	FormatterTemplate    Nz 	
ZabcdefghijklmnopqrstuvwxyzZABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789ZabcdefZABCDEFZ01234567z !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~c             C   s   |pdj dd | j|D S )N c             s   s   | ]}|j  V  qd S )N)
capitalize).0x r   /usr/lib64/python3.6/string.py	<genexpr>0   s    zcapwords.<locals>.<genexpr>)joinsplit)ssepr   r   r   r   %   s    )ChainMapc                   s    e Zd ZdZ fddZ  ZS )_TemplateMetaclassa/  
    %(delim)s(?:
      (?P<escaped>%(delim)s) |   # Escape sequence of two delimiters
      (?P<named>%(id)s)      |   # delimiter and a Python identifier
      {(?P<braced>%(id)s)}   |   # delimiter and a braced identifier
      (?P<invalid>)              # Other ill-formed delimiter exprs
    )
    c                sX   t t| j||| d|kr$| j}ntjtj| j| jd }tj|| j	tj
B | _d S )Npattern)Zdelimid)superr   __init__r   _reescape	delimiter	idpatterncompileflagsVERBOSE)clsnamebasesZdctr   )	__class__r   r   r   A   s    
z_TemplateMetaclass.__init__)__name__
__module____qualname__r   r   
__classcell__r   r   )r*   r   r   7   s   r   c               @   s:   e Zd ZdZdZejZdd Zdd Z	dd Z
d	d
 ZdS )r   $z(?-i:[_a-zA-Z][_a-zA-Z0-9]*)c             C   s
   || _ d S )N)template)selfr0   r   r   r   r   X   s    zTemplate.__init__c             C   sd   |j d}| jd | jdd}|s.d}d}n"|tdj|d d  }t|}td||f d S )NinvalidT)keepends    z.Invalid placeholder in string: line %d, col %d)startr0   
splitlineslenr   
ValueError)r1   moilinescolnolinenor   r   r   _invalid]   s    
zTemplate._invalidc                 sl   | st d| ^} t| dkr(t d| s2| n|rFt|| d  n| d   fdd}jj|jS )Nz>descriptor 'substitute' of 'Template' object needs an argumentr4   zToo many positional argumentsr
   c                sd   | j dp| j d}|d k	r(t | S | j dd k	r<jS | j dd k	rTj|  tdjd S )Nnamedbracedescapedr2   z#Unrecognized named group in pattern)groupstrr"