Commit 4097e7b
Fix constants argument silently discarding Constants subclasses
__init__ validated the constants argument with an exact-type check
(type(self.C) is not type(CONSTANTS)), so an instance of a Constants
subclass failed the check and was silently replaced with fresh
defaults, discarding the caller's configuration without any error.
Validate explicitly instead: None means a private per-instance
Constants (unchanged), any Constants instance — including subclasses —
is used as given, and anything else raises TypeError rather than being
silently swapped for defaults. The signature annotation now admits
None, which was always accepted and documented.
Also fix stale prose in customize.rst: "pass something falsey" no
longer describes the behavior (only None gets per-instance config now),
and the keyword argument is `constants`, not `constant`.
Closes #226
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent d7ad5b6 commit 4097e7b
4 files changed
Lines changed: 29 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
456 | 456 | | |
457 | 457 | | |
458 | 458 | | |
459 | | - | |
| 459 | + | |
460 | 460 | | |
461 | | - | |
462 | | - | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
463 | 464 | | |
464 | 465 | | |
465 | 466 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
98 | | - | |
| 98 | + | |
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
113 | 120 | | |
114 | | - | |
115 | | - | |
116 | 121 | | |
117 | 122 | | |
118 | 123 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
28 | 44 | | |
29 | 45 | | |
30 | 46 | | |
| |||
0 commit comments