a
    ¥Q•hNC  ã                   @   s  d Z dZdZddlmZ ddlmZmZmZm	Z	 ddl
mZ ddlmZmZmZmZmZmZmZmZmZmZ m!Z"m#Z$m%Z& eeddƒZ'eeddƒZ(eeddƒZ)G d	d
„ d
ƒZ*G dd„ de*ƒZ+e,eeeee	d�fdd„Z-G dd„ de*ƒZ.G dd„ de*ƒZ/e0ƒ Z1G dd„ dƒZ2dd„ Z3dd„ Z4dS )z3.3.0a›  Classes for ParagraphStyle and similar things.

A style is a collection of attributes, but with some extra features
to allow 'inheritance' from a parent, and to ensure nobody makes
changes after construction.

ParagraphStyle shows all the attributes available for formatting
paragraphs.

getSampleStyleSheet()  returns a stylesheet you can use for initial
development, with a few basic heading and text styles.
)ÚPropertySetÚParagraphStyleZstr2alignmentLineStyleÚ	ListStyleÚStyleSheet1ÚgetSampleStyleSheeté    )Úblack)ÚTA_LEFTÚ	TA_CENTERÚTA_RIGHTÚ
TA_JUSTIFY)Útt2ps)Úcanvas_basefontnameÚunderlineWidthÚunderlineOffsetÚunderlineGapÚstrikeWidthÚstrikeOffsetÚ	strikeGapÚspaceShrinkageÚplatypus_link_underlineÚhyphenationLangÚhyphenationMinWordLengthÚuriWasteReduceÚembeddedHyphenationé   c                   @   sF   e Zd Zi Zddd„Zdd„ Zdd„ Zdd	„ Zddd„Zddd„Z	dS )r   Nc                 K   s‚   d| j vsJ dƒ‚d| j vs$J dƒ‚|rL|j| jksLJ d|jj| jjf ƒ‚|| _|| _| j | j ¡ |  ¡  | jf i |¤Ž dS )zÎWhen initialized, it copies the class defaults;
        then takes a copy of the attributes of the parent
        if any.  All the work is done in init - styles
        should cost little to use at runtime.Únamez1Class Defaults may not contain a 'name' attributeÚparentz3Class Defaults may not contain a 'parent' attributez4Parent style %s must have same class as new style %sN)	ÚdefaultsÚ	__class__Ú__name__r   r   Ú__dict__ÚupdateÚrefreshÚ_setKwds)Úselfr   r   Úkw© r&   úM/var/www/sistema_ama/venv/lib/python3.9/site-packages/reportlab/lib/styles.pyÚ__init__6   s    $zPropertySet.__init__c                 K   s    |  ¡ D ]\}}|| j|< qd S ©N)Úitemsr    )r$   r%   ÚkeyÚvaluer&   r&   r'   r#   L   s    zPropertySet._setKwdsc                 C   s   d| j j| jf S )Nz	<%s '%s'>)r   r   r   ©r$   r&   r&   r'   Ú__repr__Q   s    zPropertySet.__repr__c                 C   s2   | j r.| j j ¡ D ]\}}|dvr|| j|< qdS )zƒre-fetches attributes from the parent on demand;
        use if you have been hacking the styles.  This is
        used by __init__)r   r   N)r   r    r*   )r$   r+   r,   r&   r&   r'   r"   T   s    zPropertySet.refreshÚ c                 C   sz   t |d | jƒ t |d | jƒ t| j ¡ ƒ}| ¡  | d¡ | d¡ |D ]&}| j |d ¡}t |d||f  ƒ qNd S )Nzname =zparent =r   r   z%s = %s)	Úprintr   r   Úlistr    ÚkeysÚsortÚremoveÚget)r$   ÚindentZkeylistr+   r,   r&   r&   r'   Ú	listAttrs]   s    

zPropertySet.listAttrsc                 K   sD   |   ||¡}| j ¡ |_||_|d u r*| p,||_|jf i |¤Ž |S r)   )r   r    Úcopyr   r   r#   )r$   r   r   ÚkwdsÚrr&   r&   r'   Úcloneh   s    zPropertySet.clone)N)r/   )N)
r   Ú
__module__Ú__qualname__r   r(   r#   r.   r"   r7   r;   r&   r&   r&   r'   r   3   s   
	
r   c                )   @   sb   e Zd Zedddddeddeddedddddddddddedddeee	e
eeeddeeedœ(ZdS )r   é
   é   r   Nr   Ústart)(ÚfontNameÚfontSizeÚleadingÚ
leftIndentÚrightIndentÚfirstLineIndentÚ	alignmentÚspaceBeforeÚ
spaceAfterÚbulletFontNameÚbulletFontSizeÚbulletIndentÚ	textColorÚ	backColorZwordWrapZborderWidthZborderPaddingZborderColorZborderRadiusZallowWidowsZallowOrphansZtextTransformZendDotsZsplitLongWordsr   ZbulletAnchorZjustifyLastLineZjustifyBreaksr   r   r   r   r   r   ZlinkUnderlineZunderlineColorZstrikeColorr   r   r   )r   r<   r=   Ú_baseFontNamer   r   Ú_baseUnderlineWidthÚ_spaceShrinkageÚ_baseStrikeWidthÚ_baseUnderlineOffsetÚ_baseUnderlineGapÚ_baseStrikeOffsetÚ_baseStrikeGapÚ_platypus_link_underlineÚ_hyphenationLangÚ_embeddedHyphenationÚ_uriWasteReducer   r&   r&   r&   r'   r   p   sR   Ñr   )ÚcentreÚcenterÚleftÚrightZjustifyc                 C   s.   |  |  ¡ d ¡}|d ur|S t| ›d�ƒ‚d S )Nz is illegal value for alignment)r5   ÚlowerÚ
ValueError)ÚvZ__map__Ú_r&   r&   r'   Ústr2alignment£   s    rc   c                   @   s   e Zd ZdedœZdd„ ZdS )Ú	LineStyler   )ÚwidthÚcolorc                 C   s   |  d¡ dS )zKYou can ask a LineStyle to set up the canvas for drawing
        the lines.r   N)ÚsetLineWidth)r$   Úcanvasr&   r&   r'   ÚprepareCanvas³   s    zLineStyle.prepareCanvasN)r   r<   r=   r   r   ri   r&   r&   r&   r'   rd   ®   s   þrd   c                   @   s,   e Zd Zeddddedddddd	d	d
�Zd	S )r   é   r   r]   Ú1Ú	Helveticar?   ÚautoÚltrN)rD   rE   ÚbulletAlignÚ
bulletTypeÚbulletColorrJ   rK   ÚbulletOffsetYÚbulletDedentÚ	bulletDirÚbulletFormatr@   )r   r<   r=   Údictr   r   r&   r&   r&   r'   r   ¹   s   ôr   c                   @   sN   e Zd ZdZdd„ Zdd„ Zefdd„Zdd	„ Zd
d„ Z	ddd„Z
dd„ ZdS )r   aG  
    This may or may not be used.  The idea is to:
    
    1. slightly simplify construction of stylesheets;
    
    2. enforce rules to validate styles when added
       (e.g. we may choose to disallow having both
       'heading1' and 'Heading1' - actual rules are
       open to discussion);
       
    3. allow aliases and alternate style lookup
       mechanisms
       
    4. Have a place to hang style-manipulation
       methods (save, load, maybe support a GUI
       editor)
   
    Access is via getitem, so they can be
    compatible with plain old dictionaries.
    c                 C   s   i | _ i | _d S r)   )ÚbyNameÚbyAliasr-   r&   r&   r'   r(   á   s    zStyleSheet1.__init__c                 C   sT   z| j | W S  tyN   z| j| W  Y S  tyH   td| ƒ‚Y n0 Y n0 d S )Nz"Style '%s' not found in stylesheet)rx   ÚKeyErrorrw   ©r$   r+   r&   r&   r'   Ú__getitem__å   s    zStyleSheet1.__getitem__c                 C   s4   z
| | W S  t y.   |tkr(| Y S ‚ Y n0 d S r)   )ry   Ú_stylesheet1_undefined)r$   r+   Údefaultr&   r&   r'   r5   î   s
    
zStyleSheet1.getc                 C   s   || j v p|| jv S r)   )rx   rw   rz   r&   r&   r'   Ú__contains__õ   s    zStyleSheet1.__contains__c                 C   s   || v S r)   r&   rz   r&   r&   r'   Úhas_keyø   s    zStyleSheet1.has_keyNc                 C   s~   |j }|| jv rtd| ƒ‚|| jv r2td| ƒ‚|rb|| jv rLtd| ƒ‚|| jv rbtd| ƒ‚|| j|< |rz|| j|< d S )Nz(Style '%s' already defined in stylesheetz1Style name '%s' is already an alias in stylesheetz1Alias name '%s' is already an alias in stylesheet)r   rw   ry   rx   )r$   ÚstyleÚaliasr+   r&   r&   r'   Úaddû   s    




zStyleSheet1.addc                 C   sr   t | j ¡ ƒ}| ¡  i }t | j ¡ ƒD ]\}}|||< q(|D ].\}}| |d ¡}t||ƒ | d¡ tƒ  q>d S )Nz    )r1   rw   r*   r3   rx   r5   r0   r7   )r$   ÚstylesZaliir�   r€   r   r&   r&   r'   r1     s    


zStyleSheet1.list)N)r   r<   r=   Ú__doc__r(   r{   r|   r5   r~   r   r‚   r1   r&   r&   r&   r'   r   Ë   s   	
r   c                  C   sJ   t dd ƒ} t| _d| _d| _|  ¡  tƒ  t d| ƒ}d|_| ¡  | |fS )NÚNormalr?   gÍÌÌÌÌÌ,@ÚLiteralÚCourier)r   rO   rA   rB   rC   r7   r0   )ZpNormalZpPrer&   r&   r'   Ú
testStyles  s    

rˆ   c                  C   s
  t ƒ } |  tdtddd�¡ |  td| d dd�¡ |  td| d td	�¡ | jtd
| d tdddd�dd� | jtd| d tddtdd�dd� | jtd| d tddddd�dd� | jtd| d tddddd�dd� | jtd| d tddddd�dd� | jtd| d tddddd�d d� | jtd!| d td"d#dd$d�d%d� | jtd&| d d'd(d)�d*d� | jtd+| d d'd,d'dtd-�d.d� |  td/| d d0dd1d'd,d2d3�¡ | jtd4d5dd'd6d7t	d8dd'd9d:d5d5d;�d<d� | jtd=d5dd'd6d7t	d8dd'd9d:d5d5d;�d>d� | S )?zReturns a stylesheet objectr…   r>   r?   )r   rA   rB   rC   ZBodyTexté   )r   r   rH   ÚItalic)r   r   rA   ZHeading1rj   é   )r   r   rA   rB   rC   rI   Úh1)r�   ZTitle)r   r   rA   rB   rC   rG   rI   ÚtitleZHeading2é   )r   r   rA   rB   rC   rH   rI   Zh2ZHeading3Zh3ZHeading4é   Zh4ZHeading5é	   gš™™™™™%@é   Zh5ZHeading6é   gÍÌÌÌÌÌ @é   Zh6ZBulletr   é   )r   r   rF   rH   ZbuZ
Definitioné$   )r   r   rF   rD   rL   rH   rJ   ÚdfÚCoder‡   gš™™™™™!@r/   )r   r   rA   rB   rC   rF   rD   r   ZUnorderedListNr]   rk   rl   rm   rn   )r   r   rD   rE   ro   rp   rq   rJ   rK   rr   rs   rt   ru   r@   ÚulZOrderedListZol)
r   r‚   r   rO   Ú_baseFontNameIÚ_baseFontNameBr	   Ú_baseFontNameBIr   r   )Z
stylesheetr&   r&   r'   r   %  s    ýþþûúúù	úù	úù	úù	úù	úù	ýüúù	ù	òðòðr   N)5Ú__version__r„   Ú__all__Úreportlab.lib.colorsr   Úreportlab.lib.enumsr   r	   r
   r   Zreportlab.lib.fontsr   Úreportlab.rl_configr   rO   r   rP   r   rS   r   rT   r   rR   r   rU   r   rV   r   rQ   r   rW   r   rX   r   Z_hyphenationMinWordLengthr   rZ   r   rY   rš   r™   r›   r   r   rv   rc   rd   r   Úobjectr|   r   rˆ   r   r&   r&   r&   r'   Ú<module>   s.   	<=3üM