ó
    F\ht  ã                   ód   • S r / SQr0 r0 rS rSS jrSS jrS rS rS r	SS	 jr
SS
 jrS rS rg)zÃCache lines from Python source files.

This is intended to read lines from modules imported -- hence if a filename
is not found, it will look down the module search path for a file by
that name.
)ÚgetlineÚ
clearcacheÚ
checkcacheÚ	lazycachec                  ó,   • [         R                  5         g)zClear the cache entirely.N)ÚcacheÚclear© ó    Ú /usr/lib/python3.13/linecache.pyr   r      s   € ä	‡K�K…Mr
   Nc                 óZ   • [        X5      nSUs=::  a  [        U5      ::  a
  O  gX1S-
     $ g)zzGet a line for a Python source file from the cache.
Update the cache if it doesn't contain an entry for this file already.é   Ú )ÚgetlinesÚlen)ÚfilenameÚlinenoÚmodule_globalsÚliness       r   r   r      s4   € ô �XÓ.€EØˆFÕ ”c˜%“jÕ àð ˜a‘ZÑ Ð Ør
   c                 ó®   • U [         ;   a$  [         U    n[        U5      S:w  a  [         U    S   $  [        X5      $ ! [         a    [	        5         / s $ f = f)z}Get the lines for a Python source file from the cache.
Update the cache if it doesn't contain an entry for this file already.r   é   )r   r   ÚupdatecacheÚMemoryErrorr   )r   r   Úentrys      r   r   r       sX   € ð ”5ÓÜ�h‘ˆÜˆu‹:˜‹?Ü˜‘? 1Ñ%Ð%ðÜ˜8Ó4Ð4øÜó ÜŒØŠ	ðús   °
; »AÁAc                 óZ   • [        U 5      nSUs=::  a  [        U5      ::  a
  O  gX!S-
     $ g)Nr   r   )Ú_getlines_from_coder   )r   r   r   s      r   Ú_getline_from_coder   0   s2   € Ü Ó)€EØˆFÕ ”c˜%“jÕ àð ˜a‘ZÑ Ð Ør
   c                 óH   • U R                   U R                  U R                  4$ ©N)Úco_filenameÚco_qualnameÚco_firstlineno)Úcodes    r   Ú	_make_keyr#   6   s!   € Ø×Ñ˜d×.Ñ.°×0CÑ0CÐDÐDr
   c                 óx   • [        U 5      nU[        ;   a$  [        U   n[        U5      S:w  a  [        U   S   $ / $ )Nr   r   )r#   Ú_interactive_cacher   )r"   Úcode_idr   s      r   r   r   9   s>   € Ü˜‹o€GØÔ$Ó$Ü" 7Ñ+ˆÜˆu‹:˜‹?Ü% gÑ.¨qÑ1Ð1Ø€Ir
   c                 óê  • U c#  [         R                  5       R                  5       nOU /nU Hu  n  [         U    n[	        U5      S:X  a  M  Uu  p4pVUc  M(   SSKn UR                  U5      nX8R                  :w  d  XHR                  :w  d  M_  [         R                  U S5        Mw     g! [         a     M‡  f = f! [         a       gf = f! [        [        4 a    [         R                  U S5         MÅ  f = f)zQDiscard cache entries that are out of date.
(This is not checked upon each call!)Nr   é    )r   ÚcopyÚkeysÚKeyErrorr   ÚosÚImportErrorÚstatÚOSErrorÚ
ValueErrorÚpopÚst_sizeÚst_mtime)	r   Ú	filenamesr   ÚsizeÚmtimer   Úfullnamer,   r.   s	            r   r   r   B   sê   € ð Ñä—J‘J“L×%Ñ%Ó'‰	à�Jˆ	ãˆð	Ü˜(‘OˆEô ˆu‹:˜‹?áØ',Ñ$ˆ�UØ‰=Ùð	ãð	Ø—7‘7˜8Ó$ˆDð —<‘<Ó 5¯M©MÕ#9Ü�I‰I�h Ö%ò/ øô ó 	Úð	ûô ó 	Úð	ûô œÐ$ó 	Ü�I‰I�h Ô%Úð	ús5   °	B&ÁB7ÁCÂ&
B4Â3B4Â7
CÃCÃ&C2Ã1C2c                 ó"  •  SSK nSSKnSSKnU [        ;   a,  [        [        U    5      S:w  a  [        R                  U S5        U (       a,  U R                  S5      (       a  U R                  S5      (       a  / $ U n UR                  U5      n UR'                  U5       nUR)                  5       nSSS5        W(       d  S/nO&US   R                  S5      (       d  US==   S-  ss'   UR.                  UR0                  píXÞXÅ4[        U '   U$ ! [         a    / s $ f = f! [         Ga(    U n[        X5      (       az   [        U    S   " 5       nUc  / s $ [        U5      SUR                  5        V	s/ s H  o™S-   PM	     Os  sn	f sn	U4[        U '   [        U    S   s $ ! [        [        4 a     Of = fUR                  R                  U 5      (       a  / s $ UR                   Hc  n
 UR                  R                  X§5      nO! [         ["        4 a     M3  f = f UR                  U5      n   GM§  ! [        [$        4 a     Ma  f = f   / s $ [$         a    / s $ f = f! , (       d  f       GN¹= f! [        [*        [,        4 a    / s $ f = f)	zŒUpdate a cache entry and return its list of lines.
If something's wrong, print a message, discard the cache entry,
and return an empty list.r(   Nr   Ú<Ú>Ú
r   éÿÿÿÿ)r,   ÚsysÚtokenizer-   r   r   r1   Ú
startswithÚendswithr.   r/   r   Ú
splitlinesÚpathÚisabsÚjoinÚ	TypeErrorÚAttributeErrorr0   ÚopenÚ	readlinesÚUnicodeDecodeErrorÚSyntaxErrorr2   r3   )r   r   r,   r=   r>   r7   r.   ÚbasenameÚdataÚlineÚdirnameÚfpr   r5   r6   s                  r   r   r   f   se  € ðÛÛÛð
 ”5ÓÜŒu�X‰Ó 1Ó$Ü�I‰I�h Ô%Þ˜×+Ñ+¨C×0Ñ0°X×5FÑ5FÀs×5KÑ5KØˆ	à€Hð,Ø�w‰w�xÓ ˆðXØ�]‰]˜8Ô$¨Ø—L‘L“NˆE÷ %ö Ø�‰Ø�2‰Y×Ñ ×%Ñ%Øˆb‹	�TÑ‹	Ø—,‘, §¡ˆ%Ø 5Ð2„Eˆ(�OØ€LøôG ó àŠ	ðûô ô (Øˆô �X×.Ñ.ð*Ü˜X‘ qÒ)Ó+�ð ‘<ð ’Iä˜“IØØ-1¯_©_Ô->Ó?Ò-> T˜D”[Ò->ùÔ?Øð	#”�h‘ô ˜X‘ qÑ)Ò)øô  ¤Ð)ó Ùðúð" �7‰7�=‰=˜×"Ñ"ØŠIà—x”xˆGðØŸ7™7Ÿ<™<¨Ó:‘øÜœ~Ð.ó âðúðØ—w‘w˜xÓ(�ÜøÜœZÐ(ó Úðúñ  ð ŠIÜó ØŠ	ðú÷ %Ö$ûäÔ'¬Ð5ó ØŠ	ðúsÝ   ‚D Á<D ÂI4 ÂI"Â0I4 ÄDÄDÄIÄ=F ÅIÅIÅ2F
Æ IÆ F3Æ0IÆ2F3Æ3%IÇIÇ*HÈIÈHÈIÈHÈIÈH4È/IÈ4IÉIÉIÉIÉIÉIÉ"
I1É,I4 É1I4 É4JÊJc                 óÀ  ^• U [         ;   a  [        [         U    5      S:X  a  ggU (       a,  U R                  S5      (       a  U R                  S5      (       a  gU(       a€  SU;   az  UR	                  S5      n[        USS	5      =(       d    US   n[        US
S	5      nUc  UR	                  S5      n[        USS	5      mU(       a  T(       a  U4U4S jjnU4[         U '   gg)aÎ  Seed the cache for filename with module_globals.

The module loader will be asked for the source only when getlines is
called, not immediately.

If there is an entry in the cache already, it is not altered.

:return: True if a lazy load is registered in the cache,
    otherwise False. To register such a load a module loader with a
    get_source method must be found, the filename must be a cacheable
    filename, and the filename must not be already cached.
r   TFr9   r:   Ú__name__Ú__spec__ÚnameNÚloaderÚ
__loader__Ú
get_sourcec                 ó   >• T" U /UQ70 UD6$ r   r	   )rS   ÚargsÚkwargsrV   s      €r   Ú	get_linesÚlazycache.<locals>.get_linesÖ   s   ø€ Ù! $Ð8¨Ò8°Ñ8Ð8r
   )r   r   r?   r@   ÚgetÚgetattr)r   r   ÚspecrS   rT   rZ   rV   s         @r   r   r   ¸   sË   ø€ ð ”5ÓÜŒu�X‰Ó 1Ó$ØàÞ˜×+Ñ+¨C×0Ñ0°X×5FÑ5FÀs×5KÑ5KØæ˜*¨Ó6Ø×!Ñ! *Ó-ˆÜ�t˜V TÓ*×H¨n¸ZÑ.HˆÜ˜˜x¨Ó.ˆØ‰>Ø#×'Ñ'¨Ó5ˆFÜ˜V \°4Ó8ˆ
æ–JØ#÷ 9à(˜lŒE�(‰OØØr
   c                 óZ  • [        U5      S UR                  5        Vs/ s H  o3S-   PM	     snU4nU /nU(       al  UR                  5       n U R                   H0  n[	        U[        U 5      5      (       d  M  UR                  U5        M2     U[        [        U 5      '   U(       a  Mk  g g s  snf )Nr;   )	r   rA   r1   Ú	co_constsÚ
isinstanceÚtypeÚappendr%   r#   )r"   ÚstringrS   rM   r   ÚstackÚconsts          r   Ú_register_coderg   Ü   s”   € Ü�‹[ØØ&,×&7Ñ&7Ô&9Ó:Ò&9˜d�TŒkÑ&9Ñ:Øð€Eð ˆF€EÞ
Ø�y‰y‹{ˆØ—^”^ˆEÜ˜%¤ d£×,Ó,Ø—‘˜UÖ#ñ $ð /4Ôœ9 T›?Ñ+÷ Š%ùò ;s   žB(r   )Ú__doc__Ú__all__r   r%   r   r   r   r   r#   r   r   r   r   rg   r	   r
   r   Ú<module>rj      sU   ðñò ?€ð
 	€ØÐ òô
ôò òEòô!&ôHOòd"óH4r
   