docstring-checkins Mailing List for Docstring Processing System (Page 9)
Status: Pre-Alpha
Brought to you by:
goodger
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(53) |
Sep
(54) |
Oct
(26) |
Nov
(27) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(60) |
Feb
(85) |
Mar
(94) |
Apr
(40) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: David G. <go...@us...> - 2002-02-06 03:06:08
|
Update of /cvsroot/docstring/dps/spec In directory usw-pr-cvs1:/tmp/cvs-serv8571/dps/spec Modified Files: gpdi.dtd Log Message: system_warning attribute Index: gpdi.dtd =================================================================== RCS file: /cvsroot/docstring/dps/spec/gpdi.dtd,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** gpdi.dtd 2002/01/29 02:17:42 1.29 --- gpdi.dtd 2002/02/06 03:06:03 1.30 *************** *** 410,414 **** %basic.atts; level NMTOKEN #IMPLIED ! warning CDATA #IMPLIED> --- 410,414 ---- %basic.atts; level NMTOKEN #IMPLIED ! type CDATA #IMPLIED> |
From: David G. <go...@us...> - 2002-02-06 03:04:22
|
Update of /cvsroot/docstring/dps In directory usw-pr-cvs1:/tmp/cvs-serv7212/dps Modified Files: setup.py Log Message: Added readers, writers subpackages. Index: setup.py =================================================================== RCS file: /cvsroot/docstring/dps/setup.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** setup.py 2002/01/30 04:56:15 1.5 --- setup.py 2002/02/06 03:04:19 1.6 *************** *** 5,9 **** def do_setup(): ! dist = setup(name = 'dps', description = 'Python Docstring Processing System', #long_description = '', --- 5,10 ---- def do_setup(): ! dist = setup( ! name = 'dps', description = 'Python Docstring Processing System', #long_description = '', *************** *** 13,18 **** author_email = 'go...@us...', license = 'public domain', ! packages = ['dps', 'dps.parsers', 'dps.transforms', ! 'dps.languages']) return dist --- 14,19 ---- author_email = 'go...@us...', license = 'public domain', ! packages = ['dps', 'dps.readers', 'dps.parsers', 'dps.writers', ! 'dps.transforms', 'dps.languages']) return dist |
From: David G. <go...@us...> - 2002-02-06 03:02:54
|
Update of /cvsroot/docstring/dps/dps In directory usw-pr-cvs1:/tmp/cvs-serv5980/dps/dps Added Files: core.py Log Message: *** empty log message *** --- NEW FILE: core.py --- #! /usr/bin/env python """ :Authors: David Goodger :Contact: go...@us... :Revision: $Revision: 1.1 $ :Date: $Date: 2002/02/06 03:02:51 $ :Copyright: This module has been placed in the public domain. """ __docformat = 'reStructuredText' __all__ = ['Publisher', 'setup'] from dps import readers, parsers, writers class Publisher: def __init__(self, reader=None, parser=None, writer=None): self.reader = reader self.parser = parser self.writer = writer def setreader(self, readername, languagecode='en', warninglevel=2, errorlevel=4, warningstream=None, debug=0): """Set `self.reader` by name.""" readerclass = readers.get_reader_class(readername) self.reader = readerclass(languagecode, warninglevel, errorlevel, warningstream, debug) def setparser(self, parsername): """Set `self.parser` by name.""" parserclass = parsers.get_parser_class(parsername) self.parser = parserclass() def setwriter(self, writername): """Set `self.writer` by name.""" writerclass = writers.get_writer_class(writername) self.writer = writerclass() def publish(self, source, destination): document = self.reader.read(source, self.parser) self.writer.write(document, destination) def convert(source=None, destination=None, reader=None, readername='standalone', parser=None, parsername='restructuredtext', writer=None, writername='pprint'): pub = Publisher(reader, parser, writer) if reader is None: pub.setreader(readername) if parser is None: pub.setparser(parsername) if writer is None: pub.setwriter(writername) pub.publish(source, destination) |
From: David G. <go...@us...> - 2002-02-06 03:01:49
|
Update of /cvsroot/docstring/dps/dps/readers In directory usw-pr-cvs1:/tmp/cvs-serv5125/dps/dps/readers Added Files: standalone.py Log Message: *** empty log message *** --- NEW FILE: standalone.py --- #! /usr/bin/env python """ :Authors: David Goodger :Contact: go...@us... :Revision: $Revision: 1.1 $ :Date: $Date: 2002/02/06 03:01:46 $ :Copyright: This module has been placed in the public domain. Standalone file Reader for the reStructuredText markup syntax. """ __docformat__ = 'reStructuredText' __all__ = ['Reader'] import sys from dps import readers from dps.transforms import frontmatter, references try: from restructuredtext import Parser except ImportError: from dps.parsers.restructuredtext import Parser class Reader(readers.Reader): document = None """A single document tree.""" def scan(self): if self.source: self.input = open(self.source).read() else: self.input = sys.stdin.read() def parse(self, parser): self.document = self.newdocument() parser.parse(self.input, self.document) def transform(self): frontmatter.DocTitle().transform(self.document) frontmatter.DocInfo().transform(self.document) references.Hyperlinks().transform(self.document) references.Footnotes().transform(self.document) references.Substitutions().transform(self.document) def getdocument(self): return self.document |
From: David G. <go...@us...> - 2002-02-06 03:01:43
|
Update of /cvsroot/docstring/dps/dps/readers In directory usw-pr-cvs1:/tmp/cvs-serv5044/dps/dps/readers Added Files: __init__.py Log Message: *** empty log message *** --- NEW FILE: __init__.py --- #! /usr/bin/env python """ :Authors: David Goodger; Ueli Schlaepfer :Contact: go...@us... :Revision: $Revision: 1.1 $ :Date: $Date: 2002/02/06 03:01:40 $ :Copyright: This module has been placed in the public domain. This package contains DPS Reader modules. """ __docformat__ = 'reStructuredText' __all__ = ['Reader', 'get_reader_class'] from dps import nodes, utils class Reader: """ Abstract base class for docutils Readers. The three steps of a Reader's responsibility are defined: `scan()`, `parse()`, and `transform()`. Call `read()` to process a document. """ def __init__(self, languagecode='en', warninglevel=2, errorlevel=4, warningstream=None, debug=0): """ Initialize the Reader instance. Several instance attributes are defined with dummy initial values. Subclasses may use these attributes as they wish. """ self.languagecode = languagecode """Default language for new documents.""" self.reporter = utils.Reporter(warninglevel, errorlevel, warningstream, debug) """A `utils.Reporter` instance shared by all doctrees.""" self.source = None """Path to the source of raw input.""" self.input = None """Raw text input; either a single string or, for more complex cases, 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): """Override to read `self.input` from `source`.""" 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): """Return the Reader class from the `readername` module.""" readername = readername.lower() if _reader_aliases.has_key(readername): readername = _reader_aliases[readername] module = __import__(readername, globals(), locals()) return module.Reader |
From: David G. <go...@us...> - 2002-02-06 03:00:13
|
Update of /cvsroot/docstring/dps/dps/readers In directory usw-pr-cvs1:/tmp/cvs-serv3920/readers Log Message: Directory /cvsroot/docstring/dps/dps/readers added to the repository |
From: David G. <go...@us...> - 2002-02-06 02:56:50
|
Update of /cvsroot/docstring/dps/dps/writers In directory usw-pr-cvs1:/tmp/cvs-serv1207/dps/dps/writers Added Files: pprint.py Log Message: Minimal writer. --- NEW FILE: pprint.py --- #! /usr/bin/env python """ :Authors: David Goodger :Contact: go...@us... :Revision: $Revision: 1.1 $ :Date: $Date: 2002/02/06 02:56:47 $ :Copyright: This module has been placed in the public domain. Simple internal document tree Writer, writes indented pseudo-XML. """ __docformat__ = 'reStructuredText' __all__ = ['Writer'] from dps import writers class Writer(writers.Writer): def write(self, document, destination): output = document.pformat() if destination: open(destination, 'w').write(output) else: print output |
From: David G. <go...@us...> - 2002-02-06 02:56:24
|
Update of /cvsroot/docstring/dps/dps/writers In directory usw-pr-cvs1:/tmp/cvs-serv846/dps/dps/writers Added Files: __init__.py Log Message: *** empty log message *** --- NEW FILE: __init__.py --- #! /usr/bin/env python """ :Authors: David Goodger :Contact: go...@us... :Revision: $Revision: 1.1 $ :Date: $Date: 2002/02/06 02:56:21 $ :Copyright: This module has been placed in the public domain. This package contains DPS Writer modules. """ __docformat__ = 'reStructuredText' __all__ = ['Writer', 'get_writer_class'] class Writer: """ Abstract base class for docutils Writers. Call `write()` to process a document. """ pass _writer_aliases = {} def get_writer_class(writername): """Return the Writer class from the `writername` module.""" writername = writername.lower() if _writer_aliases.has_key(writername): writername = _writer_aliases[writername] module = __import__(writername, globals(), locals()) return module.Writer |
From: David G. <go...@us...> - 2002-02-06 02:55:24
|
Update of /cvsroot/docstring/dps/dps/writers In directory usw-pr-cvs1:/tmp/cvs-serv32521/writers Log Message: Directory /cvsroot/docstring/dps/dps/writers added to the repository |
From: David G. <go...@us...> - 2002-02-06 02:53:56
|
Update of /cvsroot/docstring/dps/dps In directory usw-pr-cvs1:/tmp/cvs-serv31381/dps/dps Modified Files: utils.py Log Message: - Reworked ``Reporter`` based on "log4j". Index: utils.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/utils.py,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** utils.py 2002/01/30 04:47:02 1.11 --- utils.py 2002/02/06 02:53:53 1.12 *************** *** 8,11 **** --- 8,12 ---- :Copyright: This module has been placed in the public domain. + Miscellaneous utilities for the documentation utilities. """ *************** *** 22,41 **** class Reporter: ! def __init__(self, warninglevel, errorlevel, warningstream=None): ! self.warninglevel = warninglevel ! """The level at or above which warning output will be sent to ! `self.stream`.""" ! self.errorlevel = errorlevel ! """The level at or above which `SystemWarning` exceptions will be ! raised.""" if warningstream is None: warningstream = sys.stderr ! self.stream = warningstream ! """Where warning output is sent.""" ! def system_warning(self, level, comment=None, children=[]): """ Return a system_warning object. --- 23,73 ---- class Reporter: ! """ ! The concept of "categories" was inspired by the log4j__ project. ! __ http://jakarta.apache.org/log4j/ ! """ ! ! levels = 'DEBUG INFO WARNING ERROR SEVERE'.split() ! """List of names for system warning levels, indexed by level.""" ! ! def __init__(self, warninglevel, errorlevel, warningstream=None, debug=0): ! """ ! Initialize the `Reporter`'s default logging category. ! ! Parameters: ! ! - `warninglevel`: The level at or above which warning output will be ! sent to `warningstream`. ! - `errorlevel`: The level at or above which `SystemWarning` exceptions ! will be raised. ! - `debug`: Show debug (level=0) system warnings? ! - `warningstream`: Where warning output is sent (`None` implies ! `sys.stderr`). ! """ if warningstream is None: warningstream = sys.stderr ! self.categories = {'': (debug, warninglevel, errorlevel, warningstream)} ! """Mapping of category names to levels. Default is ''.""" ! def setcategory(self, category, warninglevel, errorlevel, ! warningstream=None, debug=0): ! if warningstream is None: ! warningstream = sys.stderr ! self.categories[category] = (debug, warninglevel, errorlevel, ! warningstream) ! ! def unsetcategory(self, category): ! if category and self.categories.has_key(category): ! del self.categories[category] ! ! def getcategory(self, category): ! while not self.categories.has_key(category): ! category = category[:category.rfind('.') + 1][:-1] ! return self.categories[category] ! ! def system_warning(self, level, comment=None, children=[], category=''): """ Return a system_warning object. *************** *** 43,64 **** Raise an exception or generate a warning if appropriate. """ ! sw = nodes.system_warning(comment, level=level, *children) ! if level >= self.errorlevel: raise SystemWarning(sw) - if level >= self.warninglevel: - print >>self.stream, 'Warning:', sw.astext() return sw ! def information(self, comment=None, children=[]): ! return self.system_warning(0, comment, children) ! def warning(self, comment=None, children=[]): ! return self.system_warning(1, comment, children) ! def error(self, comment=None, children=[]): ! return self.system_warning(2, comment, children) ! def severe(self, comment=None, children=[]): ! return self.system_warning(3, comment, children) --- 75,104 ---- Raise an exception or generate a warning if appropriate. """ ! sw = nodes.system_warning(comment, level=level, ! type=self.levels[level], *children) ! debug, warninglevel, errorlevel, stream = self.getcategory(category) ! if level >= warninglevel or debug and level == 0: ! if category: ! print >>stream, 'Reporter "%s":' % category, sw.astext() ! else: ! print >>stream, 'Reporter:', sw.astext() ! if level >= errorlevel: raise SystemWarning(sw) return sw ! def debug(self, comment=None, children=[], category=''): ! return self.system_warning(0, comment, children, category) ! def info(self, comment=None, children=[], category=''): ! return self.system_warning(1, comment, children, category) ! def warning(self, comment=None, children=[], category=''): ! return self.system_warning(2, comment, children, category) ! def error(self, comment=None, children=[], category=''): ! return self.system_warning(3, comment, children, category) ! ! def severe(self, comment=None, children=[], category=''): ! return self.system_warning(4, comment, children, category) *************** *** 69,78 **** - def newdocument(languagecode='en', warninglevel=1, errorlevel=3, - warningstream=None): - reporter = Reporter(warninglevel, errorlevel) - document = nodes.document(languagecode='en', reporter=reporter) - return document - def parseattributes(lines, attributespec): """ --- 109,112 ---- *************** *** 183,184 **** --- 217,224 ---- """Return a case- and whitespace-normalized name.""" return ' '.join(name.lower().split()) + + def newdocument(languagecode='en', warninglevel=2, errorlevel=4, + warningstream=None, debug=0): + reporter = Reporter(warninglevel, errorlevel, warningstream, debug) + document = nodes.document(languagecode=languagecode, reporter=reporter) + return document |
From: David G. <go...@us...> - 2002-02-06 02:52:42
|
Update of /cvsroot/docstring/dps/dps In directory usw-pr-cvs1:/tmp/cvs-serv30349/dps/dps Modified Files: urischemes.py Log Message: added some descriptions Index: urischemes.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/urischemes.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** urischemes.py 2001/10/27 05:29:30 1.1 --- urischemes.py 2002/02/06 02:52:39 1.2 *************** *** 7,24 **** schemes = { ! 'about': '', 'acap': 'application configuration access protocol', 'addbook': "To add vCard entries to Communicator's Address Book", ! 'afp': '', 'afs': 'Andrew File System global file names', ! 'aim': '', ! 'callto': '', 'castanet': 'Castanet Tuner URLs for Netcaster', ! 'chttp': '', 'cid': 'content identifier', ! 'data': '', ! 'dav': '', ! 'dns': '', ! 'eid': '', 'fax': '', 'file': 'Host-specific file names', --- 7,26 ---- schemes = { ! 'about': 'provides information on Navigator', 'acap': 'application configuration access protocol', 'addbook': "To add vCard entries to Communicator's Address Book", ! 'afp': 'Apple Filing Protocol', 'afs': 'Andrew File System global file names', ! 'aim': 'AOL Instant Messenger', ! 'callto': 'for NetMeeting links', 'castanet': 'Castanet Tuner URLs for Netcaster', ! 'chttp': 'cached HTTP supported by RealPlayer', 'cid': 'content identifier', ! 'data': 'allows inclusion of small data items as "immediate" data; RFC-2397', ! 'dav': 'Distributed Authoring and Versioning Protocol; RFC 2518', ! 'dns': 'Domain Name System resources', ! 'eid': ('External ID; non-URL data; general escape mechanism to allow ' ! 'access to information for applications that are too ' ! 'specialized to justify their own schemes'), 'fax': '', 'file': 'Host-specific file names', *************** *** 41,45 **** 'irc': 'Internet Relay Chat', 'jar': '', ! 'javascript': '', 'jdbc': '', 'ldap': 'Lightweight Directory Access Protocol', --- 43,47 ---- 'irc': 'Internet Relay Chat', 'jar': '', ! 'javascript': 'JavaScript code; evaluates the expression after the colon', 'jdbc': '', 'ldap': 'Lightweight Directory Access Protocol', *************** *** 85,89 **** 'vemmi': 'versatile multimedia interface', 'videotex': '', ! 'view-source': '', 'wais': 'Wide Area Information Servers', 'whodp': '', --- 87,91 ---- 'vemmi': 'versatile multimedia interface', 'videotex': '', ! 'view-source': 'displays HTML code that was generated with JavaScript', 'wais': 'Wide Area Information Servers', 'whodp': '', |
From: David G. <go...@us...> - 2002-02-06 02:52:00
|
Update of /cvsroot/docstring/dps/dps/transforms In directory usw-pr-cvs1:/tmp/cvs-serv29793/dps/dps/transforms Modified Files: frontmatter.py Log Message: adjusted system_warning levels. Index: frontmatter.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/transforms/frontmatter.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** frontmatter.py 2002/01/26 00:00:50 1.2 --- frontmatter.py 2002/02/06 02:51:57 1.3 *************** *** 261,265 **** elif issubclass(biblioclass, nodes.abstract): if abstract: ! field[-1] += self.doctree.reporter.error( 'There can only be one abstract.') raise TransformError --- 261,265 ---- elif issubclass(biblioclass, nodes.abstract): if abstract: ! field[-1] += self.doctree.reporter.warning( 'There can only be one abstract.') raise TransformError *************** *** 282,286 **** def check_empty_biblio_field(self, field, name): if len(field[1]) < 1: ! field[-1] += self.doctree.reporter.error( 'Cannot extract empty bibliographic field "%s".' % name) return None --- 282,286 ---- def check_empty_biblio_field(self, field, name): if len(field[1]) < 1: ! field[-1] += self.doctree.reporter.warning( 'Cannot extract empty bibliographic field "%s".' % name) return None *************** *** 289,297 **** def check_compound_biblio_field(self, field, name): if len(field[1]) > 1: ! field[-1] += self.doctree.reporter.error( 'Cannot extract compound bibliographic field "%s".' % name) return None if not isinstance(field[1][0], nodes.paragraph): ! field[-1] += self.doctree.reporter.error( 'Cannot extract bibliographic field "%s" containing anything ' 'other than a single paragraph.' --- 289,297 ---- def check_compound_biblio_field(self, field, name): if len(field[1]) > 1: ! field[-1] += self.doctree.reporter.warning( 'Cannot extract compound bibliographic field "%s".' % name) return None if not isinstance(field[1][0], nodes.paragraph): ! field[-1] += self.doctree.reporter.warning( 'Cannot extract bibliographic field "%s" containing anything ' 'other than a single paragraph.' *************** *** 331,335 **** docinfo.append(nodes.authors('', *authornodes)) except TransformError: ! field[-1] += self.doctree.reporter.error( 'Bibliographic field "%s" incompatible with extraction: ' 'it must contain either a single paragraph (with authors ' --- 331,335 ---- docinfo.append(nodes.authors('', *authornodes)) except TransformError: ! field[-1] += self.doctree.reporter.warning( 'Bibliographic field "%s" incompatible with extraction: ' 'it must contain either a single paragraph (with authors ' |
From: David G. <go...@us...> - 2002-02-06 02:51:28
|
Update of /cvsroot/docstring/dps/dps/transforms In directory usw-pr-cvs1:/tmp/cvs-serv29575/dps/dps/transforms Modified Files: __init__.py Log Message: updated Index: __init__.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/transforms/__init__.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** __init__.py 2002/01/25 23:59:12 1.2 --- __init__.py 2002/02/06 02:51:25 1.3 *************** *** 45,47 **** """Initial setup, used by `self.transform()`.""" self.doctree = doctree ! self.language = languages.language(doctree.languagecode) --- 45,47 ---- """Initial setup, used by `self.transform()`.""" self.doctree = doctree ! self.language = languages.getlanguage(doctree.languagecode) |
From: David G. <go...@us...> - 2002-02-06 02:50:33
|
Update of /cvsroot/docstring/dps/dps/transforms In directory usw-pr-cvs1:/tmp/cvs-serv28968/dps/dps/transforms Modified Files: references.py Log Message: ``utils.Reporter``, ``nodes.NodeVisitor`` reform. Index: references.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/transforms/references.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** references.py 2002/01/30 04:52:17 1.4 --- references.py 2002/02/06 02:50:31 1.5 *************** *** 181,185 **** reflist = self.doctree.refnames[name] except KeyError, instance: ! sw = self.doctree.reporter.information( 'Indirect hyperlink target "%s" is not referenced.' % name) --- 181,185 ---- reflist = self.doctree.refnames[name] except KeyError, instance: ! sw = self.doctree.reporter.info( 'Indirect hyperlink target "%s" is not referenced.' % name) *************** *** 210,216 **** reflist = self.doctree.refnames[name] except KeyError, instance: ! sw = self.doctree.reporter.information( ! 'External hyperlink target "%s" is not referenced.' ! % name) self.doctree += sw return --- 210,215 ---- reflist = self.doctree.refnames[name] except KeyError, instance: ! sw = self.doctree.reporter.info( ! 'External hyperlink target "%s" is not referenced.' % name) self.doctree += sw return *************** *** 232,236 **** ! class ChainedTargetResolver(nodes.Visitor): """ --- 231,235 ---- ! class ChainedTargetResolver(nodes.NodeVisitor): """ *************** *** 268,277 **** """ ! def visit_target(self, node, ancestry): if node.hasattr('refuri'): refuri = node['refuri'] ! parent, index = ancestry[-1] for i in range(index - 1, -1, -1): ! sibling = parent[i] if not isinstance(sibling, nodes.target) \ or sibling.hasattr('refuri') \ --- 267,276 ---- """ ! def visit_target(self, node): if node.hasattr('refuri'): refuri = node['refuri'] ! index = node.parent.index(node) for i in range(index - 1, -1, -1): ! sibling = node.parent[i] if not isinstance(sibling, nodes.target) \ or sibling.hasattr('refuri') \ *************** *** 282,288 **** elif node.hasattr('refname'): refname = node['refname'] ! parent, index = ancestry[-1] for i in range(index - 1, -1, -1): ! sibling = parent[i] if not isinstance(sibling, nodes.target) \ or sibling.hasattr('refuri') \ --- 281,287 ---- elif node.hasattr('refname'): refname = node['refname'] ! index = node.parent.index(node) for i in range(index - 1, -1, -1): ! sibling = node.parent[i] if not isinstance(sibling, nodes.target) \ or sibling.hasattr('refuri') \ |
From: David G. <go...@us...> - 2002-02-06 02:48:15
|
Update of /cvsroot/docstring/dps/dps/parsers In directory usw-pr-cvs1:/tmp/cvs-serv27067/dps/dps/parsers Modified Files: __init__.py Log Message: updated Index: __init__.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/parsers/__init__.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** __init__.py 2002/01/30 04:49:53 1.2 --- __init__.py 2002/02/06 02:48:12 1.3 *************** *** 11,20 **** __docformat__ = 'reStructuredText' - class Parser: ! def __init__(self, debug=0): ! """Initialize the Parser instance.""" ! self.debug = debug def parse(self, inputstring, docroot): --- 11,18 ---- __docformat__ = 'reStructuredText' + __all__ = ['Parser'] ! class Parser: def parse(self, inputstring, docroot): *************** *** 26,27 **** --- 24,36 ---- self.inputstring = inputstring self.docroot = docroot + + + _parser_aliases = {'rtxt': 'restructuredtext'} + + def get_parser_class(parsername): + """Return the Parser class from the `parsername` module.""" + parsername = parsername.lower() + if _parser_aliases.has_key(parsername): + parsername = _parser_aliases[parsername] + module = __import__(parsername, globals(), locals()) + return module.Parser |
From: David G. <go...@us...> - 2002-02-06 02:44:45
|
Update of /cvsroot/docstring/dps/dps In directory usw-pr-cvs1:/tmp/cvs-serv24140/dps/dps Modified Files: nodes.py Log Message: - Removed ``ancestry`` parameter from ``Node.walk()``. - ``dps.utils.Reporter`` reform. Index: nodes.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/nodes.py,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** nodes.py 2002/01/30 04:52:09 1.25 --- nodes.py 2002/02/06 02:44:42 1.26 *************** *** 41,61 **** return self._dom_node(dom) ! def walk(self, visitor, ancestry=()): """ Traverse a tree of `Node` objects, calling ``visit_*`` methods of `visitor`. ! Parameters: ! - `visitor`: A `Visitor` object, containing a ``visit_...`` method for ! each `Node` subclass encountered. ! - `ancestry`: A list of (parent, index) pairs. `self`'s parent is the ! last entry. """ method = getattr(visitor, 'visit_' + self.__class__.__name__) ! method(self, ancestry) children = self.getchildren() for i in range(len(children)): ! children[i].walk(visitor, ancestry + ((self, i),)) --- 41,60 ---- return self._dom_node(dom) ! def walk(self, visitor): """ Traverse a tree of `Node` objects, calling ``visit_*`` methods of `visitor`. ! Doesn't handle arbitrary modification in-place during the traversal. ! Replacing one element with one element is OK. ! Parameter `visitor`: A `NodeVisitor` object, containing a ! ``visit_...`` method for each `Node` subclass encountered. """ method = getattr(visitor, 'visit_' + self.__class__.__name__) ! method(self) children = self.getchildren() for i in range(len(children)): ! children[i].walk(visitor) *************** *** 494,498 **** or self.external_targets.has_key(name) \ or self.implicit_targets.has_key(name): ! sw = self.reporter.information( 'Duplicate implicit target name: "%s"' % name) innode += sw --- 493,497 ---- or self.external_targets.has_key(name) \ or self.implicit_targets.has_key(name): ! sw = self.reporter.info( 'Duplicate implicit target name: "%s"' % name) innode += sw *************** *** 507,511 **** name = targetnode['name'] if self.explicit_targets.has_key(name): ! level = 1 if targetnode.has_key('refuri'): # external target, dups OK refuri = targetnode['refuri'] --- 506,510 ---- name = targetnode['name'] if self.explicit_targets.has_key(name): ! level = 2 if targetnode.has_key('refuri'): # external target, dups OK refuri = targetnode['refuri'] *************** *** 513,517 **** if t.has_key('name') and t.has_key('refuri') \ and t['refuri'] == refuri: ! level = 0 # just inform if refuri's identical sw = self.reporter.system_warning( level, 'Duplicate explicit target name: "%s"' % name) --- 512,516 ---- if t.has_key('name') and t.has_key('refuri') \ and t['refuri'] == refuri: ! level = 1 # just inform if refuri's identical sw = self.reporter.system_warning( level, 'Duplicate explicit target name: "%s"' % name) *************** *** 519,527 **** self.clear_target_names(name, self.explicit_targets, self.implicit_targets) ! if level > 0: del targetnode['name'] targetnode['dupname'] = name elif self.implicit_targets.has_key(name): ! sw = self.reporter.information( 'Duplicate implicit target name: "%s"' % name) innode += sw --- 518,526 ---- self.clear_target_names(name, self.explicit_targets, self.implicit_targets) ! if level > 1: del targetnode['name'] targetnode['dupname'] = name elif self.implicit_targets.has_key(name): ! sw = self.reporter.info( 'Duplicate implicit target name: "%s"' % name) innode += sw *************** *** 682,686 **** def astext(self): ! return '[level %s] ' % self['level'] + Element.astext(self) --- 681,686 ---- def astext(self): ! return '%s [level %s] %s' % (self['type'], self['level'], ! Element.astext(self)) *************** *** 729,733 **** ! class Visitor: """ --- 729,733 ---- ! class NodeVisitor: """ *************** *** 750,758 **** # Save typing with dynamic definitions. for name in node_class_names: ! exec """def visit_%s(self, node, ancestry): pass\n""" % name del name ! class GenericVisitor(Visitor): """ --- 750,758 ---- # Save typing with dynamic definitions. for name in node_class_names: ! exec """def visit_%s(self, node): pass\n""" % name del name ! class GenericNodeVisitor(NodeVisitor): """ *************** *** 767,771 **** """ ! def default_visit(self, node, ancestry): """Override for generic, uniform traversals.""" raise NotImplementedError --- 767,771 ---- """ ! def default_visit(self, node): """Override for generic, uniform traversals.""" raise NotImplementedError *************** *** 773,777 **** # Save typing with dynamic definitions. for name in node_class_names: ! exec """def visit_%s(self, node, ancestry): ! self.default_visit(node, ancestry)\n""" % name del name --- 773,777 ---- # Save typing with dynamic definitions. for name in node_class_names: ! exec """def visit_%s(self, node): ! self.default_visit(node)\n""" % name del name |
From: David G. <go...@us...> - 2002-02-06 02:42:21
|
Update of /cvsroot/docstring/dps/dps/languages In directory usw-pr-cvs1:/tmp/cvs-serv22436/dps/dps/languages Modified Files: __init__.py Log Message: ``language()`` -> ``getlanguage()`` Index: __init__.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/languages/__init__.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** __init__.py 2001/09/10 04:09:34 1.2 --- __init__.py 2002/02/06 02:42:18 1.3 *************** *** 14,28 **** __docformat__ = 'reStructuredText' ! __all__ = ['language'] _languages = {} ! def language(languagecode): if _languages.has_key(languagecode): return _languages[languagecode] ! try: ! module = __import__(languagecode, globals(), locals()) ! except: ! raise _languages[languagecode] = module return module --- 14,25 ---- __docformat__ = 'reStructuredText' ! __all__ = ['getlanguage'] _languages = {} ! def getlanguage(languagecode): if _languages.has_key(languagecode): return _languages[languagecode] ! module = __import__(languagecode, globals(), locals()) _languages[languagecode] = module return module |
From: David G. <go...@us...> - 2002-02-06 02:41:57
|
Update of /cvsroot/docstring/dps/dps/languages In directory usw-pr-cvs1:/tmp/cvs-serv22163/dps/dps/languages Modified Files: en.py Log Message: updated Index: en.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/languages/en.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** en.py 2002/01/25 23:50:55 1.6 --- en.py 2002/02/06 02:41:54 1.7 *************** *** 14,19 **** __docformat__ = 'reStructuredText' ! __all__ = ['interpreted', 'bibliographic_labels', 'bibliographic_fields', ! 'author_separators'] --- 14,18 ---- __docformat__ = 'reStructuredText' ! __all__ = ['bibliographic_labels', 'bibliographic_fields', 'author_separators'] |
From: David G. <go...@us...> - 2002-02-06 02:41:40
|
Update of /cvsroot/docstring/dps/dps In directory usw-pr-cvs1:/tmp/cvs-serv21976/dps/dps Modified Files: __init__.py Log Message: updated Index: __init__.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/__init__.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** __init__.py 2002/01/16 02:51:47 1.2 --- __init__.py 2002/02/06 02:41:37 1.3 *************** *** 15,19 **** Modules: ! - __init__.py: Contains package docstring only (this text). - nodes.py: DPS document tree (doctree) node class library. --- 15,21 ---- Modules: ! - __init__.py: Contains the package docstring only (this text). ! ! - core.py: Contains the ``Publisher`` class and ``convert()`` function. - nodes.py: DPS document tree (doctree) node class library. *************** *** 44,45 **** --- 46,49 ---- - writers: Format-specific output translators. """ + + __docformat__ = 'reStructuredText' |
From: David G. <go...@us...> - 2002-01-30 04:56:57
|
Update of /cvsroot/docstring/dps/spec In directory usw-pr-cvs1:/tmp/cvs-serv23691/dps/spec Modified Files: dps-notes.txt Log Message: updated Index: dps-notes.txt =================================================================== RCS file: /cvsroot/docstring/dps/spec/dps-notes.txt,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** dps-notes.txt 2002/01/29 02:18:32 1.21 --- dps-notes.txt 2002/01/30 04:56:54 1.22 *************** *** 61,70 **** - Apply the `coding conventions`_ as given below. - - Reconsider the need to keep a list of duplicates in - ``nodes.document.explicit_targets``. Rather, just keep the last - instance, and "clear" it and any new ones if necessary. Perhaps just - a {'name': None} mapping is enough to indicate that the target is - invalid? - Coding Conventions --- 61,64 ---- |
From: David G. <go...@us...> - 2002-01-30 04:56:48
|
Update of /cvsroot/docstring/dps In directory usw-pr-cvs1:/tmp/cvs-serv23640/dps Modified Files: HISTORY.txt Log Message: updated Index: HISTORY.txt =================================================================== RCS file: /cvsroot/docstring/dps/HISTORY.txt,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** HISTORY.txt 2002/01/29 02:24:40 1.35 --- HISTORY.txt 2002/01/30 04:56:45 1.36 *************** *** 21,26 **** Lemburg, Wolfgang Lipp, Edward Loper, Ken Manheimer, Paul Moore, Michel Pelletier, Sam Penrose, Tim Peters, Mark Pilgrim, Tavis ! Rudd, Bob Tolbert, Laurence Tratt, Guido van Rossum, Barry Warsaw, ! Edward Welbourne, Ka-Ping Yee, Moshe Zadka (I'm still waiting for contributions of tasty snacks, computer --- 21,26 ---- Lemburg, Wolfgang Lipp, Edward Loper, Ken Manheimer, Paul Moore, Michel Pelletier, Sam Penrose, Tim Peters, Mark Pilgrim, Tavis ! Rudd, Ueli Schlaepfer, Bob Tolbert, Laurence Tratt, Guido van ! Rossum, Barry Warsaw, Edward Welbourne, Ka-Ping Yee, Moshe Zadka (I'm still waiting for contributions of tasty snacks, computer *************** *** 85,88 **** --- 85,89 ---- - Added ``Node.parent`` back-reference for transforms. - Added ``Element.index()`` and ``Element.replace()`` methods. + - Simplified target record keeping. * dps/roman.py: Added to project. Written by and courtesy of Mark *************** *** 117,120 **** --- 118,122 ---- - Added 'parseattributes()', associated functions and exceptions. - Moved 'normname()' from restructuredtext.states. + - Added ``newdocument()``: document Node creation. * dps/test_*.py: Moved to new test/ directory. *************** *** 124,127 **** --- 126,131 ---- - Added setup_parse() so unoverridden parse() could raise a NotImplementedError. + - Moved Parser class to __init__.py, with updates. Module removed + from project. * dps/languages/__init__.py: *************** *** 138,142 **** - Removed Python-specific interpreted text mapping. ! * dps/transforms: Subpackage added. * test: Subdirectory added. The top-level consists of a modular test --- 142,150 ---- - Removed Python-specific interpreted text mapping. ! * dps/transforms: Subpackage added. Thanks to Ueli Schlaepfer for the ! initial work. ! ! * dps/formatters: Removed subpackage from project. To be replaced by ! "writers" or "builders" subpackage. * test: Subdirectory added. The top-level consists of a modular test |
From: David G. <go...@us...> - 2002-01-30 04:56:18
|
Update of /cvsroot/docstring/dps In directory usw-pr-cvs1:/tmp/cvs-serv23582/dps Modified Files: setup.py Log Message: updated Index: setup.py =================================================================== RCS file: /cvsroot/docstring/dps/setup.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** setup.py 2002/01/16 02:43:49 1.4 --- setup.py 2002/01/30 04:56:15 1.5 *************** *** 9,18 **** #long_description = '', url = 'http://docstring.sourceforge.net/', ! version = '0.4', author = 'David Goodger', author_email = 'go...@us...', license = 'public domain', ! packages = ['dps', 'dps.readers', 'dps.parsers', ! 'dps.writers', 'dps.transforms', 'dps.languages']) return dist --- 9,17 ---- #long_description = '', url = 'http://docstring.sourceforge.net/', ! version = '0.3+', author = 'David Goodger', author_email = 'go...@us...', license = 'public domain', ! packages = ['dps', 'dps.parsers', 'dps.transforms', 'dps.languages']) return dist |
From: David G. <go...@us...> - 2002-01-30 04:52:20
|
Update of /cvsroot/docstring/dps/dps/transforms In directory usw-pr-cvs1:/tmp/cvs-serv22909/dps/dps/transforms Modified Files: references.py Log Message: - Simplified target record keeping. Index: references.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/transforms/references.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** references.py 2002/01/29 02:17:32 1.3 --- references.py 2002/01/30 04:52:17 1.4 *************** *** 149,160 **** def resolve_indirect(self): ! for name, targets in self.doctree.indirect_targets.items(): ! if len(targets) == 1: ! target = targets[-1] ! if not target.resolved: ! self.one_indirect_target(target) ! if target.hasattr('refname'): ! self.one_indirect_reference(target['name'], ! target['refname']) def one_indirect_target(self, target): --- 149,158 ---- def resolve_indirect(self): ! for name, target in self.doctree.indirect_targets.items(): ! if not target.resolved: ! self.one_indirect_target(target) ! if target.hasattr('refname'): ! self.one_indirect_reference(target['name'], ! target['refname']) def one_indirect_target(self, target): *************** *** 162,166 **** refname = target['refname'] try: ! reftargetlist = self.doctree.explicit_targets[refname] except KeyError: sw = self.doctree.reporter.warning( --- 160,164 ---- refname = target['refname'] try: ! reftarget = self.doctree.explicit_targets[refname] except KeyError: sw = self.doctree.reporter.warning( *************** *** 168,172 **** 'which does not exist.' % (name, refname)) self.doctree += sw - reftarget = reftargetlist[-1] if reftarget.hasattr('name'): if not reftarget.resolved and reftarget.hasattr('refname'): --- 166,169 ---- *************** *** 205,212 **** def resolve_external_references(self): ! for name, targets in self.doctree.external_targets.items(): ! target = targets[-1] if target.hasattr('refuri') and target.hasattr('name'): ! self.one_external_reference(name, targets[-1]['refuri']) def one_external_reference(self, name, refuri): --- 202,208 ---- def resolve_external_references(self): ! for name, target in self.doctree.external_targets.items(): if target.hasattr('refuri') and target.hasattr('name'): ! self.one_external_reference(name, target['refuri']) def one_external_reference(self, name, refuri): |
From: David G. <go...@us...> - 2002-01-30 04:52:12
|
Update of /cvsroot/docstring/dps/dps In directory usw-pr-cvs1:/tmp/cvs-serv22873/dps/dps Modified Files: nodes.py Log Message: - Simplified target record keeping. Index: nodes.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/nodes.py,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** nodes.py 2002/01/29 02:17:18 1.24 --- nodes.py 2002/01/30 04:52:09 1.25 *************** *** 439,450 **** self.explicit_targets = {} ! """Mapping of target names to lists of explicit target nodes.""" self.implicit_targets = {} ! """Mapping of target names to lists of implicit (internal) target nodes.""" self.external_targets = {} ! """Mapping of target names to lists of external target nodes.""" self.indirect_targets = {} --- 439,450 ---- self.explicit_targets = {} ! """Mapping of target names to explicit target nodes.""" self.implicit_targets = {} ! """Mapping of target names to implicit (internal) target nodes.""" self.external_targets = {} ! """Mapping of target names to external target nodes.""" self.indirect_targets = {} *************** *** 455,465 **** self.refnames = {} ! """Mapping of reference names to reference nodes.""" self.substitution_refs = {} ! """Mapping of substitution names to substitution_reference nodes.""" self.footnote_refs = {} ! """Mapping of footnote labels to footnote_reference nodes.""" self.anonymous_targets = [] --- 455,466 ---- self.refnames = {} ! """Mapping of reference names to lists of reference nodes.""" self.substitution_refs = {} ! """Mapping of substitution names to lists of substitution_reference ! nodes.""" self.footnote_refs = {} ! """Mapping of footnote labels to lists of footnote_reference nodes.""" self.anonymous_targets = [] *************** *** 499,503 **** del targetnode['name'] targetnode['dupname'] = name ! self.implicit_targets.setdefault(name, []).append(targetnode) def note_explicit_target(self, targetnode, innode=None): --- 500,504 ---- del targetnode['name'] targetnode['dupname'] = name ! self.implicit_targets[name] = targetnode def note_explicit_target(self, targetnode, innode=None): *************** *** 509,516 **** if targetnode.has_key('refuri'): # external target, dups OK refuri = targetnode['refuri'] ! for t in self.explicit_targets.get(name, []): ! if not t.has_key('refuri') or t['refuri'] != refuri: ! break ! else: level = 0 # just inform if refuri's identical sw = self.reporter.system_warning( --- 510,516 ---- if targetnode.has_key('refuri'): # external target, dups OK refuri = targetnode['refuri'] ! t = self.explicit_targets[name] ! if t.has_key('name') and t.has_key('refuri') \ ! and t['refuri'] == refuri: level = 0 # just inform if refuri's identical sw = self.reporter.system_warning( *************** *** 527,538 **** innode += sw self.clear_target_names(name, self.implicit_targets) ! self.explicit_targets.setdefault(name, []).append(targetnode) def clear_target_names(self, name, *targetdicts): for targetdict in targetdicts: ! for node in targetdict.get(name, []): ! if node.has_key('name'): ! node['dupname'] = node['name'] ! del node['name'] def note_refname(self, node): --- 527,540 ---- innode += sw self.clear_target_names(name, self.implicit_targets) ! self.explicit_targets[name] = targetnode def clear_target_names(self, name, *targetdicts): for targetdict in targetdicts: ! if not targetdict.has_key(name): ! continue ! node = targetdict[name] ! if node.has_key('name'): ! node['dupname'] = node['name'] ! del node['name'] def note_refname(self, node): *************** *** 540,549 **** def note_external_target(self, targetnode): ! self.external_targets.setdefault( ! targetnode['name'], []).append(targetnode) def note_indirect_target(self, targetnode): ! self.indirect_targets.setdefault( ! targetnode['name'], []).append(targetnode) self.note_refname(targetnode) --- 542,549 ---- def note_external_target(self, targetnode): ! self.external_targets[targetnode['name']] = targetnode def note_indirect_target(self, targetnode): ! self.indirect_targets[targetnode['name']] = targetnode self.note_refname(targetnode) *************** *** 747,753 **** def __init__(self, doctree): self.doctree = doctree - - def walk(self): - self.doctree.walk(self) # Save typing with dynamic definitions. --- 747,750 ---- |
From: David G. <go...@us...> - 2002-01-30 04:50:08
|
Update of /cvsroot/docstring/dps/dps/parsers In directory usw-pr-cvs1:/tmp/cvs-serv22570/dps/dps/parsers Removed Files: model.py Log Message: - model.Parser -> __init__.py, with updates. --- model.py DELETED --- |