diff --git a/scripts/updatediscoveryartifacts.py b/scripts/updatediscoveryartifacts.py
index 1821ba8..b823bd7 100644
--- a/scripts/updatediscoveryartifacts.py
+++ b/scripts/updatediscoveryartifacts.py
@@ -23,7 +23,9 @@
 
 
 SCRIPTS_DIR = pathlib.Path(__file__).parent.resolve()
-DISCOVERY_DOC_DIR = SCRIPTS_DIR / ".." / "googleapiclient" / "discovery_cache" / "documents"
+DISCOVERY_DOC_DIR = (
+    SCRIPTS_DIR / ".." / "googleapiclient" / "discovery_cache" / "documents"
+)
 REFERENCE_DOC_DIR = SCRIPTS_DIR / ".." / "docs" / "dyn"
 TEMP_DIR = SCRIPTS_DIR / "temp"
 
@@ -35,8 +37,8 @@
 shutil.rmtree(TEMP_DIR, ignore_errors=True)
 
 # Check out a fresh copy
-subprocess.call(['git', 'checkout', DISCOVERY_DOC_DIR])
-subprocess.call(['git', 'checkout', REFERENCE_DOC_DIR])
+subprocess.call(["git", "checkout", DISCOVERY_DOC_DIR])
+subprocess.call(["git", "checkout", REFERENCE_DOC_DIR])
 
 # Snapshot current discovery artifacts to a temporary directory
 with tempfile.TemporaryDirectory() as current_discovery_doc_dir:
@@ -46,27 +48,34 @@
     describe.generate_all_api_documents()
 
     # Get a list of files changed using `git diff`
-    git_diff_output = subprocess.check_output(['git',
-                                      'diff',
-                                      'origin/master',
-                                      '--name-only',
-                                      '--',
-                                      DISCOVERY_DOC_DIR / '*.json',
-                                      REFERENCE_DOC_DIR / '*.html',
-                                      REFERENCE_DOC_DIR / '*.md',
-                                      ],
-                                      universal_newlines=True)
+    git_diff_output = subprocess.check_output(
+        [
+            "git",
+            "diff",
+            "origin/master",
+            "--name-only",
+            "--",
+            DISCOVERY_DOC_DIR / "*.json",
+            REFERENCE_DOC_DIR / "*.html",
+            REFERENCE_DOC_DIR / "*.md",
+        ],
+        universal_newlines=True,
+    )
 
     # Create lists of the changed files
-    all_changed_files = [pathlib.Path(file_name).name for file_name in git_diff_output.split('\n')]
+    all_changed_files = [
+        pathlib.Path(file_name).name for file_name in git_diff_output.split("\n")
+    ]
     json_changed_files = [file for file in all_changed_files if file.endswith(".json")]
 
     # Create temporary directory
     pathlib.Path(TEMP_DIR).mkdir()
 
     # Analyze the changes in discovery artifacts using the changesummary module
-    changesummary.ChangeSummary(DISCOVERY_DOC_DIR, current_discovery_doc_dir, TEMP_DIR, json_changed_files).detect_discovery_changes()
+    changesummary.ChangeSummary(
+        DISCOVERY_DOC_DIR, current_discovery_doc_dir, TEMP_DIR, json_changed_files
+    ).detect_discovery_changes()
 
     # Write a list of the files changed to a file called `changed files` which will be used in the `createcommits.sh` script.
     with open(TEMP_DIR / "changed_files", "w") as f:
-        f.writelines('\n'.join(all_changed_files))
+        f.writelines("\n".join(all_changed_files))
