3 E\ @svdZdZddlZddlmZmZmZddlmZej dkrFddl m Z Gd d d eZ Gd d d e Z iZd dZdS)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. readerZreaderscCstj|tjtjtjgS)N)rget_transformsrZ DecorationsZExposeInternalsZ StripComments)selfr s/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/docutils/docutils/readers/__init__.pyr !szReader.get_transformsNcCs,||_|dkr|r|j|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__cCstj|}||_dS)zSet `self.parser` by name.N)rZget_parser_classr)r rZ parser_classr r rr=s zReader.set_parsercCs2||_|js||_||_|jj|_|j|jS)N)rrsettingsreadrparsedocument)r rrrr r rrBs z Reader.readcCs.|j|_}|jj|j|d|_|_dS)z(Parse `self.input` into a document tree.N) new_documentrrrrZcurrent_source current_line)r rr r rrKsz Reader.parsecCstj|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 tj|S)N)rr )r r r rr `szReReader.get_transformsN)rrrrr r r r rr Wsr c Cs`|j}|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))rr)rZ __docformat__sysZdocutilsrrrZdocutils.transformsr version_infoZdocutils._compatrr r r$r)r r r rs   D