|
4 | 4 | from collections.abc import Callable, Iterable, Mapping |
5 | 5 | from typing import TYPE_CHECKING, Any, Final, Literal, TypeVar |
6 | 6 |
|
7 | | -from attrs import NOTHING, Attribute, Converter, Factory |
| 7 | +from attrs import NOTHING, Attribute, Converter, Factory, evolve |
8 | 8 | from typing_extensions import NoDefault |
9 | 9 |
|
10 | 10 | from .._compat import ( |
@@ -124,6 +124,8 @@ def make_dict_unstructure_fn_from_attrs( |
124 | 124 | continue |
125 | 125 | if override.rename is None: |
126 | 126 | kn = attr_name if not _cattrs_use_alias else a.alias |
| 127 | + if kn != attr_name: |
| 128 | + kwargs[attr_name] = evolve(override, rename=kn) |
127 | 129 | else: |
128 | 130 | kn = override.rename |
129 | 131 | d = a.default |
@@ -435,6 +437,8 @@ def make_dict_structure_fn_from_attrs( |
435 | 437 | ian = a.alias |
436 | 438 | if override.rename is None: |
437 | 439 | kn = an if not _cattrs_use_alias else a.alias |
| 440 | + if kn != an: |
| 441 | + kwargs[an] = evolve(override, rename=kn) |
438 | 442 | else: |
439 | 443 | kn = override.rename |
440 | 444 |
|
@@ -562,6 +566,8 @@ def make_dict_structure_fn_from_attrs( |
562 | 566 |
|
563 | 567 | if override.rename is None: |
564 | 568 | kn = an if not _cattrs_use_alias else a.alias |
| 569 | + if kn != an: |
| 570 | + kwargs[an] = evolve(override, rename=kn) |
565 | 571 | else: |
566 | 572 | kn = override.rename |
567 | 573 | allowed_fields.add(kn) |
@@ -631,6 +637,8 @@ def make_dict_structure_fn_from_attrs( |
631 | 637 |
|
632 | 638 | if override.rename is None: |
633 | 639 | kn = an if not _cattrs_use_alias else a.alias |
| 640 | + if kn != an: |
| 641 | + kwargs[an] = evolve(override, rename=kn) |
634 | 642 | else: |
635 | 643 | kn = override.rename |
636 | 644 | allowed_fields.add(kn) |
|
0 commit comments