Просмотр исходного кода

Revert "ref: fix 'base class ... defined the type as None mypy errors (#56124)"

This reverts commit cf29f5e4b282e559740d83ebc129700839561aee.

Co-authored-by: asottile-sentry <103459774+asottile-sentry@users.noreply.github.com>
getsentry-bot 1 год назад
Родитель
Сommit
8bb4bd926b

+ 11 - 0
pyproject.toml

@@ -427,10 +427,12 @@ module = [
     "sentry.integrations.bitbucket.installed",
     "sentry.integrations.bitbucket.integration",
     "sentry.integrations.bitbucket.issues",
+    "sentry.integrations.bitbucket.repository",
     "sentry.integrations.bitbucket.uninstalled",
     "sentry.integrations.bitbucket.webhook",
     "sentry.integrations.bitbucket_server.client",
     "sentry.integrations.bitbucket_server.integration",
+    "sentry.integrations.bitbucket_server.repository",
     "sentry.integrations.bitbucket_server.webhook",
     "sentry.integrations.example.integration",
     "sentry.integrations.example.repository",
@@ -441,10 +443,12 @@ module = [
     "sentry.integrations.github.webhook",
     "sentry.integrations.github_enterprise.client",
     "sentry.integrations.github_enterprise.integration",
+    "sentry.integrations.github_enterprise.repository",
     "sentry.integrations.github_enterprise.webhook",
     "sentry.integrations.gitlab.client",
     "sentry.integrations.gitlab.integration",
     "sentry.integrations.gitlab.issues",
+    "sentry.integrations.gitlab.repository",
     "sentry.integrations.gitlab.webhooks",
     "sentry.integrations.jira.actions.create_ticket",
     "sentry.integrations.jira.actions.form",
@@ -516,6 +520,9 @@ module = [
     "sentry.issues.search",
     "sentry.issues.status_change",
     "sentry.mail.adapter",
+    "sentry.mail.forms.assigned_to",
+    "sentry.mail.forms.member_team",
+    "sentry.mail.forms.notify_email",
     "sentry.mail.notifications",
     "sentry.management.commands.makemigrations",
     "sentry.management.commands.send_fake_data",
@@ -575,8 +582,12 @@ module = [
     "sentry.plugins.endpoints",
     "sentry.plugins.helpers",
     "sentry.plugins.providers.base",
+    "sentry.plugins.providers.dummy.repository",
     "sentry.plugins.providers.integration_repository",
     "sentry.plugins.providers.repository",
+    "sentry.plugins.sentry_interface_types.models",
+    "sentry.plugins.sentry_urls.models",
+    "sentry.plugins.sentry_useragents.models",
     "sentry.plugins.sentry_webhooks.plugin",
     "sentry.plugins.validators.url",
     "sentry.profiles.task",

+ 2 - 6
src/sentry/auth/providers/github/provider.py

@@ -10,12 +10,8 @@ class GitHubOAuth2Provider(OAuth2Provider):
     access_token_url = ACCESS_TOKEN_URL
     authorize_url = AUTHORIZE_URL
     name = "GitHub"
-
-    def get_client_id(self):
-        return CLIENT_ID
-
-    def get_client_secret(self):
-        return CLIENT_SECRET
+    client_id = CLIENT_ID
+    client_secret = CLIENT_SECRET
 
     def __init__(self, org=None, **config):
         super().__init__(**config)

+ 4 - 4
src/sentry/auth/providers/oauth2.py

@@ -123,15 +123,15 @@ class OAuth2Callback(AuthView):
 
 
 class OAuth2Provider(Provider, abc.ABC):
+    client_id = None
+    client_secret = None
     is_partner = False
 
-    @abc.abstractmethod
     def get_client_id(self):
-        raise NotImplementedError
+        return self.client_id
 
-    @abc.abstractmethod
     def get_client_secret(self):
-        raise NotImplementedError
+        return self.client_secret
 
     def get_auth_pipeline(self):
         return [

+ 6 - 6
src/sentry/integrations/mixins/issues.py

@@ -4,7 +4,7 @@ import enum
 import logging
 from collections import defaultdict
 from copy import deepcopy
-from typing import Any, ClassVar, Mapping, Sequence
+from typing import Any, Mapping, Sequence
 
 from sentry.integrations.utils import where_should_sync
 from sentry.models import ExternalIssue, GroupLink, UserOption
@@ -341,11 +341,11 @@ class IssueBasicMixin:
 
 
 class IssueSyncMixin(IssueBasicMixin):
-    comment_key: ClassVar[str | None] = None
-    outbound_status_key: ClassVar[str | None] = None
-    inbound_status_key: ClassVar[str | None] = None
-    outbound_assignee_key: ClassVar[str | None] = None
-    inbound_assignee_key: ClassVar[str | None] = None
+    comment_key = None
+    outbound_status_key = None
+    inbound_status_key = None
+    outbound_assignee_key = None
+    inbound_assignee_key = None
 
     def should_sync(self, attribute: str) -> bool:
         key = getattr(self, f"{attribute}_key", None)

+ 1 - 1
src/sentry/mail/forms/assigned_to.py

@@ -4,7 +4,7 @@ from sentry.mail.forms.member_team import MemberTeamForm
 from sentry.notifications.types import ASSIGNEE_CHOICES, AssigneeTargetType
 
 
-class AssignedToForm(MemberTeamForm[AssigneeTargetType]):
+class AssignedToForm(MemberTeamForm):
     targetType = forms.ChoiceField(choices=ASSIGNEE_CHOICES)
 
     teamValue = AssigneeTargetType.TEAM

+ 5 - 11
src/sentry/mail/forms/member_team.py

@@ -1,24 +1,19 @@
 from __future__ import annotations
 
-import enum
-from typing import Generic, TypeVar
-
 from django import forms
 
 from sentry.models import OrganizationMemberTeam, Project
 from sentry.services.hybrid_cloud.user.service import user_service
 
-T = TypeVar("T", bound=enum.Enum)
-
 
-class MemberTeamForm(forms.Form, Generic[T]):
+class MemberTeamForm(forms.Form):
     targetType = forms.ChoiceField()
     targetIdentifier = forms.CharField(
         required=False, help_text="Only required if 'Member' or 'Team' is selected"
     )
-    teamValue: T
-    memberValue: T
-    targetTypeEnum: type[T]
+    teamValue = None
+    memberValue = None
+    targetTypeEnum = None
 
     def __init__(self, project, *args, **kwargs):
         super().__init__(*args, **kwargs)
@@ -37,8 +32,7 @@ class MemberTeamForm(forms.Form, Generic[T]):
         return targetIdentifier
 
     def clean(self) -> None:
-        super().clean()
-        cleaned_data = self.cleaned_data
+        cleaned_data = super().clean()
         try:
             targetType = self.targetTypeEnum(cleaned_data.get("targetType"))
         except ValueError:

+ 1 - 1
src/sentry/mail/forms/notify_email.py

@@ -4,7 +4,7 @@ from sentry.mail.forms.member_team import MemberTeamForm
 from sentry.notifications.types import ACTION_CHOICES, ActionTargetType
 
 
-class NotifyEmailForm(MemberTeamForm[ActionTargetType]):
+class NotifyEmailForm(MemberTeamForm):
     targetType = forms.ChoiceField(choices=ACTION_CHOICES)
 
     teamValue = ActionTargetType.TEAM

+ 1 - 5
src/sentry/plugins/bases/tag.py

@@ -1,13 +1,9 @@
-from __future__ import annotations
-
-from typing import ClassVar
-
 from sentry.constants import MAX_TAG_VALUE_LENGTH
 from sentry.plugins.base.v2 import Plugin2
 
 
 class TagPlugin(Plugin2):
-    tag: ClassVar[str]
+    tag = None
     project_default_enabled = True
 
     def get_tag_values(self, event, **kwargs):

+ 3 - 3
src/sentry/plugins/providers/integration_repository.py

@@ -2,7 +2,7 @@ from __future__ import annotations
 
 import logging
 from datetime import timezone
-from typing import Any, ClassVar, MutableMapping
+from typing import Any, MutableMapping
 
 from dateutil.parser import parse as parse_date
 from rest_framework.request import Request
@@ -49,8 +49,8 @@ class IntegrationRepositoryProvider:
     Does not include plugins.
     """
 
-    name: ClassVar[str]
-    repo_provider: ClassVar[str]
+    name = None
+    repo_provider = None
 
     def __init__(self, id):
         self.id = id

+ 1 - 4
src/sentry/plugins/providers/repository.py

@@ -1,7 +1,4 @@
-from __future__ import annotations
-
 from logging import getLogger
-from typing import ClassVar
 
 from django.db import IntegrityError, router, transaction
 from django.urls import reverse
@@ -27,7 +24,7 @@ class RepositoryProvider(ProviderMixin):
     Does not include the integrations in the sentry repository.
     """
 
-    name: ClassVar[str]
+    name = None
 
     def __init__(self, id):
         self.id = id

Некоторые файлы не были показаны из-за большого количества измененных файлов