From: Benjamin Peterson Date: Tue, 9 Aug 2011 23:38:57 +0000 (-0500) Subject: make this work on 2.4 X-Git-Tag: v3.3.0a1~1723 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4ec450d3c7fa320fbdd5abf8843137b52a8a6614;p=thirdparty%2FPython%2Fcpython.git make this work on 2.4 --- diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py index b4c31c34f5e7..ce8425aa7c67 100755 --- a/Parser/asdl_c.py +++ b/Parser/asdl_c.py @@ -1,10 +1,10 @@ #! /usr/bin/env python """Generate C code from an ASDL description.""" -from __future__ import with_statement # TO DO # handle fields that have a type but no name +import errno import os import sys import StringIO @@ -1170,11 +1170,23 @@ def main(srcfile): f.write("mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);\n") f.write("int PyAST_Check(PyObject* obj);\n") s = f.getvalue() - with open(p, "r") as fp: - write = fp.read() != s + write = True + try: + fp = open(p, "r") + except IOError as e: + if e.errno != errno.ENOENT: + raise + else: + try: + write = fp.read() != s + finally: + fp.close() if write: - with open(p, "w") as fp: - f.write(s) + fp = open(p, "w") + try: + fp.write(s) + finally: + fp.close() if SRC_DIR: p = os.path.join(SRC_DIR, str(mod.name) + "-ast.c")