Ë
    Ûvžj/  ã                   óÆ   — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
 d„ Zedfd„Z G d„ d«      Z G d„ d	«      Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zy)é    N)Ú
hex_to_rgbÚname_to_rgbÚ
rgb_to_hexc                 ó–   — t        | |t        t        j                  t        j                  t        | «      «      «      «      z
  dz
  «      S ©Né   )ÚroundÚintÚmathÚfloorÚlog10Úabs)ÚxÚsigs     úe/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/ocp_tessellate/utils.pyÚ	round_sigr      s4   € Ü��Cœ#œdŸj™j¬¯©´C¸³FÓ);Ó<Ó=Ñ=ÀÑAÓBÐBó    Úalwaysc                 óä   — 	 dd„}t         j                  }|t         _        t        j                  ||«       t        j                  | dz   |«       |t         _        t        j                  d|«       y )Nc                 ó$   — |j                   ›d| ›�S )Nz: )Ú__name__)ÚmessageÚcategoryÚfilenameÚlinenoÚfileÚlines         r   Úwarning_on_one_linez!warn.<locals>.warning_on_one_line   s   € ð $×,Ó,©gÐ6Ð6r   Ú
Úignore)NN)ÚwarningsÚformatwarningÚsimplefilterÚwarn)r   ÚwarningÚwhenr   Úwarn_formats        r   r$   r$      sY   € à=Aó7ô
 ×(Ñ(€KØ0„HÔÜ×Ñ˜$ Ô(Ü‡M�M�'˜D‘. 'Ô*Ø(„HÔÜ×Ñ˜( GÕ,r   c                   óf   — e Zd Zd
d„Zd„ Zd„ Zd„ Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zy	)ÚColorc           	      óú  — || _         t        |t        «      rI|j                  |j                  |j
                  |j                   f\  | _        | _        | _        | _         �nHt        |t        «      rˆ|d   dk(  r@t        |«      dkD  r&t        |d d «      }t        |dd d«      dz  | _         nt        |«      }nt        |«      }|j                  | _        |j                  | _        |j                  | _        �n°t        |t        t        f«      �rt        |«      dk\  rù|d d }t!        |D �cg c]  }t        |t"        «      ‘Œ c}«      rDt%        |D �cg c]  }d|cxk  xr d	k  nc ‘Œ c}«      rd
„ |D «       \  | _        | _        | _        n`t%        |D �cg c]$  }t        |t        «      xr d|cxk  xr dk  nc ‘Œ& c}«      r|\  | _        | _        | _        n| j'                  |«       t        |«      dk(  r­|d   d	k  r|d   n|d   dz  | _         n’t)        |d«      rut)        |d«      r|j+                  «       }nt        |«      }t        |d   dz  «      | _        t        |d   dz  «      | _        t        |d   dz  «      | _        |d   | _         n| j'                  |«       | j                   €d	| _         y | j                   d	kD  r!t-        d| j                   › d�«       d	| _         y y c c}w c c}w c c}w )Nr   Ú#é   é	   é   éÿ   é   g        ç      ð?c              3   ó8   K  — | ]  }t        |d z  «      –— Œ y­w)r/   N)r
   )Ú.0Úcs     r   Ú	<genexpr>z!Color.__init__.<locals>.<genexpr>=   s   è ø€ Ð)DÁ¸1¬#¨a°#©g¯,Áùs   ‚é   ÚwrappedÚtoTupler   é   zwarning: alpha > 1.0 (z), using alpha=1.0)ÚaÚ
isinstancer)   ÚrÚgÚbÚstrÚlenr   r
   r   ÚredÚgreenÚblueÚtupleÚlistÚanyÚfloatÚallÚ_invalidÚhasattrr8   r$   )ÚselfÚcolorÚalphar4   Úrgbs        r   Ú__init__zColor.__init__#   s|  € ØˆŒô �eœUÔ#Ø-2¯W©W°e·g±g¸u¿w¹wÈÏÉÐ-OÑ*ˆDŒF�D”F˜DœF D¦Fô ˜œsÔ#Ø�Q‰x˜3Šä�u“: ’>Ü" 5¨¨! 9Ó-�AÜ   q¨ ¨RÓ0°3Ñ6�D•Fä" 5Ó)‘Aä Ó&�Ø—U‘UˆDŒFØ—W‘WˆDŒFØ—V‘VˆDŽFÜ˜¤¤t˜}Õ-´#°e³*À²/Ø˜˜�)ˆCÜ±#Ó6±#¨Q”J˜q¤%Õ(°#Ñ6Ô7¼CÙ*-Ó.©# Q�˜–˜S–¨#Ñ.ô=ñ *EÁÓ)DÑ&�”˜œ ¥ÜÁcÓJÁcÀ”j ¤CÓ(Ò<¨a°1®m¸¬mÑ<ÀcÑJÔKØ),Ñ&�”˜œ ¥à—‘˜eÔ$ä�5‹z˜QŠØ%*¨1¡X°¢_˜˜qš¸%À¹(ÀS¹.�•ä�U˜IÔ&Ü�u˜iÔ(Ø—M‘M“O‘ä˜“K�Ü˜˜1™ ™“_ˆDŒFÜ˜˜1™ ™“_ˆDŒFÜ˜˜1™ ™“_ˆDŒFØ�q‘TˆD�Fð �M‰M˜%Ô à�6‰6ˆ>ØˆD�FØ�V‰V�cŠ\ÜÐ)¨$¯&©&¨Ð1CÐDÔEØˆD�Fð ùò7 7ùÚ.ùò Ks   Ä,K.ÅK3Æ)K8c           	      óp   — d| j                   › d| j                  › d| j                  › d| j                  › d�	S )NzColor(ú, Ú)©r<   r=   r>   r:   ©rK   s    r   Ú__str__zColor.__str__Y   s3   € Ø˜Ÿ™�x˜r $§&¡& ¨¨D¯F©F¨8°2°d·f±f°X¸QÐ?Ð?r   c           	      óp   — d| j                   › d| j                  › d| j                  › d| j                  › d�	S )NzColor((rQ   z))rS   rT   s    r   Ú__repr__zColor.__repr__\   s3   € Ø˜Ÿ™˜  4§6¡6 (¨"¨T¯V©V¨H°B°t·v±v°h¸bÐAÐAr   c                 óZ   — t        d|› d�«       dx| _        x| _        | _        d| _        y )Nz	warning: z' is an invalid color, using grey (#aaa)é    r1   )r$   r<   r=   r>   r:   )rK   rL   s     r   rI   zColor._invalid_   s0   € Üˆy˜˜ÐFÐGÔHØ#&Ð&ˆŒÐ&�”˜$œ&Øˆ�r   c                 óH   — | j                   | j                  | j                  fS ©N©r<   r=   r>   rT   s    r   rN   z	Color.rgbd   s   € à—‘˜Ÿ™ §¡Ð'Ð'r   c                 ó^   — | j                   | j                  | j                  | j                  fS r[   rS   rT   s    r   Úrgbaz
Color.rgbah   s!   € à—‘˜Ÿ™ §¡¨¯©Ð/Ð/r   c                 óZ   — | j                   dz  | j                  dz  | j                  dz  fS )Nr/   r\   rT   s    r   Ú
percentagezColor.percentagel   s'   € à—‘˜‘˜dŸf™f s™l¨D¯F©F°S©LÐ9Ð9r   c                 óZ   — t        | j                  | j                  | j                  f«      S r[   )r   r<   r=   r>   rT   s    r   Ú	web_colorzColor.web_colorp   s    € ä˜4Ÿ6™6 4§6¡6¨4¯6©6Ð2Ó3Ð3r   N)r1   )r   Ú
__module__Ú__qualname__rO   rU   rW   rI   ÚpropertyrN   r^   r`   rb   © r   r   r)   r)   "   si   „ ó4òl@òBòð
 ñ(ó ð(ð ñ0ó ð0ð ñ:ó ð:ð ñ4ó ñ4r   r)   c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)ÚTimerc                 óÂ   — t        |t        «      r|rdnd| _        n|| _        || _        || _        || _        || _        d| _        t        j                  «       | _	        y )Néc   éÿÿÿÿÚ )
r;   ÚboolÚtimeitÚactivityÚnameÚlevelÚnewlineÚinfoÚtimeÚstart)rK   rn   rp   ro   rq   rr   s         r   rO   zTimer.__init__{   sN   € Ü�fœdÔ#Ù &™"¨BˆD�Kà ˆDŒKØ ˆŒØˆŒ	ØˆŒ
ØˆŒØˆŒ	Ü—Y‘Y“[ˆ�
r   c                 ó8   — | j                   rt        dd¬«       | S )Nrl   T©Úflush)rr   ÚprintrT   s    r   Ú	__enter__zTimer.__enter__‡   s   € Ø�<Š<Ü�"˜DÕ!àˆr   c                 ój  — | j                   | j                  k  ršd}| j                   dkD  r|d| j                   z  z  }| j                  dk7  rd| j                  › d�| _        t        dt	        j                  «       | j
                  z
  || j                  | j                  | j                  fz  d¬«       y y )Nrl   r   z| Ú"z%8.3f sec: %s%s %s %sTrw   )rq   rn   rp   ry   rt   ru   ro   rs   )rK   Úexc_typeÚ	exc_valueÚexc_tracebackÚprefixs        r   Ú__exit__zTimer.__exit__�   s�   € Ø�:‰:˜Ÿ™Ò$ØˆFØ�z‰z˜AŠ~Ø˜$ §¡Ñ+Ñ+�à�y‰y˜BŠØ §	¡	˜{¨!Ð,�”	äØ'ä—I‘I“K $§*¡*Ñ,ØØ—M‘MØ—I‘IØ—I‘Iðñð ö
ð %r   N)r   F)r   rc   rd   rO   rz   r�   rf   r   r   rh   rh   z   s   „ ó
!òór   rh   c                 óp   — t        | €|n| «      }t        |t        «      rd|cxk  rdk  rn |S ||_        |S )Nr   r1   )r)   r;   rG   r:   )Úin_colorÚ	def_colorrM   rL   s       r   Ú	get_colorr…   ¨   s<   € Ü˜xÐ/‘)°XÓ>€EÜ�%œÔ A¨Ô$4°Ô$4à€Lð ˆŒØ€Lr   c                 óâ   — i }g }| D ]e  }|€|j                  d «       Œ|j                  |«      €d||<   |j                  |«       Œ?||xx   dz  cc<   |j                  |› d||   › d�«       Œg |S )Nr   Ú(rR   )ÚappendÚget)ÚnamesÚfoundÚunique_namesrp   s       r   Úmake_uniquer�   ¯   s†   € Ø€EØ€LÛˆØˆ<Ø×Ñ Ô%Øà�9‰9�T‹?Ð"ØˆE�$‰KØ×Ñ Õ%à�$‹K˜1Ñ‹KØ×Ñ 4 &¨¨%°©+¨°aÐ 8Õ9ð ð Ðr   c                 óŒ   — t         j                  j                  t        | |«      D ��cg c]
  \  }}||z
  ‘Œ c}}«      S c c}}w r[   )ÚnpÚlinalgÚnormÚzip)Úv1Úv2r   Úys       r   Údistancer–   Á   s5   € Ü�9‰9�>‰>¬S°°R¬[Ô9©[¡T Q¨˜1˜q›5¨[Ò9Ó:Ð:ùÓ9s   ©A 
c                 ó   — | › d�S )NÚpxrf   )Úws    r   r˜   r˜   Å   s   € ØˆS�ˆ8€Or   c                 ó.   — | j                   j                  S r[   )Ú	__class__r   ©Úobjs    r   Ú
class_namerž   Î   s   € Ø�=‰=×!Ñ!Ð!r   c                 ó<   — t        | «      j                  d«      d   S )NÚ_rk   )rž   Úsplitrœ   s    r   Ú	type_namer¢   Ò   s   € Ü�c‹?× Ñ  Ó% bÑ)Ð)r   c                 ól   — t        t        | «      dz
  «      D �cg c]  }| |   | |dz      g‘Œ c}S c c}w r   )Úranger@   )Ú	edge_listÚis     r   Úexploder§   Ö   s<   € Ü6;¼CÀ	»NÈQÑ<NÔ6OÓPÑ6O°ˆY�q‰\˜9 Q¨¡UÑ+Ò,Ð6OÑPÐPùÒPs   š1c                 ó@   — | D ��cg c]  }|D ]  }|‘Œ Œ c}}S c c}}w r[   rf   )Únested_listr   r•   s      r   Úflattenrª   Ú   s"   € Ù"Ô.‘{�!«A qŠA¨AˆA�{Ò.Ð.ùÓ.s   †c                 ó   ‡— ˆfd„Š ‰| «      S )Nc                 ó  •— t        | t        j                  «      r‚| j                  d   st        j                  | «      } | j                  «       } | j                  t        | j                  «      t        j                  t        | «      «      j                  «       ddœS t        | t        t        f«      r| D �cg c]
  } ‰|«      ‘Œ c}S t        | t        «      r'i }| j!                  «       D ]  \  }} ‰|«      ||<   Œ |S | S c c}w )NÚC_CONTIGUOUSÚb64)ÚshapeÚdtypeÚbufferÚcodec)r;   r�   ÚndarrayÚflagsÚascontiguousarrayÚravelr¯   r?   r°   Úbase64Ú	b64encodeÚ
memoryviewÚdecoderD   rE   ÚdictÚitems)r�   ÚelÚrvÚkÚvÚwalks        €r   rÁ   z"numpy_to_buffer_json.<locals>.walkä   sÚ   ø€ Ü�cœ2Ÿ:™:Ô&Ø—9‘9˜^Ò,Ü×*Ñ*¨3Ó/�à—)‘)“+ˆCàŸ™Ü˜SŸY™Y›Ü ×*Ñ*¬:°c«?Ó;×BÑBÓDØñ	ð ô ˜œe¤T˜]Ô+Ù'*Ó+¡s ‘D˜•H sÑ+Ð+Ü˜œTÔ"ØˆBØŸ	™	ž‘��1Ù˜Q›��1’ð $àˆIàˆJùò ,s   Â8Drf   )ÚvaluerÁ   s    @r   Únumpy_to_buffer_jsonrÃ   ã   s   ø€ ôñ, �‹;Ðr   c                 ój   ‡—  G ˆfd„dt         j                  «      Št        j                  | ‰|¬«      S )Nc                   ó"   •‡ — e Zd Zˆˆ fd„Zˆ xZS )ú(numpy_to_json.<locals>.NumpyArrayEncoderc                 ó
  •— t        |t        j                  «      rt        |«      S t        |t        j                  «      rt        |«      S t        |t        j                  «      r|j                  «       S t        ‰| �'  |«      S r[   )
r;   r�   Úintegerr
   ÚfloatingrG   r³   ÚtolistÚsuperÚdefault)rK   ÚoÚNumpyArrayEncoderr›   s     €€r   rÌ   z0numpy_to_json.<locals>.NumpyArrayEncoder.defaultÿ   s^   ø€ Ü˜!œRŸZ™ZÔ(Ü˜1“v�Ü˜!œRŸ[™[Ô)Ü˜Q“x�Ü˜!œRŸZ™ZÔ(Ø—x‘x“zÐ!äÐ*¨DÑ9¸!Ó<Ð<r   )r   rc   rd   rÌ   Ú__classcell__)r›   rÎ   s   @€r   rÎ   rÆ   þ   s   ù„ ÷	=ñ 	=r   rÎ   )ÚclsÚindent)ÚjsonÚJSONEncoderÚdumps)r�   rÑ   rÎ   s     @r   Únumpy_to_jsonrÕ   ý   s+   ø€ ö	=œD×,Ñ,ô 	=ô �:‰:�cÐ0¸Ô@Ð@r   c                 ól   — | j                   |k(  r| S | j                  D ]  }t        ||«      }|€Œ|c S  y r[   )rp   ÚchildrenÚtree_find_single_selector)ÚtreeÚselectorr4   Úresults       r   rØ   rØ     s=   € Ø‡y�y�HÒØˆà�]Œ]ˆÜ*¨1¨hÓ7ˆØÑØŠMð ð r   r[   )r·   rÒ   r   rt   r!   Únumpyr�   Ú	webcolorsr   r   r   r   ÚRuntimeWarningr$   r)   rh   r…   r�   r–   r˜   rž   r¢   r§   rª   rÃ   rÕ   rØ   rf   r   r   Ú<module>rß      s€   ðÛ Û Û Û Û ã ß 9Ñ 9òCð )¨xó -÷&P4ñ P4÷p&ñ &ò\òò$;òò"ò*òQò/òó4Aó(r   