U
    ?°eF3  ã                   @   s®   d dl Z dZdZdZeZeZe  d¡Z	dd„ Z
dddd	œZddd
œZdddddddddddddddœZd d dddddddddœ
Zdd„ Zdd„ Zdd„ Zd!dd„Zdd „ ZdS )"é    Nz$Revision: 20 $z$Author: holtwick $z4$Date: 2007-10-09 12:58:24 +0200 (Di, 09 Okt 2007) $zho.cssc                 C   s   t | ƒtkr| gS | S ©N)ÚtypeÚListType©Úvalue© r   ú</tmp/pip-unpacked-wheel-35p66c5k/xhtml2pdf/w3c/cssSpecial.pyÚtoList$   s    r	   Ú )ÚnormalZitalicZoblique)r   z
small-capsi,  i  i¼  éd   éÈ   iô  iX  i   i„  )ÚlightZlighterr   ZboldZbolderZ100Z200Z300Z400Ú500Z600Z700Z800Z900é   )
ÚnoneÚhiddenZdottedZdashedZsolidÚdoubleZgrooveZridgeZinsetZoutsetc                 C   s   | r|   d¡}nd }|S )Nr   )Úpop)ÚpartsÚpartr   r   r   ÚgetNextPart‹   s    r   c                 C   s   | ot | ƒtkp| dkS )NÚ0)r   Ú	TupleTyper   r   r   r   ÚisSize“   s    r   c                 C   sf   d } }}t | ƒdkr$t d| ¡ | D ]2}t|ƒr:|}q(t|dƒrV| ¡ tkrV|}q(|}q(|||fS )z†
    The order of the elements seems to be of no importance:

    http://www.w3.org/TR/CSS21/box.html#border-shorthand-properties
    Né   z$To many elements for border style %rÚlower)ÚlenÚlogÚwarningr   Úhasattrr   Ú_borderStyleTable)r   ÚwidthÚstyleÚcolorr   r   r   r   ÚsplitBorder—   s    r%   c                 C   s  g }| D ]Ð}|rt  d|¡ |\}}}|}t|ƒ}|dkr&t|ƒ}|rj|tkrj| d||f¡ t|ƒ}|rŽ|tkrŽ| d||f¡ t|ƒ}|r²|tkr²| d||f¡ t|ƒ}t|t	ƒrt
|ƒdkr|\}	}
}|
dksât‚| d|	|f¡ | d	||f¡ n| d||f¡ | d
||f¡ q|dkrˆt|ƒp<|}|rÚt|tƒrvd|ksdd|krv| d||f¡ n| d||f¡ q|dkr|t
|ƒdkr¶|d  } } }}n„t
|ƒdkrÞ|d  }}|d  }}n\t
|ƒdkr
|d }|d  }}|d }n0t
|ƒdkr|d }|d }|d }|d }nq| d||f¡ | d||f¡ | d||f¡ | d||f¡ q|dkrpt
|ƒdkrª|d  } } }}n„t
|ƒdkrÒ|d  }}|d  }}n\t
|ƒdkrþ|d }|d  }}|d }n0t
|ƒdkr|d }|d }|d }|d }nq| d||f¡ | d||f¡ | d||f¡ | d||f¡ q|dkrdt
|ƒdkrž|d  } } }}n„t
|ƒdkrÆ|d  }}|d  }}n\t
|ƒdkrò|d }|d  }}|d }n0t
|ƒdkr|d }|d }|d }|d }nq| d||f¡ | d ||f¡ | d!||f¡ | d"||f¡ q|d#krXt
|ƒdkr’|d  } } }}n„t
|ƒdkrº|d  }}|d  }}n\t
|ƒdkræ|d }|d  }}|d }n0t
|ƒdkr|d }|d }|d }|d }nq| d$||f¡ | d%||f¡ | d&||f¡ | d'||f¡ q|d(krLt
|ƒdkr†|d  } } }}n„t
|ƒdkr®|d  }}|d  }}n\t
|ƒdkrÚ|d }|d  }}|d }n0t
|ƒdkr|d }|d }|d }|d }nq| d)||f¡ | d*||f¡ | d+||f¡ | d,||f¡ q|d-krDt|ƒ\}}}|d k	r®| d||f¡ | d ||f¡ | d!||f¡ | d"||f¡ |d k	rø| d)||f¡ | d*||f¡ | d+||f¡ | d,||f¡ |d k	rÚ| d$||f¡ | d%||f¡ | d&||f¡ | d'||f¡ q|d.krÐ|d/d … }t|ƒ\}}}|d k	rŠ| d0| d1 ||f¡ |d k	r¬| d0| d2 ||f¡ |d k	rÚ| d0| d3 ||f¡ q| |¡ q|r|rt  d4d5 d6d7„ |D ƒ¡¡ |S )8NzCSS special  IN: %rÚfontz
font-stylezfont-variantzfont-weightr   ú/z	font-sizezline-heightz	font-faceZ
backgroundÚ.zdata:zbackground-imagezbackground-colorÚmarginr   r   é   é   zmargin-leftzmargin-rightz
margin-topzmargin-bottomÚpaddingzpadding-leftzpadding-rightzpadding-topzpadding-bottomzborder-widthzborder-left-widthzborder-right-widthzborder-top-widthzborder-bottom-widthzborder-colorzborder-left-colorzborder-right-colorzborder-top-colorzborder-bottom-colorzborder-stylezborder-left-stylezborder-right-stylezborder-top-stylezborder-bottom-styleZborder)z
border-topzborder-bottomzborder-leftzborder-righté   zborder-z-widthz-stylez-colorzCSS special OUT:
%sÚ
c                 S   s   g | ]}t |ƒ‘qS r   )Úrepr)Ú.0Údr   r   r   Ú
<listcomp>‘  s     z%parseSpecialRules.<locals>.<listcomp>)r   Údebugr	   r   Ú_styleTableÚappendÚ_variantTableÚ_weightTableÚ
isinstanceÚtupler   ÚAssertionErrorÚstrÚprintr%   Újoin)Zdeclarationsr3   Úddr1   Únamer   ÚlastZopartsr   ZfontSizeZslashZ
lineHeightÚtopZbottomÚleftÚrightr"   r#   r$   Ú	directionr   r   r   ÚparseSpecialRulesµ   sD   




 






















rE   c                 C   s   | S r   r   )Úsrcr   r   r   Ú
cleanupCSS  s    rG   )r   )ÚloggingZ__reversion__Ú
__author__Ú__date__r9   r   Úlistr   Ú	getLoggerr   r	   r4   r6   r7   r!   r   r   r%   rE   rG   r   r   r   r   Ú<module>   s\   	
ýþñ$ö3
 i