URIBuilder.extend_query_with drops existing parameters that have an empty value
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 86/100
Hướng nghiên cứu
Bắt đầu từ URIBuilder.extend_query_with và kiểm tra cách sử dụng urllib.parse.parse_qsl; issue chỉ ra việc xử lý giá trị trống làm mất các cặp query hiện có. Thêm một kiểm thử hồi quy cho việc mở rộng a= bằng một cặp và bằng một danh sách rỗng, sau đó chạy các kiểm thử liên quan đến URIBuilder. Công việc hoàn tất khi a= được giữ nguyên trong query kết quả ở cả hai trường hợp.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
>>> 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.
- Ngôn ngữ chính
- Python
- Star
- 189
- Fork
- 43
- Merge trung bình
- 12 giờ 14 phút
- Pull request đã merge (30 ngày)
- 2
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của python-hyper/rfc3986
-
ParseResultBytes.unsplit() raises AttributeError for a reference without an authorityCó thể đã có người làm @mayuriphad đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
python-hyper/rfc3986#163 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
python-hyper/rfc3986#138 · 1 bình luận ·
-
sdist is missing `tox.ini`Có thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 55/100
python-hyper/rfc3986#129 ·
-
wrong parseĐang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 38/100
python-hyper/rfc3986#128 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 35/100
python-hyper/rfc3986#123 · 2 bình luận ·
Tất cả issue của python-hyper/rfc3986
Issue tương tự
-
Python Volcengine provider returns failures instead of raising themCó thể đã có người làm @Ricardo-M-L đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
agent-infra/sandbox#248 ·
-
Textractor leaves empty temporary files when remote retrieval failsCó thể đã có người làm @HuaTNA đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
test(bm_generation): pin the learning parameters and CPU sync shortcutCó thể đã có người làm @iloveeyjafjalla đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
qboson/kaiwu-pytorch-plugin#1341 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
elder-plinius/V3R1T4S#625 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
foxglove/mcap#1907 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày