Browse Source

ref: use exist_ok=True for makedirs (#67004)

nuking some python2ism -- factored out of an unrelated patch

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

+ 1 - 4
bin/dump-command-help

@@ -32,10 +32,7 @@ def write_page(out, data):
         filename += ".inc"
 
     dirname = os.path.dirname(filename)
-    try:
-        os.makedirs(dirname)
-    except OSError:
-        pass
+    os.makedirs(dirname, exist_ok=True)
 
     args = [x["metavar"] for x in data["arguments"]]
     title = "`%s`" % " ".join(data["path"] + args)

+ 1 - 2
fixtures/integrations/mock_service.py

@@ -88,8 +88,7 @@ class MockService(StubService):
     def _get_project_path(self, project):
         path = os.path.join(FIXTURE_DIRECTORY, self.service_name, "data", project)
 
-        if not os.path.exists(path):
-            os.makedirs(path)
+        os.makedirs(path, exist_ok=True)
         return path
 
     def _set_data(self, project, name, data):

+ 1 - 4
src/sentry/models/files/abstractfile.py

@@ -244,10 +244,7 @@ class AbstractFile(Model):
         """
         path = os.path.abspath(path)
         base = os.path.dirname(path)
-        try:
-            os.makedirs(base)
-        except OSError:
-            pass
+        os.makedirs(base, exist_ok=True)
 
         f = None
         try:

+ 1 - 2
src/sentry/runner/commands/init.py

@@ -29,8 +29,7 @@ def init(ctx, dev, directory):
     if yaml is None:
         raise click.ClickException("DIRECTORY must not be a file.")
 
-    if directory and not os.path.exists(directory):
-        os.makedirs(directory)
+    os.makedirs(directory, exist_ok=True)
 
     py_contents, yaml_contents = generate_settings(dev)
 

+ 1 - 1
src/sentry/runner/settings.py

@@ -53,7 +53,7 @@ def get_sentry_conf():
             return "~/.sentry"
 
 
-def discover_configs():
+def discover_configs() -> tuple[str, str, str | None]:
     """
     Discover the locations of three configuration components:
      * Config directory (~/.sentry)

+ 1 - 2
src/sentry/testutils/pytest/fixtures.py

@@ -370,8 +370,7 @@ def insta_snapshot(request, log):
         is_unequal = inequality_comparator(refval, output)
 
         if _snapshot_writeback is not None and is_unequal:
-            if not os.path.isdir(os.path.dirname(reference_file)):
-                os.makedirs(os.path.dirname(reference_file))
+            os.makedirs(os.path.dirname(reference_file), exist_ok=True)
             source = os.path.realpath(str(request.node.fspath))
             if source.startswith(_test_base + os.path.sep):
                 source = source[len(_test_base) + 1 :]

+ 1 - 4
src/sentry/utils/distutils/commands/build_js_sdk_registry.py

@@ -24,10 +24,7 @@ LOADER_FOLDER = os.path.abspath(os.path.join(os.path.dirname(sentry.__file__), "
 def dump_registry(path, data):
     fn = os.path.join(LOADER_FOLDER, path + ".json")
     directory = os.path.dirname(fn)
-    try:
-        os.makedirs(directory)
-    except OSError:
-        pass
+    os.makedirs(directory, exist_ok=True)
     with open(fn, "w", encoding="utf-8") as f:
         f.write(json.dumps(data, indent=2))
         f.write("\n")

+ 1 - 4
src/sentry/utils/integrationdocs.py

@@ -74,10 +74,7 @@ def dump_doc(path: str, data: dict[str, Any]) -> None:
         raise SuspiciousDocPathOperation("illegal path access")
 
     directory = os.path.dirname(doc_path)
-    try:
-        os.makedirs(directory)
-    except OSError:
-        pass
+    os.makedirs(directory, exist_ok=True)
     with open(doc_path, "w", encoding="utf-8") as f:
         f.write(json.dumps(data, indent=2))
         f.write("\n")

+ 1 - 4
src/sentry/utils/zip.py

@@ -57,10 +57,7 @@ def safe_extract_zip(
             if not member.startswith(prefix) or is_unsafe_path(member):
                 continue
             dst_path = os.path.join(path, member[len(prefix) :])
-            try:
-                os.makedirs(os.path.dirname(dst_path))
-            except OSError:
-                pass
+            os.makedirs(os.path.dirname(dst_path), exist_ok=True)
             with open(dst_path, "wb") as df:
                 with zf.open(member) as sf:
                     shutil.copyfileobj(sf, df)