diff options
author | Taras Voinarovskyi <voyn1991@gmail.com> | 2017-10-25 07:28:35 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-25 07:28:35 +0900 |
commit | 8b05ee8da50b4c7b832676f4e38f9d92a86639cc (patch) | |
tree | 91fe16e3c9aff44ca93633824b96da4b8ff19384 /kafka/record/abc.py | |
parent | 4213d53d4ccfd239addc1db07b5b3913b4c6547c (diff) | |
download | kafka-python-8b05ee8da50b4c7b832676f4e38f9d92a86639cc.tar.gz |
Add DefaultRecordBatch implementation aka V2 message format parser/builder. (#1185)
Added bytecode optimization for varint and append/read_msg functions. Mostly based on avoiding LOAD_GLOBAL calls.
Diffstat (limited to 'kafka/record/abc.py')
-rw-r--r-- | kafka/record/abc.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/kafka/record/abc.py b/kafka/record/abc.py index 8a27276..83121c6 100644 --- a/kafka/record/abc.py +++ b/kafka/record/abc.py @@ -36,12 +36,18 @@ class ABCRecord(object): be the checksum for v0 and v1 and None for v2 and above. """ + @abc.abstractproperty + def headers(self): + """ If supported by version list of key-value tuples, or empty list if + not supported by format. + """ + class ABCRecordBatchBuilder(object): __metaclass__ = abc.ABCMeta @abc.abstractmethod - def append(self, offset, timestamp, key, value): + def append(self, offset, timestamp, key, value, headers=None): """ Writes record to internal buffer. Arguments: @@ -51,6 +57,8 @@ class ABCRecordBatchBuilder(object): 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 |