From 919000e9ec36c513f08253091b71a3aead2aff08 Mon Sep 17 00:00:00 2001 From: Thomas Heller Date: Mon, 25 Nov 2002 20:21:59 +0000 Subject: Add a note that this file should be kept compatible with Python 1.5.2, per PEP 291 (although there are currently string methods used). This patch makes it compatible with 2.2, at least, by detecting universal newline support. --- Tools/freeze/modulefinder.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Tools/freeze/modulefinder.py b/Tools/freeze/modulefinder.py index 5886e7b..48f2eca 100644 --- a/Tools/freeze/modulefinder.py +++ b/Tools/freeze/modulefinder.py @@ -1,5 +1,7 @@ """Find modules used by a script, using introspection.""" +# This module should be kept compatible with Python 1.5.2, see PEP 291. + import dis import imp import marshal @@ -127,14 +129,20 @@ class ModuleFinder: def run_script(self, pathname): self.msg(2, "run_script", pathname) - fp = open(pathname, "U") + if hasattr(sys.stdout, "newlines"): # detect universal newline support + fp = open(pathname, "U") + else: + fp = open(pathname, "r") stuff = ("", "r", imp.PY_SOURCE) self.load_module('__main__', fp, pathname, stuff) def load_file(self, pathname): dir, name = os.path.split(pathname) name, ext = os.path.splitext(name) - fp = open(pathname, "U") + if hasattr(sys.stdout, "newlines"): + fp = open(pathname, "U") + else: + fp = open(pathname, "r") stuff = (ext, "r", imp.PY_SOURCE) self.load_module(name, fp, pathname, stuff) -- cgit v0.12