Repository navigation
Commit a444ffb
authored
* Convert the math.ldexp() mantissa like any float argument
ldexp() accepted only a float or an int as x and raised TypeError for
anything else, so an object with __float__ or __index__ was refused and
an exception raised by __float__ was replaced. Bind x as ArgIntoFloat,
which goes through the float protocol like the other math functions.
Assisted-by: Claude Code:claude-opus-5-5
* Read a float subclass directly in ArgIntoFloat
ArgIntoFloat read the value of an exact float but called __float__ on
a float subclass, so a subclass overriding __float__ changed the
result of math functions, struct packing, %-formatting and every other
float argument. PyFloat_AsDouble, which ArgIntoFloat stands for, reads
the value of any float instance and calls __float__ only for other
types.
Assisted-by: Claude Code:claude-opus-5-5
1 parent 95cde75 commit a444ffb
3 files changed
Lines changed: 42 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
14 | | - | |
15 | | - | |
| 13 | + | |
16 | 14 | | |
17 | 15 | | |
18 | 16 | | |
| |||
457 | 455 | | |
458 | 456 | | |
459 | 457 | | |
460 | | - | |
| 458 | + | |
461 | 459 | | |
462 | 460 | | |
463 | 461 | | |
| |||
466 | 464 | | |
467 | 465 | | |
468 | 466 | | |
469 | | - | |
470 | | - | |
471 | | - | |
472 | | - | |
473 | | - | |
| 467 | + | |
| 468 | + | |
474 | 469 | | |
475 | 470 | | |
476 | 471 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
91 | 97 | | |
92 | 98 | | |
93 | 99 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
541 | 541 | | |
542 | 542 | | |
543 | 543 | | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
0 commit comments