URIBuilder.extend_query_with drops existing parameters that have an empty value
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 86/100
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
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus python-hyper/rfc3986
-
ParseResultBytes.unsplit() raises AttributeError for a reference without an authorityEvtl. vergeben @mayuriphad hat das vor 3 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
python-hyper/rfc3986#163 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
python-hyper/rfc3986#138 · 1 Kommentar ·
-
sdist is missing `tox.ini`Evtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 55/100
python-hyper/rfc3986#129 ·
-
wrong parseOffen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 38/100
python-hyper/rfc3986#128 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 35/100
python-hyper/rfc3986#123 · 2 Kommentare ·
Alle Issues in python-hyper/rfc3986
Ähnliche Issues
-
request-theme
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 66/100
LizardByte/ThemerrDB#9575 ·
Maintainer antworten meist innerhalb von 1 Tag
-
author-page correction
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
acl-org/acl-anthology#10599 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
zilliztech/memsearch#818 ·
Maintainer antworten meist innerhalb von 1 Tag
-
[FAQ] Commit ID for ProjectsEvtl. vergeben @github-actions hat das heute übernommen. Offenfaq-proposal
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 84/100
DataTalksClub/faq#503 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
README.zh-CN/ja/es still hard-code 501 test counts after README.md went count-freeEvtl. vergeben @Aaqibhafeezkhan hat das heute übernommen. Offenbeginner documentation good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
BistaDinesh03/critique#164 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag