- Break: drop Python 2.x and 3.5 support and remove the legacy interface #59
- New: #63 convenience method for an optional field
- New: #34 support
google.protobuf.Duration
- New: #26 support
google.protobuf.Any
- New: #56 provide public API for reading and writing
VarInt
s - Chore: #40 move Google well-known types out to a separate namespace
- Fix: #46 accept a bytes-like object as a byte-string field value
- New: dataclasses interface for defining types using Python type hinting
- Change: legacy interface is available via
pure_protobuf.legacy
- Chore: add initial contribution guide
- Chore: add
Makefile
- Chore: #2 use
pytest
- Chore: use
isort
- Change: Remove
TypeMetadataType
. It is not a part of the standard, and I'd like to focus on maintaining compatibility with the reference implementation - Chore: #2 test snippets in
README.md
- Change: drop
Message.__delattr__
support - New: #6 add Python 3 support
- Change: change license to MIT
- Chore: #4 added style checking with
flake8
- New: #5 add packaging and publish to PyPI
- Change:
encoding
module becameprotobuf
module - Chore: performance tests
- Opt:
Bool.dump
2.2 times faster - Opt:
Varint
14% faster - New:
add_field
chaining - Opt:
__hash__
17% faster
- Chore: README techniques added
- New: hashes of message types
- Fix: loading of missing required field doesn't raise
ValueError
- Chore: message
load
doesn't useStringIO
for reading embedded messages and packed repeated fields anymore - New: add
TypeMetadata
- Change: remove
MarshalableCode
(it's notprotobuf
's business) - Fix: reading of
Int32
values raisesTypeError: 'str' object is not callable
- Fix:
Int32
type name (wasInt32Type
) - New: add validation of message type
- New:
Unicode
type - New: Python code object type
- Fix: casting values to
bool
and frombool