confluentinc / confluentinc/confluent-kafka-python

Add AggregateSerializer, AggregateDeserializer

Offen
#1,237 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement priority:low status:help-wanted status:waiting-for-interest
Vorherrschende Sprache
Python
Sterne
509
Forks
964
Ø Merge
2 T. 2 Std.
Gemergte PRs (30 T.)
14

Beschreibung

Description
===========

I had to write a class like the `AggregateSerializer` below recently. It seems like something that would naturally be in the library given producers can produce to multiple topics and considers can subscribe to multiple topics (each with its own format).

See #838
See #1009

How to implement
================

In `/src/confluent_kafka/serialization/__init__.py`, two classes could be added:

```python
class AggregateSerializer(Serializer):
def __init__(self, serializers: Dict[str, Serializer]):
self.serializers = serializers
def __call__(self, obj, ctx: SerializationContext):
return self.serializers[ctx.topic](obj. ctx)

# And basically the same for AggregateDeserializer
```

And basically the same for `AggregateDeserializer`, plus doc comments per other classes in module.

I can do the legwork to integrate this if it increases the chances of it getting in.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne in /src/confluent_kafka/serialization/__init__.py und lies die vorhandenen Serializer- und Deserializer-Klassen. Sieh dir anschließend den Kontext aus #838 und #1009 an. Erledigt ist die Aufgabe, wenn AggregateSerializer und AggregateDeserializer den Handler für ctx.topic auswählen und eine Dokumentation enthalten, die mit den anderen Klassen im Modul konsistent ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
distributed-systems
Issue-Typ
Feature
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.