Changelog
SunsetSettings 0.7.1 (2026-02-09)
Added Python 3.14 to supported versions.
Added temporary workaround to let
Listindexing and slicing typecheck correctly with ty.Switched to dynamic versioning from git tags.
SunsetSettings 0.7.0 (2025-06-29)
Added
AutoLoadercontext manager, which reloads the settings file when it is modified.Removed
onLoadedCall()methods. Use the regularonUpdateCall()methods instead.Methods that returned Iterators now return Iterables. Usage of Iterators was an implementation details that doesn’t need to be exposed.
Switched to Pyright for automated type checks.
SunsetSettings 0.6.1 (2024-11-17)
Added Python 3.13 to officially supported versions.
Migrated to Hatch as the build and environment management system.
Arguments after the first position in
Settings.save()andSettings.autosave()methods are now keyword-only arguments.Fixed several subtle bugs that could occur when creating a
Bunchas a subclass of anotherBunch.Deprecated
Bunch.__post_init__()andSettings.__post_init__().
SunsetSettings 0.6.0 (2024-07-16)
Dropped support for Python 3.9.
Fixed a race condition in
NonHashableSet.Added
onLoadedCall()toKey,ListandBunchtypes, to call a callback after settings were just loaded. API is experimental, and may change.
SunsetSettings 0.5.6 (2024-06-17)
Removed
Selftype workaround now that mypy handles it properly.Fixed notification inhibition issue that caused update notifications to fail to fire.
SunsetSettings 0.5.5 (2024-02-18)
Moved some internal field properties into a new metadata attribute.
Major internals cleanup.
SunsetSettings 0.5.4 (2024-02-01)
Added Python 3.12 to officially supported versions.
Fixed regression where changing a section’s name might silently fail.
SunsetSettings 0.5.3 (2024-01-29)
Made some internal methods private to de-clutter the API namespace.
Documented some internal methods where it may make to expose them publically.
Renamed internal method
isPrivate()intoskipOnSave().
onUpdateCall()callbacks are now called for entities for whichskipOnSave()is true.Improved notification logic when a section is renamed or reparented.
Added
fallback()method toKey.
SunsetSettings 0.5.2 (2023-08-14)
Added more logging when
AutoSaverloads/saves.Added ability to create a
Keywith an explicit runtime type.Rolled back undocumented
Bunchdefault value override feature. It’s not dependable.
SunsetSettings 0.5.1 (2023-04-26)
Made deserializing an enum case-insensitive when the result is non-ambiguous.
Added ability to instantiate
Bunchwith default value overrides. This is still experimental and undocumented.
SunsetSettings 0.5.0 (2023-04-22)
Added ability to set a validator on a
Keyto restrict its possible values.Making a typo in a value when editing a settings file manually no longer causes the entry to be deleted on save.
Added ability to serialize
Enumsubclasses natively.Deprecated now unnecessary
SerializableEnumandSerializableFlagclasses.Added ability to pass a custom serializer when instantiating a
Key.Added ability to store any type in a
Key.
onUpdateCall()andonValueChangeCall()now accept callbacks with any return value.
SunsetSettings 0.4.0 (2023-03-22)
Renamed
BundletoBunch. Just makes more sense for something that holdsKeys.Added serializable
EnumandFlagsubclasses.
AutoSavernow expands ‘~’ to the current user’s home directory.Added atomic
updateValue()method toKey.
SunsetSettings 0.3.2 (2022-12-22)
Added
AutoSavercontext manager.
SunsetSettings 0.3.1 (2022-12-19)
Updated documentation links.
SunsetSettings 0.3.0 (2022-12-19)
Sphinx documentation added.
Renamed
Settingclass toKey.Renamed
Sectionclass toBundle.
Listoverhaul: it now supports bothBundleandKeyinstances.Removed need for
New*functions.Key,ListandBundleinstances can now be used directly inSettingsdefinitions.Removed need for explicit type annotations in
Settingsclass definitions.Renamed
List.iterAll()toiter()and added order parameter.Replaced
derive()andderiveAs()withnewSection()and assorted functions. - RenamedonKeyModifiedCall()toonUpdateCall().Added float to supported
Keyvalue types.Renamed
Settings.name()toSettings.sectionName()andSettings.setName()toSettings.setSectionName().
SunsetSettings 0.2.0 (2022-08-03)
Major docstring overhaul.
Minor API updates.
SunsetSettings 0.1.0 (2022-03-25)
Initial release. Code-complete and functional, but undocumented.