Boltons

Latest version: v25.0.0

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 6

25.0.0

_(February 2, 2025)_

- Added Python 3.13 support
- Replace deprecated `utcnow()`
- Add fsync to [`fileutils.atomic_save`][fileutils.atomic_save]
- Add [`fileutils.rotate_file`][fileutils.rotate_file]

24.1.0

_(November 1, 2024)_

- Added `max_depth` parameter to [`fileutils.iter_find_files`][fileutils.iter_find_files]
- Added `enter` parameter to [`iterutils.research`][iterutils.research] to support traversing custom data types
- Add optional print tracing for [`iterutils.remap`][iterutils.remap] for easier debugging
- Fixed [`typeutils.Sentinel`][typeutils.make_sentinel] copy behavior to return self
- Tentative Python 3.13 support ([365][i365], [366][i366])

[i365]: https://github.com/mahmoud/boltons/issues/365
[i366]: https://github.com/mahmoud/boltons/issues/366

24.0.0

Per the RFC in issue [365][i339], boltons is now **Python 3 only**. 3.7+ for now.
If you're a Python 2 user, feel free to pin at `boltons<24.0.0`.

Other minor changes:

- Added Python 3.12 support ([361][i361])
- Fix [dictutils.OneToOne][dictutils.OneToOne]'s `update()` behavior with empty iterables

[i339]: https://github.com/mahmoud/boltons/issues/339
[i361]: https://github.com/mahmoud/boltons/issues/361

23.1.1

_(November 1, 2023)_

Tiny release to include more test files in the sdist (source distribution) on PyPI.

23.1.0

_(October 31, 2023)_

- Add `fill`/`end` parameters for [`iterutils.windowed`][iterutils.windowed] and [`iterutils.pairwise`][iterutils.pairwise], respectively ([350][i350])
- Fix cache eviction for [`cacheutils.LRU`][cacheutils.LRU] ([348][i348])
- Fix OrderedMultiDict (OMD) pickleability under Py3 ([337][i337])
- `funcutils.copy_function` maintains kw-only defaults ([336][i336])
- Support OMD `ior` ([341][i341])

[i350]: https://github.com/mahmoud/boltons/issues/350
[i348]: https://github.com/mahmoud/boltons/issues/348
[i341]: https://github.com/mahmoud/boltons/issues/341
[i337]: https://github.com/mahmoud/boltons/issues/337
[i336]: https://github.com/mahmoud/boltons/issues/336
[cacheutils.LRU]: http://boltons.readthedocs.org/en/latest/cacheutils.html#boltons.cacheutils.LRU
[iterutils.windowed]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.windowed
[iterutils.pairwise]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.pairwise

23.0.0

_(February 19, 2023)_

- Overdue update for Python 3.10 and 3.11 support ([294][i294], [303][i303], [320][i320], [323][i323], [326][i326]/[327][i327])
- Add [iterutils.chunk_ranges][iterutils.chunk_ranges] ([312][i312])
- Improvements to `SpooledBytesIO`/`SpooledStringIO` ([305][i305])
- Bugfix for infinite daterange issue when start and stop is the same ([302][i302])
- Fix `Bits.as_list` behavior ([315][i315])

21.0.0

---

_(May 16, 2021)_

- Fix [OMD][dictutils.OrderedMultiDict].addlist when the added list is empty
- Add [funcutils.noop][funcutils.noop], satisfying [PEP 559](https://www.python.org/dev/peps/pep-0559/)
- Support lists for [iterutils.bucketize][iterutils.bucketize]
- Python 3.9 test fixes for OMD (PEP 584, see [271][i271])
- Make [typeutils.make_sentinel][typeutils.make_sentinel] more pickleable
- [jsonutils.reverse_iter_lines][jsonutils.reverse_iter_lines] now works on Py3 and Windows

[jsonutils.reverse_iter_lines]: http://boltons.readthedocs.org/en/latest/jsonutils.html#boltons.jsonutils.reverse_iter_lines
[funcutils.noop]: https://boltons.readthedocs.io/en/latest/funcutils.html#boltons.funcutils.noop
[i271]: https://github.com/mahmoud/boltons/issues/271

Page 1 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.