Browse Source

ref: upgrade pyright and use `pyright: ignore` for its specific errors (#50171)

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

+ 2 - 2
.pre-commit-config.yaml

@@ -58,8 +58,8 @@ repos:
       files: ^src/
       types: [ python ]
       require_serial: true
-      additional_dependencies: [ "pyright@1.1.186" ]
-      args: [ '--project', 'pyrightconfig-commithook.json' ]
+      additional_dependencies: [ "pyright@1.1.311" ]
+      args: [ '--project', 'config/pyrightconfig-commithook.json' ]
 
 -   repo: https://github.com/python-jsonschema/check-jsonschema
     rev: 0.21.0

+ 1 - 0
pyrightconfig-commithook.json → config/pyrightconfig-commithook.json

@@ -7,6 +7,7 @@
     ".volta/**"
   ],
 
+  "stubPath": "fixtures/stubs-for-mypy",
   "typeCheckingMode": "off",
   "reportMissingImports": "none",
   "reportUndefinedVariable": "none",

+ 2 - 2
src/sentry/filestore/s3.py

@@ -415,8 +415,8 @@ class S3Boto3Storage(Storage):
                     # For simplicity, we enforce in S3Boto3Storage that any auto-created
                     # bucket must match the region that the connection is for.
                     #
-                    # Also note that Amazon specifically disallows "us-east-1" when passing bucket
-                    # region names; LocationConstraint *must* be blank to create in US Standard.
+                    # Also note that Amazon specifically disallows "us-east-1" when passing bucket region
+                    # names; LocationConstraint *must* be blank to create in US Standard.
                     bucket_params = {"ACL": self.bucket_acl}
                     region_name = self.connection.meta.client.meta.region_name
                     if region_name != "us-east-1":

+ 1 - 1
src/sentry/models/commit.py

@@ -23,7 +23,7 @@ if TYPE_CHECKING:
 
 
 class CommitManager(BaseManager):
-    def get_for_release(self, release: Release) -> QuerySet[Commit]:
+    def get_for_release(self, release: Release) -> QuerySet[Commit]:  # pyright: ignore
         return (
             self.filter(releasecommit__release=release)
             .order_by("-releasecommit__order")

+ 1 - 1
src/sentry/models/integrations/external_issue.py

@@ -43,7 +43,7 @@ class ExternalIssueManager(BaseManager):
 
     def get_linked_issues(
         self, event: Event, integration: RpcIntegration
-    ) -> QuerySet[ExternalIssue]:
+    ) -> QuerySet[ExternalIssue]:  # pyright: ignore
         from sentry.models import GroupLink
 
         return self.filter(

+ 1 - 1
src/sentry/models/integrations/sentry_app_installation.py

@@ -44,7 +44,7 @@ class SentryAppInstallationForProviderManager(ParanoidManager):
     def get_by_api_token(self, token_id: str) -> QuerySet:
         return self.filter(status=SentryAppInstallationStatus.INSTALLED, api_token_id=token_id)
 
-    def get_projects(self, token: ApiToken) -> QuerySet[Project]:
+    def get_projects(self, token: ApiToken) -> QuerySet[Project]:  # pyright: ignore
         from sentry.models import Project, SentryAppInstallationToken
 
         try:

+ 1 - 1
src/sentry/nodestore/base.py

@@ -185,7 +185,7 @@ class NodeStorage(local, Service):
             }
             if subkey is None:
                 self._set_cache_items(items)
-                items.update(cache_items)
+                items.update(cache_items)  # pyright: ignore
 
             span.set_tag("result", "from_service")
             span.set_tag("found", len(items))

+ 7 - 2
src/sentry/similarity/features.py

@@ -138,7 +138,9 @@ class FeatureSet:
                     if features:
                         items.append((self.aliases[label], features))
 
-        return self.index.record(scope, key, items, timestamp=int(to_timestamp(event.datetime)))  # type: ignore
+        return self.index.record(
+            scope, key, items, timestamp=int(to_timestamp(event.datetime))  # pyright: ignore
+        )
 
     def classify(self, events, limit=None, thresholds=None):
         if not events:
@@ -182,7 +184,10 @@ class FeatureSet:
         return [
             (int(key), dict(zip(labels, scores)))
             for key, scores in self.index.classify(
-                scope, items, limit=limit, timestamp=int(to_timestamp(event.datetime))  # type: ignore
+                scope,
+                items,
+                limit=limit,
+                timestamp=int(to_timestamp(event.datetime)),  # pyright: ignore
             )
         ]
 

+ 1 - 1
src/sentry/tasks/commit_context.py

@@ -318,7 +318,7 @@ def process_commit_context(
         logger.info(
             "process_commit_context.max_retries_exceeded",
             extra={
-                **basic_logging_details,
+                **basic_logging_details,  # pyright: ignore
                 "reason": "max_retries_exceeded",
             },
         )