Update of /cvsroot/docstring/dps/dps/readers
In directory usw-pr-cvs1:/tmp/cvs-serv9056/dps/dps/readers
Modified Files:
__init__.py
Log Message:
progress
Index: __init__.py
===================================================================
RCS file: /cvsroot/docstring/dps/dps/readers/__init__.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** __init__.py 2002/02/06 03:01:40 1.1
--- __init__.py 2002/02/07 01:59:51 1.2
***************
*** 16,19 ****
--- 16,20 ----
+ import sys
from dps import nodes, utils
***************
*** 28,33 ****
"""
! def __init__(self, languagecode='en', warninglevel=2, errorlevel=4,
! warningstream=None, debug=0):
"""
Initialize the Reader instance.
--- 29,37 ----
"""
! transforms = ()
! """Ordered list of transform classes (each with a ``transform()`` method).
! Populated by subclasses. `Reader.transform()` instantiates & runs them."""
!
! def __init__(self, reporter, languagecode):
"""
Initialize the Reader instance.
***************
*** 40,45 ****
"""Default language for new documents."""
! self.reporter = utils.Reporter(warninglevel, errorlevel, warningstream,
! debug)
"""A `utils.Reporter` instance shared by all doctrees."""
--- 44,48 ----
"""Default language for new documents."""
! self.reporter = reporter
"""A `utils.Reporter` instance shared by all doctrees."""
***************
*** 51,60 ****
a collection of strings."""
def read(self, source, parser):
self.source = source
! self.scan()
! self.parse(parser) # parser may vary depending on input
self.transform()
! return self.getdocument()
def scan(self, source):
--- 54,68 ----
a collection of strings."""
+ self.transforms = list(self.transforms)
+ """Instance copy of `Reader.transforms`; may be modified by client."""
+
def read(self, source, parser):
self.source = source
! self.parser = parser
! self.scan(self.source) # may modify self.parser,
! # depending on input
! self.parse(self.parser)
self.transform()
! return self.document
def scan(self, source):
***************
*** 62,84 ****
raise NotImplementedError('subclass must override this method')
def parse(self, parser):
! """Override to parse `self.input` into one or more document trees."""
! raise NotImplementedError('subclass must override this method')
def transform(self):
! """Override to run document tree transforms."""
! raise NotImplementedError('subclass must override this method')
def newdocument(self, languagecode=None):
"""Create and return a new empty document tree (root node)."""
! if not languagecode:
! languagecode = self.languagecode
! document = nodes.document(languagecode=languagecode,
! reporter=self.reporter)
return document
_reader_aliases = {'rtxt': 'standalone',
! 'restructuredtext': 'standalone'}
def get_reader_class(readername):
--- 70,110 ----
raise NotImplementedError('subclass must override this method')
+ def scanfile(self, source):
+ """
+ Scan a single file, store data in `self.input`.
+
+ Parameter `source` may be:
+
+ (a) a file-like object, which is read directly;
+ (b) a path to a file, which is opened and then read; or
+ (c) `None`, which implies `sys.stdin`.
+ """
+ if hasattr(source, 'read'):
+ self.input = source.read()
+ elif self.source:
+ self.input = open(source).read()
+ else:
+ self.input = sys.stdin.read()
+
def parse(self, parser):
! """Parse `self.input` into a document tree."""
! self.document = self.newdocument()
! parser.parse(self.input, self.document)
def transform(self):
! """Run all of the transforms defined for this Reader."""
! for xclass in self.transforms:
! xclass().transform(self.document)
def newdocument(self, languagecode=None):
"""Create and return a new empty document tree (root node)."""
! document = nodes.document(
! languagecode=(languagecode or self.languagecode),
! reporter=self.reporter)
return document
_reader_aliases = {'rtxt': 'standalone',
! 'restructuredtext': 'standalone'}
def get_reader_class(readername):
|