@@ 387-413 (lines=27) @@ | ||
384 | dg.set_gateway(self) |
|
385 | return deelgemeenten |
|
386 | ||
387 | def list_deelgemeenten_by_gemeente(self, gemeente): |
|
388 | ''' |
|
389 | List all `deelgemeenten` in a `gemeente`. |
|
390 | ||
391 | :param gemeente: The :class:`Gemeente` for which the \ |
|
392 | `deelgemeenten` are wanted. Currently only Flanders is supported. |
|
393 | :rtype: A :class:`list` of :class:`Deelgemeente`. |
|
394 | ''' |
|
395 | try: |
|
396 | niscode = gemeente.niscode |
|
397 | except AttributeError: |
|
398 | niscode = gemeente |
|
399 | ||
400 | def creator(): |
|
401 | return [ |
|
402 | Deelgemeente(dg['id'], dg['naam'], dg['gemeente_niscode']) |
|
403 | for dg in self.deelgemeenten.values() if dg['gemeente_niscode'] == niscode |
|
404 | ] |
|
405 | ||
406 | if self.caches['permanent'].is_configured: |
|
407 | key = 'ListDeelgemeentenByGemeenteId#%s' % niscode |
|
408 | deelgemeenten = self.caches['permanent'].get_or_create(key, creator) |
|
409 | else: |
|
410 | deelgemeenten = creator() |
|
411 | for dg in deelgemeenten: |
|
412 | dg.set_gateway(self) |
|
413 | return deelgemeenten |
|
414 | ||
415 | def get_deelgemeente_by_id(self, id): |
|
416 | ''' |
|
@@ 359-385 (lines=27) @@ | ||
356 | gemeente.set_gateway(self) |
|
357 | return gemeente |
|
358 | ||
359 | def list_deelgemeenten(self, gewest=2): |
|
360 | ''' |
|
361 | List all `deelgemeenten` in a `gewest`. |
|
362 | ||
363 | :param gewest: The :class:`Gewest` for which the \ |
|
364 | `deelgemeenten` are wanted. Currently only Flanders is supported. |
|
365 | :rtype: A :class:`list` of :class:`Deelgemeente`. |
|
366 | ''' |
|
367 | try: |
|
368 | gewest_id = gewest.id |
|
369 | except AttributeError: |
|
370 | gewest_id = gewest |
|
371 | ||
372 | if gewest_id != 2: |
|
373 | raise ValueError('Currently only deelgemeenten in Flanders are known.') |
|
374 | ||
375 | def creator(): |
|
376 | return [Deelgemeente(dg['id'], dg['naam'], dg['gemeente_niscode']) for dg in self.deelgemeenten.values()] |
|
377 | ||
378 | if self.caches['permanent'].is_configured: |
|
379 | key = 'ListDeelgemeentenByGewestId#%s' % gewest_id |
|
380 | deelgemeenten = self.caches['permanent'].get_or_create(key, creator) |
|
381 | else: |
|
382 | deelgemeenten = creator() |
|
383 | for dg in deelgemeenten: |
|
384 | dg.set_gateway(self) |
|
385 | return deelgemeenten |
|
386 | ||
387 | def list_deelgemeenten_by_gemeente(self, gemeente): |
|
388 | ''' |
|
@@ 165-189 (lines=25) @@ | ||
162 | gewest.set_gateway(self) |
|
163 | return gewest |
|
164 | ||
165 | def list_provincies(self, gewest=2): |
|
166 | ''' |
|
167 | List all `provincies` in a `gewest`. |
|
168 | ||
169 | :param gewest: The :class:`Gewest` for which the \ |
|
170 | `provincies` are wanted. |
|
171 | :param integer sort: What field to sort on. |
|
172 | :rtype: A :class:`list` of :class:`Provincie`. |
|
173 | ''' |
|
174 | try: |
|
175 | gewest_id = gewest.id |
|
176 | except AttributeError: |
|
177 | gewest_id = gewest |
|
178 | ||
179 | def creator(): |
|
180 | return [Provincie(p[0], p[1], Gewest(p[2])) for p in self.provincies if p[2] == gewest_id] |
|
181 | ||
182 | if self.caches['permanent'].is_configured: |
|
183 | key = 'ListProvinciesByGewestId#%s' % gewest_id |
|
184 | provincies = self.caches['permanent'].get_or_create(key, creator) |
|
185 | else: |
|
186 | provincies = creator() |
|
187 | for p in provincies: |
|
188 | p.set_gateway(self) |
|
189 | return provincies |
|
190 | ||
191 | def get_provincie_by_id(self, niscode): |
|
192 | ''' |
@@ 106-131 (lines=26) @@ | ||
103 | return min(x_coords), min(y_coords), max(x_coords), max(y_coords) |
|
104 | ||
105 | def list_gemeenten(self, sort=1): |
|
106 | ''' |
|
107 | List all `gemeenten` in Vlaanderen. |
|
108 | ||
109 | :param integer sort: What field to sort on. |
|
110 | :rtype: A :class:`list` of :class:`Gemeente`. |
|
111 | ''' |
|
112 | def creator(): |
|
113 | url = self.base_url + '/municipality' |
|
114 | h = self.base_headers |
|
115 | p = { |
|
116 | 'orderbyCode': sort == 1 |
|
117 | } |
|
118 | res = capakey_rest_gateway_request(url, h, p).json() |
|
119 | return [ |
|
120 | Gemeente(r['municipalityCode'], r['municipalityName']) |
|
121 | for r in res['municipalities'] |
|
122 | ] |
|
123 | if self.caches['permanent'].is_configured: |
|
124 | key = 'list_gemeenten_rest#%s' % sort |
|
125 | gemeente = self.caches['permanent'].get_or_create(key, creator) |
|
126 | else: |
|
127 | gemeente = creator() |
|
128 | for g in gemeente: |
|
129 | g.set_gateway(self) |
|
130 | return gemeente |
|
131 | ||
132 | def get_gemeente_by_id(self, id): |
|
133 | ''' |
|
134 | Retrieve a `gemeente` by id (the NIScode). |