diff --git a/tools_webrtc/ios/generate_modulemap.py b/tools_webrtc/ios/generate_modulemap.py
index 45bd3d8..4609385 100644
--- a/tools_webrtc/ios/generate_modulemap.py
+++ b/tools_webrtc/ios/generate_modulemap.py
@@ -9,24 +9,24 @@
 import argparse
 import sys
 
+
 def GenerateModulemap():
-  parser = argparse.ArgumentParser(description='Generate modulemap')
-  parser.add_argument("-o", "--out", type=str, help="Output file.")
-  parser.add_argument("-n", "--name", type=str, help="Name of binary.")
+    parser = argparse.ArgumentParser(description='Generate modulemap')
+    parser.add_argument("-o", "--out", type=str, help="Output file.")
+    parser.add_argument("-n", "--name", type=str, help="Name of binary.")
 
-  args = parser.parse_args()
+    args = parser.parse_args()
 
-  with open(args.out, "w") as outfile:
-    module_template = 'framework module %s {\n' \
-                      '  umbrella header "%s.h"\n' \
-                      '\n' \
-                      '  export *\n' \
-                      '  module * { export * }\n' \
-                      '}\n' % (args.name, args.name)
-    outfile.write(module_template)
-  return 0
+    with open(args.out, "w") as outfile:
+        module_template = 'framework module %s {\n' \
+                          '  umbrella header "%s.h"\n' \
+                          '\n' \
+                          '  export *\n' \
+                          '  module * { export * }\n' \
+                          '}\n' % (args.name, args.name)
+        outfile.write(module_template)
+    return 0
 
 
 if __name__ == '__main__':
-  sys.exit(GenerateModulemap())
-
+    sys.exit(GenerateModulemap())
