|
22 | 22 | from __future__ import annotations |
23 | 23 |
|
24 | 24 | import copy |
25 | | -from collections.abc import Iterable, Iterator |
26 | 25 | from contextlib import suppress |
27 | 26 | from typing import TYPE_CHECKING, Literal, TypeVar, cast, overload |
28 | 27 |
|
29 | 28 | if TYPE_CHECKING: |
| 29 | + from collections.abc import Iterable, Iterator |
| 30 | + |
30 | 31 | from docx2python.depth_collector import Par |
31 | 32 |
|
32 | 33 | TextTable = list[list[list[list[list[str]]]]] |
@@ -129,26 +130,26 @@ def enum_at_depth( |
129 | 130 | ((1, 0, 1, 1), 'h') |
130 | 131 | """ |
131 | 132 | if depth == 1: |
132 | | - nested = cast(Iterable[_T], nested) |
| 133 | + nested = cast("Iterable[_T]", nested) |
133 | 134 | yield from (((i,), x_1) for i, x_1 in enumerate(nested)) |
134 | 135 | return |
135 | 136 | if depth == 2: |
136 | | - nested = cast(Iterable[Iterable[_T]], nested) |
| 137 | + nested = cast("Iterable[Iterable[_T]]", nested) |
137 | 138 | for i, x_2 in enumerate(nested): |
138 | 139 | for j_2, y_2 in enum_at_depth(x_2, 1): |
139 | 140 | yield ((i, *j_2), y_2) |
140 | 141 | elif depth == 3: |
141 | | - nested = cast(Iterable[Iterable[Iterable[_T]]], nested) |
| 142 | + nested = cast("Iterable[Iterable[Iterable[_T]]]", nested) |
142 | 143 | for i, x_3 in enumerate(nested): |
143 | 144 | for j_3, y_3 in enum_at_depth(x_3, 2): |
144 | 145 | yield ((i, *j_3), y_3) |
145 | 146 | elif depth == 4: |
146 | | - nested = cast(Iterable[Iterable[Iterable[Iterable[_T]]]], nested) |
| 147 | + nested = cast("Iterable[Iterable[Iterable[Iterable[_T]]]]", nested) |
147 | 148 | for i, x_4 in enumerate(nested): |
148 | 149 | for j_4, y_4 in enum_at_depth(x_4, 3): |
149 | 150 | yield ((i, *j_4), y_4) |
150 | 151 | elif depth == 5: |
151 | | - nested = cast(Iterable[Iterable[Iterable[Iterable[Iterable[_T]]]]], nested) |
| 152 | + nested = cast("Iterable[Iterable[Iterable[Iterable[Iterable[_T]]]]]", nested) |
152 | 153 | for i, x_5 in enumerate(nested): |
153 | 154 | for j_5, y_5 in enum_at_depth(x_5, 4): |
154 | 155 | yield ((i, *j_5), y_5) |
@@ -233,19 +234,19 @@ def iter_at_depth( |
233 | 234 | ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] |
234 | 235 | """ |
235 | 236 | if depth == 1: |
236 | | - nested = cast(list[_T], nested) |
| 237 | + nested = cast("list[_T]", nested) |
237 | 238 | return (x for _, x in enum_at_depth(nested, depth)) |
238 | 239 | if depth == 2: |
239 | | - nested = cast(list[list[_T]], nested) |
| 240 | + nested = cast("list[list[_T]]", nested) |
240 | 241 | return (x for _, x in enum_at_depth(nested, depth)) |
241 | 242 | if depth == 3: |
242 | | - nested = cast(list[list[list[_T]]], nested) |
| 243 | + nested = cast("list[list[list[_T]]]", nested) |
243 | 244 | return (x for _, x in enum_at_depth(nested, depth)) |
244 | 245 | if depth == 4: |
245 | | - nested = cast(list[list[list[list[_T]]]], nested) |
| 246 | + nested = cast("list[list[list[list[_T]]]]", nested) |
246 | 247 | return (x for _, x in enum_at_depth(nested, depth)) |
247 | 248 | if depth == 5: |
248 | | - nested = cast(list[list[list[list[list[_T]]]]], nested) |
| 249 | + nested = cast("list[list[list[list[list[_T]]]]]", nested) |
249 | 250 | return (x for _, x in enum_at_depth(nested, depth)) |
250 | 251 | msg = "depth argument must be 1, 2, 3, 4, or 5" |
251 | 252 | raise ValueError(msg) |
@@ -385,24 +386,24 @@ def get_html_map(tables: TextTable) -> str: |
385 | 386 | ``(0, 0, 0, 0) text``. |
386 | 387 | """ |
387 | 388 | # prepend index tuple to each paragraph |
388 | | - tables_4deep = cast(list[list[list[list[str]]]], copy.deepcopy(tables)) |
| 389 | + tables_4deep = cast("list[list[list[list[str]]]]", copy.deepcopy(tables)) |
389 | 390 | for (i, j, k, m), paragraph in enum_at_depth(tables, 4): |
390 | 391 | par_text = "".join(paragraph) |
391 | 392 | tables_4deep[i][j][k][m] = " ".join([str((i, j, k, m)), par_text]) |
392 | 393 |
|
393 | 394 | # wrap each paragraph in <pre> tags |
394 | | - tables_3deep = cast(list[list[list[str]]], tables_4deep) |
| 395 | + tables_3deep = cast("list[list[list[str]]]", tables_4deep) |
395 | 396 | for (i, j, k), cell in enum_at_depth(tables_4deep, 3): |
396 | 397 | cell_strs = (str(x) for x in cell) |
397 | 398 | tables_3deep[i][j][k] = "".join([f"<pre>{x}</pre>" for x in cell_strs]) |
398 | 399 |
|
399 | 400 | # wrap each cell in <td> tags |
400 | | - tables_2deep = cast(list[list[str]], tables_3deep) |
| 401 | + tables_2deep = cast("list[list[str]]", tables_3deep) |
401 | 402 | for (i, j), row in enum_at_depth(tables_3deep, 2): |
402 | 403 | tables_2deep[i][j] = "".join([f"<td>{x}</td>" for x in row]) |
403 | 404 |
|
404 | 405 | # wrap each row in <tr> tags |
405 | | - tables_1deep = cast(list[str], tables_2deep) |
| 406 | + tables_1deep = cast("list[str]", tables_2deep) |
406 | 407 | for (i,), table in enum_at_depth(tables_2deep, 1): |
407 | 408 | tables_1deep[i] = "".join(f"<tr>{x}</tr>" for x in table) |
408 | 409 |
|
|
0 commit comments