One function
_parse_conf_data in dynaconf/dynaconf
The author described this change as “fix: don't treat a string sharing a converter prefix as a cast (#1412)”. It counts as a record because the check below fails on the code as it stood at 93e49da9e and passes on 5c50a9a64, with nothing else changed between the two runs.
Projectdynaconf/dynaconf
Fix saved2026-06-29
Sharing licenceMIT · LICENSE
Change size+1 −1
What the code was meant to do, written into the code itself as a docstring
@int @bool @float @json (for lists and dicts) strings does not need converters export DYNACONF_DEFAULT_THEME='material' export DYNACONF_DEBUG='@bool True' export DYNACONF_DEBUG_TOOLBAR_ENABLED='@bool False' export DYNACONF_PAGINATION_PER_PAGE='@int 20' export DYNACONF_MONGODB_SETTINGS='@json {"DB": "quokka_db"}' export DYNACONF_ALLOWED_EXTENSIONS='@json ["jpg", "png"]'
The change
| 24 | 24 | castenabled | |
| 25 | 25 | and data | |
| 26 | 26 | and isinstance(data, str) | |
| 27 | - | and data.startswith(tuple(converters.keys())) | |
| 27 | + | and data.partition(" ")[0] in converters | |
| 28 | 28 | ): | |
| 29 | 29 | # Check combination token is used | |
| 30 | 30 | comb_token = re.match( |
The check that tells the two apart
fail→pass·tests/test_utils.py::test_string_starting_with_converter_prefix_is_not_cast
Check file tests/test_utils.py, taken without changes from the fix and copied onto the older code, so the exact same check runs against both versions.
Origin and history
The code before it93e49da9e08ffd250d93b0a55bf543d21fb3a15a
Broken version dated2026-06-28
Moduledynaconf.utils.parse_conf
Units changed_parse_conf_data
Fingerprint3bc3707607b91ae9
Checked2026-08-18 by goldset/0.1
Every field above is generated by our program. None of it is written by hand.
Other bugs found in dynaconf/dynaconf
- 2026-08-05find_the_correct_casing
- 2026-08-01get_history
- 2026-07-31fix: add __deepcopy__ to DataDict to match DataList (#1440)
- 2026-07-29normalize_kwargs
- 2026-07-29handle_metavalues
- 2026-07-29object_merge