Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I found the existing behavior when serializing length one strings to be surprising.
I realize that QSTRING_LIST == QGENERIC_LIST but as far as I can tell there is no way to serialize a list of strings without the risk of some ending up as characters.
This fork contains a pretty straightforward change - QWriter will now always serialize str as a QSTRING regardless of its length.
The bytes type retains old behaviour so a bytestring will serialize as a QSTRING while a length-one bytes will serialize to the QCHAR type. This change is carried over to QReader, so QSTRING is converted to str and QCHAR is converted to bytes.
I'm not sure if this is the best approach to the problem, or if other people even consider it an issue but I figured I'd toss it out as an option.