Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

URIBuilder.extend_query_with drops existing parameters that have an empty value

Offen Anfängerfreundlich
#164 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
86/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
python
Bereich
backend

Rechercherichtung

Beginne bei URIBuilder.extend_query_with und untersuche die Verwendung von urllib.parse.parse_qsl; der Issue benennt die Behandlung leerer Werte, durch die vorhandene Query-Paare verloren gehen. Füge einen Regressionstest dafür hinzu, a= um ein Paar und um eine leere Liste zu erweitern, und führe anschließend die relevanten Tests für URIBuilder aus. Das Ziel ist erreicht, wenn in beiden Fällen a= in der resultierenden Query erhalten bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

>>> from rfc3986.builder import URIBuilder
>>> URIBuilder(query="a=").extend_query_with([("b", "c")]).query
'b=c'            # expected 'a=&b=c'
>>> URIBuilder(query="a=").extend_query_with([]).query
''               # expected 'a='

extend_query_with re-parses the existing query with urllib.parse.parse_qsl(self.query or ""), whose default keep_blank_values=False silently drops every pair with an empty value, so extending a query can lose parameters that were there before. a= and a are meaningful to many servers (presence of a flag), and the docstring describes the method as extending the existing query, not filtering it.

Reproduced on 2.0.0 (main 3bd3832). The fix is parse_qsl(self.query or "", keep_blank_values=True). Happy to send a PR with a test if you would take one.

Vorherrschende Sprache
Python
Sterne
189
Forks
43
Ø Merge
12 Std. 14 Min.
Gemergte PRs (30 T.)
2

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus python-hyper/rfc3986

Alle Issues in python-hyper/rfc3986

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

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