def accounts_pending(self, accounts, count=None, threshold=None, source=False):
        """
        Returns a list of block hashes which have not yet been received by
        these **accounts**

        :param accounts: Accounts to return list of block hashes for
        :type accounts: list of str

        :param count: Max number of blocks to returns
        :type count: int

        :param threshold: Minimum amount in raw per block
        :type threshold: int

        :param source: if True returns the source as well
        :type source: bool

        :raises: :py:exc:`nano.rpc.RPCException`

        >>> rpc.accounts_pending(
        ...     accounts=[
        ...         "xrb_1111111111111111111111111111111111111111111111111117353trpda",
        ...         "xrb_3t6k35gi95xu6tergt6p69ck76ogmitsa8mnijtpxm9fkcm736xtoncuohr3"
        ...     ],
        ...     count=1
        ... )
        {
            "xrb_1111111111111111111111111111111111111111111111111117353trpda": [
                "142A538F36833D1CC78B94E11C766F75818F8B940771335C6C1B8AB880C5BB1D"
            ],
            "xrb_3t6k35gi95xu6tergt6p69ck76ogmitsa8mnijtpxm9fkcm736xtoncuohr3": [
                "4C1FEEF0BEA7F50BE35489A1233FE002B212DEA554B55B1B470D78BD8F210C74"
            ]
        }

        """

        payload = {"accounts": accounts}

        accounts = self._process_value(accounts, 'list')
        if count is not None:
            payload['count'] = self._process_value(count, 'int')

        if threshold is not None:
            payload['threshold'] = self._process_value(threshold, 'int')

        if source:
            payload['source'] = self._process_value(source, 'strbool')

        resp = self.call('accounts_pending', payload)

        blocks = resp.get('blocks') or {}
        for account, data in blocks.items():
            if isinstance(data, list):  # list of block hashes, no change needed
                continue
            if not data:
                blocks[account] = []  # convert a "" response to []
                continue
            for key, value in data.items():
                if isinstance(value, six.string_types):  # amount
                    data[key] = int(value)
                elif isinstance(value, dict):  # dict with "amount" and "source"
                    for key in ('amount',):
                        if key in value:
                            value[key] = int(value[key])

        return blocks