Word Document Construction¶
The vc2_pseudocode_parser.docx_generator module implements a simplified
wrapper around docx for generating Word documents containing SMPTE
specification style code listings.
Document model¶
Documents are defined using a hierarchy of the following classes:
-
class
ListingDocument(body=<factory>)¶ A document containing code listings. The root of the document heirarchy.
-
body: List[Union[vc2_pseudocode_parser.docx_generator.Paragraph, vc2_pseudocode_parser.docx_generator.ListingTable]]¶ The contents of this document.
-
make_docx_document()¶ Construct a
docx.Documentobject from this document (ready for saving as a file or further manipulation).
-
-
class
Paragraph(runs=[])¶ A paragraph of text consisting of a series of concatenated
Runsof text.As a convenience, the constructor accepts either a list of
Runs, a singleRunor astr.Paragraphobjects support the+operator which will concatenate the runs in a pair ofParagraphs, producing a newParagraph. You can also addRunandstrtoParagraphswith similar effect.-
runs: List[vc2_pseudocode_parser.docx_generator.Run]¶ The runs of text contained in this paragraph.
-
-
class
Run(text='', style=None)¶ A run of text within a paragraph, which will be rendered with a particular style (defined in
RunStyle).-
style: Optional[vc2_pseudocode_parser.docx_generator.RunStyle] = None¶
-
add_to_docx_paragraph(docx_document, docx_paragraph)¶
-
-
class
RunStyle(value)¶ Text styles for runs.
-
pseudocode= 'Pseudocode'¶
-
pseudocode_fdef= 'Pseudocode Function Defnition'¶
-
pseudocode_keyword= 'Pseudocode Keyword'¶
-
pseudocode_label= 'Pseudocode Label'¶
-
-
class
ListingTable(rows)¶ A code listing table giving the source code for a single function definiton.
If any lines in the listing contain a comment, the resulting table will have two colums with the code on the left and comments on the right. If no lines contain a comment, the table will have a single column.
-
rows: List[vc2_pseudocode_parser.docx_generator.ListingLine]¶ The rows in the table.
-
-
class
ListingLine(code=<factory>, comment=<factory>)¶ A single row in a
ListingTable.