nodes: 0, module; 1, function_definition; 2, function_name:list_gemeenten; 3, parameters; 4, block; 5, identifier:self; 6, default_parameter; 7, default_parameter; 8, expression_statement; 9, try_statement; 10, expression_statement; 11, function_definition; 12, if_statement; 13, for_statement; 14, return_statement; 15, identifier:gewest; 16, integer:2; 17, identifier:sort; 18, integer:1; 19, string; 20, block; 21, except_clause; 22, call; 23, function_name:creator; 24, parameters; 25, block; 26, attribute; 27, block; 28, else_clause; 29, identifier:g; 30, identifier:gemeenten; 31, block; 32, identifier:gemeenten; 33, string_content; 34, expression_statement; 35, identifier:AttributeError; 36, block; 37, attribute; 38, argument_list; 39, expression_statement; 40, return_statement; 41, subscript; 42, identifier:is_configured; 43, expression_statement; 44, expression_statement; 45, block; 46, expression_statement; 47, escape_sequence:\; 48, assignment; 49, expression_statement; 50, expression_statement; 51, identifier:gewest; 52, identifier:clear_gateway; 53, assignment; 54, list_comprehension; 55, attribute; 56, string; 57, assignment; 58, assignment; 59, expression_statement; 60, call; 61, identifier:gewest_id; 62, attribute; 63, assignment; 64, assignment; 65, identifier:res; 66, call; 67, call; 68, for_in_clause; 69, if_clause; 70, identifier:self; 71, identifier:caches; 72, string_content:permanent; 73, identifier:key; 74, binary_operator:'ListGemeentenByGewestId#%s#%s' % (gewest_id, sort); 75, identifier:gemeenten; 76, call; 77, assignment; 78, attribute; 79, argument_list; 80, identifier:gewest; 81, identifier:id; 82, identifier:gewest_id; 83, identifier:gewest; 84, identifier:gewest; 85, call; 86, identifier:crab_gateway_request; 87, argument_list; 88, identifier:Gemeente; 89, argument_list; 90, identifier:r; 91, attribute; 92, comparison_operator:r.TaalCode == r.TaalCodeGemeenteNaam; 93, string; 94, tuple; 95, attribute; 96, argument_list; 97, identifier:gemeenten; 98, call; 99, identifier:g; 100, identifier:set_gateway; 101, identifier:self; 102, attribute; 103, argument_list; 104, attribute; 105, string; 106, identifier:gewest_id; 107, identifier:sort; 108, attribute; 109, attribute; 110, attribute; 111, identifier:gewest; 112, identifier:res; 113, identifier:GemeenteItem; 114, attribute; 115, attribute; 116, string_content:ListGemeentenByGewestId#%s#%s; 117, identifier:gewest_id; 118, identifier:sort; 119, subscript; 120, identifier:get_or_create; 121, identifier:key; 122, identifier:creator; 123, identifier:creator; 124, argument_list; 125, identifier:self; 126, identifier:get_gewest_by_id; 127, identifier:gewest_id; 128, identifier:self; 129, identifier:client; 130, string_content:ListGemeentenByGewestId; 131, identifier:r; 132, identifier:GemeenteId; 133, identifier:r; 134, identifier:GemeenteNaam; 135, identifier:r; 136, identifier:NISGemeenteCode; 137, identifier:r; 138, identifier:TaalCode; 139, identifier:r; 140, identifier:TaalCodeGemeenteNaam; 141, attribute; 142, string; 143, identifier:self; 144, identifier:caches; 145, string_content:permanent
code: def list_gemeenten(self, gewest=2, sort=1):
          '''
          List all `gemeenten` in a `gewest`.
  
          :param gewest: The :class:`Gewest` for which the \
              `gemeenten` are wanted.
          :param integer sort: What field to sort on.
          :rtype: A :class:`list` of :class:`Gemeente`.
          '''
          try:
              gewest_id = gewest.id
          except AttributeError:
              gewest_id = gewest
              gewest = self.get_gewest_by_id(gewest_id)
          gewest.clear_gateway()
  
          def creator():
              res = crab_gateway_request(
                  self.client, 'ListGemeentenByGewestId', gewest_id, sort
              )
              return[
                  Gemeente(
                      r.GemeenteId,
                      r.GemeenteNaam,
                      r.NISGemeenteCode,
                      gewest
                  )for r in res.GemeenteItem if r.TaalCode == r.TaalCodeGemeenteNaam
              ]
          if self.caches['permanent'].is_configured:
              key = 'ListGemeentenByGewestId#%s#%s' % (gewest_id, sort)
              gemeenten = self.caches['permanent'].get_or_create(key, creator)
          else:
              gemeenten = creator()
          for g in gemeenten:
              g.set_gateway(self)
          return gemeenten