(*dictionaries: dict | None)
| 6 | |
| 7 | |
| 8 | def recursive_merge(*dictionaries: dict | None) -> dict[str, Any]: |
| 9 | result: dict[str, Any] = {} |
| 10 | for dictionary in dictionaries: |
| 11 | if dictionary is None: |
| 12 | continue |
| 13 | for key, value in dictionary.items(): |
| 14 | if value is UNSET: |
| 15 | continue |
| 16 | if key in result and isinstance(result[key], dict) and isinstance(value, dict): |
| 17 | result[key] = recursive_merge(result[key], value) |
| 18 | elif isinstance(value, dict): |
| 19 | result[key] = recursive_merge(value) |
| 20 | else: |
| 21 | result[key] = value |
| 22 | return result |
no outgoing calls