Browse Source

ref: forbid typed import errors in sentry modules (#62268)

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

+ 1 - 0
.github/workflows/backend.yml

@@ -310,6 +310,7 @@ jobs:
           ! grep 'Exception type must be derived from BaseException' .artifacts/mypy-all
           ! grep 'Incompatible return value type (got "HttpResponseBase"' .artifacts/mypy-all
           ! grep 'Incompatible types in "yield"' .artifacts/mypy-all
+          ! grep 'Module "sentry.*has no attribute' .artifacts/mypy-all
           ! grep 'does not explicitly export attribute' .artifacts/mypy-all
 
       - name: apply blocklist changes

+ 0 - 3
pyproject.toml

@@ -167,7 +167,6 @@ module = [
     "sentry.api.endpoints.integrations.install_request",
     "sentry.api.endpoints.integrations.sentry_apps.details",
     "sentry.api.endpoints.integrations.sentry_apps.index",
-    "sentry.api.endpoints.integrations.sentry_apps.installation.details",
     "sentry.api.endpoints.integrations.sentry_apps.installation.index",
     "sentry.api.endpoints.integrations.sentry_apps.internal_app_token.details",
     "sentry.api.endpoints.integrations.sentry_apps.internal_app_token.index",
@@ -301,7 +300,6 @@ module = [
     "sentry.api.serializers.rest_framework.doc_integration",
     "sentry.api.serializers.rest_framework.mentions",
     "sentry.api.serializers.rest_framework.notification_action",
-    "sentry.api.serializers.rest_framework.release",
     "sentry.api.serializers.rest_framework.rule",
     "sentry.api.serializers.rest_framework.sentry_app_request",
     "sentry.api.serializers.snuba",
@@ -452,7 +450,6 @@ module = [
     "sentry.mail.adapter",
     "sentry.mail.notifications",
     "sentry.management.commands.makemigrations",
-    "sentry.management.commands.send_fake_data",
     "sentry.middleware.access_log",
     "sentry.middleware.auth",
     "sentry.middleware.ratelimit",

+ 1 - 1
src/sentry/api/endpoints/integrations/sentry_apps/details.py

@@ -14,7 +14,7 @@ from sentry.api.bases.sentryapps import SentryAppBaseEndpoint, catch_raised_erro
 from sentry.api.serializers import serialize
 from sentry.api.serializers.rest_framework import SentryAppSerializer
 from sentry.constants import SentryAppStatus
-from sentry.mediators import InstallationNotifier
+from sentry.mediators.sentry_app_installations.installation_notifier import InstallationNotifier
 from sentry.models.integrations.sentry_app import SentryApp
 from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
 from sentry.sentry_apps.apps import SentryAppUpdater

+ 1 - 1
src/sentry/api/endpoints/integrations/sentry_apps/installation/details.py

@@ -11,7 +11,7 @@ from sentry.api.base import control_silo_endpoint
 from sentry.api.bases import SentryAppInstallationBaseEndpoint
 from sentry.api.serializers import serialize
 from sentry.api.serializers.rest_framework import SentryAppInstallationSerializer
-from sentry.mediators import InstallationNotifier
+from sentry.mediators.sentry_app_installations.installation_notifier import InstallationNotifier
 from sentry.mediators.sentry_app_installations.updater import Updater
 from sentry.models.integrations.sentry_app_installation import SentryAppInstallation
 from sentry.utils.audit import create_audit_entry

+ 1 - 1
src/sentry/api/endpoints/organization_group_index.py

@@ -15,7 +15,6 @@ from sentry.api.base import region_silo_endpoint
 from sentry.api.bases import OrganizationEventPermission, OrganizationEventsEndpointBase
 from sentry.api.event_search import SearchFilter
 from sentry.api.helpers.group_index import (
-    ValidationError,
     build_query_params_from_request,
     calculate_stats_period,
     delete_groups,
@@ -23,6 +22,7 @@ from sentry.api.helpers.group_index import (
     track_slo_response,
     update_groups,
 )
+from sentry.api.helpers.group_index.validators import ValidationError
 from sentry.api.paginator import DateTimePaginator, Paginator
 from sentry.api.serializers import serialize
 from sentry.api.serializers.models.group_stream import StreamGroupSerializerSnuba

+ 2 - 1
src/sentry/api/endpoints/organization_issues_count.py

@@ -7,7 +7,8 @@ from sentry import features, search
 from sentry.api.api_publish_status import ApiPublishStatus
 from sentry.api.base import region_silo_endpoint
 from sentry.api.bases import OrganizationEventsEndpointBase
-from sentry.api.helpers.group_index import ValidationError, validate_search_filter_permissions
+from sentry.api.helpers.group_index import validate_search_filter_permissions
+from sentry.api.helpers.group_index.validators import ValidationError
 from sentry.api.issue_search import convert_query_values, parse_search_query
 from sentry.api.utils import InvalidParams, get_date_range_from_params
 from sentry.snuba import discover

+ 1 - 1
src/sentry/api/endpoints/organization_release_details.py

@@ -2,6 +2,7 @@ from django.db.models import Q
 from rest_framework.exceptions import ParseError
 from rest_framework.request import Request
 from rest_framework.response import Response
+from rest_framework.serializers import ListField
 
 from sentry import release_health
 from sentry.api.api_publish_status import ApiPublishStatus
@@ -15,7 +16,6 @@ from sentry.api.endpoints.organization_releases import (
 from sentry.api.exceptions import ConflictError, InvalidRepository, ResourceDoesNotExist
 from sentry.api.serializers import serialize
 from sentry.api.serializers.rest_framework import (
-    ListField,
     ReleaseHeadCommitSerializer,
     ReleaseHeadCommitSerializerDeprecated,
     ReleaseSerializer,

+ 1 - 1
src/sentry/api/endpoints/organization_releases.py

@@ -8,6 +8,7 @@ from django.db.models import F, Q
 from rest_framework.exceptions import ParseError
 from rest_framework.request import Request
 from rest_framework.response import Response
+from rest_framework.serializers import ListField
 
 from sentry import analytics, release_health
 from sentry.api.api_publish_status import ApiPublishStatus
@@ -19,7 +20,6 @@ from sentry.api.paginator import MergingOffsetPaginator, OffsetPaginator
 from sentry.api.release_search import RELEASE_FREE_TEXT_KEY, parse_search_query
 from sentry.api.serializers import serialize
 from sentry.api.serializers.rest_framework import (
-    ListField,
     ReleaseHeadCommitSerializer,
     ReleaseHeadCommitSerializerDeprecated,
     ReleaseWithVersionSerializer,

+ 1 - 1
src/sentry/api/endpoints/project_group_index.py

@@ -9,13 +9,13 @@ from sentry.api.api_publish_status import ApiPublishStatus
 from sentry.api.base import EnvironmentMixin, region_silo_endpoint
 from sentry.api.bases.project import ProjectEndpoint, ProjectEventPermission
 from sentry.api.helpers.group_index import (
-    ValidationError,
     delete_groups,
     get_by_short_id,
     prep_search,
     track_slo_response,
     update_groups,
 )
+from sentry.api.helpers.group_index.validators import ValidationError
 from sentry.api.serializers import serialize
 from sentry.api.serializers.models.group_stream import StreamGroupSerializer
 from sentry.models.environment import Environment

+ 4 - 2
src/sentry/api/endpoints/user_details.py

@@ -18,7 +18,7 @@ from sentry.api.decorators import sudo_required
 from sentry.api.endpoints.organization_details import post_org_pending_deletion
 from sentry.api.serializers import serialize
 from sentry.api.serializers.models.user import DetailedSelfUserSerializer
-from sentry.api.serializers.rest_framework import CamelSnakeModelSerializer, ListField
+from sentry.api.serializers.rest_framework import CamelSnakeModelSerializer
 from sentry.auth.superuser import is_active_superuser
 from sentry.constants import LANGUAGES
 from sentry.models.options.user_option import UserOption
@@ -138,7 +138,9 @@ class PrivilegedUserSerializer(SuperuserUserSerializer):
 
 
 class DeleteUserSerializer(serializers.Serializer):
-    organizations = ListField(child=serializers.CharField(required=False), required=True)
+    organizations = serializers.ListField(
+        child=serializers.CharField(required=False), required=True
+    )
     hardDelete = serializers.BooleanField(required=False)
 
 

Some files were not shown because too many files changed in this diff