fix(files): support PathLike objects inside upload tuples - #3546
Open
Rajeev91691 wants to merge 1 commit into
Open
fix(files): support PathLike objects inside upload tuples#3546Rajeev91691 wants to merge 1 commit into
Rajeev91691 wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
This PR fixes a bug where
PathLikeobjects passed inside custom upload tuples (e.g.("custom_name.txt", Path("file.txt"))) were not normalized to bytes, causinghttpxto raise anAttributeErrorat runtime (see #3473).Changes
src/openai/_files.py:tuplefromis_file_contentso that custom upload tuples fall through to theis_tuple_tblock in_transform_fileand_async_transform_file, which successfully normalizes the nestedPathLikeobject.assert_is_file_contentto check foris_file_content(obj) or isinstance(obj, tuple)to preserve tuple input validation.tests/test_files.py:test_tuple_in_mapping_normalizes_pathandtest_async_tuple_in_mapping_normalizes_pathto verify the fix for both sync and async paths.All 16 file tests pass successfully.