Url queries

        :param listdelimiter: Specifies what list delimiter should be
        :param safe: string that includes all the characters that should not be ignored

        Kwargs (Since its a dictionary) are not ordered. You must call the
        method again if you absolutely need one query
        after another or vice versa.

def query(self, listdelimiter="+", safe="", **kwargs):
        """
        Url queries

        :param listdelimiter: Specifies what list delimiter should be
        :param safe: string that includes all the characters that should not be ignored

        Kwargs (Since its a dictionary) are not ordered. You must call the
        method again if you absolutely need one query
        after another or vice versa.

        """
        safe = safe if safe else self.safe
        for arg in list(kwargs.keys()):
            if (isinstance(kwargs[arg], list)
                    or isinstance(kwargs[arg], tuple)
                    or isinstance(kwargs[arg], set)):
                items = [quote_plus(str(x), safe=safe) for x in kwargs[arg]]
                self.__query__.update({arg: listdelimiter.join(items)})
            else:
                self.__query__.update({arg: kwargs.get(arg)})

        return self