§
    ¢”jF  ã                   ó  — 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j         e¦   «         ¦  «         dS dS )z;Visualize DesignSpaceDocument and resulting VariationModel.é    )ÚVariationModelÚsupportScalar)ÚDesignSpaceDocument)Úpyplot)Úaxes3d)ÚcycleNé
   c                 ó”   ‡‡‡‡— | \  ŠŠŠˆˆˆfd„t          ‰¦  «        D ¦   «         ˆˆˆfd„t          ‰¦  «        D ¦   «         z   ‰gz   S )Nc                 ó,   •— g | ]}‰‰‰z
  |z  ‰z  z   ‘ŒS © r   )Ú.0ÚiÚaÚbÚcounts     €€€úd/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/varLib/plot.pyú
<listcomp>zstops.<locals>.<listcomp>   s+   ø€ Ð7Ð7Ð7 Qˆˆa�!‰e�q‰[˜5Ñ Ñ	 Ð7Ð7Ð7ó    c                 ó,   •— g | ]}‰‰‰z
  |z  ‰z  z   ‘ŒS r   r   )r   r   r   Úcr   s     €€€r   r   zstops.<locals>.<listcomp>   s+   ø€ Ð
9Ð
9Ð
9 qˆ1��A‘˜‰{˜UÑ"Ñ"Ð
9Ð
9Ð
9r   )Úrange)Úsupportr   r   r   r   s    `@@@r   Ústopsr      sm   øøøø€ Ø�G€A€qˆ!ð 	8Ð7Ð7Ð7Ð7Ð7­%°©,¬,Ð7Ñ7Ô7Ø
9Ð
9Ð
9Ð
9Ð
9Ð
9­E°%©L¬LÐ
9Ñ
9Ô
9ñ	:àˆ#ñ	ðr   c                 óê  — t          | t          t          j        j        j        ¦  «        ¦  «        D ]À\  }}t          |¦  «        dk    r/ |j        |                     |d         d¦  «        gdgdfd|i|¤Ž ŒGt          |¦  «        dk    rK |j        |                     |d         d¦  «        g|                     |d         d¦  «        gdgdfd|i|¤Ž Œ¥t          t          |¦  «        ¦  «        ‚d S )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¬>Ô+@Ñ%AÔ%AÑBÔBð ,ð ,‰
ˆˆUÝˆt‰9Œ9˜Š>ˆ>ØˆGŒL˜#Ÿ'š' $ q¤'¨1Ñ-Ô-Ð.°°°sÐRÐRÀ%ÐRÈ6ÐRÐRÐRÐRÝ�‰YŒY˜!Š^ˆ^ØˆGŒLØ—’˜˜aœ !Ñ$Ô$Ð%Ø—’˜˜aœ !Ñ$Ô$Ð%Ø�Øð	ð ð
 ðð ðð ð ð õ !¥ T¡¤Ñ+Ô+Ð+ð,ð ,r   c                 ó2  ‡‡— t          | ¦  «        }t          j        |dz  ¦  «        }t          j        ||z  ¦  «        }‰€d gt          | ¦  «        z  Št          | ¦  «        Šˆˆfd„t	          t          ‰¦  «        ¦  «        D ¦   «         Št          | d                              ¦   «         ¦  «        }t          |¦  «        dk    rt          ‰|d         |||fd‰i|¤Ž d S t          |¦  «        dk    rt          ‰||||fd‰i|¤Ž d S t          d¦  «        ‚)Ng      à?c                 ó6   •— g | ]}‰‰j         |                  ‘ŒS r   )ÚreverseMapping)r   r   ÚmodelÚnamess     €€r   r   z!plotLocations.<locals>.<listcomp>3   s&   ø€ ÐGÐGÐG°ˆU�5Ô'¨Ô*Ô+ÐGÐGÐGr   r   r   r2   r   úOnly 1 or 2 axes are supported)
r$   ÚmathÚceilr   r   ÚsortedÚkeysÚ_plotLocations2DÚ_plotLocations3DÚ
ValueError)	r(   Úfigr2   r+   ÚnÚcolsÚrowsr)   r1   s	     `     @r   ÚplotLocationsr?   *   s#  øø€ ÝˆI‰Œ€AÝŒ9�Q˜‘VÑÔ€DÝŒ9�Q˜‘XÑÔ€Dà€}Ø��˜Y™œÑ'ˆå˜9Ñ%Ô%€EØGÐGÐGÐGÐGµU½3¸u¹:¼:Ñ5FÔ5FÐGÑGÔG€Eå�)˜A”,×#Ò#Ñ%Ô%Ñ&Ô&€DÝ
ˆ4�y„y�A‚~€~Ý˜  Q¤¨¨d°DÐPÐPÀÐPÈÐPÐPÐPÐPÐPÝ	ˆT‰Œ�aŠˆÝ˜  c¨4°ÐMÐM¸UÐMÀfÐMÐMÐMÐMÐMåÐ9Ñ:Ô:Ð:r   c           	      óˆ  — |                      d¦  «        }t          t          | j        t	          t
          j        j        j        ¦  «        t	          |¦  «        ¦  «        ¦  «        D ]Ú\  }\  }	}
}|�| 	                    |¦  «         | 
                    |¦  «         t          j        dd¦  «         |	                     |d¦  «        }g g }}t          |¦  «        D ]>}t          ||i|	¦  «        }|                     |¦  «         |                     |¦  «         Œ? |j        ||fd|
i|¤Ž t#          | j        |g|¦  «         ŒÛd S )Néo   ç      ð¿r   ©rB   g        r   r   )Úadd_subplotÚ	enumerater    Úsupportsr   r   r!   r"   r#   Ú	set_titleÚ
set_xlabelÚxlimr&   r   r   Úappendr%   r-   r(   )r1   Úaxisr;   r=   r>   r2   r+   r*   r   r   r   ÚnameÚXsÚXÚYÚxÚys                    r   r8   r8   >   sI  € Ø�oŠo˜cÑ"Ô"€GÝ%.ÝˆEŒN�E¥&¤)¤.Ô"7Ñ8Ô8½%À¹,¼,ÑGÔGñ&ô &ð =ð =Ñ!ˆÑ!ˆG�U˜Dð ÐØ×Ò˜dÑ#Ô#Ð#Ø×Ò˜4Ñ Ô Ð ÝŒ�D˜$ÑÔÐà�[Š[˜Ð0Ñ1Ô1ˆØ�2ˆ1ˆÝ�r‘”ð 	ð 	ˆAÝ˜t Q˜i¨Ñ1Ô1ˆAØ�HŠH�Q‰KŒKˆKØ�HŠH�Q‰KŒKˆKˆKØˆŒ�Q˜Ð1Ð1 Ð1¨&Ð1Ð1Ð1å˜5œ?¨T¨F°GÑ<Ô<Ð<Ð<ð!=ð =r   c           	      ó^  — |\  }}|                      dd¬¦  «        }	t          t          | j        t	          t
          j        j        j        ¦  «        t	          |¦  «        ¦  «        ¦  «        D �]½\  }
\  }}}|�|	 	                    |¦  «         |	 
                    |¦  «         |	                     |¦  «         t          j        dd¦  «         t          j        dd¦  «         |                     |d¦  «        }|                     |d¦  «        }t          |¦  «        D ]r}g g g }}}|D ]U}t!          ||||i|¦  «        }|                     |¦  «         |                     |¦  «         |                     |¦  «         ŒV |	j        |||fd|i|¤Ž Œst          |¦  «        D ]r}g g g }}}|D ]U}t!          ||||i|¦  «        }|                     |¦  «         |                     |¦  «         |                     |¦  «         ŒV |	j        |||fd|i|¤Ž Œst'          | j        ||g|	¦  «         �Œ¿d S )NrA   Ú3d©Ú
projectionrB   r   rC   r   )rD   rE   r    rF   r   r   r!   r"   r#   rG   rH   Ú
set_ylabelrI   Úylimr&   r   r   rJ   r%   r-   r(   )r1   r)   r;   r>   r=   r2   r+   Úax1Úax2Úaxis3Dr   r   r   rL   rM   ÚYsrP   rN   rO   ÚZrQ   Úzs                         r   r9   r9   S   s`  € Ø�H€Cˆà�_Š_˜S¨Tˆ_Ñ2Ô2€FÝ%.ÝˆEŒN�E¥&¤)¤.Ô"7Ñ8Ô8½%À¹,¼,ÑGÔGñ&ô &ð @ñ @Ñ!ˆÑ!ˆG�U˜Dð ÐØ×Ò˜TÑ"Ô"Ð"Ø×Ò˜#ÑÔÐØ×Ò˜#ÑÔÐÝŒ�D˜$ÑÔÐÝŒ�D˜$ÑÔÐà�[Š[˜Ð/Ñ0Ô0ˆØ�[Š[˜Ð/Ñ0Ô0ˆÝ�r‘”ð 	8ð 	8ˆAØ˜"˜b�!ˆqˆAØð ð �Ý! 3¨¨3°Ð"2°GÑ<Ô<�Ø—’˜‘”�Ø—’˜‘”�Ø—’˜‘”��ØˆFŒK˜˜1˜aÐ7Ð7 uÐ7°Ð7Ð7Ð7Ð7Ý�r‘”ð 	8ð 	8ˆAØ˜"˜b�!ˆqˆAØð ð �Ý! 3¨¨3°Ð"2°GÑ<Ô<�Ø—’˜‘”�Ø—’˜‘”�Ø—’˜‘”��ØˆFŒK˜˜1˜aÐ7Ð7 uÐ7°Ð7Ð7Ð7Ð7å˜5œ?¨S°#¨J¸Ñ?Ô?Ð?Ñ?ð;@ð @r   c                 ó�   — |                       ¦   «          d„ | j        D ¦   «         }d„ | j        D ¦   «         }t          |||fi |¤Ž d S )Nc                 ó   — g | ]	}|j         ‘Œ
S r   )Úlocation©r   Úss     r   r   z plotDocument.<locals>.<listcomp>y   s   € Ð1Ð1Ð1 �”Ð1Ð1Ð1r   c                 ó   — g | ]	}|j         ‘Œ
S r   )rL   ra   s     r   r   z plotDocument.<locals>.<listcomp>z   s   € Ð)Ð)Ð)˜ˆQŒVÐ)Ð)Ð)r   )Ú	normalizeÚsourcesr?   )Údocr;   r+   r(   r2   s        r   ÚplotDocumentrg   w   sY   € Ø‡M‚M�O„O€OØ1Ð1 S¤[Ð1Ñ1Ô1€IØ)Ð)˜Sœ[Ð)Ñ)Ô)€EÝ�)˜S %Ð2Ð2¨6Ð2Ð2Ð2Ð2Ð2r   c                 óÎ  ‡— t          | j        ¦  «        dk    sJ ‚| j        d         Št          ˆfd„| j        D ¦   «         ¦  «        }t	          ˆfd„| j        D ¦   «         ¦  «        }dd l}|                     ||||z
  dz  ¦  «        }g }|D ]1}	‰|	i}
|                      |
|¦  «        }|                     |¦  «         Œ2| 	                    d¦  «        } |j
        ||dfi |¤Ž d S )Nr   r   c              3   óD   •K  — | ]}|                      ‰d ¦  «        V — ŒdS ©r   N©r&   ©r   r,   rK   s     €r   ú	<genexpr>z*_plotModelFromMasters2D.<locals>.<genexpr>‚   ó1   øè è € Ð?Ð?¨�3—7’7˜4 Ñ#Ô#Ð?Ð?Ð?Ð?Ð?Ð?r   c              3   óD   •K  — | ]}|                      ‰d ¦  «        V — ŒdS rj   rk   rl   s     €r   rm   z*_plotModelFromMasters2D.<locals>.<genexpr>ƒ   rn   r   éd   rA   ú-)r$   Ú	axisOrderÚminr(   ÚmaxÚnumpyÚarangeÚinterpolateFromMastersrJ   rD   r%   )r1   ÚmasterValuesr;   r+   Úaxis_minÚaxis_maxÚnprN   rO   rP   r,   Úvr*   rK   s                @r   Ú_plotModelFromMasters2Dr}   ~   s  ø€ ÝˆuŒÑÔ 1Ò$Ð$Ð$Ð$ØŒ?˜1Ô€DåÐ?Ð?Ð?Ð?¨u¬Ð?Ñ?Ô?Ñ?Ô?€HÝÐ?Ð?Ð?Ð?¨u¬Ð?Ñ?Ô?Ñ?Ô?€HàÐÐÐà
�	Š	�(˜H x°(Ñ':¸cÑ&AÑBÔB€AØ
€Aàð ð ˆØ�QˆiˆØ×(Ò(¨¨lÑ;Ô;ˆØ	�Š�‰Œˆˆà�oŠo˜cÑ"Ô"€GØ€G„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}|                     ||||z
  dz  ¦  «        }	|                     ||||z
  dz  ¦  «        }
|                     |	|
¦  «        \  }	}
g }t          |	|
¦  «        D ]c\  }}g }| 	                    |¦  «         t          ||¦  «        D ]6\  }}‰|‰|i}|  
                    ||¦  «        }| 	                    |¦  «         Œ7Œd|                     |¦  «        }|                     d	d
¬¦  «        } |j        |	|
|fi |¤Ž d S )Nr   r   r   c              3   óD   •K  — | ]}|                      ‰d ¦  «        V — ŒdS rj   rk   ©r   r,   Úaxis1s     €r   rm   z*_plotModelFromMasters3D.<locals>.<genexpr>—   ó1   øè è € ÐAÐA¨#�C—G’G˜E 1Ñ%Ô%ÐAÐAÐAÐAÐAÐAr   c              3   óD   •K  — | ]}|                      ‰d ¦  «        V — ŒdS rj   rk   r€   s     €r   rm   z*_plotModelFromMasters3D.<locals>.<genexpr>˜   r‚   r   c              3   óD   •K  — | ]}|                      ‰d ¦  «        V — ŒdS rj   rk   ©r   r,   Úaxis2s     €r   rm   z*_plotModelFromMasters3D.<locals>.<genexpr>™   r‚   r   c              3   óD   •K  — | ]}|                      ‰d ¦  «        V — ŒdS rj   rk   r…   s     €r   rm   z*_plotModelFromMasters3D.<locals>.<genexpr>š   r‚   r   rp   rA   rS   rT   )r$   rr   rs   r(   rt   ru   rv   Úmeshgridr    rJ   rw   ÚarrayrD   Úplot_surface)r1   rx   r;   r+   Ú	axis1_minÚ	axis1_maxÚ	axis2_minÚ	axis2_maxr{   rN   rO   r\   Úrow_xÚrow_yÚz_rowrP   rQ   r,   r|   rZ   r�   r†   s                       @@r   Ú_plotModelFromMasters3Dr’   “   sþ  øø€ ÝˆuŒÑÔ 1Ò$Ð$Ð$Ð$Ø”? 1Ô% u¤°qÔ'9€L€Eˆ5åÐAÐAÐAÐA°´ÐAÑAÔAÑAÔA€IÝÐAÐAÐAÐA°´ÐAÑAÔAÑAÔA€IÝÐAÐAÐAÐA°´ÐAÑAÔAÑAÔA€IÝÐAÐAÐAÐA°´ÐAÑAÔAÑAÔA€IàÐÐÐà
�	Š	�)˜Y¨°YÑ)>À#Ñ(EÑFÔF€AØ
�	Š	�)˜Y¨°YÑ)>À#Ñ(EÑFÔF€AØ�;Š;�q˜!ÑÔ�D€A€qØ
€Aå˜A˜q™	œ	ð ð ‰ˆˆuØˆØ	�Š�‰ŒˆÝ˜˜uÑ%Ô%ð 	ð 	‰DˆAˆqØ˜!˜U AÐ&ˆCØ×,Ò,¨S°,Ñ?Ô?ˆAØ�LŠL˜‰OŒOˆOˆOð	ð 	�Š�‰Œ€Aà�_Š_˜S¨Tˆ_Ñ2Ô2€FØ€FÔ˜˜1˜aÐ*Ð* 6Ð*Ð*Ð*Ð*Ð*r   c                 óÄ   — t          | j        ¦  «        dk    rt          | ||fi |¤Ž dS t          | j        ¦  «        dk    rt          | ||fi |¤Ž dS 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   r3   N)r$   rr   r}   r’   r:   )r1   rx   r;   r+   s       r   ÚplotModelFromMastersr”   °   s}   € õ ˆ5Œ?ÑÔ˜qÒ Ð Ý  |°SÐCÐC¸FÐCÐCÐCÐCÐCÝ	ˆUŒ_Ñ	Ô	 Ò	"Ð	"Ý  |°SÐCÐC¸FÐCÐCÐCÐCÐ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	        ¦   «         }| 
                    d	¦  «         t	          | ¦  «        dk    rV| d                              d
¦  «        r;t          ¦   «         }|                     | d         ¦  «         t          ||¦  «         �n,d„ t          t!          d¦  «        t!          d¦  «        dz   ¦  «        D ¦   «         Šd| d         vrˆfd„| D ¦   «         }t#          ||¦  «         nÌg }g }| D ]‰}|                     d¦  «        \  }}	|                     t)          t+          ‰d„ |                     d¦  «        D ¦   «         ¦  «        ¦  «        ¦  «         |                     t-          |	¦  «        ¦  «         ŒŠt/          |‰d t	          |d         ¦  «        …         ¦  «        }
t1          |
||¦  «         t          j        ¦   «          d S )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.designspacec                 ó,   — g | ]}t          |¦  «        ‘ŒS r   )Úchr)r   r   s     r   r   zmain.<locals>.<listcomp>Ú   s   € Ð>Ð>Ð>˜1•�A‘”Ð>Ð>Ð>r   ÚAr\   ú=c                 ó„   •— g | ]<}t          t          ‰d „ |                     d¦  «        D ¦   «         ¦  «        ¦  «        ‘Œ=S )c              3   ó4   K  — | ]}t          |¦  «        V — Œd S ©N©Úfloat©r   r|   s     r   rm   z"main.<locals>.<listcomp>.<genexpr>Ü   s(   è è € Ð#CÐ#C°¥E¨!¡H¤HÐ#CÐ#CÐ#CÐ#CÐ#CÐ#Cr   ú,)Údictr    Úsplit)r   rb   r)   s     €r   r   zmain.<locals>.<listcomp>Ü   sD   ø€ ÐTÐTÐTÈ!•D�˜TÐ#CÐ#C°a·g²g¸c±l´lÐ#CÑ#CÔ#CÑDÔDÑEÔEÐTÐTÐTr   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rž   rŸ   r¡   s     r   rm   zmain.<locals>.<genexpr>ã   s(   è è € Ð0RÐ0R¸aµ°q±´Ð0RÐ0RÐ0RÐ0RÐ0RÐ0Rr   r¢   )Ú	fontToolsr–   ÚsysÚargvr$   ÚprintÚstderrÚexitr   ÚfigureÚset_tight_layoutÚendswithr   Úreadrg   r   Úordr?   r¤   rJ   r£   r    r    r   r”   Úshow)Úargsr–   r;   rf   Úlocsr(   rx   Úargr,   r|   r1   r)   s              @r   Úmainrµ   ¼   sf  ø€ Ø&Ð&Ð&Ð&Ð&Ð&à€|ÝŒx˜˜˜Œ|ˆð €L�N„N€Nõ ˆ4�y„y�1‚}€}ÝÐ?ÅcÄjÐQÑQÔQÐQÝˆf‰ŒˆÝÐDÍ3Ì:ÐVÑVÔVÐVÝˆf‰ŒˆÝØPÝ”ð	
ñ 	
ô 	
ð 	
õ 	Œ�‰Œˆå
Œ-‰/Œ/€CØ×Ò˜ÑÔÐå
ˆ4�y„y�A‚~€~˜$˜qœ'×*Ò*¨>Ñ:Ô:€~Ý!Ñ#Ô#ˆØ�Š��a”ÑÔÐÝ�S˜#ÑÔÐÑà>Ð>¥¥c¨#¡h¤hµ°C±´¸1±Ñ =Ô =Ð>Ñ>Ô>ˆØ�d˜1”gÐÐØTÐTÐTÐTÈtÐTÑTÔTˆDÝ˜$ Ñ$Ô$Ð$Ð$àˆIØˆLØð .ð .�ØŸš 3™œ‘��QØ× Ò ¥¥c¨$Ð0RÐ0RÀ3Ç9Â9ÈSÁ>Ä>Ð0RÑ0RÔ0RÑ&SÔ&SÑ!TÔ!TÑUÔUÐUØ×#Ò#¥E¨!¡H¤HÑ-Ô-Ð-Ð-Ý" 9¨dÐ3FµS¸À1¼Ñ5FÔ5FÐ3FÔ.GÑHÔHˆEÝ  ¨°cÑ:Ô:Ð:å
„K�M„M€M€M€Mr   Ú__main__)r	   rž   )Ú__doc__ÚfontTools.varLib.modelsr   r   ÚfontTools.designspaceLibr   Ú
matplotlibr   Úmpl_toolkits.mplot3dr   Ú	itertoolsr   r4   Úloggingr§   Ú	getLoggerÚ__name__Úlogr   r-   r?   r8   r9   rg   r}   r’   r”   rµ   r«   r   r   r   ú<module>rÁ      s~  ðØ AÐ Aà AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø 
€
€
€
à€gÔ˜Ñ!Ô!€ðð ð ð ð,ð ,ð ,ð";ð ;ð ;ð ;ð(=ð =ð =ð*!@ð !@ð !@ðH3ð 3ð 3ð&ð &ð &ð*+ð +ð +ð:	;ð 	;ð 	;ð,ð ,ð ,ð ,ð^ ˆzÒÐØ€J€J€Jà€C„HˆTˆT‰VŒVÑÔÐÐÐð Ðr   