44
55import datetime as dt
66import re
7- from typing import TYPE_CHECKING , Any , Callable
7+ from typing import TYPE_CHECKING , Any , Callable , cast
88
99from docx .oxml .ns import nsdecls , qn
1010from docx .oxml .parser import parse_xml
@@ -45,14 +45,14 @@ class CT_CoreProperties(BaseOxmlElement):
4545 _coreProperties_tmpl = "<cp:coreProperties %s/>\n " % nsdecls ("cp" , "dc" , "dcterms" )
4646
4747 @classmethod
48- def new (cls ):
48+ def new (cls ) -> CT_CoreProperties :
4949 """Return a new `<cp:coreProperties>` element."""
5050 xml = cls ._coreProperties_tmpl
51- coreProperties = parse_xml (xml )
51+ coreProperties = cast ( CT_CoreProperties , parse_xml (xml ) )
5252 return coreProperties
5353
5454 @property
55- def author_text (self ):
55+ def author_text (self ) -> str :
5656 """The text in the `dc:creator` child element."""
5757 return self ._text_of_element ("creator" )
5858
@@ -77,55 +77,55 @@ def comments_text(self, value: str):
7777 self ._set_element_text ("description" , value )
7878
7979 @property
80- def contentStatus_text (self ):
80+ def contentStatus_text (self ) -> str :
8181 return self ._text_of_element ("contentStatus" )
8282
8383 @contentStatus_text .setter
8484 def contentStatus_text (self , value : str ):
8585 self ._set_element_text ("contentStatus" , value )
8686
8787 @property
88- def created_datetime (self ):
88+ def created_datetime (self ) -> dt . datetime | None :
8989 return self ._datetime_of_element ("created" )
9090
9191 @created_datetime .setter
9292 def created_datetime (self , value : dt .datetime ):
9393 self ._set_element_datetime ("created" , value )
9494
9595 @property
96- def identifier_text (self ):
96+ def identifier_text (self ) -> str :
9797 return self ._text_of_element ("identifier" )
9898
9999 @identifier_text .setter
100100 def identifier_text (self , value : str ):
101101 self ._set_element_text ("identifier" , value )
102102
103103 @property
104- def keywords_text (self ):
104+ def keywords_text (self ) -> str :
105105 return self ._text_of_element ("keywords" )
106106
107107 @keywords_text .setter
108108 def keywords_text (self , value : str ):
109109 self ._set_element_text ("keywords" , value )
110110
111111 @property
112- def language_text (self ):
112+ def language_text (self ) -> str :
113113 return self ._text_of_element ("language" )
114114
115115 @language_text .setter
116116 def language_text (self , value : str ):
117117 self ._set_element_text ("language" , value )
118118
119119 @property
120- def lastModifiedBy_text (self ):
120+ def lastModifiedBy_text (self ) -> str :
121121 return self ._text_of_element ("lastModifiedBy" )
122122
123123 @lastModifiedBy_text .setter
124124 def lastModifiedBy_text (self , value : str ):
125125 self ._set_element_text ("lastModifiedBy" , value )
126126
127127 @property
128- def lastPrinted_datetime (self ):
128+ def lastPrinted_datetime (self ) -> dt . datetime | None :
129129 return self ._datetime_of_element ("lastPrinted" )
130130
131131 @lastPrinted_datetime .setter
@@ -141,7 +141,7 @@ def modified_datetime(self, value: dt.datetime):
141141 self ._set_element_datetime ("modified" , value )
142142
143143 @property
144- def revision_number (self ):
144+ def revision_number (self ) -> int :
145145 """Integer value of revision property."""
146146 revision = self .revision
147147 if revision is None :
@@ -167,23 +167,23 @@ def revision_number(self, value: int):
167167 revision .text = str (value )
168168
169169 @property
170- def subject_text (self ):
170+ def subject_text (self ) -> str :
171171 return self ._text_of_element ("subject" )
172172
173173 @subject_text .setter
174174 def subject_text (self , value : str ):
175175 self ._set_element_text ("subject" , value )
176176
177177 @property
178- def title_text (self ):
178+ def title_text (self ) -> str :
179179 return self ._text_of_element ("title" )
180180
181181 @title_text .setter
182182 def title_text (self , value : str ):
183183 self ._set_element_text ("title" , value )
184184
185185 @property
186- def version_text (self ):
186+ def version_text (self ) -> str :
187187 return self ._text_of_element ("version" )
188188
189189 @version_text .setter
@@ -257,7 +257,7 @@ def _parse_W3CDTF_to_datetime(cls, w3cdtf_str: str) -> dt.datetime:
257257 dt_ = cls ._offset_dt (dt_ , offset_str )
258258 return dt_ .replace (tzinfo = dt .timezone .utc )
259259
260- def _set_element_datetime (self , prop_name : str , value : dt .datetime ):
260+ def _set_element_datetime (self , prop_name : str , value : dt .datetime ) -> None :
261261 """Set date/time value of child element having `prop_name` to `value`."""
262262 if not isinstance (value , dt .datetime ): # pyright: ignore[reportUnnecessaryIsInstance]
263263 tmpl = "property requires <type 'datetime.datetime'> object, got %s"
0 commit comments