First tagged release of pref.
Highlights
PrefOrderedSet
exists()andget(default=...)distinguish "never set" from "set to empty"add()/discard()and__contains__/__len__/__iter__for incremental set mutationclear()to reset
Lifecycle
close()and context-manager support onPrefOrderedSetandPref(fixes a Windows open-handle leak)
Pref
reset()to drop a preference group;file_namedefaults unified withPrefOrderedSet
Other
SQLitePath.tables(); newPrefStorefactory- GitHub Actions CI running pytest on ubuntu/windows across Python 3.10–3.15