Commit 0a17e178 authored by Greg Ward's avatar Greg Ward

Changes to allow passing an open file to the constructor (to support

ProcessHierarchy's changes to support reading from a remote URL in
ProcessDatabase).
parent 57c5fda7
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment