Skip to content

Commit

Permalink
ref: use absolute imports for models (#57281)
Browse files Browse the repository at this point in the history
created with:

```python
import sentry.conf.server_mypy
import sentry.models

exact = {}
for k, v in sorted(vars(sentry.models).items()):
    if getattr(v, '__module__', '').startswith('sentry.models.'):
        exact[('sentry.models', k)] = v.__module__

exact[('sentry.models', 'ACTOR_TYPES')] = 'sentry.models.actor'
exact[('sentry.models', 'ASSIGNEE_DOES_NOT_EXIST_DURATION')] = 'sentry.models.groupowner'
exact[('sentry.models', 'CRASH_REPORT_TYPES')] = 'sentry.models.eventattachment'
exact[('sentry.models', 'CUSTOM_RULE_DATE_FORMAT')] = 'sentry.models.dynamicsampling'
exact[('sentry.models', 'CUSTOM_RULE_START')] = 'sentry.models.dynamicsampling'
exact[('sentry.models', 'DEFAULT_BLOB_SIZE')] = 'sentry.models.files.utils'
exact[('sentry.models', 'GROUP_OWNER_TYPE')] = 'sentry.models.groupowner'
exact[('sentry.models', 'INBOX_REASON_DETAILS')] = 'sentry.models.groupinbox'
exact[('sentry.models', 'INVITE_DAYS_VALID')] = 'sentry.models.organizationmember'
exact[('sentry.models', 'KEYWORD_MAP')] = 'sentry.models.eventuser'
exact[('sentry.models', 'MAX_FILE_SIZE')] = 'sentry.models.files.utils'
exact[('sentry.models', 'NULL_STRING')] = 'sentry.models.artifactbundle'
exact[('sentry.models', 'QUERY_STATUS_LOOKUP')] = 'sentry.models.group'
exact[('sentry.models', 'SERVICE_HOOK_EVENTS')] = 'sentry.models.servicehook'
exact[('sentry.models', 'TOMBSTONE_FIELDS_FROM_GROUP')] = 'sentry.models.grouptombstone'
exact[('sentry.models', 'process_control_outbox')] = 'sentry.models.outbox'
exact[('sentry.models', 'process_region_outbox')] = 'sentry.models.outbox'

import ast
import collections
from pyupgrade import _main
from pyupgrade._plugins import imports
imports._for_version = lambda *a, **k: ({}, exact, {})
_main.FUNCS = collections.defaultdict(tuple, {ast.Import: [imports.visit_Import], ast.ImportFrom: [imports.visit_ImportFrom]})
_main.fix_tokens = lambda s: s

raise SystemExit(_main.main())
```
  • Loading branch information
asottile-sentry committed Oct 7, 2023
1 parent 996f53a commit 714fabf
Show file tree
Hide file tree
Showing 1,722 changed files with 4,462 additions and 3,603 deletions.
2 changes: 1 addition & 1 deletion bin/invalidate-project-configs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def invalidate_project_configs(percentage):
NOTE: This will increase load on the relay_config_bulk Celery queue.
"""
configure()
from sentry.models import Organization
from sentry.models.organization import Organization
from sentry.tasks.relay import schedule_invalidate_project_config
from sentry.utils.query import RangeQuerySetWrapperWithProgressBar

Expand Down
2 changes: 1 addition & 1 deletion bin/mock-event
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import sys

from django.utils import timezone

from sentry.models import Project
from sentry.models.project import Project
from sentry.utils.samples import create_sample_event


Expand Down
5 changes: 4 additions & 1 deletion bin/mock-replay
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ import click
import requests
from django.conf import settings

from sentry.models import File, Organization, Project, Team
from sentry.models.files.file import File
from sentry.models.organization import Organization
from sentry.models.project import Project
from sentry.models.team import Team
from sentry.replays.models import ReplayRecordingSegment
from sentry.replays.testutils import (
mock_replay,
Expand Down
3 changes: 2 additions & 1 deletion bin/mock-traces
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ from django.conf import settings
from django.db.models import F
from django.utils import timezone

from sentry.models import Organization, Project
from sentry.models.organization import Organization
from sentry.models.project import Project
from sentry.utils.samples import create_trace, generate_user, random_normal


Expand Down
2 changes: 1 addition & 1 deletion bin/mock-user
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import argparse


def main(username, newsletter_consent_prompt=None):
from sentry.models import User
from sentry.models.user import User

user = User.objects.get(username__iexact=username)

Expand Down
4 changes: 3 additions & 1 deletion fixtures/gitlab.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from time import time

from sentry.models import Identity, IdentityProvider, Integration, Repository
from sentry.models.identity import Identity, IdentityProvider
from sentry.models.integrations.integration import Integration
from sentry.models.repository import Repository
from sentry.silo import SiloMode
from sentry.testutils.cases import APITestCase
from sentry.testutils.silo import assume_test_silo_mode
Expand Down
3 changes: 2 additions & 1 deletion scripts/appconnect_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
from pprint import pprint

from sentry.lang.native.appconnect import SYMBOL_SOURCES_PROP_NAME
from sentry.models import AppConnectBuild, Project
from sentry.models.appconnectbuilds import AppConnectBuild
from sentry.models.project import Project
from sentry.tasks import app_store_connect
from sentry.utils import json

Expand Down
7 changes: 6 additions & 1 deletion src/sentry/api/authentication.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,12 @@
from sentry import options
from sentry.auth.system import SystemToken, is_internal_ip
from sentry.hybridcloud.models import ApiKeyReplica
from sentry.models import ApiApplication, ApiKey, ApiToken, OrgAuthToken, ProjectKey, Relay
from sentry.models.apiapplication import ApiApplication
from sentry.models.apikey import ApiKey
from sentry.models.apitoken import ApiToken
from sentry.models.orgauthtoken import OrgAuthToken
from sentry.models.projectkey import ProjectKey
from sentry.models.relay import Relay
from sentry.relay.utils import get_header_relay_id, get_header_relay_signature
from sentry.services.hybrid_cloud.auth import AuthenticatedToken
from sentry.services.hybrid_cloud.rpc import compare_signature
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
from sentry.api.api_publish_status import ApiPublishStatus
from sentry.apidocs.hooks import HTTP_METHOD_NAME
from sentry.auth import access
from sentry.models import Environment
from sentry.models.environment import Environment
from sentry.ratelimits.config import DEFAULT_RATE_LIMIT_CONFIG, RateLimitConfig
from sentry.silo import SiloLimit, SiloMode
from sentry.types.ratelimit import RateLimit, RateLimitCategory
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/bases/doc_integrations.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from sentry.api.permissions import SentryPermission
from sentry.api.validators.doc_integration import METADATA_PROPERTIES
from sentry.auth.superuser import is_active_superuser
from sentry.models import DocIntegration
from sentry.models.integrations.doc_integration import DocIntegration
from sentry.utils.json import JSONData
from sentry.utils.sdk import configure_scope

Expand Down
4 changes: 3 additions & 1 deletion src/sentry/api/bases/external_actor.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@
validate_integration_id,
)
from sentry.api.validators.integrations import validate_provider
from sentry.models import ExternalActor, Organization, Team
from sentry.models.integrations.external_actor import ExternalActor
from sentry.models.organization import Organization
from sentry.models.team import Team
from sentry.services.hybrid_cloud.organization import organization_service
from sentry.services.hybrid_cloud.user import RpcUser
from sentry.services.hybrid_cloud.user.service import user_service
Expand Down
4 changes: 3 additions & 1 deletion src/sentry/api/bases/group.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
from sentry.api.base import Endpoint
from sentry.api.bases.project import ProjectPermission
from sentry.api.exceptions import ResourceDoesNotExist
from sentry.models import Group, GroupLink, GroupStatus, Organization, get_group_with_redirect
from sentry.models.group import Group, GroupStatus, get_group_with_redirect
from sentry.models.grouplink import GroupLink
from sentry.models.organization import Organization
from sentry.tasks.integrations import create_comment, update_comment
from sentry.utils.sdk import bind_organization_context, configure_scope

Expand Down
5 changes: 3 additions & 2 deletions src/sentry/api/bases/organization.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,12 @@
)
from sentry.auth.superuser import is_active_superuser
from sentry.constants import ALL_ACCESS_PROJECTS, ALL_ACCESS_PROJECTS_SLUG, ObjectStatus
from sentry.models import Organization, Project, ReleaseProject
from sentry.models.apikey import is_api_key_auth
from sentry.models.environment import Environment
from sentry.models.organization import Organization
from sentry.models.orgauthtoken import is_org_auth_token_auth
from sentry.models.release import Release
from sentry.models.project import Project
from sentry.models.release import Release, ReleaseProject
from sentry.services.hybrid_cloud.organization import (
RpcOrganization,
RpcUserOrganizationContext,
Expand Down
5 changes: 4 additions & 1 deletion src/sentry/api/bases/organization_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@
from sentry.api.serializers.snuba import BaseSnubaSerializer, SnubaTSResultSerializer
from sentry.discover.arithmetic import ArithmeticError, is_equation, strip_equation
from sentry.exceptions import IncompatibleMetricsQuery, InvalidSearchQuery
from sentry.models import Group, Organization, Project, Team
from sentry.models.group import Group
from sentry.models.organization import Organization
from sentry.models.project import Project
from sentry.models.team import Team
from sentry.search.events.constants import DURATION_UNITS, SIZE_UNITS, TIMEOUT_ERROR_MESSAGE
from sentry.search.events.fields import get_function_alias
from sentry.search.events.types import SnubaParams
Expand Down
3 changes: 2 additions & 1 deletion src/sentry/api/bases/organization_integrations.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@

from sentry.api.bases.integration import IntegrationEndpoint, RegionIntegrationEndpoint
from sentry.api.bases.organization import OrganizationIntegrationsPermission
from sentry.models import Integration, OrganizationIntegration
from sentry.models.integrations.integration import Integration
from sentry.models.integrations.organization_integration import OrganizationIntegration
from sentry.services.hybrid_cloud.integration import (
RpcIntegration,
RpcOrganizationIntegration,
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/bases/organization_request_change.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from sentry.api.bases import OrganizationPermission
from sentry.api.bases.organization import OrganizationEndpoint
from sentry.models import Organization
from sentry.models.organization import Organization


class OrganizationRequestChangeEndpointPermission(OrganizationPermission):
Expand Down
3 changes: 2 additions & 1 deletion src/sentry/api/bases/organizationmember.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@

from sentry.api.exceptions import ResourceDoesNotExist
from sentry.db.models.fields.bounded import BoundedAutoField
from sentry.models import InviteStatus, Organization, OrganizationMember
from sentry.models.organization import Organization
from sentry.models.organizationmember import InviteStatus, OrganizationMember

from .organization import OrganizationEndpoint

Expand Down
3 changes: 2 additions & 1 deletion src/sentry/api/bases/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
from sentry.api.helpers.environments import get_environments
from sentry.api.utils import InvalidParams, get_date_range_from_params
from sentry.constants import ObjectStatus
from sentry.models import Project, ProjectRedirect
from sentry.models.project import Project
from sentry.models.projectredirect import ProjectRedirect
from sentry.utils.sdk import bind_organization_context, configure_scope

from .organization import OrganizationPermission
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/bases/rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from sentry.api.api_owners import ApiOwner
from sentry.api.bases import ProjectAlertRulePermission, ProjectEndpoint
from sentry.api.exceptions import ResourceDoesNotExist
from sentry.models import Rule
from sentry.models.rule import Rule


class RuleEndpoint(ProjectEndpoint):
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/bases/team.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from sentry.api.base import Endpoint
from sentry.api.exceptions import ResourceDoesNotExist
from sentry.models import Team, TeamStatus
from sentry.models.team import Team, TeamStatus
from sentry.utils.sdk import bind_organization_context

from .organization import OrganizationPermission
Expand Down
5 changes: 4 additions & 1 deletion src/sentry/api/bases/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@
from sentry.api.permissions import SentryPermission
from sentry.auth.superuser import is_active_superuser
from sentry.auth.system import is_system_auth
from sentry.models import OrganizationMapping, OrganizationMemberMapping, OrganizationStatus, User
from sentry.models.organization import OrganizationStatus
from sentry.models.organizationmapping import OrganizationMapping
from sentry.models.organizationmembermapping import OrganizationMemberMapping
from sentry.models.user import User
from sentry.services.hybrid_cloud.organization import organization_service
from sentry.services.hybrid_cloud.user import RpcUser
from sentry.services.hybrid_cloud.user.service import user_service
Expand Down
4 changes: 3 additions & 1 deletion src/sentry/api/endpoints/accept_organization_invite.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@
add_invite_details_to_session,
remove_invite_details_from_session,
)
from sentry.models import AuthProvider, OrganizationMapping, OrganizationMemberMapping
from sentry.models.authprovider import AuthProvider
from sentry.models.organizationmapping import OrganizationMapping
from sentry.models.organizationmembermapping import OrganizationMemberMapping
from sentry.services.hybrid_cloud.organization import (
RpcUserInviteContext,
RpcUserOrganizationContext,
Expand Down
3 changes: 2 additions & 1 deletion src/sentry/api/endpoints/accept_project_transfer.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
from sentry.api.serializers.models.organization import (
DetailedOrganizationSerializerWithProjectsAndTeams,
)
from sentry.models import Organization, Project
from sentry.models.organization import Organization
from sentry.models.project import Project
from sentry.utils import metrics
from sentry.utils.signing import unsign

Expand Down
4 changes: 3 additions & 1 deletion src/sentry/api/endpoints/actionable_items.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@
errors_to_hide,
priority_ranking,
)
from sentry.models import EventError, Organization, Project
from sentry.models.eventerror import EventError
from sentry.models.organization import Organization
from sentry.models.project import Project


class ActionableItemResponse(TypedDict):
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/admin_project_configs.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from sentry.api.api_publish_status import ApiPublishStatus
from sentry.api.base import Endpoint, region_silo_endpoint
from sentry.api.permissions import SuperuserPermission
from sentry.models import Project
from sentry.models.project import Project
from sentry.relay import projectconfig_cache


Expand Down
3 changes: 2 additions & 1 deletion src/sentry/api/endpoints/api_application_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
from sentry.api.base import Endpoint, control_silo_endpoint
from sentry.api.exceptions import ResourceDoesNotExist
from sentry.api.serializers import serialize
from sentry.models import ApiApplication, ApiApplicationStatus, ScheduledDeletion
from sentry.models.apiapplication import ApiApplication, ApiApplicationStatus
from sentry.models.scheduledeletion import ScheduledDeletion


class ApiApplicationSerializer(serializers.Serializer):
Expand Down
3 changes: 1 addition & 2 deletions src/sentry/api/endpoints/api_application_rotate_secret.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
from sentry.api.base import Endpoint, control_silo_endpoint
from sentry.api.exceptions import ResourceDoesNotExist
from sentry.api.serializers import serialize
from sentry.models import ApiApplication, ApiApplicationStatus
from sentry.models.apiapplication import generate_token
from sentry.models.apiapplication import ApiApplication, ApiApplicationStatus, generate_token


@control_silo_endpoint
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/api_applications.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from sentry.api.base import Endpoint, control_silo_endpoint
from sentry.api.paginator import OffsetPaginator
from sentry.api.serializers import serialize
from sentry.models import ApiApplication, ApiApplicationStatus
from sentry.models.apiapplication import ApiApplication, ApiApplicationStatus


@control_silo_endpoint
Expand Down
4 changes: 3 additions & 1 deletion src/sentry/api/endpoints/api_authorizations.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@
from sentry.api.base import Endpoint, control_silo_endpoint
from sentry.api.paginator import OffsetPaginator
from sentry.api.serializers import serialize
from sentry.models import ApiApplicationStatus, ApiAuthorization, ApiToken
from sentry.models.apiapplication import ApiApplicationStatus
from sentry.models.apiauthorization import ApiAuthorization
from sentry.models.apitoken import ApiToken


@control_silo_endpoint
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/api_tokens.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from sentry.api.fields import MultipleChoiceField
from sentry.api.serializers import serialize
from sentry.auth.superuser import is_active_superuser
from sentry.models import ApiToken
from sentry.models.apitoken import ApiToken
from sentry.security import capture_security_activity


Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/artifact_bundles.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from sentry.api.paginator import OffsetPaginator
from sentry.api.serializers import serialize
from sentry.api.serializers.models.artifactbundle import ArtifactBundlesSerializer
from sentry.models import ArtifactBundle, ProjectArtifactBundle
from sentry.models.artifactbundle import ArtifactBundle, ProjectArtifactBundle
from sentry.utils.db import atomic_transaction

# We want to keep a mapping of the fields that the frontend uses for filtering since we want to align the UI names and
Expand Down
7 changes: 5 additions & 2 deletions src/sentry/api/endpoints/artifact_lookup.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,11 @@
query_artifact_bundles_containing_file,
)
from sentry.lang.native.sources import get_internal_artifact_lookup_source_url
from sentry.models import ArtifactBundle, Distribution, Project, Release, ReleaseFile
from sentry.models.artifactbundle import NULL_STRING, ArtifactBundleFlatFileIndex
from sentry.models.artifactbundle import NULL_STRING, ArtifactBundle, ArtifactBundleFlatFileIndex
from sentry.models.distribution import Distribution
from sentry.models.project import Project
from sentry.models.release import Release
from sentry.models.releasefile import ReleaseFile
from sentry.utils import metrics

logger = logging.getLogger("sentry.api")
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/assistant.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from sentry.api.api_publish_status import ApiPublishStatus
from sentry.api.base import Endpoint, control_silo_endpoint
from sentry.assistant import manager
from sentry.models import AssistantActivity
from sentry.models.assistant import AssistantActivity

VALID_STATUSES = frozenset(("viewed", "dismissed", "restart"))

Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/auth_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from sentry.api.base import Endpoint, control_silo_endpoint
from sentry.constants import WARN_SESSION_EXPIRED
from sentry.http import get_server_hostname
from sentry.models import Organization
from sentry.models.organization import Organization
from sentry.utils.auth import (
get_org_redirect_url,
has_user_registration,
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/auth_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from sentry.api.validators import AuthVerifyValidator
from sentry.auth.authenticators.u2f import U2fInterface
from sentry.auth.superuser import Superuser
from sentry.models import Authenticator
from sentry.models.authenticator import Authenticator
from sentry.services.hybrid_cloud.auth.impl import promote_request_rpc_user
from sentry.services.hybrid_cloud.organization import organization_service
from sentry.utils import auth, json, metrics
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/auth_login.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from sentry.api.base import Endpoint, control_silo_endpoint
from sentry.api.serializers.base import serialize
from sentry.api.serializers.models.user import DetailedSelfUserSerializer
from sentry.models import Organization
from sentry.models.organization import Organization
from sentry.utils import auth, metrics
from sentry.utils.hashlib import md5_text
from sentry.web.forms.accounts import AuthenticationForm
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/authenticator_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from sentry.api.api_owners import ApiOwner
from sentry.api.api_publish_status import ApiPublishStatus
from sentry.api.base import Endpoint, control_silo_endpoint
from sentry.models import Authenticator
from sentry.models.authenticator import Authenticator


@control_silo_endpoint
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/avatar/doc_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from sentry.api.bases.avatar import AvatarMixin
from sentry.api.bases.doc_integrations import DocIntegrationBaseEndpoint
from sentry.api.serializers.rest_framework.doc_integration import DocIntegrationAvatarSerializer
from sentry.models import DocIntegrationAvatar
from sentry.models.avatars.doc_integration_avatar import DocIntegrationAvatar


@control_silo_endpoint
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/api/endpoints/avatar/organization.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from sentry.api.base import region_silo_endpoint
from sentry.api.bases.avatar import AvatarMixin
from sentry.api.bases.organization import OrganizationEndpoint
from sentry.models import OrganizationAvatar
from sentry.models.avatars.organization_avatar import OrganizationAvatar


@region_silo_endpoint
Expand Down
Loading

0 comments on commit 714fabf

Please sign in to comment.