nodes: 0, module; 1, function_definition; 2, function_name:url; 3, parameters; 4, block; 5, identifier:self; 6, expression_statement; 7, expression_statement; 8, expression_statement; 9, expression_statement; 10, return_statement; 11, comment:"""
          This attribute retrieve the url that will be used as a HTTP request to
          the Crossref API.
  
          This attribute can be used compounded with query, filter,
          sort, order and facet methods.
  
          Examples:
              >>> from crossref.restful import Works
              >>> Works().query('zika').url
              'https://api.crossref.org/works?query=zika'
              >>> Works().query('zika').filter(prefix='10.1590').url
              'https://api.crossref.org/works?query=zika&filter=prefix%3A10.1590'
              >>> Works().query('zika').filter(prefix='10.1590').sort('published').order('desc').url
              'https://api.crossref.org/works?sort=published&order=desc&query=zika&filter=prefix%3A10.1590'
              >>> Works().query('zika').filter(prefix='10.1590').sort('published').order('desc').filter(has_abstract='true').query(author='Marli').url
              'https://api.crossref.org/works?sort=published&filter=prefix%3A10.1590%2Chas-abstract%3Atrue&query=zika&order=desc&query.author=Marli'
          """; 12, assignment; 13, assignment; 14, assignment; 15, attribute; 16, identifier:request_params; 17, call; 18, identifier:sorted_request_params; 19, call; 20, identifier:req; 21, call; 22, identifier:req; 23, identifier:url; 24, attribute; 25, argument_list; 26, identifier:sorted; 27, argument_list; 28, attribute; 29, argument_list; 30, identifier:self; 31, identifier:_escaped_pagging; 32, list_comprehension; 33, call; 34, identifier:prepare; 35, tuple; 36, for_in_clause; 37, attribute; 38, argument_list; 39, identifier:k; 40, identifier:v; 41, pattern_list; 42, call; 43, identifier:requests; 44, identifier:Request; 45, string; 46, attribute; 47, keyword_argument; 48, identifier:k; 49, identifier:v; 50, attribute; 51, argument_list; 52, string_content:get; 53, identifier:self; 54, identifier:request_url; 55, identifier:params; 56, identifier:sorted_request_params; 57, identifier:request_params; 58, identifier:items
code: def url(self):
          """
          This attribute retrieve the url that will be used as a HTTP request to
          the Crossref API.
  
          This attribute can be used compounded with query, filter,
          sort, order and facet methods.
  
          Examples:
              >>> from crossref.restful import Works
              >>> Works().query('zika').url
              'https://api.crossref.org/works?query=zika'
              >>> Works().query('zika').filter(prefix='10.1590').url
              'https://api.crossref.org/works?query=zika&filter=prefix%3A10.1590'
              >>> Works().query('zika').filter(prefix='10.1590').sort('published').order('desc').url
              'https://api.crossref.org/works?sort=published&order=desc&query=zika&filter=prefix%3A10.1590'
              >>> Works().query('zika').filter(prefix='10.1590').sort('published').order('desc').filter(has_abstract='true').query(author='Marli').url
              'https://api.crossref.org/works?sort=published&filter=prefix%3A10.1590%2Chas-abstract%3Atrue&query=zika&order=desc&query.author=Marli'
          """
          request_params = self._escaped_pagging()
  
          sorted_request_params = sorted([(k, v) for k, v in request_params.items()])
          req = requests.Request(
              'get', self.request_url, params=sorted_request_params).prepare()
  
          return req.url