a
    G1bF3                     @   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   /xhtml2pdf/w3c/cssSpecial.pytoList$   s    r	    )normalZitalicZoblique)r   z
small-capsi,  i  i  d      i  iX  i   i  )ZlightZlighterr   ZboldZbolderZ100Z200Z300Z400500Z600Z700Z800Z900   )
ZnoneZhiddenZdottedZdashedZsolidZ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u 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v 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logZ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v rj|d||f t|}|r|tv r|d||f t|}|r|tv r|d||f t|}t|t	rt
|dkr|\}	}
}|
dksJ |d|	|f |d	||f n|d||f |d
||f q|dkrt|p<|}|rt|trvd|v sdd|v rv|d||f n|d||f q|dkr|t
|dkr|d  } } }}nt
|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  } } }}nt
|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  } } }}nt
|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  } } }}nt
|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  } } }}nt
|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 ur|d||f |d ||f |d!||f |d"||f |d ur|d)||f |d*||f |d+||f |d,||f |d ur|d$||f |d%||f |d&||f |d'||f q|d.v r|d/d  }t|\}}}|d ur|d0| d1 ||f |d ur|d0| d2 ||f |d ur|d0| d3 ||f q|| q|r|rt d4d5d6d7 |D  |S )8NzCSS special  IN: %rZfontz
font-stylezfont-variantzfont-weightr   /z	font-sizezline-heightz	font-faceZ
background.zdata:zbackground-imagezbackground-colorZmarginr   r         zmargin-leftzmargin-rightz
margin-topzmargin-bottomZ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>      z%parseSpecialRules.<locals>.<listcomp>)r   debugr	   r   _styleTableappend_variantTable_weightTable
isinstancetupler   strprintr    join)Zdeclarationsr,   Zddr)   namer   ZlastZopartsr   ZfontSizeZslashZ
lineHeighttopZbottomleftrightr   r   r   	directionr   r   r   parseSpecialRules   sD   




 






















r;   c                 C   s   | S r   r   )srcr   r   r   
cleanupCSS  s    r=   )r   )ZloggingZ__reversion__
__author__Z__date__r2   r   listr   Z	getLoggerr   r	   r-   r/   r0   r   r   r   r    r;   r=   r   r   r   r   <module>   s\   	
$3
 i