Browse Source

ref: fix some unnecessary casts (hybrid cloud) (#51290)

<!-- Describe your PR here. -->
anthony sottile 1 year ago
parent
commit
1ece6c9627

+ 2 - 1
src/sentry/services/hybrid_cloud/__init__.py

@@ -25,6 +25,7 @@ from typing import (
 
 import pydantic
 import sentry_sdk
+from typing_extensions import Self
 
 from sentry.silo import SiloMode
 
@@ -132,7 +133,7 @@ class RpcModel(pydantic.BaseModel):
         obj: Any,
         name_transform: Callable[[str], str] | None = None,
         value_transform: Callable[[Any], Any] | None = None,
-    ) -> RpcModel:
+    ) -> Self:
         """Serialize an object with field names matching this model class.
 
         This class method may be called only on an instantiable subclass. The

+ 1 - 6
src/sentry/services/hybrid_cloud/auth/serial.py

@@ -1,16 +1,11 @@
 from __future__ import annotations
 
-from typing import cast
-
 from sentry.models import AuthProvider
 from sentry.services.hybrid_cloud.auth import RpcAuthProvider, RpcAuthProviderFlags
 
 
 def _serialize_auth_provider_flags(ap: AuthProvider) -> RpcAuthProviderFlags:
-    return cast(
-        RpcAuthProviderFlags,
-        RpcAuthProviderFlags.serialize_by_field_name(ap.flags, value_transform=bool),
-    )
+    return RpcAuthProviderFlags.serialize_by_field_name(ap.flags, value_transform=bool)
 
 
 def serialize_auth_provider(ap: AuthProvider) -> RpcAuthProvider:

+ 1 - 3
src/sentry/services/hybrid_cloud/lost_password_hash/serial.py

@@ -1,8 +1,6 @@
-from typing import cast
-
 from sentry.models import LostPasswordHash
 from sentry.services.hybrid_cloud.lost_password_hash import RpcLostPasswordHash
 
 
 def serialize_lostpasswordhash(lph: LostPasswordHash) -> RpcLostPasswordHash:
-    return cast(RpcLostPasswordHash, RpcLostPasswordHash.serialize_by_field_name(lph))
+    return RpcLostPasswordHash.serialize_by_field_name(lph)

+ 4 - 10
src/sentry/services/hybrid_cloud/organization/serial.py

@@ -1,7 +1,7 @@
 from __future__ import annotations
 
 from collections import defaultdict
-from typing import Iterable, List, MutableMapping, Set, cast
+from typing import Iterable, List, MutableMapping, Set
 
 from sentry.constants import ObjectStatus
 from sentry.models import (
@@ -35,11 +35,8 @@ def unescape_flag_name(flag_name: str) -> str:
 
 
 def _serialize_member_flags(member: OrganizationMember) -> RpcOrganizationMemberFlags:
-    return cast(
-        RpcOrganizationMemberFlags,
-        RpcOrganizationMemberFlags.serialize_by_field_name(
-            member.flags, name_transform=unescape_flag_name, value_transform=bool
-        ),
+    return RpcOrganizationMemberFlags.serialize_by_field_name(
+        member.flags, name_transform=unescape_flag_name, value_transform=bool
     )
 
 
@@ -93,10 +90,7 @@ def summarize_member(member: OrganizationMember) -> RpcOrganizationMemberSummary
 
 
 def _serialize_flags(org: Organization) -> RpcOrganizationFlags:
-    return cast(
-        RpcOrganizationFlags,
-        RpcOrganizationFlags.serialize_by_field_name(org.flags, value_transform=bool),
-    )
+    return RpcOrganizationFlags.serialize_by_field_name(org.flags, value_transform=bool)
 
 
 def _serialize_team(team: Team) -> RpcTeam:

+ 1 - 3
src/sentry/services/hybrid_cloud/organization_mapping/serial.py

@@ -1,5 +1,3 @@
-from typing import cast
-
 from sentry.models import Organization, OrganizationMapping
 from sentry.services.hybrid_cloud.organization_mapping import (
     RpcOrganizationMapping,
@@ -22,4 +20,4 @@ def update_organization_mapping_from_instance(
 
 
 def serialize_organization_mapping(org_mapping: OrganizationMapping) -> RpcOrganizationMapping:
-    return cast(RpcOrganizationMapping, RpcOrganizationMapping.serialize_by_field_name(org_mapping))
+    return RpcOrganizationMapping.serialize_by_field_name(org_mapping)

+ 1 - 6
src/sentry/services/hybrid_cloud/organizationmember_mapping/serial.py

@@ -1,5 +1,3 @@
-from typing import cast
-
 from sentry.models import OrganizationMemberMapping
 from sentry.services.hybrid_cloud.organizationmember_mapping import RpcOrganizationMemberMapping
 
@@ -7,7 +5,4 @@ from sentry.services.hybrid_cloud.organizationmember_mapping import RpcOrganizat
 def serialize_org_member_mapping(
     org_member_mapping: OrganizationMemberMapping,
 ) -> RpcOrganizationMemberMapping:
-    return cast(
-        RpcOrganizationMemberMapping,
-        RpcOrganizationMemberMapping.serialize_by_field_name(org_member_mapping),
-    )
+    return RpcOrganizationMemberMapping.serialize_by_field_name(org_member_mapping)

+ 3 - 11
src/sentry/testutils/hybrid_cloud.py

@@ -3,7 +3,7 @@ from __future__ import annotations
 import contextlib
 import functools
 from types import TracebackType
-from typing import Any, Callable, Generator, List, Mapping, Optional, Sequence, Tuple, Type, cast
+from typing import Any, Callable, Generator, List, Mapping, Optional, Sequence, Tuple, Type
 
 from sentry.models.organizationmember import OrganizationMember
 from sentry.models.organizationmembermapping import OrganizationMemberMapping
@@ -28,18 +28,10 @@ class use_real_service:
         if isinstance(self.service, DelegatedBySiloMode):
             if self.silo_mode is not None:
                 self.context.enter_context(override_settings(SILO_MODE=self.silo_mode))
-                self.context.enter_context(
-                    cast(
-                        Any,
-                        self.service.with_replacement(None, self.silo_mode),
-                    )
-                )
+                self.context.enter_context(self.service.with_replacement(None, self.silo_mode))
             else:
                 self.context.enter_context(
-                    cast(
-                        Any,
-                        self.service.with_replacement(None, SiloMode.get_current_mode()),
-                    )
+                    self.service.with_replacement(None, SiloMode.get_current_mode())
                 )
         else:
             raise ValueError("Service needs to be a DelegatedBySiloMode object, but it was not!")

+ 3 - 4
src/sentry/testutils/silo.py

@@ -3,7 +3,7 @@ from __future__ import annotations
 import functools
 import inspect
 from contextlib import contextmanager
-from typing import Any, Callable, Generator, Iterable, Set, Tuple, Type, cast
+from typing import Any, Callable, Generator, Iterable, Set, Tuple, Type
 from unittest import TestCase
 
 import pytest
@@ -128,9 +128,8 @@ class SiloModeTest:
             )
             new_sig = orig_sig.replace(parameters=new_params)
             new_test_method.__setattr__("__signature__", new_sig)
-        return cast(
-            TestMethod,
-            pytest.mark.parametrize("silo_mode", sorted(self.silo_modes, key=str))(new_test_method),
+        return pytest.mark.parametrize("silo_mode", sorted(self.silo_modes, key=str))(
+            new_test_method
         )
 
     def _call(self, decorated_obj: Any, stable: bool) -> Any: