python-hyper / python-hyper/h2
Wanted to extend hpack encoders or allow different Encoder and Decoders to be used.
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 1k
- Forks
- 187
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I have a library coming out which I made as a drop in replacement for python hpack called cyhpack and I wanted to try developing a better solution for injecting my own Decoder and Encoder which runs ls-hpack under the hood. As of currently, here is my workaround but I was wondering if a better implementation could be implemented such as a factory attribute or an Abstract class could be made to accommodate my version and the pure python one as well?
from __future__ import annotations
from h2.config import H2Configuration
from h2.connection import H2Connection as _H2Connection
from .hpack import Decoder, Encoder
class H2Connection(_H2Connection):
"""
Contains an overridable version of H2Connection that drops
python hpack in exchange for cyhpack for faster performance
and speed.
"""
def __init__(self, config: H2Configuration | None = None):
super().__init__(config)
self.encoder = Encoder()
self.decoder = Decoder()
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Lies zunächst h2.connection.H2Connection und H2Configuration, und vergleiche dann, wie der aktuelle Encoder und Decoder initialisiert werden, mit der im Issue gezeigten Umgehungslösung über eine Subklasse. Die Arbeit ist abgeschlossen, wenn Aufrufer alternative Encoder- und Decoder-Implementierungen verwenden können, ohne eine eigene H2Connection-Subklasse pflegen zu müssen, und der Konfigurationspfad abgedeckt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- api, networking
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100