| # $Id: pep.py 7320 2012-01-19 22:33:02Z milde $ | |
| # Author: David Goodger <goodger@python.org> | |
| # Copyright: This module has been placed in the public domain. | |
| """ | |
| Python Enhancement Proposal (PEP) Reader. | |
| """ | |
| __docformat__ = 'reStructuredText' | |
| from docutils.parsers import rst | |
| from docutils.readers import standalone | |
| from docutils.transforms import peps, frontmatter | |
| class Reader(standalone.Reader): | |
| supported = ('pep',) | |
| """Contexts this reader supports.""" | |
| settings_spec = ( | |
| 'PEP Reader Option Defaults', | |
| 'The --pep-references and --rfc-references options (for the ' | |
| 'reStructuredText parser) are on by default.', | |
| ()) | |
| config_section = 'pep reader' | |
| config_section_dependencies = ('readers', 'standalone reader') | |
| def get_transforms(self): | |
| transforms = standalone.Reader.get_transforms(self) | |
| # We have PEP-specific frontmatter handling. | |
| transforms.remove(frontmatter.DocTitle) | |
| transforms.remove(frontmatter.SectionSubTitle) | |
| transforms.remove(frontmatter.DocInfo) | |
| transforms.extend([peps.Headers, peps.Contents, peps.TargetNotes]) | |
| return transforms | |
| settings_default_overrides = {'pep_references': 1, 'rfc_references': 1} | |
| inliner_class = rst.states.Inliner | |
| def __init__(self, parser=None, parser_name=None): | |
| """`parser` should be ``None``.""" | |
| if parser is None: | |
| parser = rst.Parser(rfc2822=True, inliner=self.inliner_class()) | |
| standalone.Reader.__init__(self, parser, '') |