Repository navigation
Commit fb1fce0
Implement pyexpat ordered_attributes
When `ordered_attributes` is set, report attributes to the
StartElementHandler as a flat `[name, value, ...]` list matching
CPython's my_StartElementHandler, instead of always passing a dict.
`xml.etree.ElementTree` and `xml.dom.minidom` (via expatbuilder) both
enable this flag and rely on the flat-list contract, so parsing any
element with attributes previously failed: the dict made `_start` do
integer indexing, raising KeyError which was silently swallowed by the
handler invoker, leaving the tree empty ("missing toplevel element").
Reference (CPython 3.14):
https://github.com/python/cpython/blob/3.14/Modules/pyexpat.c#L439-L443
Remove `@unittest.expectedFailure` from tests that now pass
(23 in test_xml_etree, 15 in test_minidom).
Assisted-by: Claude:claude-opus-4-8
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent 1205fd2 commit fb1fce0
3 files changed
Lines changed: 24 additions & 50 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
553 | 553 | | |
554 | 554 | | |
555 | 555 | | |
556 | | - | |
557 | 556 | | |
558 | 557 | | |
559 | 558 | | |
| |||
601 | 600 | | |
602 | 601 | | |
603 | 602 | | |
604 | | - | |
605 | 603 | | |
606 | 604 | | |
607 | 605 | | |
| |||
705 | 703 | | |
706 | 704 | | |
707 | 705 | | |
708 | | - | |
709 | 706 | | |
710 | 707 | | |
711 | 708 | | |
| |||
715 | 712 | | |
716 | 713 | | |
717 | 714 | | |
718 | | - | |
719 | 715 | | |
720 | 716 | | |
721 | 717 | | |
| |||
788 | 784 | | |
789 | 785 | | |
790 | 786 | | |
791 | | - | |
792 | 787 | | |
793 | 788 | | |
794 | 789 | | |
| |||
940 | 935 | | |
941 | 936 | | |
942 | 937 | | |
943 | | - | |
944 | 938 | | |
945 | 939 | | |
946 | 940 | | |
947 | | - | |
948 | 941 | | |
949 | 942 | | |
950 | 943 | | |
| |||
1336 | 1329 | | |
1337 | 1330 | | |
1338 | 1331 | | |
1339 | | - | |
1340 | 1332 | | |
1341 | 1333 | | |
1342 | 1334 | | |
| |||
1541 | 1533 | | |
1542 | 1534 | | |
1543 | 1535 | | |
1544 | | - | |
1545 | 1536 | | |
1546 | 1537 | | |
1547 | 1538 | | |
| |||
1575 | 1566 | | |
1576 | 1567 | | |
1577 | 1568 | | |
1578 | | - | |
1579 | 1569 | | |
1580 | 1570 | | |
1581 | 1571 | | |
| |||
1607 | 1597 | | |
1608 | 1598 | | |
1609 | 1599 | | |
1610 | | - | |
1611 | 1600 | | |
1612 | 1601 | | |
1613 | 1602 | | |
| |||
1644 | 1633 | | |
1645 | 1634 | | |
1646 | 1635 | | |
1647 | | - | |
1648 | 1636 | | |
1649 | 1637 | | |
1650 | 1638 | | |
| |||
1766 | 1754 | | |
1767 | 1755 | | |
1768 | 1756 | | |
1769 | | - | |
1770 | 1757 | | |
1771 | 1758 | | |
1772 | 1759 | | |
1773 | 1760 | | |
1774 | 1761 | | |
1775 | 1762 | | |
1776 | 1763 | | |
1777 | | - | |
1778 | 1764 | | |
1779 | 1765 | | |
1780 | 1766 | | |
1781 | 1767 | | |
1782 | 1768 | | |
1783 | | - | |
1784 | 1769 | | |
1785 | 1770 | | |
1786 | 1771 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
392 | 392 | | |
393 | 393 | | |
394 | 394 | | |
395 | | - | |
396 | 395 | | |
397 | 396 | | |
398 | 397 | | |
| |||
508 | 507 | | |
509 | 508 | | |
510 | 509 | | |
511 | | - | |
512 | 510 | | |
513 | 511 | | |
514 | 512 | | |
| |||
688 | 686 | | |
689 | 687 | | |
690 | 688 | | |
691 | | - | |
692 | 689 | | |
693 | 690 | | |
694 | 691 | | |
| |||
1091 | 1088 | | |
1092 | 1089 | | |
1093 | 1090 | | |
1094 | | - | |
1095 | 1091 | | |
1096 | 1092 | | |
1097 | 1093 | | |
| |||
1335 | 1331 | | |
1336 | 1332 | | |
1337 | 1333 | | |
1338 | | - | |
1339 | 1334 | | |
1340 | 1335 | | |
1341 | 1336 | | |
| |||
1361 | 1356 | | |
1362 | 1357 | | |
1363 | 1358 | | |
1364 | | - | |
1365 | 1359 | | |
1366 | 1360 | | |
1367 | 1361 | | |
| |||
1374 | 1368 | | |
1375 | 1369 | | |
1376 | 1370 | | |
1377 | | - | |
1378 | 1371 | | |
1379 | 1372 | | |
1380 | 1373 | | |
| |||
1475 | 1468 | | |
1476 | 1469 | | |
1477 | 1470 | | |
1478 | | - | |
1479 | 1471 | | |
1480 | 1472 | | |
1481 | 1473 | | |
| |||
1514 | 1506 | | |
1515 | 1507 | | |
1516 | 1508 | | |
1517 | | - | |
1518 | 1509 | | |
1519 | 1510 | | |
1520 | 1511 | | |
| |||
2041 | 2032 | | |
2042 | 2033 | | |
2043 | 2034 | | |
2044 | | - | |
2045 | 2035 | | |
2046 | 2036 | | |
2047 | 2037 | | |
| |||
2056 | 2046 | | |
2057 | 2047 | | |
2058 | 2048 | | |
2059 | | - | |
2060 | 2049 | | |
2061 | 2050 | | |
2062 | 2051 | | |
| |||
2121 | 2110 | | |
2122 | 2111 | | |
2123 | 2112 | | |
2124 | | - | |
2125 | 2113 | | |
2126 | 2114 | | |
2127 | 2115 | | |
2128 | 2116 | | |
2129 | 2117 | | |
2130 | 2118 | | |
2131 | 2119 | | |
2132 | | - | |
2133 | 2120 | | |
2134 | 2121 | | |
2135 | 2122 | | |
| |||
2234 | 2221 | | |
2235 | 2222 | | |
2236 | 2223 | | |
2237 | | - | |
2238 | 2224 | | |
2239 | 2225 | | |
2240 | 2226 | | |
| |||
2258 | 2244 | | |
2259 | 2245 | | |
2260 | 2246 | | |
2261 | | - | |
2262 | 2247 | | |
2263 | 2248 | | |
2264 | 2249 | | |
| |||
2345 | 2330 | | |
2346 | 2331 | | |
2347 | 2332 | | |
2348 | | - | |
2349 | 2333 | | |
2350 | 2334 | | |
2351 | 2335 | | |
| |||
2461 | 2445 | | |
2462 | 2446 | | |
2463 | 2447 | | |
2464 | | - | |
2465 | 2448 | | |
2466 | 2449 | | |
2467 | 2450 | | |
| |||
2533 | 2516 | | |
2534 | 2517 | | |
2535 | 2518 | | |
2536 | | - | |
2537 | 2519 | | |
2538 | 2520 | | |
2539 | 2521 | | |
| |||
3355 | 3337 | | |
3356 | 3338 | | |
3357 | 3339 | | |
3358 | | - | |
3359 | 3340 | | |
3360 | 3341 | | |
3361 | 3342 | | |
| |||
3379 | 3360 | | |
3380 | 3361 | | |
3381 | 3362 | | |
3382 | | - | |
3383 | 3363 | | |
3384 | 3364 | | |
3385 | 3365 | | |
| |||
3402 | 3382 | | |
3403 | 3383 | | |
3404 | 3384 | | |
3405 | | - | |
3406 | 3385 | | |
3407 | 3386 | | |
3408 | 3387 | | |
| |||
3591 | 3570 | | |
3592 | 3571 | | |
3593 | 3572 | | |
3594 | | - | |
3595 | 3573 | | |
3596 | 3574 | | |
3597 | 3575 | | |
| |||
4576 | 4554 | | |
4577 | 4555 | | |
4578 | 4556 | | |
4579 | | - | |
4580 | 4557 | | |
4581 | 4558 | | |
4582 | 4559 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
| 46 | + | |
| 47 | + | |
47 | 48 | | |
48 | 49 | | |
49 | 50 | | |
| |||
355 | 356 | | |
356 | 357 | | |
357 | 358 | | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
365 | | - | |
366 | | - | |
367 | | - | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
368 | 380 | | |
369 | 381 | | |
370 | | - | |
| 382 | + | |
371 | 383 | | |
372 | 384 | | |
373 | 385 | | |
| |||
0 commit comments