
    ]Mh%                         d dl mZmZ d dlmZ d dlmZ d dlmZ	 d dl
mZ d dlmZ d dlZ ej        d          Zd	 Zd
 ZddZddZedk    rd dlZ ej         e                       dS dS )    )	_add_avarload_designspace)VariationModel)VarStoreInstancer)fixedToFloat)makeOutputFileName)productNzfontTools.varLib.avarc                 v    | dk    r|j         | |j        |j         z
  z  z   S |j         | |j         |j        z
  z  z   S )Nr   )defaultValuemaxValueminValue)vaxiss     U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fontTools/varLib/avar.py_denormalizer      sE    Avv 18I(I#JJJ 1(9DM(I#JJJ    c           
         t          | |          }|j        }|j        }d |D             }|D ]~}|                     |          }||         }||         }	t	          |	                                          }
|	                                D ]\  }\  }}}||fD ]}|dv r|                                D ]L}t          |          }t	          |                                          }||
k    r9||vr>||         |k    r nMt          |dz
  dd          D ]}||         }t	          |                                          }||
k    r2||vr7d |                                D             }||         |k    r&d |t          |                                          <    nJ d            !d |                                D             S )	Nc                 R    i | ]$}t          |                                          d %S N)tupleitems).0ks     r   
<dictcomp>z#_pruneLocations.<locals>.<dictcomp>'   s*    222qE!''))d222r   r      r   r   c                 "    i | ]\  }\  }}}||S  r   )r   r   _defaultVs       r   r   z#_pruneLocations.<locals>.<dictcomp>G   s2     % % %,?A/?8QAx% % %r   FzNo pin foundc                 ,    g | ]}t          |          S r   dictr   ts     r   
<listcomp>z#_pruneLocations.<locals>.<listcomp>O   s    )))DGG)))r   )
r   mappingsupportsindexsetkeysr   r$   ranger   )	locationspolesaxisTagsmodelmodelMappingmodelSupportspinslocationisupportsupportAxesaxisTagminVr    maxVr   pinpinLocationpinAxescandidateIdx	candidatecandidateAxess                         r   _pruneLocationsrB      s'   " 9h//E=LNM22E222D &5 &5OOH%%O"',,..))(/ !	5 !	5$G_dAtD\  5  5
??99;; 5 5C"&s))K!+"2"2"4"455G+-- g-- "7+q00 1 ).a!eR(<(< 5 5$1,$?	(+INN,<,<(=(=(K77$"-77$% %CL??CTCT% % %	 %W-22=ADy'8'8!9!9:!E 3 5n444A 5!	5D *)TYY[[))))r   Tc                    !"# | d         j         }d |D             !d |D             }d t          |          D              d| vri i fS | d         }d |j                                        D             }g }t	          |dd          d	k    r|j        j        }|j        j        }d
d i}	t          d
h          }
|j
        D ] }|j        }|D ]}g }g }||         }t          |j                  D ]\  }}|j        dk    r||         }|                    ||j        f           g }|j        dk    r|                    ||j        f           |j        dk    r|                    ||j        f           |                    |           t          t#          |           }t%          |          }d |	|<   |
                    |           |
                    |           "d t+          |
 fd          D             }
d |	                                D             }	t/          |
t1          |	          |          }
|j        j        }t5          ||          }|
D ]}|                    |           i }t          |          D ]M\  }}|}|||         }||         }|dk    r.|                    |d          }|t;          |d          z   }|||<   N|                    ||f           |d         d         i k    sJ |d         d         i k    r|                    d           |r|                                D ]D\  #}#!vrt?          d#           !#fd""fd|                                D             |#<   Et          |          D ]O\  }\  }}!fd|                                D             }!fd|                                D             }||f||<   P||fS )Nfvarc                     i | ]
}|j         |S r   r9   r   as     r   r   z&mappings_from_avar.<locals>.<dictcomp>T   s    ...qy!...r   c                     g | ]	}|j         
S r   rF   rG   s     r   r'   z&mappings_from_avar.<locals>.<listcomp>U   s    ,,,a	,,,r   c                 $    i | ]\  }}|j         |S r   rF   )r   r6   rH   s      r   r   z&mappings_from_avar.<locals>.<dictcomp>V   s     @@@DAq19a@@@r   avarc                 2    i | ]\  }}|r|d dddk    ||S )r   r   r   r   r   )r   tagsegs      r   r   z&mappings_from_avar.<locals>.<dictcomp>Z   sG       C raA.... 	S...r   majorVersionr      r   r   c                 ,    g | ]}t          |          S r   r#   r%   s     r   r'   z&mappings_from_avar.<locals>.<listcomp>   s.     
 
 
 GG
 
 
r   c                 X    t          |           t          fd| D                       fS )Nc              3   .   K   | ]\  }}|         V  d S r   r   )r   rM   r    axisIndexess      r   	<genexpr>z7mappings_from_avar.<locals>.<lambda>.<locals>.<genexpr>   s,      ,N,N&#q[-=,N,N,N,N,N,Nr   )lenr   )r&   rT   s    r   <lambda>z$mappings_from_avar.<locals>.<lambda>   s/    s1vvu,N,N,N,NA,N,N,N'N'NO r   )keyc                 ,    g | ]}t          |          S r   r#   r%   s     r   r'   z&mappings_from_avar.<locals>.<listcomp>   s    ///Qa///r      zUnknown axis tag c                 0    t          |                    S r   r   )r   axisMaprM   s    r   rW   z$mappings_from_avar.<locals>.<lambda>   s    |Aws|<< r   c                 @    i | ]\  }} |           |          S r   r   )r   r   r   denorms      r   r   z&mappings_from_avar.<locals>.<dictcomp>   s/    JJJdaVVAYYq		JJJr   c                 D    i | ]\  }}|t          ||                   S r   r\   r   rM   valr]   s      r   r   z&mappings_from_avar.<locals>.<dictcomp>   s:       9Ac\#ws|44  r   c                 D    i | ]\  }}|t          ||                   S r   r\   ra   s      r   r   z&mappings_from_avar.<locals>.<dictcomp>   s:       9Ac\#ws|44  r   ) axes	enumeratesegmentsr   getattrtableVarStoreVarRegionListRegionr+   VarDataVarRegionIndexVarRegionAxis	PeakCoordappend
StartCoordEndCoordr	   r   addupdatesortedr,   rB   list	VarIdxMapr   setLocationgetfi2flpop
ValueError)$fontdenormalizefvarAxesr0   rK   axisMapsmappingsvarStoreregionsr/   inputLocationsvarDataregionIndicesregionIndexpeakLocationcornersregion	axisIndexr   r9   corner	varIdxMap	instancerr5   outputLocationvarIdxdeltar   rN   r6   inputLoc	outputLocrT   r]   r_   rM   s$                                   @@@@r   mappings_from_avarr   R   s   F| H..X...G,,8,,,H@@Ih,?,?@@@KT2v<D ++--  H
 Ht^Q''1,,:&(/ T
bT' 	/ 	/G#2M, / /! -'01E'F'F 
+ 
+OIt~** &y1G ''$.(ABBBF!++w&@AAA}))w&>???NN6****gw/00$\22&*l#""<000%%g....'/,
 
OOOO  
 
 
 0/%**,,///(ehOO J(	%h99	& 	8 	8H!!(+++N&/&9&9 
0 
0"	7"(&v.F!&)A:: Wa00AE%,,,A /0N7+OOX~67777 {1~####A;q>RLLOOO 0 (( 	K 	KHC'!! !:S!:!:;;;<<<<<FJJJJciikkJJJHSMM(1((;(; 	0 	0$A$)   EM^^EUEU  H   EN__EVEV  I $Y/HQKKXr   c                 @   | ddl }|j        dd         } ddlm} ddlm} ddlm} ddl}|	                    dd           }|
                    d	d
d           |
                    ddddd           |
                    ddt          d           |
                    dddd           |                    |           } ||j        rdnd            ||j                  }d|vrt                              d           dS |j        Mdd lm}	 t'          |          \  }
} |	|
            |	|           t)          t+          |          d!           dS d" |d         j        D             }t/          |j        d#$          }d%|v rt                              d&           |d%= t3          ||j        |j        |           |j        t9          |j        d'd()          }n|j        }|r2t                              d*|           |                    |           dS dS )+z8Add `avar` table from designspace file to variable font.Nr   r   )configLogger)TTFont)DesignSpaceDocumentzfonttools varLib.avar)descriptionr}   zvarfont.ttfzVariable-font file.)metavarhelpdesignspacezfamily.designspacezDesignspace file.?)r   r   nargsdefaultz-oz--output-filezOutput font file name.)typer   z-vz	--verbose
store_truezRun more verbosely.)actionr   INFOWARNING)levelrD   zNot a variable font.)pprintr   c                     g | ]	}|j         
S r   rF   rG   s     r   r'   zmain.<locals>.<listcomp>   s    555a	555r   F)require_sourcesrK   z(avar table already present, overwriting.Tz.avar)	overWritesuffixz	Saving %s)sysargv	fontToolsr   fontTools.ttLibr   fontTools.designspaceLibr   argparseArgumentParseradd_argumentstr
parse_argsverboser}   logerrorr   r   r   printrV   rd   r   warningr   axisMappingsoutput_filer   infosave)argsr   r   r   r   r   parseroptionsr}   r   rf   r   r0   dsoutfiles                  r   mainr      s    |


x|&&&&&&&&&&&&<<<<<<OOO$$N %  F <QRRR
$      %	     k,5J     %%GL'/@yBBBB6',DT>>		()))q"!!!!!!/55(xxc(mmZ(((554<#4555H	'-u	E	E	EB~~>???LdBGR_h777"$W\T'RRR% g&&&		' r   __main__)Tr   )fontTools.varLibr   r   fontTools.varLib.modelsr   fontTools.varLib.varStorer   fontTools.misc.fixedToolsr   rz   fontTools.misc.cliToolsr   	itertoolsr	   logging	getLoggerr   r   rB   r   r   __name__r   exitr   r   r   <module>r      s#   8 8 8 8 8 8 8 8 2 2 2 2 2 2 7 7 7 7 7 7 ; ; ; ; ; ; 6 6 6 6 6 6       g/00K K K<* <* <*~d d d dNE E E EP zJJJCHTTVV r   