Browse Source

fix(typing): adjust replays cache __getitem__ signature (#50960)

Co-authored-by: getsantry[bot] <66042841+getsantry[bot]@users.noreply.github.com>
Josh Ferge 1 year ago
parent
commit
f03ee04da2
2 changed files with 5 additions and 2 deletions
  1. 0 1
      pyproject.toml
  2. 5 1
      src/sentry/replays/cache.py

+ 0 - 1
pyproject.toml

@@ -868,7 +868,6 @@ module = [
     "sentry.release_health.metrics_sessions_v2",
     "sentry.release_health.sessions",
     "sentry.release_health.tasks",
-    "sentry.replays.cache",
     "sentry.replays.endpoints.organization_replay_count",
     "sentry.replays.endpoints.project_replay_clicks_index",
     "sentry.replays.endpoints.project_replay_recording_segment_details",

+ 5 - 1
src/sentry/replays/cache.py

@@ -1,4 +1,6 @@
 """Recording segment part cache manager."""
+from __future__ import annotations
+
 from typing import Any, Dict, Generator
 
 from django.conf import settings
@@ -20,6 +22,8 @@ class RecordingSegmentCache:
         result = replay_cache.get(self.__key(index), raw=True)
         if result is None:
             raise ValueError(f"Missing data for chunk with id {self.__key(index)}.")
+        elif isinstance(result, str):
+            return result.encode()
         else:
             return result
 
@@ -45,7 +49,7 @@ class RecordingSegmentParts:
         """Iterate over each recording segment part."""
         part = RecordingSegmentCache(self.prefix)
         for i in range(self.num_parts):
-            yield part[i].encode("utf-8") if type(part[i]) is str else part[i]
+            yield part[i]
 
     def drop(self):
         """Delete all the parts associated with the recording segment."""