
    rbih                     :    d dl mZmZmZ d Z G d d          ZdS )    )VariationModelnormalizeValuepiecewiseLinearMapc                 ^    t          t          |                                                     S N)tuplesorteditems)locs    o/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/fontTools/feaLib/variableScalar.pyLocationr      s     		$$%%%    c                       e Zd ZdZi fdZd Zed             Zed             Zd Z	d Z
d Zd	 Zed
             ZddZddZddZddZdS )VariableScalarzFA scalar with different values at different points in the designspace.c                     i | _         i | _        |                                D ]\  }}|                     ||           d S r   )valuesaxesr
   	add_value)selflocation_valuelocationvalues       r   __init__zVariableScalar.__init__   sP    	-3355 	, 	,OHeNN8U++++	, 	,r   c                     g }| j                                         D ]>\  }}d                    d |D                       }|                    d||fz             ?dd                    |          z   dz   S )N,c                     g | ]<\  }}| d t          |                                          rt          |          n| =S )=)float
is_integerint).0axcoords      r   
<listcomp>z+VariableScalar.__repr__.<locals>.<listcomp>   s[       !E PP%,,*A*A*C*CNCJJJPP  r   z%s:%i( ))r   r
   joinappend)r   r
   r   r   r   s        r   __repr__zVariableScalar.__repr__   s    #{0022 	1 	1OHe(( %-   C LLC</0000chhuoo&,,r   c                     t          | j                                                  t          fddd          D                       S )Nc              3   0   K   | ]}|d          k    V  dS )r   N )r!   vr   s     r   	<genexpr>z+VariableScalar.does_vary.<locals>.<genexpr>    s+      66a1q	>666666r      )listr   any)r   r   s    @r   	does_varyzVariableScalar.does_vary   sI    dk((**++66666!"":666666r   c                 P    | j         st          d          d | j         D             S )Nz=.axes must be defined on variable scalar before interpolatingc                     i | ]
}|j         |S r-   )axisTagr!   r"   s     r   
<dictcomp>z,VariableScalar.axes_dict.<locals>.<dictcomp>(   s    3332
B333r   )r   
ValueErrorr   s    r   	axes_dictzVariableScalar.axes_dict"   s9    y 	O   433333r   c                 (   |                      |          }i }|                                D ]X}|| j        vrt          d|d|          | j        |         }t	          ||         |j        |j        |j        f          ||<   Yt          |          S )NzUnknown axis z in )	fix_locationkeysr;   r9   r   minValuedefaultValuemaxValuer   )r   r   normalized_locationaxtagaxiss        r   _normalized_locationz#VariableScalar._normalized_location*   s    $$X.. ]]__ 	 	EDN** jEEE88!LMMM>%(D)7$-1BDM!R* *&& +,,,r   c                 ~    t          |          }| j                                        D ]\  }}||vr
|j        ||<   |S r   )dictr;   r
   r@   )r   r   tagrD   s       r   r=   zVariableScalar.fix_location7   sK    >>--// 	2 	2IC("" $ 1r   c                 l    | j         r|                     |          }|| j        t          |          <   d S r   )r   r=   r   r   )r   r   r   s      r   r   zVariableScalar.add_value>   s9    9 	3((22H*/HX&&'''r   c                 \      fd j                                         D              _         d S )Nc                 \    i | ](\  }}t                              |                    |)S r-   )r   r=   )r!   lr.   r   s      r   r8   z4VariableScalar.fix_all_locations.<locals>.<dictcomp>E   sB     
 
 
26!QHT&&q))**A
 
 
r   )r   r
   r:   s   `r   fix_all_locationsz VariableScalar.fix_all_locationsD   s?    
 
 
 
:>+:K:K:M:M
 
 
r   c                     |                                   t          d | j        D                       }|| j        vrt	          d          | j        |         S )Nc                 (    i | ]}|j         |j        S r-   )r6   r@   r7   s     r   r8   z*VariableScalar.default.<locals>.<dictcomp>L   s    HHH
BOHHHr   z Default value could not be found)rM   r   r   r   r9   )r   keys     r   defaultzVariableScalar.defaultI   s[       HHdiHHHIIdk!!?@@@{3r   Nc                 T   t          |          }|| j                                        v r| j        |         S t          | j                                                  }t	          |                     |                    }|                     ||                              ||          S r   )r   r   r>   r1   rG   rE   modelinterpolateFromMasters)r   r   model_cacheavarr   r   s         r   value_at_locationz VariableScalar.value_at_locationR   s    x  $+""$$$$;s##dk((**++4,,S1122zz+t,,CCCPPPr   c                     |2t           j                                                  }||v r||         S  fd j                                        D             }||j        fd|D             }t	          |          }||||<   |S )Nc                 T    g | ]$}t                              |                    %S r-   )rG   rE   )r!   kr   s     r   r$   z(VariableScalar.model.<locals>.<listcomp>_   s/    TTTAT$33A6677TTTr   c                 P    g | ]"}fd |                                 D             #S )c                 P    i | ]"\  }}||v rt          ||                   n|#S r-   )r   )r!   rZ   r.   mappings      r   r8   z3VariableScalar.model.<locals>.<listcomp>.<dictcomp>c   sK       1 ALL)!WQZ888a  r   )r
   )r!   r   r]   s     r   r$   z(VariableScalar.model.<locals>.<listcomp>b   sV       
 	    ( 0 0    r   )r   r   r>   segmentsr   )r   rU   rV   rP   	locationsmr]   s   `     @r   rS   zVariableScalar.modelZ   s    "((**++Ck!!"3''TTTTAQAQASASTTT	mG   
 !*  I 9%%" Kr   c                     t          | j                                                  }|                     ||                              |          S r   )r1   r   rS   getDeltasAndSupports)r   rU   rV   r   s       r   get_deltas_and_supportsz&VariableScalar.get_deltas_and_supportsn   s?    dk((**++zz+t,,AA&IIIr   c                     |                      ||          \  }}|                    |           |                    |          }t          | j                  |fS r   )rc   setSupportsstoreDeltasr    rQ   )r   store_builderrU   rV   deltassupportsindexs          r   add_to_variation_storez%VariableScalar.add_to_variation_storer   sX    77TJJ!!(+++))&114<  %''r   )NN)__name__
__module____qualname____doc__r   r*   propertyr3   r;   rE   r=   r   rM   rQ   rW   rS   rc   rk   r-   r   r   r   r      s%       PP&( , , , ,
- 
- 
- 7 7 X7 4 4 X4- - -  0 0 0
 
 

     X Q Q Q Q   (J J J J( ( ( ( ( (r   r   N)fontTools.varLib.modelsr   r   r   r   r   r-   r   r   <module>rr      sn    V V V V V V V V V V& & &n( n( n( n( n( n( n( n( n( n(r   