This change addresses Python dictionary key translation issues. When the type of `props` passed to the resource is decorated with `@input_type`, the type's and resource's property name metadata will be used for dict key translations instead of the resource's `translate_input_property` and `translate_output_property` methods. The generated provider SDKs will be updated to opt-in to this new behavior: - FIX: Keys in user-defined dicts will no longer be unintentionally translated/modified. - BREAKING: Dictionary keys in nested output classes are now consistently snake_case. If accessing camelCase keys from such output classes, move to accessing the values via the snake_case property getters (or snake_case keys). Generated SDKs will log a warning when accessing camelCase keys. When serializing inputs: - If a value is a dict and the associated type is an input type, the dict's keys will be translated based on the input type's property name metadata. - If a value is a dict and the associated type is a dict (or Mapping), the dict's keys will _not_ be translated. When resolving outputs: - If a value is a dict and the associated type is an output type, the dict's keys will be translated based on the output type's property name metadata. - If a value is a dict and the associated type is a dict (or Mapping), the dict's keys will _not_ be translated. |
||
---|---|---|
.. | ||
cmd | ||
dist | ||
lib | ||
.gitignore | ||
.pylintrc | ||
Makefile | ||
mypy.ini | ||
Pipfile | ||
python.go | ||
python_test.go | ||
shim_unix.go | ||
shim_windows.go |