B \ @svdZdZddlZddlmZmZmZddlmZej dkrFddl m Z Gdd d eZ Gd d d e Z iZd d ZdS)z0 This package contains Docutils Reader modules. ZreStructuredTextN)utilsparsers Component) universal)) __import__c@sJeZdZdZdZdZddZdddZd d Zd d Z d dZ ddZ dS)Readerz Abstract base class for docutils Readers. Each reader module or package must export a subclass also called 'Reader'. The two steps of a Reader's responsibility are `scan()` and `parse()`. Call `read()` to process a document. readerZreaderscCst|tjtjtjgS)N)rget_transformsrZ DecorationsZExposeInternalsZ StripComments)selfr =/tmp/pip-build-uw_ogi45/docutils/docutils/readers/__init__.pyr !szReader.get_transformsNcCs,||_|dkr|r||d|_d|_dS)z Initialize the Reader instance. Several instance attributes are defined with dummy initial values. Subclasses may use these attributes as they wish. N)parser set_parsersourceinput)r r parser_namer r r__init__'s   zReader.__init__cCst|}||_dS)zSet `self.parser` by name.N)rZget_parser_classr)r rZ parser_classr r rr=s zReader.set_parsercCs2||_|js||_||_|j|_||jS)N)rrsettingsreadrparsedocument)r rrrr r rrBs z Reader.readcCs.||_}|j|j|d|_|_dS)z(Parse `self.input` into a document tree.N) new_documentrrrrZcurrent_source current_line)r rr r rrKsz Reader.parsecCst|jj|j}|S)z8Create and return a new empty document tree (root node).)rrr source_pathr)r rr r rrQszReader.new_document)NN) __name__ __module__ __qualname____doc__Zcomponent_typeZconfig_sectionr rrrrrr r r rr s   r c@seZdZdZddZdS)ReReaderz A reader which rereads an existing document tree (e.g. a deserializer). Often used in conjunction with `writers.UnfilteredWriter`. cCs t|S)N)rr )r r r rr `szReReader.get_transformsN)rrrrr r r r rr Wsr c Cs`|}|tkrt|}yt|ttdd}Wn(tk rXt|ttdd}YnX|jS)z6Return the Reader class from the `reader_name` module.)levelr)lower_reader_aliasesrglobalslocals ImportErrorr )Z reader_namemoduler r rget_reader_classhsr))rZ __docformat__sysZdocutilsrrrZdocutils.transformsr version_infoZdocutils._compatrr r r$r)r r r rs   D