o
    `j  ใ                   @   sX   d dl mZmZmZ G dd deZG dd deZG dd deZG dd	 d	eZd
S )้    )ฺABCฺabstractmethodฺabstractpropertyc                   @   s|   e Zd ZdZedd Zedd Zedd Zedd	 Zed
d Z	edd Z
edd Zedd Zedd ZdS )ฺ	ABCRecordฉ c                 C   ๓   dS )z) Number of total bytes in record
        Nr   ฉฺselfr   r   ๚N/home/djax/ivt_ai_plugin/venv/lib/python3.10/site-packages/kafka/record/abc.pyฺsize_in_bytes   ๓    zABCRecord.size_in_bytesc                 C   r   )z# Absolute offset of record
        Nr   r   r   r   r
   ฺoffset   r   zABCRecord.offsetc                 C   r   )z Epoch milliseconds
        Nr   r   r   r   r
   ฺ	timestamp   r   zABCRecord.timestampc                 C   r   )z* CREATE_TIME(0) or APPEND_TIME(1)
        Nr   r   r   r   r
   ฺtimestamp_type   r   zABCRecord.timestamp_typec                 C   r   )z Bytes key or None
        Nr   r   r   r   r
   ฺkey   r   zABCRecord.keyc                 C   r   )z Bytes value or None
        Nr   r   r   r   r
   ฺvalue    r   zABCRecord.valuec                 C   r   )z Prior to v2 format CRC was contained in every message. This will
            be the checksum for v0 and v1 and None for v2 and above.
        Nr   r   r   r   r
   ฺchecksum%   r   zABCRecord.checksumc                 C   r   )zP Return True if v0/v1 record matches checksum. noop/True for v2 records
        Nr   r   r   r   r
   ฺvalidate_crc+   r   zABCRecord.validate_crcc                 C   r   )zq If supported by version list of key-value tuples, or empty list if
            not supported by format.
        Nr   r   r   r   r
   ฺheaders0   r   zABCRecord.headersN)ฺ__name__ฺ
__module__ฺ__qualname__ฺ	__slots__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
   r      s(    







r   c                   @   s6   e Zd ZdZed	ddZedd Zedd ZdS )
ฺABCRecordBatchBuilderr   Nc                 C   r   )aพ   Writes record to internal buffer.

        Arguments:
            offset (int): Relative offset of record, starting from 0
            timestamp (int or None): Timestamp in milliseconds since beginning
                of the epoch (midnight Jan 1, 1970 (UTC)). If omitted, will be
                set to current time.
            key (bytes or None): Key of the record
            value (bytes or None): Value of the record
            headers (List[Tuple[str, bytes]]): Headers of the record. Header
                keys can not be ``None``.

        Returns:
            (bytes, int): Checksum of the written record (or None for v2 and
                above) and size of the written record.
        Nr   ฉr	   r   r   r   r   r   r   r   r
   ฺappend:   r   zABCRecordBatchBuilder.appendc                 C   r   )zถ Return the expected size change on buffer (uncompressed) if we add
            this message. This will account for varint size changes and give a
            reliable size.
        Nr   r   r   r   r
   r   M   r   z#ABCRecordBatchBuilder.size_in_bytesc                 C   r   )zส Close for append, compress if needed, write size and header and
            return a ready to send buffer object.

            Return:
                bytearray: finished batch, ready to send.
        Nr   r   r   r   r
   ฺbuildT   r   zABCRecordBatchBuilder.build)N)r   r   r   r   r   r   r   r   r   r   r   r
   r   7   s    
r   c                   @   sD   e Zd ZdZdZedd Zedd Zedd Z	ed	d
 Z
dS )ฺABCRecordBatchz_ For v2 encapsulates a RecordBatch, for v0/v1 a single (maybe
        compressed) message.
    r   c                 C   r   )zd Return iterator over records (ABCRecord instances). Will decompress
            if needed.
        Nr   r   r   r   r
   ฺ__iter__d   r   zABCRecordBatch.__iter__c                 C   r   )z& Return base offset for batch
        Nr   r   r   r   r
   ฺbase_offsetj   r   zABCRecordBatch.base_offsetc                 C   r   )zB Return size of batch in bytes (includes header overhead)
        Nr   r   r   r   r
   r   o   r   zABCRecordBatch.size_in_bytesc                 C   r   )z1 Return magic value (0, 1, 2) for batch.
        Nr   r   r   r   r
   ฺmagict   r   zABCRecordBatch.magicN)r   r   r   ฺ__doc__r   r   r   r   r   r   r    r   r   r   r
   r   ^   s    


r   c                   @   s@   e Zd ZdZedd Zedd Zedd Zedd	 Zd
S )ฺ
ABCRecordsr   c                 C   r   )z Initialize with bytes-like object conforming to the buffer
            interface (ie. bytes, bytearray, memoryview etc.).
        Nr   )r	   ฺbufferr   r   r
   ฺ__init__}   r   zABCRecords.__init__c                 C   r   )z+ Returns the size of inner buffer.
        Nr   r   r   r   r
   r      r   zABCRecords.size_in_bytesc                 C   r   )zB Return next batch of records (ABCRecordBatch instances).
        Nr   r   r   r   r
   ฺ
next_batch   r   zABCRecords.next_batchc                 C   r   )zB True if there are more batches to read, False otherwise.
        Nr   r   r   r   r
   ฺhas_next   r   zABCRecords.has_nextN)	r   r   r   r   r   r$   r   r%   r&   r   r   r   r
   r"   z   s    


r"   N)ฺabcr   r   r   r   r   r   r"   r   r   r   r
   ฺ<module>   s
    3'