What's Changed
* add ProgressBar typing by matthiasdiener in https://github.com/inducer/pytools/pull/283
* export __version__ by matthiasdiener in https://github.com/inducer/pytools/pull/284
* fix numpy scalar hash for bigendian by matthiasdiener in https://github.com/inducer/pytools/pull/285
* Ruff SIM by inducer in https://github.com/inducer/pytools/pull/286
* KeyBuilder: warn on encountering NaN by matthiasdiener in https://github.com/inducer/pytools/pull/288
* fix NaN test by matthiasdiener in https://github.com/inducer/pytools/pull/289
* Enable and fix PGH ruff rules by alexfikl in https://github.com/inducer/pytools/pull/290
* Update links for badges in README by alexfikl in https://github.com/inducer/pytools/pull/291
* Table: add str_with_maxlen() by matthiasdiener in https://github.com/inducer/pytools/pull/292
* Don't duplicate `Taggable` when adding already-existing tag or removing non-existing tag by majosm in https://github.com/inducer/pytools/pull/293
New Contributors
* majosm made their first contribution in https://github.com/inducer/pytools/pull/293
**Full Changelog**: https://github.com/inducer/pytools/compare/v2025.1.1...v2025.1.2