Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions googleapiclient/http.py
Original file line number Diff line number Diff line change
Expand Up @@ -1062,10 +1062,14 @@ def next_chunk(self, http=None, num_retries=0):
"Content-Length": str(chunk_end - self.resumable_progress + 1),
}

# An empty file results in chunk_end = -1 and size = 0
# sending "bytes 0--1/0" results in an invalid request
# Only add header "Content-Range" if chunk_end != -1
if chunk_end != -1:
if chunk_end - self.resumable_progress + 1 == 0 and chunk_end != -1:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest assigning

content_length = chunk_end - self.resumable_progress + 1 == 0 and chunk_end

before the headers = ... line and using content_length both for the header and in this conditional.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vchudnov-g

I am not sure I am tracking here on two things.

One: Do you mean for this to equate to a boolean?

This line from your example:

chunk_end - self.resumable_progress + 1 == 0 and chunk_end

yields True or False.

And yet content_length feels like the name for an numerial value.

Two: Can you simply suggest the code edit you want to see using GitHub's suggestion tool?

I am not tracking exactly what you want in terms of placement and modifications of the new code. Are you suggesting the following? This seems like doesn't do what we want (especially if content_length is a boolean)?

Suggested change
if chunk_end - self.resumable_progress + 1 == 0 and chunk_end != -1:
content_length = chunk_end - self.resumable_progress + 1 == 0 and chunk_end != -1
if content_length:
headers["Content-Range"] = "bytes */%s" % (content_length,)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agrees with @chalmerlowe and from my understanding of this change, I believe it might be hard to simplify the logic here. I propose we merge this as is, if there are further logic simplifications possible, I suggest we resolve through further PRs.

Note that this commit is authored while I'm still employed at Google so merging it as is would have much lesser copyright related hoops to jump through.

# This is the last chunk, it's empty but the file is not empty.
# Send a Content-Range that ends this file.
headers["Content-Range"] = "bytes */%s" % (size,)
elif chunk_end != -1:
# An empty file results in chunk_end = -1 and size = 0
# sending "bytes 0--1/0" results in an invalid request
# Only add header "Content-Range" if chunk_end != -1
headers["Content-Range"] = "bytes %d-%d/%s" % (
self.resumable_progress,
chunk_end,
Expand Down
Loading