Users of KE-chain.

        Provide a list of :class:`User`s of KE-chain. You can filter on username or id or any other advanced filter.

        :param username: (optional) username to filter
        :type username: basestring or None
        :param pk: (optional) id of the user to filter
        :type pk: basestring or None
        :param kwargs: Additional filtering keyword=value arguments
        :type kwargs: dict or None
        :return: List of :class:`Users`
        :raises NotFoundError: when a user could not be found

def users(self, username=None, pk=None, **kwargs):
        """
        Users of KE-chain.

        Provide a list of :class:`User`s of KE-chain. You can filter on username or id or any other advanced filter.

        :param username: (optional) username to filter
        :type username: basestring or None
        :param pk: (optional) id of the user to filter
        :type pk: basestring or None
        :param kwargs: Additional filtering keyword=value arguments
        :type kwargs: dict or None
        :return: List of :class:`Users`
        :raises NotFoundError: when a user could not be found
        """
        request_params = {
            'username': username,
            'pk': pk,
        }
        if kwargs:
            request_params.update(**kwargs)

        r = self._request('GET', self._build_url('users'), params=request_params)

        if r.status_code != requests.codes.ok:  # pragma: no cover
            raise NotFoundError("Could not find users: '{}'".format(r.json()))

        data = r.json()
        return [User(user, client=self) for user in data['results']]