
    hi                     l   S r SSKJr  SSKJrJrJrJr  SSKJ	r	  SSK
rSSKrSSKJr  SSKJr  \R"                  " S5      rS	 S
4S jrSS jr\S:X  aa  SSKr\" \R0                  5      S:  a  \R2                  " \" 5       5        SSKr\R2                  " \R6                  " 5       R8                  5        gg)z:
Interpolate OpenType Layout tables (GDEF / GPOS / GSUB).
    )TTFont)modelsVarLibErrorload_designspaceload_masters)InstancerMergerN)deepcopy)pformatz#fontTools.varLib.interpolate_layoutc                     U $ N ss    U/var/www/html/env/lib/python3.13/site-packages/fontTools/varLib/interpolate_layout.py<lambda>r      s        Fc                    [        U S5      (       a  OSSKJn  UR                  U 5      n [	        U 5      n[
        R                  S5        [
        R                  S5        [        X5      n[        XeR                     5      n[
        R                  S[        U5      5        U(       d@  UR                  5        VV	s0 s H#  u  pXR                  U   R                  U	5      _M%     nnn	[
        R                  S[        U5      5        [        R                  " XR                   5      n[
        R                  S[        U5      5        [        R"                  " UR$                  5      n
SU
R&                  UR                     :X  d   e[)        XzU5      n[
        R                  S	5        UR+                  XvS
/5        U$ s  sn	nf )a  
Interpolate GPOS from a designspace file and location.

If master_finder is set, it should be a callable that takes master
filename as found in designspace file and map it to master font
binary as to be opened (eg. .ttf or .otf).

If mapped is False (default), then location is mapped using the
map element of the axes in designspace file.  If mapped is True,
it is assumed that location is in designspace's internal space and
no mapping is performed.
sourcesr   )DesignSpaceDocumentzBuilding interpolated fontzLoading master fontszLocation: %szInternal location: %szNormalized location: %szBuilding interpolated tablesGPOS)hasattrfontTools.designspaceLibr   fromfiler   loginfor   r	   base_idxr
   itemsaxesmap_forwardr   normalizeLocationinternal_axis_supportsVariationModelnormalized_master_locsmappingr   mergeTables)designspacelocmaster_findermappedr   dsmaster_fontsfontnamevmodelmergers               r   interpolate_layoutr1      sR    {I&&@)22;?	+	&BHH)*HH#$;LL-.DHH^WS\*ADMgdtWWT]..q11MHH$gcl3

"
"3(A(A
BCHH&5 !!"";";<Ebkk****T#.FHH+,
tF84K Ns   :*F:c                    SSK Jn  SSKnSSKnUR	                  S[
        R                  S9nUR                  SSSS	9  UR                  S
S[        SSS9  UR                  SSSSS	9  UR                  SSSSSS9  UR                  U 5      n U R                  (       d4  [        R                  R                  U R                  5      S   S-   U l
        U" U R                  S9  S n0 nU R                    H#  nUR#                  S5      u  p[%        U	5      Xh'   M%     ['        U R                  Xe5      n
[(        R+                  SU R                  5        U
R-                  U R                  5        g)z>Interpolate GDEF/GPOS/GSUB tables for a point on a designspacer   )configLoggerNz#fonttools varLib.interpolate_layout)descriptiondesignspace_filenameDESIGNSPACEzInput TTF files)metavarhelp	locationsLOCATION+zAxis locations (e.g. wdth=120)r7   typenargsr8   z-oz--outputOUTPUTz=Output font file (defaults to <designspacename>-instance.ttf)z-lz
--loglevelLEVELINFOz Logging level (defaults to INFO))r7   defaultr8   z-instance.ttf)levelc                 F    U R                  SS5      R                  SS5      $ )N
master_ufomaster_ttf_interpolatablez.ufoz.ttf)replacer   s    r   r   main.<locals>.<lambda>g   s     qyy/JKSSr   =zSaving font %s)	fontToolsr3   argparsesysArgumentParsermain__doc__add_argumentstr
parse_argsoutputospathsplitextr5   loglevelr9   splitfloatr1   r   r   save)argsr3   rJ   rK   parserfinderr'   argtagvalr,   s              r   rM   rM   >   sh   &$$-LL % F <M   ,   L	   /   T"D;;gg&&t'@'@A!DVt}}%F C~~99S>:  d77EDHHt{{+IIdkkr   __main__   r   )rN   fontTools.ttLibr   fontTools.varLibr   r   r   r   fontTools.varLib.mergerr   os.pathrS   loggingcopyr	   pprintr
   	getLoggerr   r1   rM   __name__rK   lenargvexitdoctesttestmodfailedr   r   r   <module>rq      s    # P P 3    => 8C5 +\4n z
388}qHHW__%%& r   