
    h%                         S SK JrJr  S SKJr  S SKJr  S SKJr	  S SK
Jr  S SKJr  S SKr\R                  " S5      rS	 rS
 rSS jrSS jr\S:X  a  S SKr\R.                  " \" 5       5        gg)    )	_add_avarload_designspace)VariationModel)VarStoreInstancer)fixedToFloat)makeOutputFileName)productNzfontTools.varLib.avarc                     U S:  a(  UR                   XR                  UR                   -
  -  -   $ UR                   XR                   UR                  -
  -  -   $ )Nr   )defaultValuemaxValueminValue)vaxiss     G/var/www/html/env/lib/python3.13/site-packages/fontTools/varLib/avar.py_denormalizer      sO    Av  18I8I(I#JJJ  1(9(9DMM(I#JJJ    c                    [        X5      nUR                  nUR                  nU Vs0 s H  n[        UR	                  5       5      S _M     nnU GH[  nU R                  U5      n	XI   n	XY   n
[        U
R                  5       5      nU
R	                  5        GH  u  nu  pnX4 H  nUS;   a  M  UR                  5        HC  n[        U5      n[        UR                  5       5      nUU:w  a  M/  UU;  a  M7  UU   U:X  d  MB    M`     [        U	S-
  SS5       H  nUU   n[        UR                  5       5      nUU:w  a  M)  UU;  a  M1  UR	                  5        VVVs0 s H  u  nu  nnoU_M     nnnnUU   U:X  d  Mg  S U[        UR	                  5       5      '     M      S5       e   GM     GM^     UR                  5        Vs/ s H  n[        U5      PM     sn$ s  snf s  snnnf s  snf )Nr      r   r   zNo pin found)
r   mappingsupportstupleitemsindexsetkeysdictrange)	locationspolesaxisTagsmodelmodelMappingmodelSupportskpinslocationisupportsupportAxesaxisTagminV_maxVr   pinpinLocationpinAxescandidateIdx	candidatecandidateAxesdefaultVts                            r   _pruneLocationsr8      s   " 9/E==LNNM,12EqE!'')d"ED2OOH%O"',,.)(/$G_dt\
?99;C"&s)K!+"2"2"45G+- g- "7+q0 ' ).a!eR(<$1,$?	(+INN,<(=(K7$"-7$CL??CT%CT,?A/?8QxKCT " % %W-2=ADy'8!9:! )= 5n4uA " )8 N "YY[)[DG[))Q 3@% *s   $GGG&c                 \	  ^^&^' U S   R                   nU Vs0 s H  o3R                  U_M     snm'U Vs/ s H  o3R                  PM     nn[        U5       VVs0 s H  u  pSUR                  U_M     snnm&SU ;  a  0 0 4$ U S   nUR                  R	                  5        VVs0 s H  u  pxU(       d  M  USSSS.:w  d  M  Xx_M     n	nn/ n
[        USS5      S:X  Ga  UR                  R                  nUR                  R                  nS	S 0n[        S	15      nUR                   GH'  nUR                  nU GH  n/ n/ nUU   n[        UR                  5       H  u  nnUR                  S:X  a  M  UU   nUR                  UUR                  45        / nUR                   S:w  a  UR                  UUR                   45        UR"                  S:w  a  UR                  UUR"                  45        UR                  U5        M     [        [%        U6 5      n['        U5      nS UU'   UR)                  U5        UR+                  U5        GM     GM*     [-        UU&4S
 jS9 Vs/ s H  n[/        U5      PM     nnUR1                  5        Vs/ s H  n[/        U5      PM     nn[3        U[5        U5      U5      nUR                  R6                  n[9        X5      nU H{  nUR;                  U5        0 n[        U5       HC  u  nnUnUb  UU   nUU   nUS:w  d  M  UR=                  US5      n U [?        US5      -   n U UU'   ME     U
R                  UU45        M}     U
S   S   0 :X  d   eU
S   S   0 :X  a  U
RA                  S5        U(       a  U	R	                  5        HW  u  mnTT';  a  [C        ST 35      eU'U4S jn!UR	                  5        V"V s0 s H  u  n"n U!" U"5      U!" U 5      _M     sn n"U	T'   MY     [        U
5       Hu  u  nu  n#n$U#R	                  5        VV%s0 s H  u  nn%U[E        U%T'U   5      _M     n#nn%U$R	                  5        VV%s0 s H  u  nn%U[E        U%T'U   5      _M     n$nn%U#U$4X'   Mw     X4$ s  snf s  snf s  snnf s  snnf s  snf s  snf s  sn n"f s  sn%nf s  sn%nf )Nfvaravarr   r   r   r   majorVersion    c                 D   > [        U 5      [        U4S jU  5       5      4$ )Nc              3   2   >#    U  H  u  pTU   v   M     g 7fNr>   ).0tagr.   axisIndexess      r   	<genexpr>7mappings_from_avar.<locals>.<lambda>.<locals>.<genexpr>   s     ,NA&#[-=As   )lenr   )r7   rD   s    r   <lambda>$mappings_from_avar.<locals>.<lambda>   s    s1vu,NA,N'NOr   )key   zUnknown axis tag c                 "   > [        U TT   5      $ rA   )r   )r   axisMaprC   s    r   rH   rI      s    |Aws|<r   )#axesr,   	enumeratesegmentsr   getattrtableVarStoreVarRegionListRegionr   VarDataVarRegionIndexVarRegionAxis	PeakCoordappend
StartCoordEndCoordr	   r   addupdatesortedr   r   r8   list	VarIdxMapr   setLocationgetfi2flpop
ValueErrorr   )(fontdenormalizefvarAxesar"   r)   r;   rC   segaxisMapsmappingsvarStoreregionsr!   inputLocationsvarDataregionIndicesregionIndexpeakLocationcornersregion	axisIndexr   r,   cornerr7   	varIdxMap	instancerr(   outputLocationvarIdxdeltar   denormr&   inputLoc	outputLocvalrD   rM   s(          `                              @@r   mappings_from_avarr   R   s   F|  H%-.Xyy!|X.G#+,8a		8H,,5h,?@,?DA199a<,?@KT2v<D ++--HC 	raA.. 	-  
 Ht^Q'1,::&&((// T
bT''G#22M,! -'01E1E'FOIt~~* &y1G ''$..(ABF!+w&@A}})w&>?NN6* (G gw/0$\2&*l#""<0%%g.'  - (4 O
 G 	 
 #(**,/,Qa,/(ehO JJ((	%h9	&H!!(+N&/&9"	7"(&v.F!&)A: Wa0AE%,,A /0N7+ ': OOX~67 '" {1~###A;q>RLLO (HC'! #4SE!:;;<F>AiikJkdaVAYq	1kJHSM	 ) )2((;$A$)EM^^EUEUc\#ws|44EU   FO__EVEVc\#ws|44EV   $Y/HK )< E /,@T
 0@ Ks@   Q<RR"R3R?R R	RRR"R(c                    U c  SSK nUR                  SS n SSKJn  SSKJn  SSKJn  SSKnUR                  SS S9nUR                  S	S
SS9  UR                  SSSSSS9  UR                  SS[        SS9  UR                  SSSSS9  UR                  U 5      nU" UR                  (       a  SOSS9  U" UR                  5      nSU;  a  [        R!                  S5        gUR"                  c9  SS KJn	  ['        U5      u  pU	" U
5        U	" U5        [)        [+        U5      S!5        gUS   R,                   Vs/ s H  oR.                  PM     nn[1        UR"                  S"S#9nS$U;   a  [        R3                  S%5        US$	 [5        XR,                  UR6                  U5        UR8                  c  [;        UR                  S&S'S(9nOUR8                  nU(       a(  [        R=                  S)U5        UR?                  U5        ggs  snf )*z8Add `avar` table from designspace file to variable font.Nr   r   )configLogger)TTFont)DesignSpaceDocumentzfonttools varLib.avar)descriptionrg   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)levelr:   zNot a variable font.)pprintrm   F)require_sourcesr;   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verboserg   logerrorr   r   r   printrG   rN   r,   r   warningr   axisMappingsoutput_filer   infosave)argsr   r   r   r   r   parseroptionsrg   r   rP   rm   rj   r"   dsoutfiles                   r   mainr      s    |xx|&&<$$N % F <QR
$    %	   k,5J   %G'//yB',,DT>		()"!/5xxc(mZ(#'<#4#45#4a		#4H5	'--u	EB~>?LdGGR__h7"$W\\T'R%%g&		'  6s   8H__main__)TrA   )fontTools.varLibr   r   fontTools.varLib.modelsr   fontTools.varLib.varStorer   fontTools.misc.fixedToolsr   rd   fontTools.misc.cliToolsr   	itertoolsr	   logging	getLoggerr   r   r8   r   r   __name__r   exitr>   r   r   <module>r      se    8 2 7 ; 6  /0K<*~dNEP zHHTV r   