|
1 | 1 | from _typeshed import Incomplete |
2 | 2 | from abc import abstractmethod |
3 | 3 | from collections.abc import Callable |
4 | | -from typing import IO, Any, Literal, Protocol, TypeAlias, type_check_only |
5 | | -from typing_extensions import Self |
| 4 | +from typing import IO, Any, Literal, Protocol, TypeAlias, TypedDict, type_check_only |
| 5 | +from typing_extensions import Self, Unpack |
6 | 6 |
|
7 | 7 | from reportlab.pdfgen.canvas import Canvas |
8 | 8 | from reportlab.platypus.flowables import Flowable |
@@ -181,6 +181,54 @@ class PageAccumulator: |
181 | 181 | def pageEndAction(self, canv: Canvas, doc: BaseDocTemplate) -> None: ... |
182 | 182 | def onDrawStr(self, value: object, *args) -> _OnDrawStr: ... |
183 | 183 |
|
| 184 | +@type_check_only |
| 185 | +class _DocTemplateKwargs(TypedDict, total=False): |
| 186 | + pagesize: Incomplete |
| 187 | + pageTemplates: list[PageTemplate] |
| 188 | + showBoundary: Incomplete |
| 189 | + width: float |
| 190 | + height: float |
| 191 | + leftMargin: float |
| 192 | + rightMargin: float |
| 193 | + topMargin: float |
| 194 | + bottomMargin: float |
| 195 | + allowSplitting: Incomplete |
| 196 | + title: Incomplete | None |
| 197 | + author: Incomplete | None |
| 198 | + subject: Incomplete | None |
| 199 | + creator: Incomplete | None |
| 200 | + producer: Incomplete | None |
| 201 | + keywords: list[Incomplete] |
| 202 | + invariant: Incomplete | None |
| 203 | + pageCompression: Incomplete | None |
| 204 | + rotation: Incomplete |
| 205 | + encrypt: Incomplete | None |
| 206 | + cropMarks: Incomplete | None |
| 207 | + enforceColorSpace: Incomplete | None |
| 208 | + displayDocTitle: Incomplete | None |
| 209 | + lang: Incomplete | None |
| 210 | + initialFontName: Incomplete | None |
| 211 | + initialFontSize: Incomplete | None |
| 212 | + initialLeading: Incomplete | None |
| 213 | + cropBox: Incomplete | None |
| 214 | + artBox: Incomplete | None |
| 215 | + trimBox: Incomplete | None |
| 216 | + bleedBox: Incomplete | None |
| 217 | + keepTogetherClass: type[Flowable] |
| 218 | + hideToolbar: Incomplete | None |
| 219 | + hideMenubar: Incomplete | None |
| 220 | + hideWindowUI: Incomplete | None |
| 221 | + fitWindow: Incomplete | None |
| 222 | + centerWindow: Incomplete | None |
| 223 | + nonFullScreenPageMode: Incomplete | None |
| 224 | + direction: Incomplete | None |
| 225 | + viewArea: Incomplete | None |
| 226 | + viewClip: Incomplete | None |
| 227 | + printArea: Incomplete | None |
| 228 | + printClip: Incomplete | None |
| 229 | + printScaling: Incomplete | None |
| 230 | + duplex: Incomplete | None |
| 231 | + |
184 | 232 | class BaseDocTemplate: |
185 | 233 | filename: Incomplete |
186 | 234 | pagesize: Incomplete |
@@ -233,8 +281,7 @@ class BaseDocTemplate: |
233 | 281 | page: int |
234 | 282 | frame: Frame |
235 | 283 | canv: Canvas |
236 | | - # TODO: Use TypedDict with Unpack for **kw |
237 | | - def __init__(self, filename: str | IO[bytes], **kw) -> None: ... |
| 284 | + def __init__(self, filename: str | IO[bytes], **kw: Unpack[_DocTemplateKwargs]) -> None: ... |
238 | 285 | def setPageCallBack(self, func: Callable[[int], object] | None) -> None: ... |
239 | 286 | def setProgressCallBack(self, func: Callable[[str, int], object] | None) -> None: ... |
240 | 287 | def clean_hanging(self) -> None: ... |
|
0 commit comments