Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit c9846c9

Browse filesBrowse files
authored
perf(storage): use google_crc32c.value() for simpler crc32c calculation (#16761)
## Summary - Simplified CRC32C calculation by using `google_crc32c.value()`. - Improved code readability and reduced complexity in checksum logic.
1 parent 7073be1 commit c9846c9
Copy full SHA for c9846c9

4 files changed

+8-15Lines changed: 8 additions & 15 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎packages/google-cloud-storage/google/cloud/storage/asyncio/retry/writes_resumption_strategy.py‎

Copy file name to clipboardExpand all lines: packages/google-cloud-storage/google/cloud/storage/asyncio/retry/writes_resumption_strategy.py
+1-2Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,7 @@ def generate_requests(
8484
break
8585

8686
checksummed_data = storage_type.ChecksummedData(content=chunk)
87-
checksum = google_crc32c.Checksum(chunk)
88-
checksummed_data.crc32c = int.from_bytes(checksum.digest(), "big")
87+
checksummed_data.crc32c = google_crc32c.value(chunk)
8988

9089
request = storage_type.BidiWriteObjectRequest(
9190
write_offset=write_state.bytes_sent,
Collapse file

‎packages/google-cloud-storage/tests/unit/asyncio/retry/test_reads_resumption_strategy.py‎

Copy file name to clipboardExpand all lines: packages/google-cloud-storage/tests/unit/asyncio/retry/test_reads_resumption_strategy.py
+2-3Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import unittest
1818

1919
from google.api_core import exceptions
20-
from google_crc32c import Checksum
20+
import google_crc32c
2121

2222
from google.cloud import _storage_v2 as storage_v2
2323
from google.cloud._storage_v2.types.storage import BidiReadObjectRedirectedError
@@ -77,8 +77,7 @@ def _create_response(
7777
checksummed_data = None
7878
if content is not None:
7979
if crc is None:
80-
c = Checksum(content)
81-
crc = int.from_bytes(c.digest(), "big")
80+
crc = google_crc32c.value(content)
8281
checksummed_data = storage_v2.ChecksummedData(content=content, crc32c=crc)
8382

8483
read_range = None
Collapse file

‎packages/google-cloud-storage/tests/unit/asyncio/retry/test_writes_resumption_strategy.py‎

Copy file name to clipboardExpand all lines: packages/google-cloud-storage/tests/unit/asyncio/retry/test_writes_resumption_strategy.py
+1-2Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,7 @@ def test_generate_requests_checksum_verification(self, strategy):
125125

126126
requests = strategy.generate_requests(state)
127127

128-
expected_crc = google_crc32c.Checksum(chunk_data).digest()
129-
expected_int = int.from_bytes(expected_crc, "big")
128+
expected_int = google_crc32c.value(chunk_data)
130129
assert requests[0].checksummed_data.crc32c == expected_int
131130

132131
def test_generate_requests_flush_logic_exact_interval(self, strategy):
Collapse file

‎packages/google-cloud-storage/tests/unit/asyncio/test_async_multi_range_downloader.py‎

Copy file name to clipboardExpand all lines: packages/google-cloud-storage/tests/unit/asyncio/test_async_multi_range_downloader.py
+4-8Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
import pytest
2121
from google.api_core import exceptions
22-
from google_crc32c import Checksum
22+
import google_crc32c
2323

2424
from google.cloud import _storage_v2
2525
from google.cloud.storage.asyncio import async_read_object_stream
@@ -106,11 +106,8 @@ async def test_download_ranges_via_async_gather(
106106
self, mock_cls_async_read_object_stream, mock_random_int
107107
):
108108
data = b"these_are_18_chars"
109-
crc32c = Checksum(data).digest()
110-
crc32c_int = int.from_bytes(crc32c, "big")
111-
crc32c_checksum_for_data_slice = int.from_bytes(
112-
Checksum(data[10:16]).digest(), "big"
113-
)
109+
crc32c_int = google_crc32c.value(data)
110+
crc32c_checksum_for_data_slice = google_crc32c.value(data[10:16])
114111

115112
mock_mrd, _ = await self._make_mock_mrd(mock_cls_async_read_object_stream)
116113
mock_random_int.side_effect = [456, 91011]
@@ -187,8 +184,7 @@ async def test_download_ranges(
187184
):
188185
# Arrange
189186
data = b"these_are_18_chars"
190-
crc32c = Checksum(data).digest()
191-
crc32c_int = int.from_bytes(crc32c, "big")
187+
crc32c_int = google_crc32c.value(data)
192188

193189
mock_mrd, _ = await self._make_mock_mrd(mock_cls_async_read_object_stream)
194190
mock_random_int.side_effect = [456]

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.