Source code for docx_parser_converter.docx_parsers.models.numbering_models

from pydantic import BaseModel, Field
from typing import List, Optional
from docx_parser_converter.docx_parsers.models.styles_models import FontProperties, IndentationProperties

[docs] class NumberingLevel(BaseModel): """ Represents a specific level in a numbering scheme. Example: The following is an example of a numbering level element in a numbering.xml file: .. code-block:: xml <w:lvl w:ilvl="0"> <w:start w:val="1"/> <w:numFmt w:val="decimal"/> <w:lvlText w:val="%1."/> <w:lvlJc w:val="left"/> <w:pPr> <w:ind w:left="720" w:hanging="360"/> </w:pPr> <w:rPr> <w:rFonts w:ascii="Calibri" w:hAnsi="Calibri"/> </w:rPr> </w:lvl> """ numId: int = Field(..., description="The ID of the numbering definition.") ilvl: int = Field(..., description="The indent level of the numbering.") start: int = Field(..., description="The start value for the numbering level.") numFmt: str = Field(..., description="The format of the numbering (e.g., decimal, bullet).") lvlText: str = Field(..., description="The text to be displayed for the level.") lvlJc: str = Field(..., description="The justification of the level text.") counter: Optional[int] = Field(None, description="A counter for the level.") indent: Optional[IndentationProperties] = Field(None, description="The indentation properties for the level.") tab_pt: Optional[float] = Field(None, description="The tab position in points.") fonts: Optional[FontProperties] = Field(None, description="The font properties for the level.")
[docs] class NumberingInstance(BaseModel): """ Represents an instance of a numbering definition. Example: The following is an example of a numbering instance element in a numbering.xml file: .. code-block:: xml <w:num w:numId="1"> <w:abstractNumId w:val="0"/> <w:lvlOverride w:ilvl="0"> <w:startOverride w:val="1"/> </w:lvlOverride> </w:num> """ numId: int = Field(..., description="The ID of the numbering definition.") levels: List[NumberingLevel] = Field(..., description="The list of levels in the numbering definition.")
[docs] class NumberingSchema(BaseModel): """ Represents the overall numbering schema for the document. Example: The following is an example of a numbering schema structure: .. code-block:: xml <w:numbering> <w:abstractNum w:abstractNumId="0"> <w:lvl w:ilvl="0"> <w:start w:val="1"/> <w:numFmt w:val="decimal"/> <w:lvlText w:val="%1."/> <w:lvlJc w:val="left"/> <w:pPr> <w:ind w:left="720" w:hanging="360"/> </w:pPr> <w:rPr> <w:rFonts w:ascii="Calibri" w:hAnsi="Calibri"/> </w:rPr> </w:lvl> </w:abstractNum> <w:num w:numId="1"> <w:abstractNumId w:val="0"/> </w:num> </w:numbering> """ instances: List[NumberingInstance] = Field(..., description="The list of numbering instances in the document.")