Ë
    £ehF  ã                   ó  — d Z 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ZddlZddlZ ej                  e«      Zdd„Zd	„ Zdd
„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zedk(  rddlZ ej8                   e«       «       yy)z;Visualize DesignSpaceDocument and resulting VariationModel.é    )ÚVariationModelÚsupportScalar)ÚDesignSpaceDocument)Úpyplot)Úaxes3d)ÚcycleNc                 óÀ   — | \  }}}t        |«      D �cg c]  }|||z
  |z  |z  z   ‘Œ c}t        |«      D �cg c]  }|||z
  |z  |z  z   ‘Œ c}z   |gz   S c c}w c c}w ©N)Úrange)ÚsupportÚcountÚaÚbÚcÚis         úS/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/varLib/plot.pyÚstopsr      sq   € Ø�G€A€qˆ!ô +0°«,Ö7 Qˆˆa�!‰e�q‰[˜5Ñ Ó	 Ò7Ü,1°%«LÖ
9 qˆ1��A‘˜‰{˜UÑ"Ó"Ò
9ñ	:àˆ#ñ	ðùÚ7ùÚ
9s
   ”A¸Ac                 ó¾  — t        | t        t        j                  j                  j
                  «      «      D ]£  \  }}t        |«      dk(  r- |j                  |j                  |d   d«      gdgdfd|i|¤Ž ŒAt        |«      dk(  rB |j                  |j                  |d   d«      g|j                  |d   d«      gdgdfd|i|¤Ž Œ‘t        t        |«      «      ‚ y )Né   r   ç      ð?ÚoÚcoloré   )
Úzipr   r   ÚcmÚSet1ÚcolorsÚlenÚplotÚgetÚAssertionError)Ú	locationsÚaxesÚsubplotÚkwargsÚlocr   s         r   Ú_plotLocationsDotsr'      sÚ   € Ü˜)¤U¬6¯9©9¯>©>×+@Ñ+@Ó%AÓBò ,‰
ˆˆUÜˆt‹9˜Š>ØˆG�L‰L˜#Ÿ'™' $ q¡'¨1Ó-Ð.°°°sÑRÀ%ÐRÈ6ÓRÜ�‹Y˜!Š^ØˆG�L‰LØ—‘˜˜a™ !Ó$Ð%Ø—‘˜˜a™ !Ó$Ð%Ø�Øñ	ð
 ðð óô !¤ T£Ó+Ð+ñ,ó    c                 óô  — t        | «      }t        j                  |dz  «      }t        j                  ||z  «      }|€d gt        | «      z  }t        | «      }t	        t        |«      «      D �cg c]  }||j
                  |      ‘Œ }}t        | d   j                  «       «      }	t        |	«      dk(  rt        ||	d   |||fd|i|¤Ž y t        |	«      dk(  rt        ||	|||fd|i|¤Ž y t        d«      ‚c c}w )Ng      à?r   r   Únamesr   úOnly 1 or 2 axes are supported)r   ÚmathÚceilr   r   ÚreverseMappingÚsortedÚkeysÚ_plotLocations2DÚ_plotLocations3DÚ
ValueError)
r"   Úfigr*   r%   ÚnÚcolsÚrowsÚmodelr   r#   s
             r   ÚplotLocationsr9   *   sñ   € ÜˆI‹€AÜ�9‰9�Q˜‘VÓ€DÜ�9‰9�Q˜‘XÓ€Dà€}Ø�œ˜Y›Ñ'ˆä˜9Ó%€EÜ5:¼3¸u»:Ó5FÖG°ˆU�5×'Ñ'¨Ñ*Ó+ÐG€EÐGä�)˜A‘,×#Ñ#Ó%Ó&€DÜ
ˆ4ƒy�A‚~Ü˜  Q¡¨¨d°DÑPÀÐPÈÓPÜ	ˆT‹�aŠÜ˜  c¨4°ÑM¸UÐMÀfÓMäÐ9Ó:Ð:ùò Hs   Á.C5c           	      ób  — |j                  d«      }t        t        | j                  t	        t
        j                  j                  j                  «      t	        |«      «      «      D ]Ç  \  }\  }	}
}|�|j                  |«       |j                  |«       t        j                  dd«       |	j                  |d«      }g g }}t        |«      D ]2  }t        ||i|	«      }|j                  |«       |j                  |«       Œ4  |j                   ||fd|
i|¤Ž t#        | j$                  |g|«       ŒÉ y )Néo   ç      ð¿r   ©r<   g        r   r   )Úadd_subplotÚ	enumerater   Úsupportsr   r   r   r   r   Ú	set_titleÚ
set_xlabelÚxlimr    r   r   Úappendr   r'   r"   )r8   Úaxisr4   r6   r7   r*   r%   r$   r   r   r   ÚnameÚXsÚXÚYÚxÚys                    r   r1   r1   >   s
  € Ø�o‰o˜cÓ"€GÜ%.ÜˆE�N‰NœE¤&§)¡)§.¡.×"7Ñ"7Ó8¼%À»,ÓGó&ò =Ñ!ˆÑ!ˆG�U˜Dð ÐØ×Ñ˜dÔ#Ø×Ñ˜4Ô Ü�‰�D˜$Ôà�[‰[˜Ð0Ó1ˆØ�2ˆ1ˆÜ�r“ò 	ˆAÜ˜t Q˜i¨Ó1ˆAØ�H‰H�QŒKØ�H‰H�Q�Kð	ð 	ˆ�‰�Q˜Ñ1 Ð1¨&Ò1ä˜5Ÿ?™?¨T¨F°GÕ<ñ!=r(   c           	      ó  — |\  }}|j                  dd¬«      }	t        t        | j                  t	        t
        j                  j                  j                  «      t	        |«      «      «      D �]–  \  }
\  }}}|�|	j                  |«       |	j                  |«       |	j                  |«       t        j                  dd«       t        j                  dd«       |j                  |d«      }|j                  |d«      }t        |«      D ]i  }g g g }}}|D ]E  }t!        ||||i|«      }|j#                  |«       |j#                  |«       |j#                  |«       ŒG  |	j$                  |||fd|i|¤Ž Œk t        |«      D ]i  }g g g }}}|D ]E  }t!        ||||i|«      }|j#                  |«       |j#                  |«       |j#                  |«       ŒG  |	j$                  |||fd|i|¤Ž Œk t'        | j(                  ||g|	«       �Œ™ y )Nr;   Ú3d©Ú
projectionr<   r   r=   r   )r>   r?   r   r@   r   r   r   r   r   rA   rB   Ú
set_ylabelrC   Úylimr    r   r   rD   r   r'   r"   )r8   r#   r4   r7   r6   r*   r%   Úax1Úax2Úaxis3Dr   r   r   rF   rG   ÚYsrJ   rH   rI   ÚZrK   Úzs                         r   r2   r2   S   sô  € Ø�H€Cˆà�_‰_˜S¨Tˆ_Ó2€FÜ%.ÜˆE�N‰NœE¤&§)¡)§.¡.×"7Ñ"7Ó8¼%À»,ÓGó&ó @Ñ!ˆÑ!ˆG�U˜Dð ÐØ×Ñ˜TÔ"Ø×Ñ˜#ÔØ×Ñ˜#ÔÜ�‰�D˜$ÔÜ�‰�D˜$Ôà�[‰[˜Ð/Ó0ˆØ�[‰[˜Ð/Ó0ˆÜ�r“ò 	8ˆAØ˜"˜b�!ˆqˆAØò �Ü! 3¨¨3°Ð"2°GÓ<�Ø—‘˜”Ø—‘˜”Ø—‘˜•ð	ð
 ˆF�K‰K˜˜1˜aÑ7 uÐ7°Ó7ð	8ô �r“ò 	8ˆAØ˜"˜b�!ˆqˆAØò �Ü! 3¨¨3°Ð"2°GÓ<�Ø—‘˜”Ø—‘˜”Ø—‘˜•ð	ð
 ˆF�K‰K˜˜1˜aÑ7 uÐ7°Ó7ð	8ô 	˜5Ÿ?™?¨S°#¨J¸Ö?ñ;@r(   c                 óà   — | j                  «        | j                  D �cg c]  }|j                  ‘Œ }}| j                  D �cg c]  }|j                  ‘Œ }}t	        |||fi |¤Ž y c c}w c c}w r
   )Ú	normalizeÚsourcesÚlocationrF   r9   )Údocr4   r%   Úsr"   r*   s         r   ÚplotDocumentr^   w   sZ   € Ø‡M�M„OØ%(§[¡[Ö1 �—“Ð1€IÐ1Ø Ÿ[™[Ö)˜ˆQ�V‹VÐ)€EÐ)Ü�)˜S %Ñ2¨6Ó2ùò 2ùÚ)s   ŸA&ÁA+c                 ó¶  ‡— t        | j                  «      dk(  sJ ‚| j                  d   Št        ˆfd„| j                  D «       «      }t	        ˆfd„| j                  D «       «      }dd l}|j                  ||||z
  dz  «      }g }|D ])  }	‰|	i}
| j                  |
|«      }|j                  |«       Œ+ |j                  d«      } |j                  ||dfi |¤Ž y )Nr   r   c              3   óB   •K  — | ]  }|j                  ‰d «      –— Œ y­w©r   N©r    ©Ú.0r&   rE   s     €r   ú	<genexpr>z*_plotModelFromMasters2D.<locals>.<genexpr>‚   ó   øè ø€ Ò?¨�3—7‘7˜4 ×#Ñ?ùó   ƒc              3   óB   •K  — | ]  }|j                  ‰d «      –— Œ y­wra   rb   rc   s     €r   re   z*_plotModelFromMasters2D.<locals>.<genexpr>ƒ   rf   rg   éd   r;   ú-)r   Ú	axisOrderÚminr"   ÚmaxÚnumpyÚarangeÚinterpolateFromMastersrD   r>   r   )r8   ÚmasterValuesr4   r%   Úaxis_minÚaxis_maxÚnprH   rI   rJ   r&   Úvr$   rE   s                @r   Ú_plotModelFromMasters2Drv   ~   sÐ   ø€ Üˆu�‰Ó 1Ò$Ð$Ð$Ø�?‰?˜1Ñ€DäÓ?¨u¯©Ô?Ó?€HÜÓ?¨u¯©Ô?Ó?€Hãà
�	‰	�(˜H x°(Ñ':¸cÑ&AÓB€AØ
€Aàò ˆØ�QˆiˆØ×(Ñ(¨¨lÓ;ˆØ	�‰��ðð
 �o‰o˜cÓ"€GØ€G‡L�L��A�sÑ%˜fÓ%r(   c                 ó>  ‡‡— t        | j                  «      dk(  sJ ‚| j                  d   | j                  d   cŠŠt        ˆfd„| j                  D «       «      }t	        ˆfd„| j                  D «       «      }t        ˆfd„| j                  D «       «      }t	        ˆfd„| j                  D «       «      }dd l}|j                  ||||z
  dz  «      }	|j                  ||||z
  dz  «      }
|j                  |	|
«      \  }	}
g }t        |	|
«      D ]U  \  }}g }|j                  |«       t        ||«      D ].  \  }}‰|‰|i}| j                  ||«      }|j                  |«       Œ0 ŒW |j                  |«      }|j                  d	d
¬«      } |j                  |	|
|fi |¤Ž y )Nr   r   r   c              3   óB   •K  — | ]  }|j                  ‰d «      –— Œ y­wra   rb   ©rd   r&   Úaxis1s     €r   re   z*_plotModelFromMasters3D.<locals>.<genexpr>—   ó   øè ø€ ÒA¨#�C—G‘G˜E 1×%ÑAùrg   c              3   óB   •K  — | ]  }|j                  ‰d «      –— Œ y­wra   rb   ry   s     €r   re   z*_plotModelFromMasters3D.<locals>.<genexpr>˜   r{   rg   c              3   óB   •K  — | ]  }|j                  ‰d «      –— Œ y­wra   rb   ©rd   r&   Úaxis2s     €r   re   z*_plotModelFromMasters3D.<locals>.<genexpr>™   r{   rg   c              3   óB   •K  — | ]  }|j                  ‰d «      –— Œ y­wra   rb   r~   s     €r   re   z*_plotModelFromMasters3D.<locals>.<genexpr>š   r{   rg   ri   r;   rM   rN   )r   rk   rl   r"   rm   rn   ro   Úmeshgridr   rD   rp   Úarrayr>   Úplot_surface)r8   rq   r4   r%   Ú	axis1_minÚ	axis1_maxÚ	axis2_minÚ	axis2_maxrt   rH   rI   rV   Úrow_xÚrow_yÚz_rowrJ   rK   r&   ru   rT   rz   r   s                       @@r   Ú_plotModelFromMasters3Dr‹   “   sƒ  ù€ Üˆu�‰Ó 1Ò$Ð$Ð$Ø—?‘? 1Ñ% u§¡°qÑ'9€L€Eˆ5äÓA°·±ÔAÓA€IÜÓA°·±ÔAÓA€IÜÓA°·±ÔAÓA€IÜÓA°·±ÔAÓA€Iãà
�	‰	�)˜Y¨°YÑ)>À#Ñ(EÓF€AØ
�	‰	�)˜Y¨°YÑ)>À#Ñ(EÓF€AØ�;‰;�q˜!Ó�D€A€qØ
€Aä˜A˜q›	ò ‰ˆˆuØˆØ	�‰�ŒÜ˜˜uÓ%ò 	‰DˆAˆqØ˜!˜U AÐ&ˆCØ×,Ñ,¨S°,Ó?ˆAØ�L‰L˜�Oñ	ðð 	�‰�‹€Aà�_‰_˜S¨Tˆ_Ó2€FØ€F×Ñ˜˜1˜aÑ* 6Ó*r(   c                 ó´   — t        | j                  «      dk(  rt        | ||fi |¤Ž yt        | j                  «      dk(  rt        | ||fi |¤Ž yt	        d«      ‚)z®Plot a variation model and set of master values corresponding
    to the locations to the model into a pyplot figure.  Variation
    model must have axisOrder of size 1 or 2.r   r   r+   N)r   rk   rv   r‹   r3   )r8   rq   r4   r%   s       r   ÚplotModelFromMastersr�   °   sT   € ô ˆ5�?‰?Ó˜qÒ Ü  |°SÑC¸FÓCÜ	ˆU�_‰_Ó	 Ò	"Ü  |°SÑC¸FÓCäÐ9Ó:Ð:r(   c                 óº  — ddl m} | €t        j                  dd  }  |«        t	        | «      dk  r|t        dt        j                  ¬«       t        d«       t        dt        j                  ¬«       t        d«       t        dt        j                  ¬«       t        j                  d«       t        j                  «       }|j                  d	«       t	        | «      dk(  r@| d   j                  d
«      r,t        «       }|j                  | d   «       t        ||«       �nt        t!        d«      t!        d«      dz   «      D �cg c]  }t#        |«      ‘Œ }}d| d   vrE| D �cg c]-  }t%        t'        |d„ |j)                  d«      D «       «      «      ‘Œ/ }}t+        ||«       n›g }g }	| D ]j  }
|
j)                  d«      \  }}|j-                  t%        t'        |d„ |j)                  d«      D «       «      «      «       |	j-                  t/        |«      «       Œl t1        ||d t	        |d   «       «      }t3        ||	|«       t        j4                  «        y c c}w c c}w )Nr   )ÚconfigLoggerr   z/usage: fonttools varLib.plot source.designspace)Úfilez  orz4usage: fonttools varLib.plot location1 location2 ...zBusage: fonttools varLib.plot location1=value1 location2=value2 ...Tz.designspaceÚArV   ú=c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr
   ©Úfloat©rd   ru   s     r   re   zmain.<locals>.<genexpr>Ü   s   è ø€ Ò#C°¤E¨!§HÑ#Cùó   ‚ú,c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr
   r”   r–   s     r   re   zmain.<locals>.<genexpr>ã   s   è ø€ Ò0R¸a´°q·Ñ0Rùr—   )Ú	fontToolsr�   ÚsysÚargvr   ÚprintÚstderrÚexitr   ÚfigureÚset_tight_layoutÚendswithr   Úreadr^   r   ÚordÚchrÚdictr   Úsplitr9   rD   r•   r   r�   Úshow)Úargsr�   r4   r\   r   r#   r]   Úlocsr"   rq   Úargr&   ru   r8   s                 r   Úmainr¬   ¼   sÜ  € Ý&à€|Ü�x‰x˜˜ˆ|ˆñ „Nô ˆ4ƒy�1‚}ÜÐ?ÄcÇjÁjÕQÜˆfŒÜÐDÌ3Ï:É:ÕVÜˆfŒÜØPÜ—‘õ	
ô 	�‰�Œä
�-‰-‹/€CØ×Ñ˜Ôä
ˆ4ƒy�A‚~˜$˜q™'×*Ñ*¨>Ô:Ü!Ó#ˆØ�‰��a‘ÔÜ�S˜#Öä %¤c¨#£h´°C³¸1±Ó =Ö>˜1”�A•Ð>ˆÐ>Ø�d˜1‘gÑØOSÖTÈ!”Dœ˜TÑ#C°a·g±g¸c³lÔ#CÓDÕEÐTˆDÐTÜ˜$ Õ$àˆIØˆLØò .�ØŸ™ 3›‘��QØ× Ñ ¤¤c¨$Ñ0RÀ3Ç9Á9ÈSÃ>Ô0RÓ&SÓ!TÔUØ×#Ñ#¤E¨!£HÕ-ð.ô # 9¨dÐ3F´S¸À1¹Ó5FÐ.GÓHˆEÜ  ¨°cÔ:ä
‡K�K…Mùò ?ùâTs   ÅIÅ"2IÚ__main__)é
   r
   )Ú__doc__ÚfontTools.varLib.modelsr   r   ÚfontTools.designspaceLibr   Ú
matplotlibr   Úmpl_toolkits.mplot3dr   Ú	itertoolsr   r,   Úloggingr›   Ú	getLoggerÚ__name__Úlogr   r'   r9   r1   r2   r^   rv   r‹   r�   r¬   rŸ   © r(   r   ú<module>rº      s‰   ðÙ Aç AÝ 8Ý Ý 'Ý Û Û Û 
à€g×Ñ˜Ó!€óò,ó";ò(=ò*!@òH3ò&ò*+ò:	;ó,ð^ ˆzÒÛà€C‡H�H‰T‹VÕð r(   