From 782cdfe9f32fa69e0b797be3156a3599efd392cd Mon Sep 17 00:00:00 2001
From: Greg Ward <gward@python.net>
Date: Tue, 23 Mar 1999 14:00:06 +0000
Subject: Changes to allow passing an open file to the constructor (to support
 ProcessHierarchy's changes to support reading from a remote URL in
 ProcessDatabase).

---
 Lib/distutils/text_file.py | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/Lib/distutils/text_file.py b/Lib/distutils/text_file.py
index eab498d..6153dea 100644
--- a/Lib/distutils/text_file.py
+++ b/Lib/distutils/text_file.py
@@ -13,9 +13,6 @@ import sys, os, string, re
 
 
 class TextFile:
-    filename = None
-    file = None
-    current_line = None
 
     default_options = { 'strip_comments': 1,
                         'comment_re':     re.compile (r'\s*#.*'),
@@ -26,7 +23,11 @@ class TextFile:
                         'collapse_ws':    0,
                       }
 
-    def __init__ (self, filename=None, **options):
+    def __init__ (self, filename=None, file=None, **options):
+
+        if filename is None and file is None:
+            raise RuntimeError, \
+                  "you must supply either or both of 'filename' and 'file'" 
 
         # set values for all options -- either from client option hash
         # or fallback to default_options
@@ -45,18 +46,16 @@ class TextFile:
             if not self.default_options.has_key (opt):
                 raise KeyError, "invalid TextFile option '%s'" % opt
 
-        self.filename = filename
-        if self.filename:
-            self.open ()
-        
-
-    def open (self, filename=None):
-        if not self.filename:
-            if not filename:
-                raise RuntimeError, "must provide a filename somehow"
-
+        if file is None:
+            self.open (filename)
+        else:
             self.filename = filename
+            self.file = file
+            self.current_line = 0       # assuming that file is at BOF!
+        
 
+    def open (self, filename):
+        self.filename = filename
         self.file = open (self.filename, 'r')
         self.current_line = 0
 
-- 
cgit v0.12