swc-windows-installer.py: Use `with` to write script wrappers
authorW. Trevor King <wking@tremily.us>
Wed, 20 Mar 2013 22:58:18 +0000 (18:58 -0400)
committerW. Trevor King <wking@tremily.us>
Mon, 21 Oct 2013 03:55:18 +0000 (20:55 -0700)
From PEP 343.  This gives you automatic file descriptor (file handles
on Windows?) cleanup on errors.  Also use os.path.join() to build the
paths.

[1]: http://www.python.org/dev/peps/pep-0343/

setup/swc-windows-installer.py

index 3ce1fbf229f1211d9c32ea3b03ce9e2dc5dd13bc..42914ab94c57abf83eadd3e1709ab0e84d2e9d92 100755 (executable)
@@ -42,25 +42,25 @@ def install_nano(install_directory):
 
 def create_ipython_entry_point(python_scripts_directory):
     """Creates a terminal-based IPython entry point for msysgit"""
-    output_file = open(python_scripts_directory + 'ipython', 'w')
-    file_contents = """#!/usr/bin/env python
+    contents = """#!/usr/bin/env python
 from IPython.frontend.terminal.ipapp import launch_new_instance
 launch_new_instance()
 """
-
-    output_file.write(file_contents)
+    with open(os.path.join(python_scripts_directory, 'ipython'), 'w') as f:
+        f.write(contents)
 
 def create_nosetests_entry_point(python_scripts_directory):
     """Creates a terminal-based nosetests entry point for msysgit"""
-    output_file = open(python_scripts_directory + 'nosetests', 'w')
-    file_contents = """#!/usr/bin/env/ python
+    contents = """#!/usr/bin/env/ python
 import sys
 import nose
 
 if __name__ == '__main__':
     sys.exit(nose.core.main())
 """
-    output_file.write(file_contents)
+    with open(os.path.join(python_scripts_directory, 'nosetests'), 'w') as f:
+        f.write(contents)
+
 
 def main():
     python_scripts_directory = "C:\\Anaconda\\Scripts\\"