o
    »ÙøiG  ã                   @   sì   d dl Z dd„ Zdd„ Zdd„ Zdd	d
dddœZd dd„ eD ƒ¡Ze  de› d�e j¡Zdd„ Z	dd„ Z
dd„ Zdd„ Zedd„ dD ƒdd„ dD ƒ d d„ d!D ƒ d"d„ d#D ƒ d$d„ d%D ƒ d&d„ d'D ƒ d(d„ d)D ƒ g d*¢ ƒZdS )+é    Nc                 C   s   g }t | |jƒ d |¡S )aã  Serialize nodes to CSS syntax.

    This should be used for :term:`component values`
    instead of just :meth:`tinycss2.ast.Node.serialize` on each node
    as it takes care of corner cases such as ``;`` between declarations,
    and consecutive identifiers
    that would otherwise parse back as the same token.

    :type nodes: :term:`iterable`
    :param nodes: An iterable of :class:`tinycss2.ast.Node` objects.
    :returns: A :obj:`string <str>` representing the nodes.

    Ú )Ú_serialize_toÚappendÚjoin)ÚnodesÚchunks© r   ú`/home/develop/edictos_py/central_edictos/env/lib/python3.10/site-packages/tinycss2/serializer.pyÚ	serialize   s   
r
   c                 C   sÎ   | dkrdS | dd… dkrdt | dd… ƒ S | d dkr'd}| dd… } nd}| d }||d	v s8t|ƒd
kr:|n|dkr@dn|dkrFdn|dkrLdn|dv rVdt|ƒ nd| 7 }|t | dd… ƒ7 }|S )aX  Serialize any string as a CSS identifier

    :type value: :obj:`str`
    :param value: A string representing a CSS value.
    :returns:
        A :obj:`string <str>` that would parse as an
        :class:`tinycss2.ast.IdentToken` whose
        :attr:`tinycss2.ast.IdentToken.value` attribute equals the passed
        ``value`` argument.

    ú-z\-Né   z--r   é   r   Ú5abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZé   Ú
ú\A úú\D úú\C Ú
0123456789z\%X ú\)Úserialize_nameÚord)ÚvalueÚresultÚcr   r   r	   Úserialize_identifier   s*   ÿù	r   c                 C   ó   d  dd„ | D ƒ¡S )Nr   c                 s   sT   � | ]%}|d v st |ƒdkr|n|dkrdn|dkrdn	|dkr"dnd| V  qd	S )
z@abcdefghijklmnopqrstuvwxyz-_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZr   r   r   r   r   r   r   r   N)r   ©Ú.0r   r   r   r	   Ú	<genexpr>=   s   € úÿ
úz!serialize_name.<locals>.<genexpr>©r   ©r   r   r   r	   r   <   s   
ùr   ú\"ú\\r   r   r   )ú"r   r   r   r   r   c                 c   s   � | ]}t  |¡V  qd S ©N)ÚreÚescape)r    Úcharr   r   r	   r!   O   s   € r!   ú[ú]c                 C   s   t |  d¡ S )Nr   )Ú_replacement_string_valueÚgroup)Úmatchr   r   r	   Ú_serialize_string_value_matchQ   s   r0   c                 C   s   t  t| ¡S r'   )Ú_re_string_valueÚsubr0   r#   r   r   r	   Úserialize_string_valueS   s   r3   c                 C   r   )Nr   c                 s   sŒ   � | ]A}|d kr
dn7|dkrdn1|dkrdn+|dkrdn%|dkr"d	n|d
kr(dn|dkr.dn|dkr4dn|dkr:dn|dkr@dn|V  qdS )ú'z\'r&   r$   r   r%   ú z\ ú	z\9 r   r   r   r   r   r   ú(z\(ú)z\)Nr   r   r   r   r	   r!   X   s   € õ
õz serialize_url.<locals>.<genexpr>r"   r#   r   r   r	   Úserialize_urlW   s   
ôr9   c                 C   s„   t }d}| D ]9}|jdkr|jn|j}||f|v r|dƒ n|dkr0|dkr,|j d¡s0|dƒ | |¡ |dkr=|dƒ |}qdS )	z€Serialize an iterable of nodes to CSS syntax.

    White chunks as a string by calling the provided :obj:`write` callback.

    NÚliteralz/**/r   Ú
whitespacer   Údeclarationú;)Ú	BAD_PAIRSÚtyper   Ú
startswithr   )r   ÚwriteÚ	bad_pairsÚprevious_typeÚnodeÚserialization_typer   r   r	   r   i   s$   ÿ

ÿ
ôr   c                 C   ó   g | ]}d D ]}||f‘qqS ))ÚidentÚfunctionÚurlÚnumberÚ
percentageÚ	dimensionúunicode-ranger   ©r    ÚaÚbr   r   r	   Ú
<listcomp>�   ó    þþrQ   )rG   ú
at-keywordÚhashrL   ú#r   rJ   c                 C   rF   ))r   z-->r   rN   r   r   r	   rQ   …   rR   )rG   rS   rT   rL   c                 C   rF   ))rG   rH   rI   r   rN   r   r   r	   rQ   ˆ   rR   )rU   r   rJ   ú@c                 C   rF   ))rJ   rK   rL   r   rN   r   r   r	   rQ   ‹   rR   )rM   Ú.ú+c                 C   ó   g | ]}d |f‘qS )rV   r   ©r    rP   r   r   r	   rQ   Ž   ó    )rG   rH   rI   rM   r   c                 C   rY   )rM   r   rZ   r   r   r	   rQ   �   r[   )rG   rH   ú?c                 C   s   g | ]}|d f‘qS )ú=r   )r    rO   r   r   r	   rQ   �   r[   z$*^~|))rG   z() block)ú|r^   )ú/Ú*)r(   r
   r   r   r-   r   r1   ÚcompileÚ	MULTILINEr0   r3   r9   r   Úsetr>   r   r   r   r	   Ú<module>   sR    %ûÿÿüÿù
ÿöóòñðÿ