def query(self, *args, **kwargs):
context = str(self.context)<EOL>request_url = build_url_endpoint(self.ENDPOINT, context)<EOL>request_params = dict(self.request_params)<EOL>if args:<EOL><INDENT>request_params['<STR_LIT>'] = '<STR_LIT:U+0020>'.join([str(i) for i in args])<EOL><DEDENT>for field, value in kwargs.items():<EOL><INDENT>if field not in self.FIELDS_QUERY:<EOL><INDENT>raise UrlSyntaxError(<EOL>'<STR_LIT>' % (<EOL>str(field), '<STR_LIT:U+002CU+0020>'.join(self.FIELDS_QUERY)<EOL>)<EOL>)<EOL><DEDENT>request_params['<STR_LIT>' % field.replace('<STR_LIT:_>', '<STR_LIT:->')] = value<EOL><DEDENT>return self.__class__(request_url, request_params, context, self.etiquette)<EOL>
This method retrieve an iterable object that implements the method
__iter__. The arguments given will compose the parameters in the
request url.

This method can be used compounded and recursively with query, filter,
order, sort and facet methods.

args: strings (String)

kwargs: valid FIELDS_QUERY arguments.

return: iterable object of Works metadata

Example:
    >>> from crossref.restful import Works
    >>> works = Works()
    >>> query = works.query('Zika Virus')
    >>> query.url
    'https://api.crossref.org/works?query=Zika+Virus'
    >>> for item in query:
    ...     print(item['title'])
    ...
    ['Zika Virus']
    ['Zika virus disease']
    ['Zika Virus: Laboratory Diagnosis']
    ['Spread of Zika virus disease']
    ['Carditis in Zika Virus Infection']
    ['Understanding Zika virus']
    ['Zika Virus: History and Infectology']
    ...