hyperloglog
hyperloglog copied to clipboard
Added Save() and Load() methods
Added save() and load() using pickle and unit tests for the same.
Why do you need additional 'load' and 'save' methods when it already pickle-friendly?
$ python
Python 2.7.14 (default, Mar 14 2018, 13:36:31)
[GCC 7.3.1 20180303 (Red Hat 7.3.1-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from hyperloglog import HyperLogLog
>>> a = HyperLogLog(0.05)
>>> from cPickle import loads, dumps
>>> a.add(10)
>>> a.add(20)
>>> a
<hyperloglog.hll.HyperLogLog object at 0x7f1861172cd0>
>>> len(a)
2
>>> b = dumps(a)
>>> b
"ccopy_reg\n_reconstructor\np1\n(chyperloglog.hll\nHyperLogLog\np2\nc__builtin__\nobject\np3\nNtRp4\n(dp5\nS'alpha'\np6\nF0.71978311332173028\nsS'M'\n(lp7\nI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI1\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI1\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\naI0\nasS'm'\nI512\nsS'p'\nI9\nsb."
>>> a = loads(b)
>>> a
<hyperloglog.hll.HyperLogLog object at 0x7f186118f8c0>
>>> len(a)
2