summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViktor Ferenczi <viktor@ferenczi.eu>2018-03-10 18:37:33 +0100
committerViktor Ferenczi <viktor@ferenczi.eu>2018-03-11 14:55:50 +0100
commit272ecddb2859e3c184886bc2d142e2e329b8ae83 (patch)
tree8f76dbf6737196fbb66a1b379e1f18437f609173
parenteceba5aa6a36521c878cf976845123e820d27161 (diff)
Properly closing all files in Python code
-rw-r--r--core/SCsub10
-rw-r--r--core/make_binders.py10
-rw-r--r--doc/tools/makemd.py4
-rw-r--r--doc/tools/makerst.py3
-rw-r--r--editor/SCsub60
-rw-r--r--editor/icons/SCsub5
-rwxr-xr-xeditor/translations/extract.py16
-rw-r--r--main/SCsub75
-rw-r--r--methods.py29
-rw-r--r--misc/scripts/fix_headers.py8
-rw-r--r--misc/scripts/make_glwrapper.py9
-rw-r--r--platform/SCsub9
-rw-r--r--platform/android/SCsub20
13 files changed, 144 insertions, 114 deletions
diff --git a/core/SCsub b/core/SCsub
index af83b49fea..ea15ab12b5 100644
--- a/core/SCsub
+++ b/core/SCsub
@@ -18,9 +18,8 @@ gd_cpp = '#include "project_settings.h"\n'
gd_cpp += gd_inc
gd_cpp += "void ProjectSettings::register_global_defaults() {\n" + gd_call + "\n}\n"
-f = open("global_defaults.gen.cpp", "w")
-f.write(gd_cpp)
-f.close()
+with open("global_defaults.gen.cpp", "w") as f:
+ f.write(gd_cpp)
# Generate AES256 script encryption key
@@ -47,9 +46,8 @@ if ("SCRIPT_AES256_ENCRYPTION_KEY" in os.environ):
txt = "0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0"
print("Invalid AES256 encryption key, not 64 bits hex: " + e)
-f = open("script_encryption_key.gen.cpp", "w")
-f.write("#include \"project_settings.h\"\nuint8_t script_encryption_key[32]={" + txt + "};\n")
-f.close()
+with open("script_encryption_key.gen.cpp", "w") as f:
+ f.write("#include \"project_settings.h\"\nuint8_t script_encryption_key[32]={" + txt + "};\n")
# Add required thirdparty code. Header paths are hardcoded, we don't need to append
diff --git a/core/make_binders.py b/core/make_binders.py
index 1e581f8ce3..6a7602cd5d 100644
--- a/core/make_binders.py
+++ b/core/make_binders.py
@@ -265,10 +265,8 @@ def run(target, source, env):
else:
text += t
- f = open(target[0].path, "w")
- f.write(text)
- f.close()
+ with open(target[0].path, "w") as f:
+ f.write(text)
- f = open(target[1].path, "w")
- f.write(text_ext)
- f.close()
+ with open(target[1].path, "w") as f:
+ f.write(text_ext)
diff --git a/doc/tools/makemd.py b/doc/tools/makemd.py
index a73a4337d0..056f1ca82d 100644
--- a/doc/tools/makemd.py
+++ b/doc/tools/makemd.py
@@ -93,6 +93,8 @@ def make_class_list(class_list, columns):
s += '\n'
f.write(s)
+ f.close()
+
def dokuize_text(txt):
@@ -330,6 +332,8 @@ def make_doku_class(node):
f.write('\n')
f.write(dokuize_text(d.text.strip()))
f.write('\n')
+
+ f.close()
for file in input_list:
diff --git a/doc/tools/makerst.py b/doc/tools/makerst.py
index 9e767bf3d6..8074ce45ea 100644
--- a/doc/tools/makerst.py
+++ b/doc/tools/makerst.py
@@ -104,6 +104,7 @@ def make_class_list(class_list, columns):
f.write("--+-------+")
f.write("\n")
+ f.close()
def rstize_text(text, cclass):
# Linebreak + tabs in the XML should become two line breaks unless in a "codeblock"
@@ -572,6 +573,8 @@ def make_rst_class(node):
f.write("\n\n")
f.write('\n')
+ f.close()
+
file_list = []
diff --git a/editor/SCsub b/editor/SCsub
index 8f87e12cb9..37be30d7a9 100644
--- a/editor/SCsub
+++ b/editor/SCsub
@@ -4,6 +4,7 @@ Import('env')
env.editor_sources = []
import os
+import os.path
from compat import encode_utf8, byte_to_str, open_utf8, escape_string
@@ -29,6 +30,9 @@ def make_certs_header(target, source, env):
g.write("};\n")
g.write("#endif")
+ g.close()
+ f.close()
+
def make_doc_header(target, source, env):
@@ -41,8 +45,8 @@ def make_doc_header(target, source, env):
src = s.srcnode().abspath
if not src.endswith(".xml"):
continue
- f = open_utf8(src, "r")
- content = f.read()
+ with open_utf8(src, "r") as f:
+ content = f.read()
buf += content
buf = encode_utf8(docbegin + buf + docend)
@@ -62,6 +66,8 @@ def make_doc_header(target, source, env):
g.write("#endif")
+ g.close()
+
def make_fonts_header(target, source, env):
@@ -76,9 +82,8 @@ def make_fonts_header(target, source, env):
# saving uncompressed, since freetype will reference from memory pointer
xl_names = []
for i in range(len(source)):
- f = open(source[i].srcnode().abspath, "rb")
- buf = f.read()
- import os.path
+ with open(source[i].srcnode().abspath, "rb")as f:
+ buf = f.read()
name = os.path.splitext(os.path.basename(source[i].srcnode().abspath))[0]
@@ -91,6 +96,8 @@ def make_fonts_header(target, source, env):
g.write("#endif")
+ g.close()
+
def make_translations_header(target, source, env):
@@ -110,8 +117,8 @@ def make_translations_header(target, source, env):
xl_names = []
for i in range(len(sorted_paths)):
- f = open(sorted_paths[i], "rb")
- buf = f.read()
+ with open(sorted_paths[i], "rb") as f:
+ buf = f.read()
decomp_size = len(buf)
buf = zlib.compress(buf)
name = os.path.splitext(os.path.basename(sorted_paths[i]))[0]
@@ -138,6 +145,9 @@ def make_translations_header(target, source, env):
g.write("#endif")
+ g.close()
+
+
def make_authors_header(target, source, env):
sections = ["Project Founders", "Lead Developer", "Project Manager", "Developers"]
@@ -180,6 +190,9 @@ def make_authors_header(target, source, env):
g.write("#endif\n")
+ g.close()
+ f.close()
+
def make_donors_header(target, source, env):
sections = ["Platinum sponsors", "Gold sponsors", "Mini sponsors", "Gold donors", "Silver donors", "Bronze donors"]
@@ -222,6 +235,10 @@ def make_donors_header(target, source, env):
g.write("#endif\n")
+ g.close()
+ f.close()
+
+
def make_license_header(target, source, env):
src_copyright = source[0].srcnode().abspath
@@ -387,17 +404,23 @@ def make_license_header(target, source, env):
g.write("#endif\n")
+ g.close()
+ fc.close()
+ f.close()
+
def _make_doc_data_class_path(to_path):
- g = open_utf8(os.path.join(to_path,"doc_data_class_path.gen.h"), "w")
- g.write("static const int _doc_data_class_path_count = " + str(len(env.doc_class_path)) + ";\n")
- g.write("struct _DocDataClassPath { const char* name; const char* path; };\n")
+ g = open_utf8(os.path.join(to_path,"doc_data_class_path.gen.h"), "w")
+ g.write("static const int _doc_data_class_path_count = " + str(len(env.doc_class_path)) + ";\n")
+ g.write("struct _DocDataClassPath { const char* name; const char* path; };\n")
+
+ g.write("static const _DocDataClassPath _doc_data_class_paths[" + str(len(env.doc_class_path) + 1) + "] = {\n");
+ for c in sorted(env.doc_class_path):
+ g.write("\t{\"" + c + "\", \"" + env.doc_class_path[c] + "\"},\n")
+ g.write("\t{NULL, NULL}\n")
+ g.write("};\n")
- g.write("static const _DocDataClassPath _doc_data_class_paths[" + str(len(env.doc_class_path) + 1) + "] = {\n");
- for c in sorted(env.doc_class_path):
- g.write("\t{\"" + c + "\", \"" + env.doc_class_path[c] + "\"},\n")
- g.write("\t{NULL, NULL}\n")
- g.write("};\n")
+ g.close()
if env['tools']:
@@ -409,10 +432,9 @@ if env['tools']:
reg_exporters += '\tregister_' + e + '_exporter();\n'
reg_exporters_inc += '#include "platform/' + e + '/export/export.h"\n'
reg_exporters += '}\n'
- f = open_utf8("register_exporters.gen.cpp", "w")
- f.write(reg_exporters_inc)
- f.write(reg_exporters)
- f.close()
+ with open_utf8("register_exporters.gen.cpp", "w") as f:
+ f.write(reg_exporters_inc)
+ f.write(reg_exporters)
# API documentation
docs = []
diff --git a/editor/icons/SCsub b/editor/icons/SCsub
index 64992a9f90..7f94073e01 100644
--- a/editor/icons/SCsub
+++ b/editor/icons/SCsub
@@ -82,10 +82,9 @@ def make_editor_icons_action(target, source, env):
s.write("#endif\n")
+ with open(dst, "w") as f:
+ f.write(s.getvalue())
- f = open(dst, "w")
- f.write(s.getvalue())
- f.close()
s.close()
icons_string.close()
diff --git a/editor/translations/extract.py b/editor/translations/extract.py
index bbc157788d..4b3f416343 100755
--- a/editor/translations/extract.py
+++ b/editor/translations/extract.py
@@ -52,11 +52,7 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\\n"
"""
-print("Updating the editor.pot template...")
-
-for fname in matches:
-
- f = open(fname, "rb")
+def process_file(f, fname):
l = f.readline()
lc = 1
@@ -100,12 +96,14 @@ for fname in matches:
l = f.readline()
lc += 1
- f.close()
+print("Updating the editor.pot template...")
+for fname in matches:
+ with open(fname, "rb") as f:
+ process_file(f, fname)
-f = open("editor.pot", "wb")
-f.write(main_po)
-f.close()
+with open("editor.pot", "wb") as f:
+ f.write(main_po)
if (os.name == "posix"):
print("Wrapping template at 79 characters for compatibility with Weblate.")
diff --git a/main/SCsub b/main/SCsub
index 5748bc38d2..aa9092ca51 100644
--- a/main/SCsub
+++ b/main/SCsub
@@ -8,60 +8,59 @@ def make_splash(target, source, env):
src = source[0].srcnode().abspath
dst = target[0].srcnode().abspath
- f = open(src, "rb")
- g = open(dst, "w")
- buf = f.read()
+ with open(src, "rb") as f:
+ buf = f.read()
- g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
- g.write("#ifndef BOOT_SPLASH_H\n")
- g.write("#define BOOT_SPLASH_H\n")
- g.write('static const Color boot_splash_bg_color = Color::html("#232323");\n')
- g.write("static const unsigned char boot_splash_png[] = {\n")
- for i in range(len(buf)):
- g.write(byte_to_str(buf[i]) + ",\n")
- g.write("};\n")
- g.write("#endif")
+ with open(dst, "w") as g:
+ g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
+ g.write("#ifndef BOOT_SPLASH_H\n")
+ g.write("#define BOOT_SPLASH_H\n")
+ g.write('static const Color boot_splash_bg_color = Color::html("#232323");\n')
+ g.write("static const unsigned char boot_splash_png[] = {\n")
+ for i in range(len(buf)):
+ g.write(byte_to_str(buf[i]) + ",\n")
+ g.write("};\n")
+ g.write("#endif")
def make_splash_editor(target, source, env):
src = source[0].srcnode().abspath
dst = target[0].srcnode().abspath
- f = open(src, "rb")
- g = open(dst, "w")
- buf = f.read()
-
- g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
- g.write("#ifndef BOOT_SPLASH_EDITOR_H\n")
- g.write("#define BOOT_SPLASH_EDITOR_H\n")
- g.write('static const Color boot_splash_editor_bg_color = Color::html("#232323");\n')
- g.write("static const unsigned char boot_splash_editor_png[] = {\n")
- for i in range(len(buf)):
- g.write(byte_to_str(buf[i]) + ",\n")
- g.write("};\n")
- g.write("#endif")
+ with open(src, "rb") as f:
+ buf = f.read()
+ with open(dst, "w") as g:
+ g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
+ g.write("#ifndef BOOT_SPLASH_EDITOR_H\n")
+ g.write("#define BOOT_SPLASH_EDITOR_H\n")
+ g.write('static const Color boot_splash_editor_bg_color = Color::html("#232323");\n')
+ g.write("static const unsigned char boot_splash_editor_png[] = {\n")
+ for i in range(len(buf)):
+ g.write(byte_to_str(buf[i]) + ",\n")
+ g.write("};\n")
+ g.write("#endif")
def make_app_icon(target, source, env):
src = source[0].srcnode().abspath
dst = target[0].srcnode().abspath
- f = open(src, "rb")
- g = open(dst, "w")
-
- buf = f.read()
-
- g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
- g.write("#ifndef APP_ICON_H\n")
- g.write("#define APP_ICON_H\n")
- g.write("static const unsigned char app_icon_png[] = {\n")
- for i in range(len(buf)):
- g.write(byte_to_str(buf[i]) + ",\n")
- g.write("};\n")
- g.write("#endif")
+
+ with open(src, "rb") as f:
+ buf = f.read()
+
+ with open(dst, "w") as g:
+ g.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
+ g.write("#ifndef APP_ICON_H\n")
+ g.write("#define APP_ICON_H\n")
+ g.write("static const unsigned char app_icon_png[] = {\n")
+ for i in range(len(buf)):
+ g.write(byte_to_str(buf[i]) + ",\n")
+ g.write("};\n")
+ g.write("#endif")
env.main_sources = []
diff --git a/methods.py b/methods.py
index 42679610af..6f03f79be3 100644
--- a/methods.py
+++ b/methods.py
@@ -597,6 +597,9 @@ def parse_cg_file(fname, uniforms, sizes, conditionals):
line = fs.readline()
+ fs.close()
+
+
import glob
@@ -644,8 +647,8 @@ void unregister_module_types() {
}
"""
- f = open("modules/register_module_types.gen.cpp", "w")
- f.write(modules_cpp)
+ with open("modules/register_module_types.gen.cpp", "w") as f:
+ f.write(modules_cpp)
return module_list
@@ -744,18 +747,18 @@ def android_add_default_config(self, config):
def android_add_to_manifest(self, file):
base_path = self.Dir(".").abspath + "/modules/" + self.current_module + "/" + file
- f = open(base_path, "r")
- self.android_manifest_chunk += f.read()
+ with open(base_path, "r") as f:
+ self.android_manifest_chunk += f.read()
def android_add_to_permissions(self, file):
base_path = self.Dir(".").abspath + "/modules/" + self.current_module + "/" + file
- f = open(base_path, "r")
- self.android_permission_chunk += f.read()
+ with open(base_path, "r") as f:
+ self.android_permission_chunk += f.read()
def android_add_to_attributes(self, file):
base_path = self.Dir(".").abspath + "/modules/" + self.current_module + "/" + file
- f = open(base_path, "r")
- self.android_appattributes_chunk += f.read()
+ with open(base_path, "r") as f:
+ self.android_appattributes_chunk += f.read()
def disable_module(self):
self.disabled_modules.append(self.current_module)
@@ -886,9 +889,11 @@ def save_active_platforms(apnames, ap):
str += "};\n"
+ pngf.close()
+
wf = x + "/" + name + ".gen.h"
- pngw = open(wf, "w")
- pngw.write(str)
+ with open(wf, "w") as pngw:
+ pngw.write(str)
def no_verbose(sys, env):
@@ -1048,8 +1053,8 @@ def generate_cpp_hint_file(filename):
pass
else:
try:
- fd = open(filename, "w")
- fd.write("#define GDCLASS(m_class, m_inherits)\n")
+ with open(filename, "w") as fd:
+ fd.write("#define GDCLASS(m_class, m_inherits)\n")
except IOError:
print("Could not write cpp.hint file.")
diff --git a/misc/scripts/fix_headers.py b/misc/scripts/fix_headers.py
index 809820c20f..48b9628b1f 100644
--- a/misc/scripts/fix_headers.py
+++ b/misc/scripts/fix_headers.py
@@ -92,9 +92,11 @@ while (fname != ""):
fileread.close()
# Write
- fileread = open(fname.strip(), "wb")
- fileread.write(text)
- fileread.close()
+ filewrite = open(fname.strip(), "wb")
+ filewrite.write(text)
+ filewrite.close()
# Next file
fname = files.readline()
+
+files.close() \ No newline at end of file
diff --git a/misc/scripts/make_glwrapper.py b/misc/scripts/make_glwrapper.py
index 5694d2327e..15b66a950b 100644
--- a/misc/scripts/make_glwrapper.py
+++ b/misc/scripts/make_glwrapper.py
@@ -16,9 +16,7 @@ READ_CONSTANTS = 2
read_what = READ_TYPES
-for x in (range(len(sys.argv) - 1)):
- f = open(sys.argv[x + 1], "r")
-
+def read_file(f):
while(True):
line = f.readline()
@@ -86,6 +84,9 @@ for x in (range(len(sys.argv) - 1)):
functions.append(funcdata)
print(funcdata)
+for path in sys.argv[1:]:
+ with open(path, "r") as f:
+ read_file(f)
# print(types)
# print(constants)
@@ -156,6 +157,7 @@ f.write("void glWrapperInit( GLWrapperFuncPtr (*wrapperFunc)(const char*) );\n")
f.write("#ifdef __cplusplus\n}\n#endif\n")
f.write("#endif\n\n")
+f.close()
f = open("glwrapper.c", "w")
@@ -176,3 +178,4 @@ for x in functions:
f.write("\n\n")
f.write("}\n")
f.write("\n\n")
+f.close()
diff --git a/platform/SCsub b/platform/SCsub
index e624f8e90f..2019a30be7 100644
--- a/platform/SCsub
+++ b/platform/SCsub
@@ -18,11 +18,10 @@ for platform in env.platform_apis:
reg_apis_inc += '\n'
reg_apis += '}\n\n'
unreg_apis += '}\n'
-f = open_utf8('register_platform_apis.gen.cpp', 'w')
-f.write(reg_apis_inc)
-f.write(reg_apis)
-f.write(unreg_apis)
-f.close()
+with open_utf8('register_platform_apis.gen.cpp', 'w') as f:
+ f.write(reg_apis_inc)
+ f.write(reg_apis)
+ f.write(unreg_apis)
platform_sources.append('register_platform_apis.gen.cpp')
lib = env.add_library('platform', platform_sources)
diff --git a/platform/android/SCsub b/platform/android/SCsub
index d2285a82dd..8c08289932 100644
--- a/platform/android/SCsub
+++ b/platform/android/SCsub
@@ -41,10 +41,8 @@ prog = None
abspath = env.Dir(".").abspath
-gradle_basein = open_utf8(abspath + "/build.gradle.template", "r")
-gradle_baseout = open_utf8(abspath + "/java/build.gradle", "w")
-
-gradle_text = gradle_basein.read()
+with open_utf8(abspath + "/build.gradle.template", "r") as gradle_basein:
+ gradle_text = gradle_basein.read()
gradle_maven_flat_text = ""
if len(env.android_flat_dirs) > 0:
@@ -131,17 +129,19 @@ gradle_text = gradle_text.replace("$$GRADLE_DEFAULT_CONFIG$$", gradle_default_co
gradle_text = gradle_text.replace("$$GRADLE_PLUGINS$$", gradle_plugins)
gradle_text = gradle_text.replace("$$GRADLE_CLASSPATH$$", gradle_classpath)
-gradle_baseout.write(gradle_text)
-gradle_baseout.close()
+with open_utf8(abspath + "/java/build.gradle", "w") as gradle_baseout:
+ gradle_baseout.write(gradle_text)
+
+with open_utf8(abspath + "/AndroidManifest.xml.template", "r") as pp_basein:
+ manifest = pp_basein.read()
-pp_basein = open_utf8(abspath + "/AndroidManifest.xml.template", "r")
-pp_baseout = open_utf8(abspath + "/java/AndroidManifest.xml", "w")
-manifest = pp_basein.read()
manifest = manifest.replace("$$ADD_APPLICATION_CHUNKS$$", env.android_manifest_chunk)
manifest = manifest.replace("$$ADD_PERMISSION_CHUNKS$$", env.android_permission_chunk)
manifest = manifest.replace("$$ADD_APPATTRIBUTE_CHUNKS$$", env.android_appattributes_chunk)
-pp_baseout.write(manifest)
+
+with open_utf8(abspath + "/java/AndroidManifest.xml", "w") as pp_baseout:
+ pp_baseout.write(manifest)
lib = env_android.add_shared_library("#bin/libgodot", [android_objects], SHLIBSUFFIX=env["SHLIBSUFFIX"])