fix: initialize content_hash to avoid UnboundLocalError on seek failure#3089
Open
totto wants to merge 1 commit into
Open
fix: initialize content_hash to avoid UnboundLocalError on seek failure#3089totto wants to merge 1 commit into
totto wants to merge 1 commit into
Conversation
When file.seek(0) raises io.UnsupportedOperation the except block logs the error but content_hash is never assigned, causing UnboundLocalError at the return statement. Initialize to empty string before the try block. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Bug
get_file_metadataraisesUnboundLocalError: cannot access local variable 'content_hash' before assignmentwhen the file object does not supportseek().Root cause
content_hashis assigned only inside thetryblock. Whenfile.seek(0)raisesio.UnsupportedOperation, theexceptblock logs the error but never setscontent_hash. The variable is then referenced unconditionally at thereturnstatement.Fix
Initialize
content_hash = ""before thetryblock so the return statement always has a valid value regardless of whether the hash computation succeeds.Test scenario
Any seekable wrapper (e.g.
io.RawIOBasesubclass withoutseek) or a network stream passed asfilewill trigger the crash. Initializing to""is consistent with theFileMetadatatype which declarescontent_hash: str.🤖 Generated with Claude Code