[build-system]
requires = ["setuptools>=40.2.0,<64.0.0", "wheel"]
build-backend = "setuptools.build_meta"

[tool.black]
# File filtering is taken care of in pre-commit.
line-length = 100
target-version = ['py38']

[tool.isort]
profile = "black"
line_length = 100
lines_between_sections = 1
known_first_party = "sentry"
skip = "migrations"

[tool.pytest.ini_options]
python_files = "test_*.py sentry/testutils/*"
# note: When updating the traceback format, make sure to update .github/pytest.json
# We don't use the celery pytest plugin.
addopts = "-ra --tb=short --strict-markers -p no:celery"
# TODO: --import-mode=importlib will become the default soon,
# currently we have a few relative imports that don't work with that.
markers = [
    "snuba: test requires access to snuba",
    "sentry_metrics: test requires access to sentry metrics",
    "symbolicator: test requires access to symbolicator",
]
selenium_driver = "chrome"
filterwarnings = [
    # Consider all warnings to be errors other than the ignored ones.
    "error",

    # At writing, the Google Bigtable Emulator relies on deprecated behavior
    # internally, this can be removed once a version containing this fix is
    # released: https://github.com/googleapis/python-bigtable/pull/246
    "ignore:The `channel` argument is deprecated; use `transport` instead.:PendingDeprecationWarning:google.cloud.bigtable*",

    # The following warning filters are for pytest only.
    # This is so we don't have to wrap most datetime objects in testing code
    # with django.utils.timezone.
    "ignore:DateTimeField.*naive datetime:RuntimeWarning",
    "ignore:.*sentry.digests.backends.dummy.DummyBackend.*:sentry.utils.warnings.UnsupportedBackend",

    # pytest has not yet implemented the replacement for this yet
    "ignore:The --looponfail command line argument.*",
]
looponfailroots = ["src", "tests"]

[tool.mypy]
python_version = "3.8"
mypy_path = ["fixtures/stubs-for-mypy"]
plugins = ["pydantic.mypy", "mypy_django_plugin.main", "tools.mypy_helpers.plugin"]
files = ["."]
exclude = ["^.venv/", "^self-hosted/"]

# minimal strictness settings
check_untyped_defs = true
no_implicit_reexport = true
warn_unreachable = true
warn_unused_configs = true
warn_unused_ignores = true
warn_redundant_casts = true

[tool.django-stubs]
django_settings_module = "sentry.conf.server_mypy"

# these have py.typed but incorrect types
[[tool.mypy.overrides]]
module = [
    # TODO: these cause type errors when followed
    "snuba_sdk.*",
    # this package marks itself as typed but has no annotations
    "google.cloud.bigtable.*",
    # https://github.com/googleapis/python-api-core/pull/453
    "google.api_core.retry",
]
follow_imports = "skip"

# https://github.com/python/mypy/issues/15343
[[tool.mypy.overrides]]
module = "google.*"
ignore_missing_imports = true

# python3 -m tools.mypy_helpers.make_stub_ignores
# begin: missing 3rd party stubs
# - add .pyi files to fixtures/stubs-for-mypy
# - or find a 3rd party stub
[[tool.mypy.overrides]]
module = [
    "amqp.*",
    "boto3.*",
    "botocore.client.*",
    "botocore.exceptions.*",
    "celery.*",
    "codeowners.*",
    "confluent_kafka.*",
    "cssselect.*",
    "datadog.*",
    "django_zero_downtime_migrations.backends.postgres.schema.*",
    "docker.*",
    "email_reply_parser.*",
    "fido2.*",
    "honcho.manager.*",
    "honcho.printer.*",
    "isodate.*",
    "kombu.*",
    "mistune.*",
    "onelogin.saml2.auth.*",
    "onelogin.saml2.constants.*",
    "onelogin.saml2.idp_metadata_parser.*",
    "openapi_core.*",
    "phabricator.*",
    "progressbar.*",
    "pytest_rerunfailures.*",
    "rapidjson.*",
    "rb.*",
    "rediscluster.*",
    "requests_oauthlib.*",
    "sqlparse.*",
    "statsd.*",
    "toronado.*",
    "u2flib_server.model.*",
    "ua_parser.user_agent_parser.*",
    "unidiff.*",
    "uwsgi.*",
    "uwsgidecorators.*",
]
ignore_missing_imports = true
# end: missing 3rd party stubs

# python3 -m tools.mypy_helpers.make_module_ignores
# begin: sentry modules with typing issues
# - remove the module from the list and fix the issues!
# - python3 -m tools.mypy_helpers.find_easiest_modules
[[tool.mypy.overrides]]
module = [
    "sentry.api.base",
    "sentry.api.bases.doc_integrations",
    "sentry.api.bases.external_actor",
    "sentry.api.bases.group",
    "sentry.api.bases.incident",
    "sentry.api.bases.integration",
    "sentry.api.bases.organization_events",
    "sentry.api.bases.organization_request_change",
    "sentry.api.bases.organizationmember",
    "sentry.api.bases.project",
    "sentry.api.bases.project_request_change",
    "sentry.api.bases.rule",
    "sentry.api.bases.sentryapps",
    "sentry.api.bases.team",
    "sentry.api.bases.user",
    "sentry.api.endpoints.accept_organization_invite",
    "sentry.api.endpoints.artifact_lookup",
    "sentry.api.endpoints.auth_config",
    "sentry.api.endpoints.auth_login",
    "sentry.api.endpoints.avatar.doc_integration",
    "sentry.api.endpoints.avatar.sentry_app",
    "sentry.api.endpoints.avatar.user",
    "sentry.api.endpoints.catchall",
    "sentry.api.endpoints.chunk",
    "sentry.api.endpoints.codeowners",
    "sentry.api.endpoints.codeowners.details",
    "sentry.api.endpoints.codeowners.external_actor.team_details",
    "sentry.api.endpoints.codeowners.index",
    "sentry.api.endpoints.event_ai_suggested_fix",
    "sentry.api.endpoints.event_apple_crash_report",
    "sentry.api.endpoints.event_attachments",
    "sentry.api.endpoints.group_details",
    "sentry.api.endpoints.group_event_details",
    "sentry.api.endpoints.group_events",
    "sentry.api.endpoints.group_external_issues",
    "sentry.api.endpoints.group_hashes",
    "sentry.api.endpoints.group_hashes_split",
    "sentry.api.endpoints.group_integration_details",
    "sentry.api.endpoints.group_integrations",
    "sentry.api.endpoints.group_notes",
    "sentry.api.endpoints.group_similar_issues",
    "sentry.api.endpoints.group_stats",
    "sentry.api.endpoints.group_tagkey_details",
    "sentry.api.endpoints.group_tagkey_values",
    "sentry.api.endpoints.group_tags",
    "sentry.api.endpoints.index",
    "sentry.api.endpoints.integration_features",
    "sentry.api.endpoints.integrations.index",
    "sentry.api.endpoints.integrations.install_request",
    "sentry.api.endpoints.integrations.organization_integrations.index",
    "sentry.api.endpoints.integrations.plugins.configs_index",
    "sentry.api.endpoints.integrations.sentry_apps.authorizations",
    "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.external_issue.actions",
    "sentry.api.endpoints.integrations.sentry_apps.installation.external_issue.index",
    "sentry.api.endpoints.integrations.sentry_apps.installation.external_requests",
    "sentry.api.endpoints.integrations.sentry_apps.installation.index",
    "sentry.api.endpoints.integrations.sentry_apps.interaction",
    "sentry.api.endpoints.integrations.sentry_apps.internal_app_token.details",
    "sentry.api.endpoints.integrations.sentry_apps.internal_app_token.index",
    "sentry.api.endpoints.integrations.sentry_apps.organization_sentry_apps",
    "sentry.api.endpoints.integrations.sentry_apps.publish_request",
    "sentry.api.endpoints.integrations.sentry_apps.requests",
    "sentry.api.endpoints.integrations.sentry_apps.stats.details",
    "sentry.api.endpoints.integrations.sentry_apps.stats.index",
    "sentry.api.endpoints.internal.mail",
    "sentry.api.endpoints.internal.stats",
    "sentry.api.endpoints.issue_occurrence",
    "sentry.api.endpoints.notifications.notification_actions_available",
    "sentry.api.endpoints.notifications.notification_actions_details",
    "sentry.api.endpoints.organization_access_request_details",
    "sentry.api.endpoints.organization_auth_provider_send_reminders",
    "sentry.api.endpoints.organization_code_mapping_codeowners",
    "sentry.api.endpoints.organization_code_mapping_details",
    "sentry.api.endpoints.organization_code_mappings",
    "sentry.api.endpoints.organization_dashboard_details",
    "sentry.api.endpoints.organization_dashboards",
    "sentry.api.endpoints.organization_derive_code_mappings",
    "sentry.api.endpoints.organization_details",
    "sentry.api.endpoints.organization_events",
    "sentry.api.endpoints.organization_events_facets",
    "sentry.api.endpoints.organization_events_facets_performance",
    "sentry.api.endpoints.organization_events_facets_stats_performance",
    "sentry.api.endpoints.organization_events_has_measurements",
    "sentry.api.endpoints.organization_events_meta",
    "sentry.api.endpoints.organization_events_spans_performance",
    "sentry.api.endpoints.organization_events_stats",
    "sentry.api.endpoints.organization_events_trace",
    "sentry.api.endpoints.organization_events_trends",
    "sentry.api.endpoints.organization_group_index",
    "sentry.api.endpoints.organization_group_index_stats",
    "sentry.api.endpoints.organization_index",
    "sentry.api.endpoints.organization_integration_repos",
    "sentry.api.endpoints.organization_issues_count",
    "sentry.api.endpoints.organization_member.details",
    "sentry.api.endpoints.organization_member.index",
    "sentry.api.endpoints.organization_member.requests.invite.details",
    "sentry.api.endpoints.organization_member.requests.join",
    "sentry.api.endpoints.organization_member_unreleased_commits",
    "sentry.api.endpoints.organization_metrics",
    "sentry.api.endpoints.organization_metrics_meta",
    "sentry.api.endpoints.organization_onboarding_continuation_email",
    "sentry.api.endpoints.organization_projects",
    "sentry.api.endpoints.organization_projects_experiment",
    "sentry.api.endpoints.organization_release_details",
    "sentry.api.endpoints.organization_releases",
    "sentry.api.endpoints.organization_repositories",
    "sentry.api.endpoints.organization_repository_details",
    "sentry.api.endpoints.organization_request_project_creation",
    "sentry.api.endpoints.organization_search_details",
    "sentry.api.endpoints.organization_searches",
    "sentry.api.endpoints.organization_sentry_function_details",
    "sentry.api.endpoints.organization_sessions",
    "sentry.api.endpoints.organization_stats",
    "sentry.api.endpoints.organization_tagkey_values",
    "sentry.api.endpoints.organization_tags",
    "sentry.api.endpoints.organization_teams",
    "sentry.api.endpoints.project_app_store_connect_credentials",
    "sentry.api.endpoints.project_artifact_bundle_file_details",
    "sentry.api.endpoints.project_details",
    "sentry.api.endpoints.project_dynamic_sampling",
    "sentry.api.endpoints.project_event_details",
    "sentry.api.endpoints.project_group_index",
    "sentry.api.endpoints.project_group_stats",
    "sentry.api.endpoints.project_index",
    "sentry.api.endpoints.project_key_stats",
    "sentry.api.endpoints.project_ownership",
    "sentry.api.endpoints.project_release_files",
    "sentry.api.endpoints.project_release_stats",
    "sentry.api.endpoints.project_repo_path_parsing",
    "sentry.api.endpoints.project_rule_details",
    "sentry.api.endpoints.project_rule_preview",
    "sentry.api.endpoints.project_rule_task_details",
    "sentry.api.endpoints.project_rules",
    "sentry.api.endpoints.project_rules_configuration",
    "sentry.api.endpoints.project_servicehook_stats",
    "sentry.api.endpoints.project_stacktrace_link",
    "sentry.api.endpoints.project_stacktrace_links",
    "sentry.api.endpoints.project_stats",
    "sentry.api.endpoints.project_tagkey_details",
    "sentry.api.endpoints.project_tagkey_values",
    "sentry.api.endpoints.project_tags",
    "sentry.api.endpoints.project_transaction_names",
    "sentry.api.endpoints.project_transfer",
    "sentry.api.endpoints.project_user_stats",
    "sentry.api.endpoints.prompts_activity",
    "sentry.api.endpoints.rule_snooze",
    "sentry.api.endpoints.setup_wizard",
    "sentry.api.endpoints.shared_group_details",
    "sentry.api.endpoints.source_map_debug",
    "sentry.api.endpoints.system_options",
    "sentry.api.endpoints.team_details",
    "sentry.api.endpoints.team_notification_settings_details",
    "sentry.api.endpoints.team_release_count",
    "sentry.api.endpoints.team_stats",
    "sentry.api.endpoints.team_time_to_resolution",
    "sentry.api.endpoints.user_authenticator_enroll",
    "sentry.api.endpoints.user_details",
    "sentry.api.endpoints.user_emails_confirm",
    "sentry.api.endpoints.user_identity_config",
    "sentry.api.endpoints.user_index",
    "sentry.api.endpoints.user_notification_details",
    "sentry.api.endpoints.user_notification_fine_tuning",
    "sentry.api.endpoints.user_notification_settings_details",
    "sentry.api.endpoints.user_permission_details",
    "sentry.api.endpoints.user_permissions",
    "sentry.api.endpoints.user_permissions_config",
    "sentry.api.endpoints.user_role_details",
    "sentry.api.endpoints.user_roles",
    "sentry.api.endpoints.user_subscriptions",
    "sentry.api.event_search",
    "sentry.api.fields.actor",
    "sentry.api.helpers.deprecation",
    "sentry.api.helpers.events",
    "sentry.api.helpers.group_index.delete",
    "sentry.api.helpers.group_index.index",
    "sentry.api.helpers.group_index.update",
    "sentry.api.helpers.group_index.validators.in_commit",
    "sentry.api.helpers.group_index.validators.status_details",
    "sentry.api.helpers.mobile",
    "sentry.api.invite_helper",
    "sentry.api.issue_search",
    "sentry.api.paginator",
    "sentry.api.permissions",
    "sentry.api.serializers.models",
    "sentry.api.serializers.models.alert_rule",
    "sentry.api.serializers.models.auth_provider",
    "sentry.api.serializers.models.authenticator",
    "sentry.api.serializers.models.dashboard",
    "sentry.api.serializers.models.doc_integration",
    "sentry.api.serializers.models.environment",
    "sentry.api.serializers.models.event",
    "sentry.api.serializers.models.external_actor",
    "sentry.api.serializers.models.group",
    "sentry.api.serializers.models.group_stream",
    "sentry.api.serializers.models.incident",
    "sentry.api.serializers.models.integration",
    "sentry.api.serializers.models.integration_feature",
    "sentry.api.serializers.models.notification_action",
    "sentry.api.serializers.models.organization",
    "sentry.api.serializers.models.organization_member.base",
    "sentry.api.serializers.models.plugin",
    "sentry.api.serializers.models.project",
    "sentry.api.serializers.models.projectcodeowners",
    "sentry.api.serializers.models.role",
    "sentry.api.serializers.models.rule",
    "sentry.api.serializers.models.sentry_app",
    "sentry.api.serializers.models.team",
    "sentry.api.serializers.models.user",
    "sentry.api.serializers.models.user_identity_config",
    "sentry.api.serializers.rest_framework.dashboard",
    "sentry.api.serializers.rest_framework.doc_integration",
    "sentry.api.serializers.rest_framework.group_notes",
    "sentry.api.serializers.rest_framework.mentions",
    "sentry.api.serializers.rest_framework.notification_action",
    "sentry.api.serializers.rest_framework.project",
    "sentry.api.serializers.rest_framework.release",
    "sentry.api.serializers.rest_framework.rule",
    "sentry.api.serializers.rest_framework.sentry_app_request",
    "sentry.api.serializers.snuba",
    "sentry.api.validators.email",
    "sentry.auth.access",
    "sentry.auth.helper",
    "sentry.auth.provider",
    "sentry.auth.providers.dummy",
    "sentry.auth.providers.github.provider",
    "sentry.auth.providers.github.views",
    "sentry.auth.providers.google.apps",
    "sentry.auth.providers.google.views",
    "sentry.auth.providers.oauth2",
    "sentry.auth.providers.saml2.activedirectory.views",
    "sentry.auth.providers.saml2.generic.views",
    "sentry.auth.providers.saml2.jumpcloud.views",
    "sentry.auth.providers.saml2.provider",
    "sentry.auth.providers.saml2.rippling.provider",
    "sentry.auth.providers.saml2.views",
    "sentry.auth.superuser",
    "sentry.auth.system",
    "sentry.auth.view",
    "sentry.db.mixin",
    "sentry.db.models.base",
    "sentry.db.models.manager.base",
    "sentry.db.models.paranoia",
    "sentry.db.models.query",
    "sentry.db.models.utils",
    "sentry.db.postgres.base",
    "sentry.db.postgres.creation",
    "sentry.db.postgres.decorators",
    "sentry.db.postgres.operations",
    "sentry.db.router",
    "sentry.digests.notifications",
    "sentry.discover.endpoints.discover_key_transactions",
    "sentry.discover.endpoints.serializers",
    "sentry.eventstore.models",
    "sentry.features.handler",
    "sentry.features.manager",
    "sentry.filestore.gcs",
    "sentry.filestore.s3",
    "sentry.grouping.fingerprinting",
    "sentry.grouping.strategies.base",
    "sentry.grouping.strategies.configurations",
    "sentry.grouping.strategies.hierarchical",
    "sentry.grouping.strategies.legacy",
    "sentry.grouping.strategies.newstyle",
    "sentry.identity",
    "sentry.identity.bitbucket.provider",
    "sentry.identity.github_enterprise.provider",
    "sentry.identity.gitlab.provider",
    "sentry.identity.google.provider",
    "sentry.identity.oauth2",
    "sentry.identity.pipeline",
    "sentry.identity.providers.dummy",
    "sentry.identity.slack.provider",
    "sentry.identity.vsts.provider",
    "sentry.incidents.action_handlers",
    "sentry.incidents.endpoints.bases",
    "sentry.incidents.endpoints.organization_alert_rule_available_action_index",
    "sentry.incidents.endpoints.organization_alert_rule_details",
    "sentry.incidents.endpoints.organization_alert_rule_index",
    "sentry.incidents.endpoints.organization_incident_comment_details",
    "sentry.incidents.endpoints.organization_incident_index",
    "sentry.incidents.endpoints.project_alert_rule_task_details",
    "sentry.incidents.events",
    "sentry.incidents.logic",
    "sentry.incidents.models",
    "sentry.incidents.subscription_processor",
    "sentry.incidents.tasks",
    "sentry.ingest.inbound_filters",
    "sentry.integrations.aws_lambda.integration",
    "sentry.integrations.base",
    "sentry.integrations.bitbucket.client",
    "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",
    "sentry.integrations.github.client",
    "sentry.integrations.github.integration",
    "sentry.integrations.github.issues",
    "sentry.integrations.github.repository",
    "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",
    "sentry.integrations.jira.client",
    "sentry.integrations.jira.endpoints.search",
    "sentry.integrations.jira.integration",
    "sentry.integrations.jira.views.base",
    "sentry.integrations.jira.views.sentry_issue_details",
    "sentry.integrations.jira.webhooks.base",
    "sentry.integrations.jira.webhooks.issue_updated",
    "sentry.integrations.jira_server.client",
    "sentry.integrations.jira_server.integration",
    "sentry.integrations.jira_server.search",
    "sentry.integrations.jira_server.webhooks",
    "sentry.integrations.manager",
    "sentry.integrations.message_builder",
    "sentry.integrations.metric_alerts",
    "sentry.integrations.mixins.issues",
    "sentry.integrations.mixins.notifications",
    "sentry.integrations.mixins.repositories",
    "sentry.integrations.msteams.actions.form",
    "sentry.integrations.msteams.card_builder.base",
    "sentry.integrations.msteams.card_builder.issues",
    "sentry.integrations.msteams.card_builder.notifications",
    "sentry.integrations.msteams.client",
    "sentry.integrations.msteams.integration",
    "sentry.integrations.msteams.link_identity",
    "sentry.integrations.msteams.notifications",
    "sentry.integrations.msteams.webhook",
    "sentry.integrations.notifications",
    "sentry.integrations.pagerduty.actions.form",
    "sentry.integrations.pagerduty.client",
    "sentry.integrations.pagerduty.integration",
    "sentry.integrations.pipeline",
    "sentry.integrations.slack.actions.form",
    "sentry.integrations.slack.client",
    "sentry.integrations.slack.integration",
    "sentry.integrations.slack.message_builder.issues",
    "sentry.integrations.slack.message_builder.metric_alerts",
    "sentry.integrations.slack.message_builder.notifications.digest",
    "sentry.integrations.slack.message_builder.notifications.issues",
    "sentry.integrations.slack.notifications",
    "sentry.integrations.slack.unfurl.discover",
    "sentry.integrations.slack.utils.channel",
    "sentry.integrations.slack.utils.users",
    "sentry.integrations.slack.views.link_identity",
    "sentry.integrations.slack.views.link_team",
    "sentry.integrations.slack.views.unlink_team",
    "sentry.integrations.slack.webhooks.action",
    "sentry.integrations.slack.webhooks.base",
    "sentry.integrations.slack.webhooks.command",
    "sentry.integrations.slack.webhooks.event",
    "sentry.integrations.utils.commit_context",
    "sentry.integrations.utils.sync",
    "sentry.integrations.vercel.client",
    "sentry.integrations.vercel.integration",
    "sentry.integrations.vercel.webhook",
    "sentry.integrations.vsts.client",
    "sentry.integrations.vsts.integration",
    "sentry.integrations.vsts.issues",
    "sentry.integrations.vsts.repository",
    "sentry.integrations.vsts_extension.integration",
    "sentry.interfaces.breadcrumbs",
    "sentry.interfaces.contexts",
    "sentry.interfaces.exception",
    "sentry.interfaces.http",
    "sentry.interfaces.message",
    "sentry.interfaces.security",
    "sentry.interfaces.spans",
    "sentry.interfaces.stacktrace",
    "sentry.interfaces.user",
    "sentry.issues.escalating",
    "sentry.issues.escalating_group_forecast",
    "sentry.issues.ingest",
    "sentry.issues.issue_occurrence",
    "sentry.issues.merge",
    "sentry.issues.occurrence_consumer",
    "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",
    "sentry.management.commands.serve_normalize",
    "sentry.middleware.access_log",
    "sentry.middleware.auth",
    "sentry.middleware.health",
    "sentry.middleware.integrations.parsers.base",
    "sentry.middleware.integrations.parsers.slack",
    "sentry.middleware.ratelimit",
    "sentry.middleware.subdomain",
    "sentry.middleware.superuser",
    "sentry.migrations.0001_squashed_0200_release_indices",
    "sentry.migrations.0223_semver_backfill_2",
    "sentry.migrations.0232_backfill_missed_semver_releases",
    "sentry.migrations.0233_recreate_subscriptions_in_snuba",
    "sentry.migrations.0237_recreate_subscriptions_in_snuba",
    "sentry.migrations.0292_migrate_sessions_subs_user_counts",
    "sentry.migrations.0293_restore_metrics_based_alerts",
    "sentry.migrations.0311_backfill_slack_settings",
    "sentry.migrations.0314_bit_int_for_org_and_project_id",
    "sentry.migrations.0407_recreate_perf_alert_subscriptions",
    "sentry.migrations.0418_add_actor_constraints",
    "sentry.models.artifactbundle",
    "sentry.models.auditlogentry",
    "sentry.models.integrations.external_issue",
    "sentry.models.integrations.sentry_app",
    "sentry.models.integrations.sentry_app_installation",
    "sentry.models.notificationsetting",
    "sentry.models.organizationaccessrequest",
    "sentry.models.organizationmember",
    "sentry.monitors.consumers.monitor_consumer",
    "sentry.monitors.endpoints.base",
    "sentry.monitors.endpoints.monitor_ingest_checkin_attachment",
    "sentry.monitors.endpoints.monitor_ingest_checkin_details",
    "sentry.monitors.endpoints.monitor_ingest_checkin_index",
    "sentry.monitors.endpoints.organization_monitor_checkin_attachment",
    "sentry.monitors.endpoints.organization_monitor_details",
    "sentry.monitors.endpoints.organization_monitor_index",
    "sentry.monitors.utils",
    "sentry.monkey.pickle",
    "sentry.net.http",
    "sentry.net.socket",
    "sentry.notifications.additional_attachment_manager",
    "sentry.notifications.notifications.activity.base",
    "sentry.notifications.notifications.activity.new_processing_issues",
    "sentry.notifications.notifications.activity.release",
    "sentry.notifications.notifications.base",
    "sentry.notifications.notifications.integration_nudge",
    "sentry.notifications.notifications.rules",
    "sentry.notifications.utils",
    "sentry.notifications.utils.avatar",
    "sentry.notifications.utils.participants",
    "sentry.onboarding_tasks.backends.organization_onboarding_task",
    "sentry.onboarding_tasks.base",
    "sentry.options.defaults",
    "sentry.ownership.grammar",
    "sentry.pipeline.base",
    "sentry.pipeline.views.base",
    "sentry.pipeline.views.nested",
    "sentry.plugins.base.notifier",
    "sentry.plugins.base.urls",
    "sentry.plugins.bases.data_forwarding",
    "sentry.plugins.bases.issue",
    "sentry.plugins.bases.issue2",
    "sentry.plugins.bases.notify",
    "sentry.plugins.config",
    "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",
    "sentry.profiles.utils",
    "sentry.projectoptions.defaults",
    "sentry.queue.command",
    "sentry.quotas.redis",
    "sentry.receivers.outbox",
    "sentry.receivers.outbox.control",
    "sentry.receivers.releases",
    "sentry.receivers.sentry_apps",
    "sentry.release_health.metrics",
    "sentry.release_health.metrics_sessions_v2",
    "sentry.release_health.sessions",
    "sentry.release_health.tasks",
    "sentry.replays.endpoints.project_replay_clicks_index",
    "sentry.replays.lib.query",
    "sentry.replays.query",
    "sentry.reprocessing2",
    "sentry.roles",
    "sentry.rules.actions.integrations.base",
    "sentry.rules.actions.integrations.create_ticket.form",
    "sentry.rules.actions.integrations.create_ticket.utils",
    "sentry.rules.actions.notify_event_service",
    "sentry.rules.conditions.event_attribute",
    "sentry.rules.conditions.event_frequency",
    "sentry.rules.conditions.level",
    "sentry.rules.conditions.tagged_event",
    "sentry.rules.filters.assigned_to",
    "sentry.rules.filters.latest_release",
    "sentry.rules.history.endpoints.project_rule_group_history",
    "sentry.rules.history.endpoints.project_rule_stats",
    "sentry.rules.history.preview",
    "sentry.rules.processor",
    "sentry.runner.commands.migrations",
    "sentry.runner.importer",
    "sentry.runner.initializer",
    "sentry.scim.endpoints.members",
    "sentry.scim.endpoints.teams",
    "sentry.scim.endpoints.utils",
    "sentry.sdk_updates",
    "sentry.search.events.builder.discover",
    "sentry.search.events.builder.metrics",
    "sentry.search.events.builder.spans_metrics",
    "sentry.search.events.datasets.discover",
    "sentry.search.events.datasets.filter_aliases",
    "sentry.search.events.datasets.function_aliases",
    "sentry.search.events.datasets.metrics",
    "sentry.search.events.datasets.metrics_layer",
    "sentry.search.events.datasets.profile_functions",
    "sentry.search.events.datasets.profiles",
    "sentry.search.events.datasets.spans_metrics",
    "sentry.search.events.fields",
    "sentry.search.events.filter",
    "sentry.search.events.types",
    "sentry.search.snuba.backend",
    "sentry.search.snuba.executors",
    "sentry.search.utils",
    "sentry.sentry_apps.apps",
    "sentry.sentry_apps.components",
    "sentry.sentry_apps.installations",
    "sentry.sentry_metrics.configuration",
    "sentry.sentry_metrics.consumers.indexer.slicing_router",
    "sentry.sentry_metrics.indexer.postgres.postgres_v2",
    "sentry.services.smtp",
    "sentry.shared_integrations.client.base",
    "sentry.shared_integrations.client.internal",
    "sentry.shared_integrations.client.proxy",
    "sentry.silo.base",
    "sentry.similarity.backends.dummy",
    "sentry.similarity.features",
    "sentry.snuba.discover",
    "sentry.snuba.issue_platform",
    "sentry.snuba.metrics",
    "sentry.snuba.metrics.datasource",
    "sentry.snuba.metrics.fields.base",
    "sentry.snuba.metrics.fields.snql",
    "sentry.snuba.metrics.mqb_query_transformer",
    "sentry.snuba.metrics.query",
    "sentry.snuba.metrics.query_builder",
    "sentry.snuba.metrics_enhanced_performance",
    "sentry.snuba.metrics_performance",
    "sentry.snuba.models",
    "sentry.snuba.sessions",
    "sentry.snuba.sessions_v2",
    "sentry.snuba.spans_indexed",
    "sentry.snuba.spans_metrics",
    "sentry.snuba.tasks",
    "sentry.stacktraces.functions",
    "sentry.tagstore.base",
    "sentry.tagstore.query",
    "sentry.tagstore.snuba.backend",
    "sentry.tagstore.types",
    "sentry.tasks.auth",
    "sentry.tasks.auto_resolve_issues",
    "sentry.tasks.base",
    "sentry.tasks.beacon",
    "sentry.tasks.check_auth",
    "sentry.tasks.codeowners.update_code_owners_schema",
    "sentry.tasks.commit_context",
    "sentry.tasks.commits",
    "sentry.tasks.deliver_from_outbox",
    "sentry.tasks.derive_code_mappings",
    "sentry.tasks.digests",
    "sentry.tasks.groupowner",
    "sentry.tasks.integrations",
    "sentry.tasks.integrations.create_comment",
    "sentry.tasks.integrations.github.pr_comment",
    "sentry.tasks.integrations.migrate_issues",
    "sentry.tasks.integrations.migrate_repo",
    "sentry.tasks.integrations.slack.find_channel_id_for_rule",
    "sentry.tasks.integrations.slack.link_slack_user_identities",
    "sentry.tasks.integrations.sync_assignee_outbound_impl",
    "sentry.tasks.integrations.sync_status_inbound",
    "sentry.tasks.integrations.sync_status_outbound",
    "sentry.tasks.integrations.update_comment",
    "sentry.tasks.merge",
    "sentry.tasks.post_process",
    "sentry.tasks.process_buffer",
    "sentry.tasks.reprocessing2",
    "sentry.tasks.sentry_apps",
    "sentry.tasks.servicehooks",
    "sentry.tasks.store",
    "sentry.tasks.unmerge",
    "sentry.templatetags.sentry_admin_helpers",
    "sentry.templatetags.sentry_assets",
    "sentry.templatetags.sentry_helpers",
    "sentry.templatetags.sentry_plugins",
    "sentry.testutils.asserts",
    "sentry.testutils.cases",
    "sentry.testutils.factories",
    "sentry.testutils.fixtures",
    "sentry.testutils.helpers.features",
    "sentry.testutils.helpers.notifications",
    "sentry.testutils.helpers.slack",
    "sentry.testutils.helpers.task_runner",
    "sentry.testutils.performance_issues.span_builder",
    "sentry.testutils.performance_issues.store_transaction",
    "sentry.tsdb.base",
    "sentry.tsdb.dummy",
    "sentry.tsdb.inmemory",
    "sentry.tsdb.redis",
    "sentry.tsdb.snuba",
    "sentry.types.integrations",
    "sentry.utils.audit",
    "sentry.utils.auth",
    "sentry.utils.committers",
    "sentry.utils.concurrent",
    "sentry.utils.distutils.commands.base",
    "sentry.utils.distutils.commands.build_assets",
    "sentry.utils.email.signer",
    "sentry.utils.locking.backends.migration",
    "sentry.utils.metrics",
    "sentry.utils.performance_issues.detectors.io_main_thread_detector",
    "sentry.utils.performance_issues.detectors.mn_plus_one_db_span_detector",
    "sentry.utils.performance_issues.detectors.n_plus_one_api_calls_detector",
    "sentry.utils.performance_issues.detectors.n_plus_one_db_span_detector",
    "sentry.utils.performance_issues.detectors.render_blocking_asset_span_detector",
    "sentry.utils.performance_issues.detectors.slow_db_query_detector",
    "sentry.utils.performance_issues.performance_detection",
    "sentry.utils.query",
    "sentry.utils.redis",
    "sentry.utils.sdk",
    "sentry.utils.sentry_apps.webhooks",
    "sentry.utils.services",
    "sentry.utils.silo.decorate_models_by_relation",
    "sentry.utils.snowflake",
    "sentry.utils.snuba",
    "sentry.utils.suspect_resolutions.get_suspect_resolutions",
    "sentry.utils.suspect_resolutions.metric_correlation",
    "sentry.utils.suspect_resolutions_releases.get_suspect_resolutions_releases",
    "sentry.web.client_config",
    "sentry.web.forms.accounts",
    "sentry.web.frontend.account_identity",
    "sentry.web.frontend.accounts",
    "sentry.web.frontend.auth_close",
    "sentry.web.frontend.auth_login",
    "sentry.web.frontend.auth_logout",
    "sentry.web.frontend.auth_organization_login",
    "sentry.web.frontend.auth_provider_login",
    "sentry.web.frontend.base",
    "sentry.web.frontend.debug.debug_assigned_email",
    "sentry.web.frontend.debug.debug_codeowners_auto_sync_failure_email",
    "sentry.web.frontend.debug.debug_incident_activity_email",
    "sentry.web.frontend.debug.debug_incident_trigger_email",
    "sentry.web.frontend.debug.debug_invalid_identity_email",
    "sentry.web.frontend.debug.debug_mfa_added_email",
    "sentry.web.frontend.debug.debug_mfa_removed_email",
    "sentry.web.frontend.debug.debug_new_processing_issues_email",
    "sentry.web.frontend.debug.debug_organization_integration_request",
    "sentry.web.frontend.debug.debug_organization_invite_request",
    "sentry.web.frontend.debug.debug_organization_join_request",
    "sentry.web.frontend.debug.debug_password_changed_email",
    "sentry.web.frontend.debug.debug_recovery_codes_regenerated_email",
    "sentry.web.frontend.debug.debug_trigger_error",
    "sentry.web.frontend.debug.mail",
    "sentry.web.frontend.disabled_member_view",
    "sentry.web.frontend.error_404",
    "sentry.web.frontend.error_500",
    "sentry.web.frontend.error_page_embed",
    "sentry.web.frontend.generic",
    "sentry.web.frontend.group_plugin_action",
    "sentry.web.frontend.idp_email_verification",
    "sentry.web.frontend.integration_extension_configuration",
    "sentry.web.frontend.js_sdk_loader",
    "sentry.web.frontend.newest_issue",
    "sentry.web.frontend.oauth_authorize",
    "sentry.web.frontend.oauth_token",
    "sentry.web.frontend.organization_integration_setup",
    "sentry.web.frontend.out",
    "sentry.web.frontend.pipeline_advancer",
    "sentry.web.frontend.project_event",
    "sentry.web.frontend.react_page",
    "sentry.web.frontend.reactivate_account",
    "sentry.web.frontend.setup_wizard",
    "sentry.web.frontend.shared_group_details",
    "sentry.web.frontend.twofactor",
    "sentry.web.frontend.unsubscribe_notifications",
    "sentry_plugins.asana.plugin",
    "sentry_plugins.base",
    "sentry_plugins.bitbucket.client",
    "sentry_plugins.bitbucket.endpoints.webhook",
    "sentry_plugins.bitbucket.mixins",
    "sentry_plugins.bitbucket.plugin",
    "sentry_plugins.bitbucket.repository_provider",
    "sentry_plugins.client",
    "sentry_plugins.github.client",
    "sentry_plugins.github.options",
    "sentry_plugins.github.plugin",
    "sentry_plugins.github.webhooks.base",
    "sentry_plugins.github.webhooks.events.push",
    "sentry_plugins.github.webhooks.integration",
    "sentry_plugins.heroku.plugin",
    "sentry_plugins.jira.client",
    "sentry_plugins.jira.plugin",
    "sentry_plugins.pivotal.plugin",
    "sentry_plugins.pushover.plugin",
    "sentry_plugins.redmine.forms",
    "sentry_plugins.redmine.plugin",
    "sentry_plugins.sessionstack.plugin",
    "sentry_plugins.slack.plugin",
    "sentry_plugins.splunk.plugin",
    "sentry_plugins.trello.plugin",
    "sentry_plugins.twilio.plugin",
    "tests.sentry.api.bases.test_organization",
    "tests.sentry.api.bases.test_project",
    "tests.sentry.api.bases.test_sentryapps",
    "tests.sentry.api.bases.test_team",
    "tests.sentry.api.endpoints.notifications.test_notification_actions_details",
    "tests.sentry.api.endpoints.notifications.test_notification_actions_index",
    "tests.sentry.api.endpoints.test_event_attachment_details",
    "tests.sentry.api.endpoints.test_organization_metrics",
    "tests.sentry.api.helpers.test_group_index",
    "tests.sentry.api.serializers.test_project",
    "tests.sentry.api.serializers.test_team",
    "tests.sentry.api.test_authentication",
    "tests.sentry.api.test_base",
    "tests.sentry.api.test_event_search",
    "tests.sentry.api.test_invite_helper",
    "tests.sentry.api.test_issue_search",
    "tests.sentry.digests.test_notifications",
    "tests.sentry.eventstore.test_base",
    "tests.sentry.grouping.test_result",
    "tests.sentry.identity.test_oauth2",
    "tests.sentry.incidents.endpoints.test_organization_alert_rule_details",
    "tests.sentry.incidents.endpoints.test_organization_alert_rule_index",
    "tests.sentry.incidents.endpoints.test_organization_incident_details",
    "tests.sentry.incidents.endpoints.test_organization_incident_subscription_index",
    "tests.sentry.incidents.endpoints.test_project_alert_rule_index",
    "tests.sentry.incidents.test_logic",
    "tests.sentry.ingest.test_slicing",
    "tests.sentry.integrations.github.test_client",
    "tests.sentry.integrations.msteams.test_message_builder",
    "tests.sentry.integrations.slack.test_requests",
    "tests.sentry.issues.test_utils",
    "tests.sentry.lang.javascript.test_processor",
    "tests.sentry.models.test_organizationmember",
    "tests.sentry.models.test_project",
    "tests.sentry.release_health.release_monitor",
    "tests.sentry.release_health.test_tasks",
    "tests.sentry.replays.consumers.test_recording",
    "tests.sentry.replays.test_project_replay_recording_segment_details",
    "tests.sentry.replays.test_project_replay_recording_segment_index",
    "tests.sentry.replays.unit.test_dead_click_issue",
    "tests.sentry.search.events.builder.test_metrics",
    "tests.sentry.search.events.test_fields",
    "tests.sentry.sentry_apps.test_sentry_app_creator",
    "tests.sentry.sentry_metrics.consumers.test_slicing_router",
    "tests.sentry.sentry_metrics.limiters.test_writes_limiter",
    "tests.sentry.sentry_metrics.test_base_indexer",
    "tests.sentry.sentry_metrics.test_batch",
    "tests.sentry.sentry_metrics.test_multiprocess_steps",
    "tests.sentry.snuba.metrics.test_snql",
    "tests.sentry.snuba.test_tasks",
    "tests.sentry.tagstore.test_types",
    "tests.sentry.tasks.deletion.test_scheduled",
    "tests.sentry.tasks.test_post_process",
    "tests.sentry.web.test_client_config",
    "tests.snuba.rules.conditions.test_event_frequency",
    "tests.snuba.sessions.test_sessions",
    "tests.snuba.tagstore.test_tagstore_backend",
]
disable_error_code = [
    "arg-type",
    "assignment",
    "attr-defined",
    "call-arg",
    "call-overload",
    "dict-item",
    "func-returns-value",
    "has-type",
    "index",
    "list-item",
    "misc",
    "operator",
    "override",
    "return-value",
    "typeddict-item",
    "typeddict-unknown-key",
    "union-attr",
    "unreachable",
    "var-annotated",
]
# end: sentry modules with typing issues