Boltons is a set of pure-Python utilities in the same spirit as — and yet conspicuously missing from — the standard library, including:
fileutils
OrderedMultiDict
, in dictutils
PriorityQueue
, in queueutils
iterutils
TracebackInfo
type, for representing stack traces, in tbutils
timeutils
.remap
In [ ]:
# Some imports used in examples
import time
from datetime import datetime
from pprint import pprint
In [ ]:
from boltons.cacheutils import cached, LRU
my_cache = LRU(max_size=10)
@cached(my_cache)
def expensive(n=1):
print(datetime.now())
time.sleep(n)
return n
In [ ]:
print(expensive(2))
In [ ]:
print(expensive(1))
In [ ]:
print(expensive(2))
In [ ]:
from boltons.dictutils import OrderedMultiDict
omd = OrderedMultiDict()
omd['a'] = 1
omd['b'] = 2
print(omd)
In [ ]:
omd.add('a', 3)
print(omd)
In [ ]:
print(omd.get('a'))
print(omd.getlist('a'))
In [ ]:
print(list(omd))
print(list(reversed(omd)))
In [ ]:
from boltons.ecoutils import get_profile
print(get_profile().keys())
In [ ]:
pprint(get_profile()['python']['features'])
In [ ]:
from boltons.queueutils import PriorityQueue
pq = PriorityQueue()
In [ ]:
pq.add('low priority', 0)
pq.add('hi priority', 2)
pq.add('medium priority a', 1)
pq.add('medium priority b', 1)
print(len(pq))
In [ ]:
while pq:
print(pq.pop())