Browse Source

ref(pyupgrade): introduce pyupgrade pre-commit hook, and make the rest of the code conformant (#23760)

josh 4 years ago
parent
commit
a3154de26a

+ 9 - 0
.pre-commit-config.yaml

@@ -29,6 +29,15 @@ repos:
       language: python
       types: [python]
       log_file: '.artifacts/flake8.pycodestyle.log'
+-   repo: https://github.com/asottile/pyupgrade
+    rev: v2.10.0
+    hooks:
+    -   id: pyupgrade
+        types: [python]
+        # We can't change this mock to unittest.mock until Python 3.8,
+        # refer to the comment in this file.
+        exclude: 'src/sentry/utils/compat/mock.py'
+        args: ['--py36-plus']
 -   repo: https://github.com/sirosen/check-jsonschema
     rev: 0.3.0
     hooks:

+ 1 - 1
bin/dump-command-help

@@ -59,7 +59,7 @@ def write_page(out, data):
         body.append(" :maxdepth: 1")
         body.append("")
         for subcmd in data["subcommands"]:
-            body.append(" %s <%s/index>" % (subcmd, subcmd))
+            body.append(f" {subcmd} <{subcmd}/index>")
         body.append("")
 
     with open(filename, "w") as f:

+ 7 - 7
bin/load-mocks

@@ -109,7 +109,7 @@ def create_sample_event(*args, **kwargs):
     try:
         event = _create_sample_event(*args, **kwargs)
     except HashDiscarded as e:
-        print("> Skipping Event: {}".format(e.message))  # NOQA
+        print(f"> Skipping Event: {e.message}")  # NOQA
     else:
         if event is not None:
             features.record([event])
@@ -134,7 +134,7 @@ def generate_commits(user):
         commits.append(
             {
                 "key": sha1(uuid4().bytes).hexdigest(),
-                "message": "feat: Do something to {}\n{}".format(filename, make_sentence()),
+                "message": f"feat: Do something to {filename}\n{make_sentence()}",
                 "author": author,
                 "files": [(filename, "M")],
             }
@@ -348,7 +348,7 @@ def main(num_events=1, extra_events=False, load_transactions=False):
 
     if settings.SENTRY_SINGLE_ORGANIZATION:
         org = Organization.get_default()
-        print("Mocking org {}".format(org.name))  # NOQA
+        print(f"Mocking org {org.name}")  # NOQA
     else:
         print("Mocking org {}".format("Default"))  # NOQA
         org, _ = Organization.objects.get_or_create(slug="default")
@@ -362,11 +362,11 @@ def main(num_events=1, extra_events=False, load_transactions=False):
     )
 
     for team_name, project_names in mocks:
-        print("> Mocking team {}".format(team_name))  # NOQA
+        print(f"> Mocking team {team_name}")  # NOQA
         team, _ = Team.objects.get_or_create(name=team_name, defaults={"organization": org})
 
         for project_name in project_names:
-            print("  > Mocking project {}".format(project_name))  # NOQA
+            print(f"  > Mocking project {project_name}")  # NOQA
             project, _ = Project.objects.get_or_create(
                 name=project_name,
                 defaults={
@@ -693,7 +693,7 @@ def main(num_events=1, extra_events=False, load_transactions=False):
                         "author": CommitAuthor.objects.get_or_create(
                             organization_id=org.id, email=user.email, defaults={"name": user.name}
                         )[0],
-                        "message": "Ooops!\nFixes {}".format(event5.group.qualified_short_id),
+                        "message": f"Ooops!\nFixes {event5.group.qualified_short_id}",
                     },
                 )[0]
 
@@ -733,7 +733,7 @@ def main(num_events=1, extra_events=False, load_transactions=False):
             except AlertRuleNameAlreadyUsedError:
                 pass
 
-            print("    > Loading time series data".format(project_name))  # NOQA
+            print(f"    > Loading time series data")  # NOQA
             create_sample_time_series(event1, release=release)
             create_sample_time_series(event2, release=release)
             create_sample_time_series(event3)

+ 1 - 1
bin/mock-event

@@ -28,7 +28,7 @@ def main(project, sample_type):
     if not project.first_event:
         project.update(first_event=timezone.now())
 
-    sys.stdout.write("> Created event {}\n".format(event.event_id))
+    sys.stdout.write(f"> Created event {event.event_id}\n")
 
 
 if __name__ == "__main__":

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

@@ -116,7 +116,7 @@ class ChunkUploadEndpoint(OrganizationEndpoint):
 
         try:
             FileBlob.from_files(zip(files, checksums), organization=organization, logger=logger)
-        except IOError as err:
+        except OSError as err:
             logger.info("chunkupload.end", extra={"status": status.HTTP_400_BAD_REQUEST})
             return Response({"error": str(err)}, status=status.HTTP_400_BAD_REQUEST)
 

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

@@ -110,7 +110,7 @@ class DebugFilesEndpoint(ProjectEndpoint):
                 debug_file.file_extension,
             )
             return response
-        except IOError:
+        except OSError:
             raise Http404
 
     def get(self, request, project):

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

@@ -486,7 +486,7 @@ class S3Boto3Storage(Storage):
             f = self.file_class(name, mode, self)
         except self.connection_response_error as err:
             if err.response["ResponseMetadata"]["HTTPStatusCode"] == 404:
-                raise IOError("File does not exist: %s" % name)
+                raise OSError("File does not exist: %s" % name)
             raise  # Let it bubble up if it was some other error
         return f
 

+ 1 - 1
src/sentry/lang/native/symbolicator.py

@@ -517,7 +517,7 @@ class SymbolicatorSession:
                     json = {"status": "failed", "message": "internal server error"}
 
                 return self._process_response(json)
-            except (IOError, RequestException) as e:
+            except (OSError, RequestException) as e:
                 metrics.incr(
                     "events.symbolicator.request_error",
                     tags={

+ 1 - 1
src/sentry/loader/browsersdkversion.py

@@ -23,7 +23,7 @@ def load_registry(path):
     try:
         with open(fn, "rb") as f:
             return json.load(f)
-    except IOError:
+    except OSError:
         return None
 
 

+ 1 - 1
src/sentry/migrations/0158_create_externalteam_table.py

@@ -68,6 +68,6 @@ class Migration(migrations.Migration):
         ),
         migrations.AlterUniqueTogether(
             name="externalteam",
-            unique_together=set([("team", "provider", "external_id")]),
+            unique_together={("team", "provider", "external_id")},
         ),
     ]

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