
    g%                         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              yy)    )	_add_avarload_designspace)VariationModel)VarStoreInstancer)fixedToFloat)makeOutputFileName)productNzfontTools.varLib.avarc                     | dk\  r)|j                   | |j                  |j                   z
  z  z   S |j                   | |j                   |j                  z
  z  z   S )Nr   )defaultValuemaxValueminValue)vaxiss     m/home/viktor/gitlab-persoonlijk/factuur-applicatie/venv/lib/python3.12/site-packages/fontTools/varLib/avar.py_denormalizer      sS    Av  18I8I(I#JJJ  1(9(9DMM(I#JJJ    c                    t        | |      }|j                  }|j                  }|D ci c]  }t        |j	                               d  }}|D ]B  }| j                  |      }	||	   }	||	   }
t        |
j                               }|
j	                         D ]  \  }\  }}}||fD ]  }|dv r|j                         D ];  }t        |      }t        |j                               }||k7  r-||vr2||   |k(  s; U t        |	dz
  dd      D ]z  }||   }t        |j                               }||k7  r'||vr,|j	                         D ci c]  \  }\  }}}|| }}}}||   |k(  s^d |t        |j	                               <     J d         E |j                         D cg c]  }t        |       c}S c c}w c c}}}w c c}w )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   " 9h/E==LNNM,12qE!'')d"2D2 &5OOH%O"',,.)(/ !	5$G_dAtD\  5
?99; 5C"&s)K!+"2"2"45G+- g- "7+q05 ).a!eR(< 5$1,$?	(+INN,<(=(K7$"-7$CL??CT% %,?A/?8QAxK%	 % %W-2=ADy'8!9:!5 5n4uA 5!	5&5N "YY[)DG))Q 3@% *s   !F;
G &Gc                   &' | d   j                   }|D ci c]  }|j                  | c}'|D cg c]  }|j                   }}t        |      D ci c]  \  }}|j                  | c}}&d| vri i fS | d   }|j                  j	                         D ci c]  \  }}|r|ddddk7  r|| }	}}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                  ||j                  f       g }|j                   dk7  r|j                  ||j                   f       |j"                  dk7  r|j                  ||j"                  f       |j                  |        t        t%        |       }t'        |      }d ||<   |j)                  |       |j+                  |        ! t-        |&fd
      D cg c]  }t/        |       }}|j1                         D cg c]  }t/        |       }}t3        |t5        |      |      }|j                  j6                  }t9        ||      }|D ]u  }|j;                  |       i }t        |      D ]?  \  }}|}|||   }||   }|dk7  s|j=                  |d      } | t?        |d      z   } | ||<   A |
j                  ||f       w |
d   d   i k(  sJ |
d   d   i k(  r|
jA                  d       |r|	j	                         D ]P  \  }'vrtC        d       'fd}!|j	                         D " ci c]  \  }"}  |!|"       |!|        c} }"|	<   R t        |
      D ]o  \  }\  }#}$|#j	                         D %ci c]  \  }}%|tE        |%'|          }#}}%|$j	                         D %ci c]  \  }}%|tE        |%'|          }$}}%|#|$f|
|<   q |	|
fS c c}w c c}w c c}}w c c}}w c c}w c c}w c c} }"w c c}%}w c c}%}w )Nfvaravarr   r   r   r   majorVersion    c                 B    t        |       t        fd| D              fS )Nc              3   .   K   | ]  \  }}|     y wNr>   ).0tagr.   axisIndexess      r   	<genexpr>z7mappings_from_avar.<locals>.<lambda>.<locals>.<genexpr>   s     ,N&#q[-=,Ns   )lenr   )r7   rD   s    r   <lambda>z$mappings_from_avar.<locals>.<lambda>   s    s1vu,NA,N'NO r   )key   zUnknown axis tag c                 "    t        |          S rA   )r   )r   axisMaprC   s    r   rG   z$mappings_from_avar.<locals>.<lambda>   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   rK   s(          `                              @@r   mappings_from_avarr   R   s   F|  H%-.qyy!|.G#+,a		,H,,5h,?@DAq199a<@KT2v<D ++-C3raA.. 	SH 
 Ht^Q'1,::&&((// T
bT'' 	/G#22M, /! -'01E1E'F 
+OIt~~* &y1G ''$..(ABF!+w&@A}})w&>?NN6*
+ gw/0$\2&*l#""<0%%g.'/	/4 O
 G
 
 #(**,/Qa//(ehO JJ((	%h9	& 	8H!!(+N&/&9 
0"	7"(&v.F!&)A: Wa0AE%,,A /0N7+
0 OOX~67	8" {1~###A;q>RLLO ( 	KHC'! #4SE!:;;<F>AiikJdaVAYq	1JHSM		K )2((; 	0$A$)EM^^EU9Ac\#ws|44H  FO__EV9Ac\#ws|44I  $Y/HQK	0 XE /,@T
 0@ Ks4   P?QQ	QQ*QQ%Q%Q+c                    | ddl }|j                  dd } ddlm} ddlm} ddlm} ddl}|j                  dd       }|j                  d	d
d       |j                  ddddd       |j                  ddt        d       |j                  dddd       |j                  |       } ||j                  rdnd        ||j                        }d|vrt        j!                  d       y|j"                  :dd lm}	 t'        |      \  }
} |	|
        |	|       t)        t+        |      d!       y|d   j,                  D cg c]  }|j.                   }}t1        |j"                  d"#      }d$|v rt        j3                  d%       |d$= t5        ||j,                  |j6                  |       |j8                  t;        |j                  d&d'(      }n|j8                  }|r(t        j=                  d)|       |j?                  |       yyc c}w )*z8Add `avar` table from designspace file to variable font.Nr   r   )configLogger)TTFont)DesignSpaceDocumentzfonttools varLib.avar)descriptionre   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.)pprintrk   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verbosere   logerrorr   r   r   printrF   rL   r,   r   warningr   axisMappingsoutput_filer   infosave)argsr   r   r   r   r   parseroptionsre   r   rN   rk   rh   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5a		5H5	'--u	EB~>?LdBGGR__h7"$W\\T'R%%g&		'  6s   H__main__)TrA   )fontTools.varLibr   r   fontTools.varLib.modelsr   fontTools.varLib.varStorer   fontTools.misc.fixedToolsr   rb   fontTools.misc.cliToolsr   	itertoolsr	   logging	getLoggerr   r   r8   r   r   __name__r   exitr>   r   r   <module>r      si    8 2 7 ; 6  g/0K<*~dNEP zCHHTV r   