o
    &j                     @   sH   d dl mZ d dlZG dd deZG dd deZG dd deZdS )	    )bfileNc                   @   s&   e Zd ZdddZdd Zdd ZdS )	_RecordReaderNc                 C   s@   |d u rt dt|st d|d | _t|d| _d S )Nz(No filename provided, cannot read Eventsz&{} does not point to valid Events filerb)FileNotFoundErrorr   existsformat_curr_eventZBFilefile_handleselffilepath r   ^/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/visualdl/reader/record_reader.py__init__   s   
z_RecordReader.__init__c                 C   sT   d | _ | jd}t|dkrtdtd|}t|d }| j|}|| _ d S )N   zNo more events to read on LFS.Qr   )r   r	   readlenEOFErrorstructunpackint)r   Z
header_strheaderZ
header_lenZ	event_strr   r   r   get_next   s   
z_RecordReader.get_nextc                 C      | j S N)r   r   r   r   r   record,   s   z_RecordReader.recordr   )__name__
__module____qualname__r   r   r   r   r   r   r   r      s    

r   c                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	_RecordReaderIteratorz!A iterator of record reader.
    c                 C   s   t |d| _d S )N)r   )r   _readerr
   r   r   r   r   4   s   z_RecordReaderIterator.__init__c                 C   s   | S r   r   r   r   r   r   __iter__7   s   z_RecordReaderIterator.__iter__c                 C   s,   z| j   W n	 ty   tw | j  S r   )r"   r   r   StopIterationr   r   r   r   r   __next__:   s   
z_RecordReaderIterator.__next__N)r   r   r    __doc__r   r#   r%   r   r   r   r   r!   0   s
    r!   c                   @   sR   e Zd ZdZdddZdddZddd	Zdd
dZedd Z	e	j
dd Z	dS )RecordReaderzNRecord reader of log file.

    Get one data or all data with this class.
    Nc                 C   s   || _ || _t|| _d S r   )	_filepath_dirr!   r"   )r   r   dirr   r   r   r   H   s   zRecordReader.__init__Fc                 C   s   |rt | j| _| j S )zvGet next data in log file.

        Args:
            update (boolean): Get writer again if `update` is True.
        )r!   r(   r"   r%   r   updater   r   r   r   M      
zRecordReader.get_nextc                 C   s   |rt | j| _t| jS )zuGet all data in log file.

        Args:
            update (boolean): Get writer again if `update` is True.
        )r!   r(   r"   listr+   r   r   r   get_allW   r-   zRecordReader.get_allc                 C   s*   |r|   S g }| jD ]}|| q|S )zxGet remain data in log file.

        Args:
            update (boolean): Get writer again if `update` is True.
        )r/   r"   append)r   r,   resultsitemr   r   r   
get_remaina   s   
zRecordReader.get_remainc                 C   r   r   r)   r   r   r   r   r*   n   s   zRecordReader.dirc                 C   s
   || _ d S r   r4   )r   valuer   r   r   r*   r   s   
r   )F)r   r   r    r&   r   r   r/   r3   propertyr*   setterr   r   r   r   r'   B   s    






r'   )Zvisualdl.ior   r   objectr   r!   r'   r   r   r   r   <module>   s
   