Fix TypeError in ported_string when input is email.header.Header #149
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.
Fixes #148
As detailed in the linked issue, the
ported_stringutility crashes with aTypeErrorwhen it receives anemail.header.Headerobject instead of a string or bytes. This behavior occurs in certain edge cases involving specific encodings or Python environment configurations.Currently,
ported_stringassumes that any input that is not a string must be bytes, leading to a crash when it attempts to callstr(raw_data, encoding)on aHeaderobject.Changes
mailparser/utils.py: Added an explicit isinstance check foremail.header.Header. Since Header objects implement__str__, they are now safely converted to string usingstr()before processing.tests/test_utils.py: Added unit test that parses aHeaderobject to ported string, verifying that the fix works.