Code Duplication    Length = 35-38 lines in 4 locations

crabpy/gateway/crab.py 3 locations

@@ 728-764 (lines=37) @@
725
            h.set_gateway(self)
726
        return huisnummers
727
728
    def list_huisnummers_by_perceel(self, perceel, sort=1):
729
        '''
730
        List all `huisnummers` on a `Pereel`.
731
732
        Generally there will only be one, but multiples are possible.
733
734
        :param perceel: The :class:`Perceel` for which the \
735
            `huisnummers` are wanted.
736
        :rtype: A :class: `list` of :class:`Huisnummer`
737
        '''
738
        try:
739
            id = perceel.id
740
        except AttributeError:
741
            id = perceel
742
743
        def creator():
744
            res = crab_gateway_request(
745
                self.client, 'ListHuisnummersWithStatusByIdentificatorPerceel',
746
                id, sort
747
            )
748
            try:
749
                huisnummers= []
750
                for r in res.HuisnummerWithStatusItem:
751
                    h = self.get_huisnummer_by_id(r.HuisnummerId)
752
                    h.clear_gateway()
753
                    huisnummers.append(h)
754
                return huisnummers
755
            except AttributeError:
756
                return []
757
        if self.caches['short'].is_configured:
758
            key = 'ListHuisnummersWithStatusByIdentificatorPerceel#%s%s' % (id, sort)
759
            huisnummers = self.caches['short'].get_or_create(key, creator)
760
        else:
761
            huisnummers = creator()
762
        for h in huisnummers:
763
            h.set_gateway(self)
764
        return huisnummers
765
766
    def get_huisnummer_by_id(self, id):
767
        '''
@@ 249-284 (lines=36) @@
246
            g.set_gateway(self)
247
        return gemeente
248
249
    def list_gemeenten(self, gewest=2, sort=1):
250
        '''
251
        List all `gemeenten` in a `gewest`.
252
253
        :param gewest: The :class:`Gewest` for which the \
254
            `gemeenten` are wanted.
255
        :param integer sort: What field to sort on.
256
        :rtype: A :class:`list` of :class:`Gemeente`.
257
        '''
258
        try:
259
            gewest_id = gewest.id
260
        except AttributeError:
261
            gewest_id = gewest
262
            gewest = self.get_gewest_by_id(gewest_id)
263
        gewest.clear_gateway()
264
265
        def creator():
266
            res = crab_gateway_request(
267
                self.client, 'ListGemeentenByGewestId', gewest_id, sort
268
            )
269
            return[
270
                Gemeente(
271
                    r.GemeenteId,
272
                    r.GemeenteNaam,
273
                    r.NISGemeenteCode,
274
                    gewest
275
                )for r in res.GemeenteItem if r.TaalCode == r.TaalCodeGemeenteNaam
276
            ]
277
        if self.caches['permanent'].is_configured:
278
            key = 'ListGemeentenByGewestId#%s#%s' % (gewest_id, sort)
279
            gemeenten = self.caches['permanent'].get_or_create(key, creator)
280
        else:
281
            gemeenten = creator()
282
        for g in gemeenten:
283
            g.set_gateway(self)
284
        return gemeenten
285
286
    def get_gemeente_by_id(self, id):
287
        '''
@@ 213-247 (lines=35) @@
210
        provincie.set_gateway(self)
211
        return provincie
212
213
    def list_gemeenten_by_provincie(self, provincie):
214
        '''
215
        List all `gemeenten` in a `provincie`.
216
217
        :param provincie: The :class:`Provincie` for which the \
218
            `gemeenten` are wanted.
219
        :rtype: A :class:`list` of :class:`Gemeente`.
220
        '''
221
        try:
222
            gewest = provincie.gewest
223
            prov = provincie
224
        except AttributeError:
225
            prov = self.get_provincie_by_id(provincie)
226
            gewest = prov.gewest
227
        gewest.clear_gateway()
228
229
        def creator():
230
            gewest_gemeenten = self.list_gemeenten(gewest.id)
231
            return[
232
                Gemeente(
233
                    r.id,
234
                    r.naam,
235
                    r.niscode,
236
                    gewest
237
                )for r in gewest_gemeenten if str(r.niscode)[0] == str(prov.niscode)[0]
238
            ]
239
240
        if self.caches['permanent'].is_configured:
241
            key = 'ListGemeentenByProvincieId#%s' % prov.id
242
            gemeente = self.caches['long'].get_or_create(key, creator)
243
        else:
244
            gemeente = creator()
245
        for g in gemeente:
246
            g.set_gateway(self)
247
        return gemeente
248
249
    def list_gemeenten(self, gewest=2, sort=1):
250
        '''

crabpy/gateway/capakey.py 1 location

@@ 237-274 (lines=38) @@
234
            key = 'GetKadAfdelingByKadAfdelingcode#%s' % id
235
            afdeling = self.caches['long'].get_or_create(key, creator)
236
        else:
237
            afdeling = creator()
238
        afdeling.set_gateway(self)
239
        return afdeling
240
241
    @deprecate(DEPRECATIONWARNING.format('.list_secties_by_afdeling'))
242
    def list_secties_by_afdeling(self, afdeling):
243
        '''
244
        List all `secties` in a `kadastrale afdeling`.
245
246
        :param afdeling: The :class:`Afdeling` for which the `secties` are \
247
            wanted. Can also be the id of and `afdeling`.
248
        :rtype: A :class:`list` of `Sectie`.
249
        '''
250
        try:
251
            aid = afdeling.id
252
        except AttributeError:
253
            aid = afdeling
254
            afdeling = self.get_kadastrale_afdeling_by_id(aid)
255
        afdeling.clear_gateway()
256
257
        def creator():
258
            res = capakey_gateway_request(
259
                self.client, 'ListKadSectiesByKadAfdelingcode', aid
260
            )
261
            try:
262
                return [
263
                    Sectie(
264
                        r.KadSectiecode,
265
                        afdeling
266
                    ) for r in res.KadSectieItem
267
                ]
268
            except AttributeError:
269
                # Handle bad error handling on the CAPAKEY side
270
                return []
271
        if self.caches['long'].is_configured:
272
            key = 'ListKadSectiesByKadAfdelingcode#%s' % aid
273
            secties = self.caches['long'].get_or_create(key, creator)
274
        else:
275
            secties = creator()
276
        for s in secties:
277
            s.set_gateway(self)