Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mahmoud/boltons
๐ฉ Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library. Nothing like Michael Bolton.
https://github.com/mahmoud/boltons
cache data-science data-structures file json python queue recursive standard-library statistics utilities
Last synced: 6 days ago
JSON representation
๐ฉ Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library. Nothing like Michael Bolton.
- Host: GitHub
- URL: https://github.com/mahmoud/boltons
- Owner: mahmoud
- License: other
- Created: 2013-02-20T06:17:12.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2024-12-23T17:15:41.000Z (20 days ago)
- Last Synced: 2024-12-30T13:22:43.530Z (13 days ago)
- Topics: cache, data-science, data-structures, file, json, python, queue, recursive, standard-library, statistics, utilities
- Language: Python
- Homepage: https://boltons.readthedocs.org
- Size: 1.85 MB
- Stars: 6,545
- Watchers: 140
- Forks: 353
- Open Issues: 66
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome-starred - boltons - Like builtins, but boltons. Constructs/recipes/snippets that would be handy in the standard library. Nothing like Michael Bolton. (Python)
- best-of-python - GitHub - 39% open ยท โฑ๏ธ 28.04.2024): (General Utilities)
- awesome-list - Boltons - A set of over 230 BSD-licensed, pure-Python utilities in the same spirit as โ and yet conspicuously missing from โ the standard library. (Containers & Language Extentions & Linting / For Python)
- starred-awesome - boltons - ๐ฉ Like builtins, but boltons. Constructs/recipes/snippets that would be handy in the standard library. Nothing like Michael Bolton. (Python)
- StarryDivineSky - mahmoud/boltons
README
# Boltons
*boltons should be builtins.*
**Boltons** is a set of over 230 BSD-licensed, pure-Python utilities
in the same spirit as โ and yet conspicuously missing from โ
[the standard library][stdlib], including:* [Atomic file saving][atomic], bolted on with [fileutils][fileutils]
* A highly-optimized [OrderedMultiDict][omd], in [dictutils][dictutils]
* *Two* types of [PriorityQueue][pq], in [queueutils][queueutils]
* [Chunked][chunked] and [windowed][windowed] iteration, in [iterutils][iterutils]
* Recursive data structure [iteration and merging][remap], with [iterutils.remap][iterutils.remap]
* Exponential backoff functionality, including jitter, through [iterutils.backoff][iterutils.backoff]
* A full-featured [TracebackInfo][tbinfo] type, for representing stack traces,
in [tbutils][tbutils]**[Full and extensive docs are available on Read The Docs.][rtd]** See
what's new [by checking the CHANGELOG][changelog].Boltons is tested against Python 3.7-3.13, as well as PyPy3.
[stdlib]: https://docs.python.org/3/library/index.html
[rtd]: https://boltons.readthedocs.org/en/latest/
[changelog]: https://github.com/mahmoud/boltons/blob/master/CHANGELOG.md[atomic]: https://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.atomic_save
[omd]: https://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OrderedMultiDict
[pq]: https://boltons.readthedocs.org/en/latest/queueutils.html#boltons.queueutils.PriorityQueue
[chunked]: https://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.chunked
[windowed]: https://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.windowed
[tbinfo]: https://boltons.readthedocs.org/en/latest/tbutils.html#boltons.tbutils.TracebackInfo[fileutils]: https://boltons.readthedocs.org/en/latest/fileutils.html#module-boltons.fileutils
[ioutils]: https://boltons.readthedocs.org/en/latest/ioutils.html#module-boltons.ioutils
[dictutils]: https://boltons.readthedocs.org/en/latest/dictutils.html#module-boltons.dictutils
[queueutils]: https://boltons.readthedocs.org/en/latest/queueutils.html#module-boltons.queueutils
[iterutils]: https://boltons.readthedocs.org/en/latest/iterutils.html#module-boltons.iterutils
[iterutils.remap]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.remap
[iterutils.backoff]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.backoff
[tbutils]: https://boltons.readthedocs.org/en/latest/tbutils.html#module-boltons.tbutils[remap]: http://sedimental.org/remap.html
## Installation
Boltons can be added to a project in a few ways. There's the obvious one:
```bash
pip install boltons
```
On macOS, it can also be installed via [MacPorts](https://ports.macports.org/port/py-boltons/summary):```bash
sudo port install py-boltons
```Then, [thanks to PyPI][boltons_pypi], dozens of boltons are just an import away:
```python
from boltons.cacheutils import LRU
my_cache = LRU()
```However, due to the nature of utilities, application developers might
want to consider other options, including vendorization of individual
modules into a project. Boltons is pure-Python and has no
dependencies. If the whole project is too big, each module is
independent, and can be copied directly into a project. See the
[Integration][integration] section of the docs for more details.[boltons_pypi]: https://pypi.python.org/pypi/boltons
[integration]: https://boltons.readthedocs.org/en/latest/architecture.html#integration## Third-party packages
The majority of boltons strive to be "good enough" for a wide range of
basic uses, leaving advanced use cases to Python's [myriad specialized
3rd-party libraries][pypi]. In many cases the respective ``boltons`` module
will describe 3rd-party alternatives worth investigating when use
cases outgrow `boltons`. If you've found a natural "next-step"
library worth mentioning, see the next section![pypi]: https://pypi.python.org/pypi
## Gaps
Found something missing in the standard library that should be in
`boltons`? Found something missing in `boltons`? First, take a
moment to read the very brief [architecture statement][architecture] to make
sure the functionality would be a good fit.Then, if you are very motivated, submit [a Pull Request][prs]. Otherwise,
submit a short feature request on [the Issues page][issues], and we will
figure something out.[architecture]: https://boltons.readthedocs.org/en/latest/architecture.html
[issues]: https://github.com/mahmoud/boltons/issues
[prs]: https://github.com/mahmoud/boltons/pulls