Introduce an experimental rewrite using requests module
(Note: please merge !9 (merged) first.)
This is an experimental, partial rewrite of the REST client that uses the Python requests
module, which brings performance gains due to connection pooling and generally cleaner implementation. The speedup is impressive:
In [2]: old, new = rest.GraceDb(), requests.GraceDb()
In [3]: %timeit old.event('G211117')
1 loop, best of 3: 391 ms per loop
In [4]: %timeit new.event('G211117')
1 loop, best of 3: 88.5 ms per loop
In [5]: %timeit old.writeLog('T271297', 'foobar')
1 loop, best of 3: 688 ms per loop
In [6]: %timeit new.writeLog('T271297', 'foobar')
1 loop, best of 3: 286 ms per loop
In [7]: %timeit old.writeLog('T271297', 'foobar',
...: filename='bayestar.fits.gz')
1 loop, best of 3: 5.22 s per loop
In [8]: %timeit new.writeLog('T271297', 'foobar',
...: filename='bayestar.fits.gz')
1 loop, best of 3: 1.31 s per loop