# Path: aredis/utils.py
# def string_keys_to_dict(key_string, callback):
#     return dict.fromkeys(key_string.split(), callback)
# 
# def dict_merge(*dicts):
#     merged = {}
#     for d in dicts:
#         merged.update(d)
#     return merged
# 
# def bool_ok(response):
#     return nativestr(response) == 'OK'


import string
import random
from aredis.utils import (string_keys_to_dict,
                          dict_merge,
                          bool_ok)


class HyperLogCommandMixin:

    RESPONSE_CALLBACKS = dict_merge(
        string_keys_to_dict('PFADD PFCOUNT', int),
        {
            'PFMERGE': bool_ok,
        }
    )

    async def pfadd(self, name, *values):
        "Adds the specified elements to the specified HyperLogLog."
        return await self.execute_command('PFADD', name, *values)


# Path: aredis/utils.py
# def string_keys_to_dict(key_string, callback):
#     return dict.fromkeys(key_string.split(), callback)
# 
# def dict_merge(*dicts):
#     merged = {}
#     for d in dicts:
#         merged.update(d)
#     return merged
# 
# def bool_ok(response):
#     return nativestr(response) == 'OK'


# Path: aredis/commands/hyperlog.py
import string
import random
from aredis.utils import (string_keys_to_dict,
                          dict_merge,
                          bool_ok)



class HyperLogCommandMixin:

    RESPONSE_CALLBACKS = dict_merge(
        string_keys_to_dict('PFADD PFCOUNT', int),
        {
            'PFMERGE': bool_ok,
        }
    )

    async def pfadd(self, name, *values):
        "Adds the specified elements to the specified HyperLogLog."
        return await self.execute_command('PFADD', name, *values)


    async def pfcount(self, *sources):