boltons/docs/index.rst

139 lines
4.2 KiB
ReStructuredText
Raw Permalink Normal View History

2015-03-22 00:12:50 +00:00
.. boltons documentation master file, created on Sat Mar 21 00:34:18 2015.
boltons
=======
*boltons should be builtins.*
2019-02-24 02:33:40 +00:00
|release| |calver| |changelog|
2016-06-24 09:14:58 +00:00
**Boltons** is a set of pure-Python utilities in the same spirit as —
2016-11-04 20:00:04 +00:00
and yet conspicuously missing from — `the standard library`_,
including:
* :func:`Atomic file saving <boltons.fileutils.atomic_save>`, bolted on with
:mod:`~boltons.fileutils`
* A highly-optimized :class:`~boltons.dictutils.OrderedMultiDict`,
in :mod:`~boltons.dictutils`
* Two types of :class:`~boltons.queueutils.PriorityQueue`, in
2015-04-09 07:36:48 +00:00
:mod:`~boltons.queueutils`
* :func:`Chunked <boltons.iterutils.chunked>` and
2015-04-16 07:29:00 +00:00
:func:`windowed <boltons.iterutils.windowed>` iteration, in
2015-04-09 07:36:48 +00:00
:mod:`~boltons.iterutils`
* A full-featured :class:`~boltons.tbutils.TracebackInfo` type, for
2015-04-09 07:36:48 +00:00
representing stack traces, in :mod:`~boltons.tbutils`
* A lightweight :class:`UTC timezone <boltons.timeutils.UTC>`
available in :mod:`~boltons.timeutils`.
2015-09-24 10:00:56 +00:00
* Recursive mapping for nested data transforms, with :func:`remap
<boltons.iterutils.remap>`
2015-04-06 09:36:58 +00:00
2015-04-08 03:18:16 +00:00
And that's just a small selection. As of |today|, ``boltons`` is
|b_type_count| types and |b_func_count| functions, spread across
2019-01-12 04:24:57 +00:00
|b_mod_count| modules. See them all in the :ref:`genindex`, and see
what's new by `checking the CHANGELOG`_.
2015-04-08 03:18:16 +00:00
.. counts are appx 50, 75, and 23, respectively, as of initial docs writing
.. in mid 2016, the counts are now 62, 112, and 25, respectively
2015-04-08 03:18:16 +00:00
.. _the standard library: https://docs.python.org/3/library/index.html
.. _checking the CHANGELOG: https://github.com/mahmoud/boltons/blob/master/CHANGELOG.md
2015-04-06 09:36:58 +00:00
2016-06-24 09:14:58 +00:00
.. |release| image:: https://img.shields.io/pypi/v/boltons.svg
:target: https://pypi.python.org/pypi/boltons
.. |calver| image:: https://img.shields.io/badge/calver-YY.MINOR.MICRO-22bfda.svg
:target: http://calver.org
2019-02-24 02:33:40 +00:00
.. |changelog| image:: https://img.shields.io/badge/CHANGELOG-UPDATED-b84ad6.svg
:target: https://github.com/mahmoud/boltons/blob/master/CHANGELOG.md
2016-06-24 09:14:58 +00:00
2015-04-06 09:36:58 +00:00
Installation and Integration
----------------------------
Boltons can be added to a project in a few ways. There's the obvious one::
2015-03-22 00:12:50 +00:00
2015-04-06 09:36:58 +00:00
pip install boltons
2015-03-22 00:12:50 +00:00
On macOS, it can also be installed via `MacPorts`_::
sudo port install py-boltons
2015-04-08 03:18:16 +00:00
Then dozens of boltons are just an import away::
2015-03-22 09:56:24 +00:00
2015-04-06 09:36:58 +00:00
from boltons.cacheutils import LRU
lru_cache = LRU()
lru_cache['result'] = 'success'
2015-03-22 09:56:24 +00:00
2015-04-11 10:14:15 +00:00
Due to the nature of utilities, application developers might want to
consider other integration options. See the :ref:`Integration
<arch_integration>` section of the architecture document for more
details.
Boltons is tested against Python 3.7-3.12, as well as PyPy3.
2015-03-22 00:12:50 +00:00
.. _MacPorts: https://ports.macports.org/port/py-boltons/summary
2015-03-22 00:12:50 +00:00
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`_. 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, :ref:`consider filing an issue <Gaps>`!
.. _myriad specialized 3rd-party libraries: https://pypi.python.org/pypi
.. _gaps:
2015-03-22 00:12:50 +00:00
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 :doc:`architecture` statement to make
sure the functionality would be a good fit.
Then, if you are very motivated, submit `a Pull Request`_. Otherwise,
submit a short feature request on `the Issues page`_, and we will
figure something out.
.. _a Pull Request: https://github.com/mahmoud/boltons/pulls
.. _the Issues Page: https://github.com/mahmoud/boltons/issues
2015-03-22 00:12:50 +00:00
2015-04-06 09:36:58 +00:00
Section listing
---------------
2015-03-22 00:12:50 +00:00
.. toctree::
:maxdepth: 2
architecture
2015-03-22 00:12:50 +00:00
cacheutils
debugutils
dictutils
ecoutils
2015-03-22 00:12:50 +00:00
fileutils
formatutils
funcutils
gcutils
ioutils
2015-03-22 00:12:50 +00:00
iterutils
jsonutils
listutils
2015-04-18 14:42:05 +00:00
mathutils
2015-03-22 00:12:50 +00:00
mboxutils
namedutils
pathutils
2015-03-22 00:12:50 +00:00
queueutils
setutils
2016-04-29 03:46:25 +00:00
socketutils
2015-03-22 00:12:50 +00:00
statsutils
strutils
2015-03-22 00:12:50 +00:00
tableutils
tbutils
timeutils
2015-04-16 08:56:05 +00:00
typeutils
urlutils
2019-01-12 04:24:57 +00:00
(For a quick reference you can ctrl-F, see the :ref:`genindex`.)