1+ # pyright: reportAssignmentType=false
2+
13"""Custom element classes related to run properties (font)."""
24
35from __future__ import annotations
2022 RequiredAttribute ,
2123 ZeroOrOne ,
2224)
25+ from docx .shared import RGBColor
2326
2427if TYPE_CHECKING :
2528 from docx .oxml .shared import CT_OnOff , CT_String
2932class CT_Color (BaseOxmlElement ):
3033 """`w:color` element, specifying the color of a font and perhaps other objects."""
3134
32- val = RequiredAttribute ("w:val" , ST_HexColor )
33- themeColor = OptionalAttribute ("w:themeColor" , MSO_THEME_COLOR )
35+ val : RGBColor | str = RequiredAttribute ("w:val" , ST_HexColor )
36+ themeColor : MSO_THEME_COLOR | None = OptionalAttribute ("w:themeColor" , MSO_THEME_COLOR )
3437
3538
3639class CT_Fonts (BaseOxmlElement ):
@@ -39,39 +42,33 @@ class CT_Fonts(BaseOxmlElement):
3942 Specifies typeface name for the various language types.
4043 """
4144
42- ascii : str | None = OptionalAttribute ( # pyright: ignore[reportAssignmentType]
43- "w:ascii" , ST_String
44- )
45- hAnsi : str | None = OptionalAttribute ( # pyright: ignore[reportAssignmentType]
46- "w:hAnsi" , ST_String
47- )
45+ ascii : str | None = OptionalAttribute ("w:ascii" , ST_String )
46+ hAnsi : str | None = OptionalAttribute ("w:hAnsi" , ST_String )
4847
4948
5049class CT_Highlight (BaseOxmlElement ):
5150 """`w:highlight` element, specifying font highlighting/background color."""
5251
53- val : WD_COLOR_INDEX = RequiredAttribute ( # pyright: ignore[reportGeneralTypeIssues]
54- "w:val" , WD_COLOR_INDEX
55- )
52+ val : WD_COLOR_INDEX = RequiredAttribute ("w:val" , WD_COLOR_INDEX )
5653
5754
5855class CT_HpsMeasure (BaseOxmlElement ):
5956 """Used for `<w:sz>` element and others, specifying font size in half-points."""
6057
61- val : Length = RequiredAttribute ( # pyright: ignore[reportGeneralTypeIssues]
62- "w:val" , ST_HpsMeasure
63- )
58+ val : Length = RequiredAttribute ("w:val" , ST_HpsMeasure )
6459
6560
6661class CT_RPr (BaseOxmlElement ):
6762 """`<w:rPr>` element, containing the properties for a run."""
6863
64+ get_or_add_color : Callable [[], CT_Color ]
6965 get_or_add_highlight : Callable [[], CT_Highlight ]
7066 get_or_add_rFonts : Callable [[], CT_Fonts ]
7167 get_or_add_sz : Callable [[], CT_HpsMeasure ]
7268 get_or_add_vertAlign : Callable [[], CT_VerticalAlignRun ]
7369 _add_rStyle : Callable [..., CT_String ]
7470 _add_u : Callable [[], CT_Underline ]
71+ _remove_color : Callable [[], None ]
7572 _remove_highlight : Callable [[], None ]
7673 _remove_rFonts : Callable [[], None ]
7774 _remove_rStyle : Callable [[], None ]
@@ -120,15 +117,9 @@ class CT_RPr(BaseOxmlElement):
120117 "w:specVanish" ,
121118 "w:oMath" ,
122119 )
123- rStyle : CT_String | None = ZeroOrOne ( # pyright: ignore[reportGeneralTypeIssues]
124- "w:rStyle" , successors = _tag_seq [1 :]
125- )
126- rFonts : CT_Fonts | None = ZeroOrOne ( # pyright: ignore[reportGeneralTypeIssues]
127- "w:rFonts" , successors = _tag_seq [2 :]
128- )
129- b : CT_OnOff | None = ZeroOrOne ( # pyright: ignore[reportGeneralTypeIssues]
130- "w:b" , successors = _tag_seq [3 :]
131- )
120+ rStyle : CT_String | None = ZeroOrOne ("w:rStyle" , successors = _tag_seq [1 :])
121+ rFonts : CT_Fonts | None = ZeroOrOne ("w:rFonts" , successors = _tag_seq [2 :])
122+ b : CT_OnOff | None = ZeroOrOne ("w:b" , successors = _tag_seq [3 :])
132123 bCs = ZeroOrOne ("w:bCs" , successors = _tag_seq [4 :])
133124 i = ZeroOrOne ("w:i" , successors = _tag_seq [5 :])
134125 iCs = ZeroOrOne ("w:iCs" , successors = _tag_seq [6 :])
@@ -144,19 +135,11 @@ class CT_RPr(BaseOxmlElement):
144135 snapToGrid = ZeroOrOne ("w:snapToGrid" , successors = _tag_seq [16 :])
145136 vanish = ZeroOrOne ("w:vanish" , successors = _tag_seq [17 :])
146137 webHidden = ZeroOrOne ("w:webHidden" , successors = _tag_seq [18 :])
147- color = ZeroOrOne ("w:color" , successors = _tag_seq [19 :])
148- sz : CT_HpsMeasure | None = ZeroOrOne ( # pyright: ignore[reportGeneralTypeIssues]
149- "w:sz" , successors = _tag_seq [24 :]
150- )
151- highlight : CT_Highlight | None = ZeroOrOne ( # pyright: ignore[reportGeneralTypeIssues]
152- "w:highlight" , successors = _tag_seq [26 :]
153- )
154- u : CT_Underline | None = ZeroOrOne ( # pyright: ignore[reportGeneralTypeIssues]
155- "w:u" , successors = _tag_seq [27 :]
156- )
157- vertAlign : CT_VerticalAlignRun | None = ZeroOrOne ( # pyright: ignore[reportGeneralTypeIssues]
158- "w:vertAlign" , successors = _tag_seq [32 :]
159- )
138+ color : CT_Color | None = ZeroOrOne ("w:color" , successors = _tag_seq [19 :])
139+ sz : CT_HpsMeasure | None = ZeroOrOne ("w:sz" , successors = _tag_seq [24 :])
140+ highlight : CT_Highlight | None = ZeroOrOne ("w:highlight" , successors = _tag_seq [26 :])
141+ u : CT_Underline | None = ZeroOrOne ("w:u" , successors = _tag_seq [27 :])
142+ vertAlign : CT_VerticalAlignRun | None = ZeroOrOne ("w:vertAlign" , successors = _tag_seq [32 :])
160143 rtl = ZeroOrOne ("w:rtl" , successors = _tag_seq [33 :])
161144 cs = ZeroOrOne ("w:cs" , successors = _tag_seq [34 :])
162145 specVanish = ZeroOrOne ("w:specVanish" , successors = _tag_seq [38 :])
@@ -343,14 +326,10 @@ def _set_bool_val(self, name: str, value: bool | None):
343326class CT_Underline (BaseOxmlElement ):
344327 """`<w:u>` element, specifying the underlining style for a run."""
345328
346- val : WD_UNDERLINE | None = OptionalAttribute ( # pyright: ignore[reportAssignmentType]
347- "w:val" , WD_UNDERLINE
348- )
329+ val : WD_UNDERLINE | None = OptionalAttribute ("w:val" , WD_UNDERLINE )
349330
350331
351332class CT_VerticalAlignRun (BaseOxmlElement ):
352333 """`<w:vertAlign>` element, specifying subscript or superscript."""
353334
354- val : str = RequiredAttribute ( # pyright: ignore[reportGeneralTypeIssues]
355- "w:val" , ST_VerticalAlignRun
356- )
335+ val : str = RequiredAttribute ("w:val" , ST_VerticalAlignRun )
0 commit comments