Query serializer silently drops empty-string parameters
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
- 82/100
Hướng nghiên cứu
Bắt đầu tại src/browserbase/_qs.py ở các dòng 97-102 và tái hiện vấn đề với stringify({"q": ""}). Đọc các test query-string hiện có bao phủ boolean, mảng và cấu trúc lồng nhau, sau đó bổ sung coverage cho các chuỗi rỗng vô hướng và xác nhận rằng kết quả là q=, trong khi các giá trị cố ý bị thiếu vẫn được bỏ qua.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
The query serializer drops scalar empty-string values instead of encoding them as an empty query parameter. _primitive_value_to_str("") returns "", then _stringify_item treats the serialized value as falsy and returns no item.
Code reference
src/browserbase/_qs.py:97-102
Reproduction
from browserbase._qs import stringify
print(repr(stringify({"q": ""})))
Actual:
''
Expected:
'q='
The behavior is also inconsistent with a comma-formatted empty list/all-None list, which can retain the key with an empty value.
Expected behavior
Only values intentionally treated as absent should be omitted. A supplied empty string should serialize as key= so generated endpoints and extra_query can distinguish an empty value from a missing parameter.
Why it matters
Some APIs use the distinction between a missing query key and a present-but-empty key. The SDK's documented custom/undocumented request support cannot currently express the latter through normal query options. Existing query-string tests cover booleans, arrays, and nesting, but not empty scalar values.
- Ngôn ngữ chính
- Python
- Star
- 93
- Fork
- 16
- Merge trung bình
- 11 phút
- Pull request đã merge (30 ngày)
- 3
Hướng dẫn đóng góp
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 browserbase/sdk-python
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
browserbase/sdk-python#182 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
browserbase/sdk-python#180 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
browserbase/sdk-python#178 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
browserbase/sdk-python#176 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
browserbase/sdk-python#175 ·
Tất cả issue của browserbase/sdk-python
Issue tương tự
-
bug confirmed issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
open-webui/open-webui#30750 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
good first issue
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100