def query(self, listdelimiter="<STR_LIT:+>", safe="<STR_LIT>", **kwargs):
safe = safe if safe else self.safe<EOL>for arg in list(kwargs.keys()):<EOL><INDENT>if (isinstance(kwargs[arg], list)<EOL>or isinstance(kwargs[arg], tuple)<EOL>or isinstance(kwargs[arg], set)):<EOL><INDENT>items = [quote_plus(str(x), safe=safe) for x in kwargs[arg]]<EOL>self.__query__.update({arg: listdelimiter.join(items)})<EOL><DEDENT>else:<EOL><INDENT>self.__query__.update({arg: kwargs.get(arg)})<EOL><DEDENT><DEDENT>return self<EOL>
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.