URIBuilder.extend_query_with drops existing parameters that have an empty value
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 86/100
Piste de recherche
Commencez par URIBuilder.extend_query_with et examinez son utilisation de urllib.parse.parse_qsl ; l’issue identifie le traitement des valeurs vides qui supprime les paires de query existantes. Ajoutez un test de régression pour étendre a= avec une paire et avec une liste vide, puis exécutez les tests pertinents pour URIBuilder. Le résultat est considéré comme atteint si a= est conservé dans la query obtenue dans les deux cas.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
>>> 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.
- Langage dominant
- Python
- Étoiles
- 189
- Forks
- 43
- Merge moyen
- 12 h 14 min
- PR mergées (30 j)
- 2
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de python-hyper/rfc3986
-
ParseResultBytes.unsplit() raises AttributeError for a reference without an authorityPeut-être pris @mayuriphad l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
python-hyper/rfc3986#163 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
python-hyper/rfc3986#138 · 1 commentaire ·
-
sdist is missing `tox.ini`Peut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 55/100
python-hyper/rfc3986#129 ·
-
wrong parseOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 38/100
python-hyper/rfc3986#128 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 35/100
python-hyper/rfc3986#123 · 2 commentaires ·
Toutes les issues de python-hyper/rfc3986
Issues similaires
-
[Resource]: LoreOuverteresource-submission validation-passed
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
hesreallyhim/awesome-claude-code#3234 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
openminion/openminion#376 ·
Les mainteneurs répondent en général sous 1 jour
-
Type: ☹︎ Bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
posit-dev/great-tables#1028 ·
Les mainteneurs répondent en général sous 1 jour
-
integration: apple_tv
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
home-assistant/core#188282 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
A "since" range is worded as a career: "the past two seasons" says "regular season career (2025 on)"OuverteP4: low
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
jeffknupp/association#538 ·