
    A6i	                     2    d Z ddlZddlmZ  G d de      Zy)z
.. module:: lesscpy.plib.property
    :synopsis: Property node.

    Copyright (c)
    See LICENSE for details.
.. moduleauthor:: Johann T. Mariusson <jtm@robot.is>
    N   )Nodec                   (    e Zd ZdZd Zd Zd Zd Zy)Propertyz)Represents CSS property declaration.
    c                 8   | j                   st        | j                        dkD  r| j                  \  }}}d| _        n| j                  \  }}d| _        dj	                  |      | _        g | _         |r(| j                  |      }| j                  ||      | _         | S )zParse node
        args:
            scope (Scope): current scope
        raises:
            SyntaxError
        returns:
            self
           TF )parsedlentokens	importantjoinproperty
preprocessprocess)selfscoper   style_s        X/home/azureuser/techstart-app/venv/lib/python3.12/site-packages/lesscpy/plib/property.pyparsezProperty.parse   s     {{4;;!#%)[["%!%"&++%!&GGH-DMDK."ll5%8    c                     | j                   dk(  r<|D cg c]/  }t        |d      rdj                  |j                               n|1 }}|S |D cg c]  }t        |d      r|dfn| }}|S c c}w c c}w )zHackish preprocessing from font shorthand tags.
        Skips expression parse on certain tags.
        args:
            style (list): .
        returns:
            list
        font
expressionr	    )r   hasattrr   r   )r   r   us      r   r   zProperty.preprocess)   s     ==F"  ,31l+C'JE   $% ")L!9aXq@ %E %
%s   4A-A2c           	         d}| j                   rdnd}|d   r,| j                  D cg c]  }|dk(  rd|d   z  n| c}| _        dj                  | j                  D cg c]*  }t        |d      r|j	                  |      n
t        |      , c}      }t        j                  d	d
|      }|j                  | j                  |j                         |d       ||z  S c c}w c c}w )zk Format node
        args:
            fills (dict): replacements
        returns:
            str
        z7%(tab)s%(property)s:%(ws)s%(style)s%(important)s;%(nl)sz !importantr	   nl,z,%swsfmtz(url\([^\)]*\))([^\s,])z\1 \2)r   r   r   )r   r
   r   r   r#   strresubupdater   strip)r   fillsfimppr   s         r   r#   zProperty.fmt;   s     F#~~m2;@D;<qCxd#Q6DK CG;;
>?GAu-AEE%L3q69
  0)UC[[]
 	
 5y
s   C/C!c                 T    t        | j                  D cg c]  }| c}d      S c c}w )zQ Return a full copy of self
        Returns:
            Property object
        r   )r   r   )r   ts     r   copyzProperty.copyT   s#    
 DKK0q0!440s   	%N)__name__
__module____qualname____doc__r   r   r#   r/    r   r   r   r      s    .$25r   r   )r3   r%   noder   r   r4   r   r   <module>r6      s     
 K5t K5r   