{"id":13398333,"url":"https://github.com/mahmoud/boltons","last_synced_at":"2025-05-12T22:23:46.850Z","repository":{"id":40617425,"uuid":"8307391","full_name":"mahmoud/boltons","owner":"mahmoud","description":"🔩 Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library.  Nothing like Michael Bolton.","archived":false,"fork":false,"pushed_at":"2025-02-23T22:20:32.000Z","size":1903,"stargazers_count":6606,"open_issues_count":67,"forks_count":357,"subscribers_count":139,"default_branch":"master","last_synced_at":"2025-05-05T17:20:29.892Z","etag":null,"topics":["cache","data-science","data-structures","file","json","python","queue","recursive","standard-library","statistics","utilities"],"latest_commit_sha":null,"homepage":"https://boltons.readthedocs.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mahmoud.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-02-20T06:17:12.000Z","updated_at":"2025-05-05T04:26:42.000Z","dependencies_parsed_at":"2023-10-14T22:42:36.040Z","dependency_job_id":"3d0c0a68-cca2-4652-b41b-41c2c4d54c89","html_url":"https://github.com/mahmoud/boltons","commit_stats":{"total_commits":1437,"total_committers":94,"mean_commits":"15.287234042553191","dds":0.3750869867780098,"last_synced_commit":"827f193775a793716bc2615e939340c398ecd042"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoud%2Fboltons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoud%2Fboltons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoud%2Fboltons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoud%2Fboltons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mahmoud","download_url":"https://codeload.github.com/mahmoud/boltons/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253831636,"owners_count":21971126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cache","data-science","data-structures","file","json","python","queue","recursive","standard-library","statistics","utilities"],"created_at":"2024-07-30T19:00:23.063Z","updated_at":"2025-05-12T22:23:46.794Z","avatar_url":"https://github.com/mahmoud.png","language":"Python","funding_links":[],"categories":["Python","Miscellaneous","Python (144)","❓ Status: *unknown*","Containers \u0026 Language Extentions \u0026 Linting","杂项","Python 程序","Miscellaneous [🔝](#readme)","资源列表","General Utilities"],"sub_categories":["Development","For Python","网络服务_其他","杂项"],"readme":"# Boltons\n\n*boltons should be builtins.*\n\n\u003ca href=\"https://boltons.readthedocs.io/en/latest/\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.python.org/pypi/boltons\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/boltons.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://anaconda.org/conda-forge/boltons\"\u003e\u003cimg src=\"https://img.shields.io/conda/vn/conda-forge/boltons.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://ports.macports.org/port/py-boltons/summary\"\u003e\u003cimg src=\"https://repology.org/badge/version-for-repo/macports/python:boltons.svg?header=MacPorts\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.python.org/pypi/boltons\"\u003e\u003cimg src=\"https://img.shields.io/pypi/pyversions/boltons.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"http://calver.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/calver-YY.MINOR.MICRO-22bfda.svg\"\u003e\u003c/a\u003e\n\n**Boltons** is a set of over 230 BSD-licensed, pure-Python utilities\nin the same spirit as — and yet conspicuously missing from —\n[the standard library][stdlib], including:\n\n  * [Atomic file saving][atomic], bolted on with [fileutils][fileutils]\n  * A highly-optimized [OrderedMultiDict][omd], in [dictutils][dictutils]\n  * *Two* types of [PriorityQueue][pq], in [queueutils][queueutils]\n  * [Chunked][chunked] and [windowed][windowed] iteration, in [iterutils][iterutils]\n  * Recursive data structure [iteration and merging][remap], with [iterutils.remap][iterutils.remap]\n  * Exponential backoff functionality, including jitter, through [iterutils.backoff][iterutils.backoff]\n  * A full-featured [TracebackInfo][tbinfo] type, for representing stack traces,\n    in [tbutils][tbutils]\n\n**[Full and extensive docs are available on Read The Docs.][rtd]** See\nwhat's new [by checking the CHANGELOG][changelog].\n\nBoltons is tested against Python 3.7-3.13, as well as PyPy3.\n\n[stdlib]: https://docs.python.org/3/library/index.html\n[rtd]: https://boltons.readthedocs.org/en/latest/\n[changelog]: https://github.com/mahmoud/boltons/blob/master/CHANGELOG.md\n\n[atomic]: https://boltons.readthedocs.org/en/latest/fileutils.html#boltons.fileutils.atomic_save\n[omd]: https://boltons.readthedocs.org/en/latest/dictutils.html#boltons.dictutils.OrderedMultiDict\n[pq]: https://boltons.readthedocs.org/en/latest/queueutils.html#boltons.queueutils.PriorityQueue\n[chunked]: https://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.chunked\n[windowed]: https://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.windowed\n[tbinfo]: https://boltons.readthedocs.org/en/latest/tbutils.html#boltons.tbutils.TracebackInfo\n\n[fileutils]: https://boltons.readthedocs.org/en/latest/fileutils.html#module-boltons.fileutils\n[ioutils]: https://boltons.readthedocs.org/en/latest/ioutils.html#module-boltons.ioutils\n[dictutils]: https://boltons.readthedocs.org/en/latest/dictutils.html#module-boltons.dictutils\n[queueutils]: https://boltons.readthedocs.org/en/latest/queueutils.html#module-boltons.queueutils\n[iterutils]: https://boltons.readthedocs.org/en/latest/iterutils.html#module-boltons.iterutils\n[iterutils.remap]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.remap\n[iterutils.backoff]: http://boltons.readthedocs.org/en/latest/iterutils.html#boltons.iterutils.backoff\n[tbutils]: https://boltons.readthedocs.org/en/latest/tbutils.html#module-boltons.tbutils\n\n[remap]: http://sedimental.org/remap.html\n\n## Installation\n\nBoltons can be added to a project in a few ways. There's the obvious one:\n\n```bash\npip install boltons\n```\nOn macOS, it can also be installed via [MacPorts](https://ports.macports.org/port/py-boltons/summary):\n\n```bash\nsudo port install py-boltons\n```\n\n\nThen, [thanks to PyPI][boltons_pypi], dozens of boltons are just an import away:\n\n```python\nfrom boltons.cacheutils import LRU\nmy_cache = LRU()\n```\n\nHowever, due to the nature of utilities, application developers might\nwant to consider other options, including vendorization of individual\nmodules into a project. Boltons is pure-Python and has no\ndependencies. If the whole project is too big, each module is\nindependent, and can be copied directly into a project. See the\n[Integration][integration] section of the docs for more details.\n\n[boltons_pypi]: https://pypi.python.org/pypi/boltons\n[integration]: https://boltons.readthedocs.org/en/latest/architecture.html#integration\n\n## Third-party packages\n\nThe majority of boltons strive to be \"good enough\" for a wide range of\nbasic uses, leaving advanced use cases to Python's [myriad specialized\n3rd-party libraries][pypi]. In many cases the respective ``boltons`` module\nwill describe 3rd-party alternatives worth investigating when use\ncases outgrow `boltons`. If you've found a natural \"next-step\"\nlibrary worth mentioning, see the next section!\n\n[pypi]: https://pypi.python.org/pypi\n\n## Gaps\n\nFound something missing in the standard library that should be in\n`boltons`? Found something missing in `boltons`? First, take a\nmoment to read the very brief [architecture statement][architecture] to make\nsure the functionality would be a good fit.\n\nThen, if you are very motivated, submit [a Pull Request][prs]. Otherwise,\nsubmit a short feature request on [the Issues page][issues], and we will\nfigure something out.\n\n[architecture]: https://boltons.readthedocs.org/en/latest/architecture.html\n[issues]: https://github.com/mahmoud/boltons/issues\n[prs]: https://github.com/mahmoud/boltons/pulls\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahmoud%2Fboltons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmahmoud%2Fboltons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahmoud%2Fboltons/lists"}