confluentinc / confluentinc/confluent-kafka-python
Fix type hinting of avro messages
- Dominant language
- Python
- Stars
- 509
- Forks
- 964
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 14
Description
Description
===========
I use Pycharm as my IDE, and I dislike seeing complaints about type mismatch.
The `value` attribute of Message objects is typed as `Optional[Union[str, bytes]]`.
However, `AvroConsumer`s set that value to the deserialized message, i.e. whatever python datatype match the avro schema(most often, a `dict`). This generates red flags for any type checkers when I treat that value as a dict(or whatever I expect the deserialized message to be).
Not sure what's the best way to change the type hinting when using C bindings.
Edit: Also, Pycharm thinks `Message.value` takes a `payload` argument. Not sure why that is.
How to reproduce
================
e.g.
```
consumer = AvroConsumer(...)
message = consumer.poll()
field = message.value().get("field") # Pycharm highlights this as an error
```
Checklist
=========
Please provide the following information:
- [x] confluent-kafka-python and librdkafka version (`confluent_kafka.version()` and `confluent_kafka.libversion()`): `confluent_kafka.version() = ('0.11.5', 722176)`, `confluent_kafka.libversion() = ('0.11.5', 722431)`
- [ ] Apache Kafka broker version: N/A
- [ ] Client configuration: N/A
- [ ] Operating system: N/A
- [ ] Provide client logs (with `'debug': '..'` as necessary)
- [ ] Provide broker log excerpts
- [ ] Critical issue
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.