
    Yf	                         d dl Z d dlZd dlZd dlmZmZmZ ej                  dk7  rd dlm	Z	  ede
      Z G d d      Zy)    N)AnyNewTypeTextIOwin32)get_line_atomicFilenamec                   H    e Zd ZdZdeddfdZd
dZd
dZdefdZ	defd	Z
y)ScaleneMapFile   namereturnNc                    || _         t        t        j                        | _        t        d| dt        j                                | _        t        d| dt        j                                | _	        t        d| dt        j                                | _
        d| _        t        d      | _        d | _        |  |  |  t        | j                  d      | _        t        j                   | j                  j"                         t        | j                  d      | _        t        j                   | j$                  j"                         t'        j&                  | j                  j)                         dt&        j*                  t&        j,                        | _        t'        j&                  | j$                  j)                         dt&        j*                  t&        j,                  t&        j.                  z        | _        y )	Nz/tmp/scalene-z-signalz-lockz-initr      rzr+)_name	bytearrayr
   MAX_BUFSIZE_bufr   osgetpid_signal_filename_lock_filename_init_filename_signal_position_lastpos_signal_mmapopen
_signal_fdunlinkr   _lock_fdmmapfileno
MAP_SHARED	PROT_READ
PROT_WRITE
_lock_mmap)selfr   s     W/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/scalene/scalene_mapfile.py__init__zScaleneMapFile.__init__   sp   
n889	 (D66!
 'D6ryy{m4
 'D6ryy{m4
 !"!! t44c:
		$//&&'T00$7
		$--$$% IIOO""$OONN	
 ))MM  "OONNT__,	
    c                 l    | j                   j                          | j                  j                          y)zClose the map file.N)r   closer    r'   s    r(   r,   zScaleneMapFile.close7   s"    r*   c                     	 t        j                  | j                         t        j                  | j                         y# t        $ r Y yw xY w)zRemove all map files.N)r   remover   r   FileNotFoundErrorr-   s    r(   cleanupzScaleneMapFile.cleanup<   s=    	IId))*IId++,  		s   >A 	AAc                     t         j                  dk(  ry| j                  syt        j                  | j                  | j                  | j
                  | j                        S )zRead a line from the map file.r   F)sysplatformr   r   r&   r   r   r-   s    r(   readzScaleneMapFile.readD   sK    <<7"  ..OOT..		4==
 	
r*   c                 ~    | j                   j                  d      j                  d      d   j                  d      }|S )zGet the string from the buffer.       
r   ascii)r   rstripsplitdecode)r'   map_strs     r(   get_strzScaleneMapFile.get_strN   s6    ))""7+11%8;BB7Kr*   )r   N)__name__
__module____qualname__r   strr)   r,   r1   r   r5   r>    r*   r(   r
   r
      s?    
 K"
S "
T "
H

c 
 r*   r
   )r!   r   r3   typingr   r   r   r4   scalener   rB   r   r
   rC   r*   r(   <module>rF      s;     	 
 ' '<<7':s#E Er*   