def select(self, *args):
context = str(self.context)<EOL>request_url = build_url_endpoint(self.ENDPOINT, context)<EOL>request_params = dict(self.request_params)<EOL>select_args = []<EOL>invalid_select_args = []<EOL>for item in args:<EOL><INDENT>if isinstance(item, list):<EOL><INDENT>select_args += [i.strip() for i in item]<EOL><DEDENT>if isinstance(item, str):<EOL><INDENT>select_args += [i.strip() for i in item.split('<STR_LIT:U+002C>')]<EOL><DEDENT><DEDENT>invalid_select_args = set(select_args) - set(self.FIELDS_SELECT)<EOL>if len(invalid_select_args) != <NUM_LIT:0>:<EOL><INDENT>raise UrlSyntaxError(<EOL>'<STR_LIT>' % (<EOL>'<STR_LIT:U+002CU+0020>'.join(invalid_select_args),<EOL>'<STR_LIT:U+002CU+0020>'.join(self.FIELDS_SELECT)<EOL>)<EOL>)<EOL><DEDENT>request_params['<STR_LIT>'] = '<STR_LIT:U+002C>'.join(<EOL>sorted([i for i in set(request_params.get('<STR_LIT>', '<STR_LIT>').split('<STR_LIT:U+002C>') + select_args) if i])<EOL>)<EOL>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 with query, filter,
sort and facet methods.

args: valid FIELDS_SELECT arguments.

return: iterable object of Works metadata

Example 1:
    >>> from crossref.restful import Works
    >>> works = Works()
    >>> for i in works.filter(has_funder='true', has_license='true').sample(5).select('DOI, prefix'):
    ...     print(i)
    ...
    {'DOI': '10.1016/j.jdiacomp.2016.06.005', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1016/j.mssp.2015.07.076', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1002/slct.201700168', 'prefix': '10.1002', 'member': 'http://id.crossref.org/member/311'}
    {'DOI': '10.1016/j.actbio.2017.01.034', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1016/j.optcom.2013.11.013', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    ...
Example 2:
    >>> from crossref.restful import Works
    >>> works = Works()

    >>> for i in works.filter(has_funder='true', has_license='true').sample(5).select('DOI').select('prefix'):
    >>>     print(i)
    ...
    {'DOI': '10.1016/j.sajb.2016.03.010', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1016/j.jneumeth.2009.08.017', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1016/j.tetlet.2016.05.058', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1007/s00170-017-0689-z', 'prefix': '10.1007', 'member': 'http://id.crossref.org/member/297'}
    {'DOI': '10.1016/j.dsr.2016.03.004', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    ...
Example: 3:
    >>> from crossref.restful import Works
    >>> works = Works()
    >>>: for i in works.filter(has_funder='true', has_license='true').sample(5).select(['DOI', 'prefix']):
    >>>      print(i)
    ...
    {'DOI': '10.1111/zoj.12146', 'prefix': '10.1093', 'member': 'http://id.crossref.org/member/286'}
    {'DOI': '10.1016/j.bios.2014.04.018', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1016/j.cej.2016.10.011', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1016/j.dci.2017.08.001', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1016/j.icheatmasstransfer.2016.09.012', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    ...
Example: 4:
    >>> from crossref.restful import Works
    >>> works = Works()
    >>>: for i in works.filter(has_funder='true', has_license='true').sample(5).select('DOI', 'prefix'):
    >>>      print(i)
    ...
    {'DOI': '10.1111/zoj.12146', 'prefix': '10.1093', 'member': 'http://id.crossref.org/member/286'}
    {'DOI': '10.1016/j.bios.2014.04.018', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1016/j.cej.2016.10.011', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1016/j.dci.2017.08.001', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    {'DOI': '10.1016/j.icheatmasstransfer.2016.09.012', 'prefix': '10.1016', 'member': 'http://id.crossref.org/member/78'}
    ...