ó
    •JÕiˆ.  ã                   ó  • S r SSKJrJr  S/S-  rSr " S S\5      r " S S	\5      r " S
 S\5      r	\4S jr
S r\" 5       rSq\4S jr\4S jr\\4S jr\\4S jr\\	" S5      4S jr\\" S5      4S jr\\" SS/5      4S jr\\" 5       4S jr\4S jrS r\" 5       r\4S jr\\4S jr\\	" S5      4S jr\\" S5      4S jr\S/4S jr\\" S/5      4S  jr\SS04S! jr\S"S04S# jr \S/4S$ jr!\\" S/5      4S% jr"\\" S/5      4S& jr#\S/4S' jr$\\" S/5      4S( jr%\SS04S) jr&\S"S04S* jr'\4S+ jr(\)S,:X  a¾  SS-K*J+r+  / S.P\
P\P\P\P\P\P\P\P\P\PS/P\P\P\P\P\P\PS0P\P\P\P\ PS1P\$P\%P\&P\'PS2P\!P\"P\#PS3P\(P7 Hl  r,\-" \,\.5      (       a
  \/" \,5        M  \0" \+" \,5      Rc                  S4S55      5      r2\2S6\3" \5      \-  -  -  r2\/" S7Ri                  \2\,RR                  5      5        Mn     gg)8zEShow relative speeds of local, nonlocal, global, and built-in access.é    )ÚdequeÚ
namedtupleNiô  é   c                   ó   • \ rS rSrS rSrg)ÚAé   c                 ó   • g ©N© )Úselfs    Ú%Tools\scripts\var_access_benchmark.pyÚmÚA.m   s   € Øó    r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__r   r   r   r   r      s   † õr   r   c                   ó   • \ rS rSrSrS rSrg)ÚBé   Úxc                 ó   • Xl         g r
   ©r   ©r   r   s     r   Ú__init__Ú
B.__init__   ó   € Ø�r   r   N)r   r   r   r   Ú	__slots__r   r   r   r   r   r   r      s   † Ø€Iõr   r   c                   ó   • \ rS rSrS rSrg)ÚCé   c                 ó   • Xl         g r
   r   r   s     r   r   Ú
C.__init__   r   r   r   N)r   r   r   r   r   r   r   r   r   r"   r"      s   † õr   r"   c                 ó~   • SnU  H5  nU  U  U  U  U  U  U  U  U  U  U  U  U  U  U  U  U  U  U  U  U  U  U  U  U  M7     g ©Né   r   ©ÚtrialsÚv_localÚts      r   Ú
read_localr-      sH   € Ø€GÛˆÙ‘G¡©G¹Ù‘G¡©G¹Ù‘G¡©G¹Ù‘G¡©G¹Ù‘G¡©G»ò r   c                  ó4   ^• Sm[         4U4S jjn SU l        U $ )Nr(   c                 ó|   >• U  H5  nT  T  T  T  T  T  T  T  T  T  T  T  T  T  T  T  T  T  T  T  T  T  T  T  T  M7     g r
   r   ©r*   r,   Ú
v_nonlocals     €r   ÚinnerÚ#make_nonlocal_reader.<locals>.inner%   sD   ø€ ÛˆAÙ™
¡J±
¹JÙ™
¡J±
¹JÙ™
¡J±
¹JÙ™
¡J±
¹JÙ™
¡J±
»Jò r   Úread_nonlocal©r*   r   ©r2   r1   s    @r   Úmake_nonlocal_readerr7   #   s   ø€ Ø€JÜ÷ Gð %€E„NØ€Lr   r(   c                 óB  • U  H™  n[           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           M›     g r
   ©Úv_global©r*   r,   s     r   Úread_globalr<   2   sC   € ÛˆÝ•(�H¥hµÝ•(�H¥hµÝ•(�H¥hµÝ•(�H¥hµÝ•(�H¥h·ò r   c                 óB  • U  H™  n[           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           [           M›     g r
   )Úoctr;   s     r   Úread_builtinr?   :   sC   € ÛˆÝ�S•#•s�CÝ�S•#•s�CÝ�S•#•s�CÝ�S•#•s�CÝ�S•#•sŸCò r   c                 ó€  • SUl         U  GH0  nUR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     GM3     g r'   r   ©r*   r   r,   s      r   Úread_classvar_from_classrB   B   s®   € Ø
€A„CÜˆØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯­ò r   c                 óŽ  • SUl         U" 5       nU  GH0  nUR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     GM3     g r'   r   )r*   r   Úar,   s       r   Úread_classvar_from_instancerE   K   sµ   € Ø
€A„CÙ	‹€AÜˆØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯­ò r   c                 ór  • U  GH0  nUR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     GM3     g r
   r   ©r*   rD   r,   s      r   Úread_instancevarrH   U   ó§   € ÜˆØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯­ò r   c                 ór  • U  GH0  nUR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     GM3     g r
   r   rG   s      r   Úread_instancevar_slotsrK   ]   rI   r   ÚDr   c                 ó‚  • U" S5      nU  GH0  nUR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     GM3     g r'   r   )r*   rL   rD   r,   s       r   Úread_namedtuplerN   e   s°   € Ù	ˆ!‹€AÜˆØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯ªØ	�Š�—’˜Ÿš §¢¨¯­ò r   c                 ór  • U  GH0  nUR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     UR                     GM3     g r
   )r   rG   s      r   Úread_boundmethodrP   n   rI   r   c                 ó~   • SnU  H5  nSnSnSnSnSnSnSnSnSnSnSnSnSnSnSnSnSnSnSnSnSnSnSnSnSnM7     g r'   r   r)   s      r   Úwrite_localrR   v   sz   € Ø€GÛˆØˆ˜q�W¨A '¸¨wÀa¸GØˆ˜q�W¨A '¸¨wÀa¸GØˆ˜q�W¨A '¸¨wÀa¸GØˆ˜q�W¨A '¸¨wÀa¸GØˆ˜q�W¨A '¸¨wÀaºGò r   c                  ó4   ^• Sm[         4U4S jjn SU l        U $ )Nr(   c                 ó|   >• U  H5  nSmSmSmSmSmSmSmSmSmSmSmSmSmSmSmSmSmSmSmSmSmSmSmSmSmM7     g r'   r   r0   s     €r   r2   Ú#make_nonlocal_writer.<locals>.inner�   s{   ø€ ãˆAØˆJ¨˜J¸¨JÈ¸JÐYZÈJØˆJ¨˜J¸¨JÈ¸JÐYZÈJØˆJ¨˜J¸¨JÈ¸JÐYZÈJØˆJ¨˜J¸¨JÈ¸JÐYZÈJØˆJ¨˜J¸¨JÈ¸JÐYZÊJò r   Úwrite_nonlocalr5   r6   s    @r   Úmake_nonlocal_writerrW      s   ø€ Ø€JÜ÷ [ð &€E„NØ€Lr   c                 óz   • U  H5  nSq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq Sq M7     g r'   r9   r;   s     r   Úwrite_globalrY   Ž   su   € ãˆØˆ �h¨q H¸Q°(È1ÀØˆ �h¨q H¸Q°(È1ÀØˆ �h¨q H¸Q°(È1ÀØˆ �h¨q H¸Q°(È1ÀØˆ �h¨q H¸Q°(È1Âò r   c                 ót  • U  H²  nSUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         M´     g r'   r   rA   s      r   Úwrite_classvarr[   —   ó§   € ÛˆØˆŒ˜!�A”C a ¤°!¨A¬C¸a¸¼ØˆŒ˜!�A”C a ¤°!¨A¬C¸a¸¼ØˆŒ˜!�A”C a ¤°!¨A¬C¸a¸¼ØˆŒ˜!�A”C a ¤°!¨A¬C¸a¸¼ØˆŒ˜!�A”C a ¤°!¨A¬C¸a¸¾ò r   c                 ót  • U  H²  nSUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         M´     g r'   r   rG   s      r   Úwrite_instancevarr^   Ÿ   r\   r   c                 ót  • U  H²  nSUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         SUl         M´     g r'   r   rG   s      r   Úwrite_instancevar_slotsr`   §   r\   r   c                 ó  • U  H€  nUS     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     M‚     g ©Nr   r   rG   s      r   Ú	read_listrc   ¯   ó§   € ÛˆØ	ˆ!Š��!’˜˜!š  !¢¨¨!ªØ	ˆ!Š��!’˜˜!š  !¢¨¨!ªØ	ˆ!Š��!’˜˜!š  !¢¨¨!ªØ	ˆ!Š��!’˜˜!š  !¢¨¨!ªØ	ˆ!Š��!’˜˜!š  !¢¨¨!¬ò r   c                 ó  • U  H€  nUS     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     M‚     g rb   r   rG   s      r   Ú
read_dequerf   ·   rd   r   c                 ó  • U  H€  nUS     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     M‚     g rb   r   rG   s      r   Ú	read_dictrh   ¿   rd   r   Úkeyc                 ó  • U  H€  nUS     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     US     M‚     g )Nri   r   rG   s      r   Úread_strdictrk   Ç   s§   € ÛˆØ	ˆ%Š�A�e’H  %¢¨A¨eªH¸¸%ºØ	ˆ%Š�A�e’H  %¢¨A¨eªH¸¸%ºØ	ˆ%Š�A�e’H  %¢¨A¨eªH¸¸%ºØ	ˆ%Š�A�e’H  %¢¨A¨eªH¸¸%ºØ	ˆ%Š�A�e’H  %¢¨A¨eªH¸¸%¼ò r   c                 ó6  • UR                   UR                  p2U  GH{  nU" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         GM~     g r'   ©ÚappendÚpop©r*   rD   Úapro   r,   s        r   Úlist_append_poprr   Ï   ó  € Ø�h‰h˜Ÿ™ˆÜˆÙ
ˆ1Œ‰sŒu‘b˜”e™SœU¡B q¤E©3¬5±"°Q´%¹¼ÁÀ1ÄÁsÄuÙ
ˆ1Œ‰sŒu‘b˜”e™SœU¡B q¤E©3¬5±"°Q´%¹¼ÁÀ1ÄÁsÄuÙ
ˆ1Œ‰sŒu‘b˜”e™SœU¡B q¤E©3¬5±"°Q´%¹¼ÁÀ1ÄÁsÄuÙ
ˆ1Œ‰sŒu‘b˜”e™SœU¡B q¤E©3¬5±"°Q´%¹¼ÁÀ1ÄÁsÄuÙ
ˆ1Œ‰sŒu‘b˜”e™SœU¡B q¤E©3¬5±"°Q´%¹¼ÁÀ1ÄÁsÇuò r   c                 ó6  • UR                   UR                  p2U  GH{  nU" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         GM~     g r'   rm   rp   s        r   Údeque_append_popru   Ø   rs   r   c                 ó6  • UR                   UR                  p2U  GH{  nU" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U" S5        U" 5         GM~     g r'   )rn   Úpopleftrp   s        r   Údeque_append_popleftrx   á   s  € Ø�h‰h˜Ÿ	™	ˆÜˆÙ
ˆ1Œ‰sŒu‘b˜”e™SœU¡B q¤E©3¬5±"°Q´%¹¼ÁÀ1ÄÁsÄuÙ
ˆ1Œ‰sŒu‘b˜”e™SœU¡B q¤E©3¬5±"°Q´%¹¼ÁÀ1ÄÁsÄuÙ
ˆ1Œ‰sŒu‘b˜”e™SœU¡B q¤E©3¬5±"°Q´%¹¼ÁÀ1ÄÁsÄuÙ
ˆ1Œ‰sŒu‘b˜”e™SœU¡B q¤E©3¬5±"°Q´%¹¼ÁÀ1ÄÁsÄuÙ
ˆ1Œ‰sŒu‘b˜”e™SœU¡B q¤E©3¬5±"°Q´%¹¼ÁÀ1ÄÁsÇuò r   c                 ó  • U  H€  nSUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   M‚     g ©Nr(   r   r   rG   s      r   Ú
write_listr{   ê   óÙ   € ÛˆØˆˆ!‰�Q��!‘˜Q˜˜!™ Q  !¡¨Q¨¨!©Øˆˆ!‰�Q��!‘˜Q˜˜!™ Q  !¡¨Q¨¨!©Øˆˆ!‰�Q��!‘˜Q˜˜!™ Q  !¡¨Q¨¨!©Øˆˆ!‰�Q��!‘˜Q˜˜!™ Q  !¡¨Q¨¨!©Øˆˆ!‰�Q��!‘˜Q˜˜!™ Q  !¡¨Q¨¨!«ò r   c                 ó  • U  H€  nSUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   M‚     g rz   r   rG   s      r   Úwrite_dequer~   ò   r|   r   c                 ó  • U  H€  nSUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   M‚     g rz   r   rG   s      r   Ú
write_dictr€   ú   r|   r   c                 ó  • U  H€  nSUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   SUS'   M‚     g )Nr(   ri   r   rG   s      r   Úwrite_strdictr‚     sÙ   € ÛˆØˆˆ%‰˜Q�A�e‘H¨  %¡°Q¨A¨e©HÀ¸¸%¹Øˆˆ%‰˜Q�A�e‘H¨  %¡°Q¨A¨e©HÀ¸¸%¹Øˆˆ%‰˜Q�A�e‘H¨  %¡°Q¨A¨e©HÀ¸¸%¹Øˆˆ%‰˜Q�A�e‘H¨  %¡°Q¨A¨e©HÀ¸¸%¹Øˆˆ%‰˜Q�A�e‘H¨  %¡°Q¨A¨e©HÀ¸¸%»ò r   c                 ó   • U  H  nM     g r
   r   r;   s     r   Úloop_overheadr„   
  s   € ÛˆÙò r   Ú__main__)ÚTimerz#Variable and attribute read access:z%
Variable and attribute write access:z
Data structure read access:z
Data structure write access:z
Stack (or queue) operations:z
Timing loop overhead:é   iè  i@B z{:6.1f} ns	{})5Ú__doc__Úcollectionsr   r   r*   Ústeps_per_trialÚobjectr   r   r"   r-   r7   r4   r:   r<   r?   rB   rE   rH   rK   rN   rP   rR   rW   rV   rY   r[   r^   r`   rc   rf   rh   rk   rr   ru   rx   r{   r~   r€   r‚   r„   r   Útimeitr†   ÚfÚ
isinstanceÚstrÚprintÚminÚrepeatÚtimingÚlenÚformatr   r   r   Ú<module>r–      s¯  ðÙ G÷ *à
ˆ�#‰€Ø€ôˆô ôˆô ô
ˆô ð ô @ò
ñ %Ó&€à€Øô 9ð ô  ð %+¨aô ,ð (.°ô ,ð #¡a¨£dô ,ð #)©A¨a«Dô ,ð "¡Z°°c°UÓ%;ô ,ð #¡a£cô ,ð ô Hòñ &Ó'€àô Mð ! Aô @ð $¡q¨£tô @ð $*©Q¨q«Tô @ð  ˜sô -ð ¡ q c£
ô -ð   1˜vô -ð  5¨! *ô Að " a Sô Mð #¡e¨Q¨C£jô Mð !'©%°°«*ô Nð   ô /ð ¡¨ s£ô /ð   A ô /ð   E¨1 :ô Cð  ô ð
 ˆZÓåðØ1ðàðà%ðà'2ðà4@ðð %ðð 'Bðð ð	ð 5ð	ð
 ðð
 .ðð 5ðð ðð (ðð *6ðð ðð .ðð 0Gðð ,ðð ðð "ðð $-ðð /;ðð -ðð ðð $ðð &0ðð 2?ðð -ðð ðð .ðð 0Dðð &ðð  ô!ˆñ" �a˜×ÑÙ�!ŒHÙÙ‘U˜1“X—_‘_ Q¨Ó-Ó.ˆØ�'™S ›[¨?Ñ:Ñ;Ñ;ˆÙÐ×%Ñ% f¨a¯j©jÓ9Ö:ò-ð	 r   