Passed
Push — master ( 26dce8...b396c1 )
by KAMI
02:42 queued 10s
created

osm_poi_matchmaker.libs.poi_dataset   F

Complexity

Total Complexity 182

Size/Duplication

Total Lines 922
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 182
eloc 739
dl 0
loc 922
rs 1.861
c 0
b 0
f 0

93 Methods

Rating   Name   Duplication   Size   Complexity  
A POIDataset.motorcar() 0 3 1
A POIDataset.day_open_close() 0 3 1
A POIDataset.fuel_octane_98() 0 3 1
A POIDataset.summer_we_o() 0 3 1
A POIDataset.capacity() 0 3 1
A POIDataset.summer_su_o() 0 3 1
A POIDataset.process_opening_hours() 0 33 1
A POIDataset.lunch_break_start() 0 3 1
A POIDataset.su_o() 0 3 1
B POIDataset.__init__() 0 59 1
A POIDataset.original() 0 3 1
A POIDataset.food() 0 3 1
A POIDataset.process() 0 4 1
A POIDataset.geom() 0 3 1
A POIDataset.description() 0 3 1
A POIDataset.fuel_octane_95() 0 3 1
A POIDataset.public_holiday_open() 0 3 1
A POIDataset.tu_c() 0 3 1
A POIDataset.lenght() 0 2 1
A POIDataset.process_geom() 0 2 1
A POIDataset.day_summer_close() 0 2 1
A POIDataset.phone() 0 3 2
A POIDataset.lon() 0 3 1
A POIDataset.summer_tu_c() 0 3 1
A POIDataset.day_summer_open() 0 2 1
A POIDataset.dump_opening_hours() 0 2 1
A POIDataset.summer_sa_o() 0 3 1
A POIDataset.socket_chademo_output() 0 3 1
A POIDataset.website() 0 3 1
A POIDataset.lat() 0 3 1
B POIDataset.add() 0 52 2
B POIDataset.clear_all() 0 52 1
A POIDataset.fuel_diesel_gtl() 0 3 1
A POIDataset.lunch_break() 0 3 1
A POIDataset.opening_hours() 0 3 1
A POIDataset.compressed_air() 0 3 1
A POIDataset.parking_fee() 0 3 1
A POIDataset.fr_o() 0 3 1
A POIDataset.code() 0 3 1
A POIDataset.th_o() 0 3 1
A POIDataset.day_open() 0 2 1
A POIDataset.socket_type2_cable() 0 3 1
A POIDataset.th_c() 0 3 1
A POIDataset.name() 0 3 1
A POIDataset.we_c() 0 3 1
A POIDataset.conscriptionnumber() 0 3 1
A POIDataset.manufacturer() 0 3 1
A POIDataset.fuel_lpg() 0 3 1
A POIDataset.summer_fr_c() 0 3 1
A POIDataset.summer_sa_c() 0 3 1
A POIDataset.summer_fr_o() 0 3 1
A POIDataset.day_summer_open_close() 0 3 1
A POIDataset.sa_c() 0 3 1
A POIDataset.fee() 0 3 1
A POIDataset.sa_o() 0 3 1
A POIDataset.su_c() 0 3 1
A POIDataset.nonstop() 0 3 1
A POIDataset.summer_mo_c() 0 3 1
A POIDataset.mo_o() 0 3 1
A POIDataset.summer_su_c() 0 3 1
A POIDataset.fuel_adblue() 0 3 1
A POIDataset.fr_c() 0 3 1
A POIDataset.lunch_break_stop() 0 3 1
A POIDataset.model() 0 3 1
A POIDataset.fuel_diesel() 0 3 1
A POIDataset.summer_we_c() 0 3 1
A POIDataset.city() 0 3 1
A POIDataset.truck() 0 3 1
A POIDataset.postcode() 0 3 1
A POIDataset.socket_type1_combo_output() 0 3 1
A POIDataset.summer_th_o() 0 3 1
A POIDataset.summer_th_c() 0 3 1
A POIDataset.email() 0 3 2
A POIDataset.socket_type2_cable_output() 0 3 1
A POIDataset.socket_chademo() 0 3 1
A POIDataset.fuel_octane_100() 0 3 1
A POIDataset.branch() 0 3 1
A POIDataset.day_close() 0 2 1
A POIDataset.summer_tu_o() 0 3 1
A POIDataset.mo_c() 0 3 1
A POIDataset.ref() 0 3 1
A POIDataset.summer_mo_o() 0 3 1
A POIDataset.opening_hours_table() 0 3 1
A POIDataset.tu_o() 0 3 1
A POIDataset.housenumber() 0 3 1
A POIDataset.socket_type1_combo() 0 3 1
A POIDataset.we_o() 0 3 1
A POIDataset.authentication_app() 0 3 1
A POIDataset.fuel_e85() 0 3 1
B POIDataset.street() 0 3 8
A POIDataset.restaurant() 0 3 1
A POIDataset.authentication_membership_card() 0 3 1
A POIDataset.rent_lpg_bottles() 0 3 1

How to fix   Complexity   

Complexity

Complex classes like osm_poi_matchmaker.libs.poi_dataset often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
# -*- coding: utf-8 -*-
0 ignored issues
show
introduced by
Missing module docstring
Loading history...
2
__author__ = 'kami911'
3
4
try:
5
    import traceback
6
    import logging
7
    import sys
8
    import pandas as pd
9
    from osm_poi_matchmaker.utils.enums import WeekDaysShort, OpenClose
10
    from osm_poi_matchmaker.libs.opening_hours import OpeningHours
11
    from osm_poi_matchmaker.libs.geo import check_geom
12
    from osm_poi_matchmaker.libs.address import clean_string, clean_url, clean_branch
13
    from osm_poi_matchmaker.dao import poi_array_structure
14
    from osm_poi_matchmaker.utils import config
15
    from osm_poi_matchmaker.dao.poi_base import POIBase
16
    from osm_poi_matchmaker.libs.poi_qc import POIQC
17
except ImportError as err:
18
    logging.error('Error {error} import module: {module}', module=__name__, error=err)
19
    logging.error(traceback.print_exc())
0 ignored issues
show
Bug introduced by
The Class traceback does not seem to have a member named print_exc.

This check looks for calls to members that are non-existent. These calls will fail.

The member could have been renamed or removed.

Loading history...
20
    sys.exit(128)
21
22
__program__ = 'poi_dataset'
23
__version__ = '0.0.5'
24
25
POI_COLS = poi_array_structure.POI_COLS
26
27
28
class POIDataset:
0 ignored issues
show
introduced by
Missing class docstring
Loading history...
best-practice introduced by
Too many instance attributes (69/7)
Loading history...
best-practice introduced by
Too many public methods (92/20)
Loading history...
29
30
    def __init__(self):
31
        self.insert_data = []
32
        self.__db = POIBase(
33
            '{}://{}:{}@{}:{}/{}'.format(config.get_database_type(), config.get_database_writer_username(),
0 ignored issues
show
Coding Style introduced by
This line is too long as per the coding-style (107/100).

This check looks for lines that are too long. You can specify the maximum line length.

Loading history...
34
                                         config.get_database_writer_password(),
35
                                         config.get_database_writer_host(),
36
                                         config.get_database_writer_port(),
37
                                         config.get_database_poi_database()))
38
        self.__code = None
39
        self.__postcode = None
40
        self.__city = None
41
        self.__name = None
42
        self.__branch = None
43
        self.__website = None
44
        self.__description = None
45
        self.__fuel_adblue = None
46
        self.__fuel_octane_100 = None
47
        self.__fuel_octane_98 = None
48
        self.__fuel_octane_95 = None
49
        self.__fuel_diesel_gtl = None
50
        self.__fuel_diesel = None
51
        self.__fuel_lpg = None
52
        self.__fuel_e85 = None
53
        self.__rent_lpg_bottles = None
54
        self.__compressed_air = None
55
        self.__restaurant = None
56
        self.__food = None
57
        self.__truck = None
58
        self.__authentication_app = None
59
        self.__authentication_membership_card = None
60
        self.__capacity = None
61
        self.__fee = None
62
        self.__parking_fee = None
63
        self.__motorcar = None
64
        self.__socket_chademo = None
65
        self.__socket_chademo_output = None
66
        self.__socket_type1_combo = None
67
        self.__socket_type1_combo_output = None
68
        self.__socket_type2_cable = None
69
        self.__socket_type2_cable_output = None
70
        self.__manufacturer = None
71
        self.__model = None
72
        self.__original = None
73
        self.__street = None
74
        self.__housenumber = None
75
        self.__conscriptionnumber = None
76
        self.__ref = None
77
        self.__phone = None
78
        self.__email = None
79
        self.__geom = None
80
        self.__lat = None
81
        self.__lon = None
82
        self.__nonstop = None
83
        self.__oh = pd.DataFrame(index=WeekDaysShort, columns=OpenClose)
84
        self.__lunch_break = {'start': None, 'stop': None}
85
        self.__opening_hours = None
86
        self.__public_holiday_open = None
87
        self.__good = []
88
        self.__bad = []
89
90
    def clear_all(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
91
        self.__code = None
92
        self.__postcode = None
93
        self.__city = None
94
        self.__name = None
95
        self.__branch = None
96
        self.__website = None
97
        self.__description = None
98
        self.__fuel_adblue = None
99
        self.__fuel_octane_100 = None
100
        self.__fuel_octane_98 = None
101
        self.__fuel_octane_95 = None
102
        self.__fuel_diesel_gtl = None
103
        self.__fuel_diesel = None
104
        self.__fuel_lpg = None
105
        self.__fuel_e85 = None
106
        self.__rent_lpg_bottles = None
107
        self.__compressed_air = None
108
        self.__restaurant = None
109
        self.__food = None
110
        self.__truck = None
111
        self.__authentication_app = None
112
        self.__authentication_membership_card = None
113
        self.__capacity = None
114
        self.__fee = None
115
        self.__parking_fee = None
116
        self.__motorcar = None
117
        self.__socket_chademo = None
118
        self.__socket_chademo_output = None
119
        self.__socket_type1_combo = None
120
        self.__socket_type1_combo_output = None
121
        self.__socket_type2_cable = None
122
        self.__socket_type2_cable_output = None
123
        self.__manufacturer = None
124
        self.__model = None
125
        self.__original = None
126
        self.__street = None
127
        self.__housenumber = None
128
        self.__conscriptionnumber = None
129
        self.__ref = None
130
        self.__phone = None
131
        self.__email = None
132
        self.__geom = None
133
        self.__lat = None
134
        self.__lon = None
135
        self.__nonstop = None
136
        self.__oh = pd.DataFrame(index=WeekDaysShort, columns=OpenClose)
137
        self.__lunch_break = {'start': None, 'stop': None}
138
        self.__opening_hours = None
139
        self.__public_holiday_open = None
140
        self.__good = []
141
        self.__bad = []
142
143
    @property
144
    def code(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
145
        return self.__code
146
147
    @code.setter
148
    def code(self, data):
149
        self.__code = data
150
151
    @property
152
    def postcode(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
153
        return self.__postcode
154
155
    @postcode.setter
156
    def postcode(self, data):
157
        self.__postcode = data
158
159
    @property
160
    def city(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
161
        return self.__city
162
163
    @city.setter
164
    def city(self, data):
165
        self.__city = data
166
167
    @property
168
    def name(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
169
        return self.__name
170
171
    @name.setter
172
    def name(self, data):
173
        self.__name = data
174
175
    @property
176
    def branch(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
177
        return self.__branch
178
179
    @branch.setter
180
    def branch(self, data):
181
        self.__branch = clean_branch(data)
182
183
    @property
184
    def website(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
185
        return self.__website
186
187
    @website.setter
188
    def website(self, data):
189
        self.__website = clean_url(data)
190
191
    @property
192
    def description(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
193
        return self.__description
194
195
    @description.setter
196
    def description(self, data):
197
        self.__description = data
198
199
    @property
200
    def fuel_adblue(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
201
        return self.__fuel_adblue
202
203
    @fuel_adblue.setter
204
    def fuel_adblue(self, data):
205
        self.__fuel_adblue = data
206
207
    @property
208
    def fuel_octane_100(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
209
        return self.__fuel_octane_100
210
211
    @fuel_octane_100.setter
212
    def fuel_octane_100(self, data):
213
        self.__fuel_octane_100 = data
214
215
    @property
216
    def fuel_octane_98(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
217
        return self.__fuel_octane_98
218
219
    @fuel_octane_98.setter
220
    def fuel_octane_98(self, data):
221
        self.__fuel_octane_98 = data
222
223
    @property
224
    def fuel_octane_95(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
225
        return self.__fuel_octane_95
226
227
    @fuel_octane_95.setter
228
    def fuel_octane_95(self, data):
229
        self.__fuel_octane_95 = data
230
231
    @property
232
    def fuel_diesel_gtl(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
233
        return self.__fuel_diesel_gtl
234
235
    @fuel_diesel_gtl.setter
236
    def fuel_diesel_gtl(self, data):
237
        self.__fuel_diesel_gtl = data
238
239
    @property
240
    def fuel_diesel(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
241
        return self.__fuel_diesel
242
243
    @fuel_diesel.setter
244
    def fuel_diesel(self, data):
245
        self.__fuel_diesel = data
246
247
    @property
248
    def fuel_lpg(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
249
        return self.__fuel_lpg
250
251
    @fuel_lpg.setter
252
    def fuel_lpg(self, data):
253
        self.__fuel_lpg = data
254
255
    @property
256
    def fuel_e85(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
257
        return self.__fuel_e85
258
259
    @fuel_e85.setter
260
    def fuel_e85(self, data):
261
        self.__fuel_e85 = data
262
263
    @property
264
    def rent_lpg_bottles(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
265
        return self.__rent_lpg_bottles
266
267
    @rent_lpg_bottles.setter
268
    def rent_lpg_bottles(self, data):
269
        self.__rent_lpg_bottles = data
270
271
    @property
272
    def compressed_air(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
273
        return self.__compressed_air
274
275
    @compressed_air.setter
276
    def compressed_air(self, data):
277
        self.__compressed_air = data
278
279
    @property
280
    def restaurant(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
281
        return self.__restaurant
282
283
    @restaurant.setter
284
    def restaurant(self, data):
285
        self.__restaurant = data
286
287
    @property
288
    def food(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
289
        return self.__food
290
291
    @food.setter
292
    def food(self, data):
293
        self.__food = data
294
295
    @property
296
    def truck(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
297
        return self.__truck
298
299
    @truck.setter
300
    def truck(self, data):
301
        self.__truck = data
302
303
    @property
304
    def authentication_app(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
305
        return self.__authentication_app
306
307
    @authentication_app.setter
308
    def authentication_app(self, data):
309
        self.__authentication_app = data
310
311
    @property
312
    def authentication_membership_card(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
313
        return self.__authentication_membership_card
314
315
    @authentication_membership_card.setter
316
    def authentication_membership_card(self, data):
317
        self.__authentication_membership_card = data
318
319
    @property
320
    def capacity(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
321
        return self.__capacity
322
323
    @capacity.setter
324
    def capacity(self, data):
325
        self.__capacity = data
326
327
    @property
328
    def fee(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
329
        return self.__fee
330
331
    @fee.setter
332
    def fee(self, data):
333
        self.__fee = data
334
335
    @property
336
    def parking_fee(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
337
        return self.__parking_fee
338
339
    @parking_fee.setter
340
    def parking_fee(self, data):
341
        self.__parking_fee = data
342
343
    @property
344
    def motorcar(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
345
        return self.__motorcar
346
347
    @motorcar.setter
348
    def motorcar(self, data):
349
        self.__motorcar = data
350
351
    @property
352
    def socket_chademo(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
353
        return self.__socket_chademo
354
355
    @socket_chademo.setter
356
    def socket_chademo(self, data):
357
        self.__socket_chademo = data
358
359
    @property
360
    def socket_chademo_output(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
361
        return self.__socket_chademo_output
362
363
    @socket_chademo_output.setter
364
    def socket_chademo_output(self, data):
365
        self.__socket_chademo_output = data
366
367
    @property
368
    def socket_type1_combo(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
369
        return self.__socket_type1_combo
370
371
    @socket_type1_combo.setter
372
    def socket_type1_combo(self, data):
373
        self.__socket_type1_combo = data
374
375
    @property
376
    def socket_type1_combo_output(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
377
        return self.__socket_type1_combo_output
378
379
    @socket_type1_combo_output.setter
380
    def socket_type1_combo_output(self, data):
381
        self.__socket_type1_combo_output = data
382
383
    @property
384
    def socket_type2_cable(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
385
        return self.__socket_type2_cable
386
387
    @socket_type2_cable.setter
388
    def socket_type2_cable(self, data):
389
        self.__socket_type2_cable = data
390
391
    @property
392
    def socket_type2_cable_output(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
393
        return self.__socket_type2_cable_output
394
395
    @socket_type2_cable_output.setter
396
    def socket_type2_cable_output(self, data):
397
        self.__socket_type2_cable_output = data
398
399
    @property
400
    def manufacturer(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
401
        return self.__manufacturer
402
403
    @manufacturer.setter
404
    def manufacturer(self, data):
405
        self.__manufacturer = data
406
407
    @property
408
    def model(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
409
        return self.__model
410
411
    @model.setter
412
    def model(self, data):
413
        self.__model = data
414
415
    @property
416
    def original(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
417
        return self.__original
418
419
    @original.setter
420
    def original(self, data):
421
        self.__original = data
422
423
    @property
424
    def street(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
425
        return self.__street
426
427
    @street.setter
428
    def street(self, data):
429
        # Try to find street name around
430
        try:
431
            if self.lat is not None and self.lon is not None:
432
                query = self.__db.query_name_road_around(self.lon, self.lat, data, True, 'name')
433
                if query is None or query.empty:
434
                    query = self.__db.query_name_road_around(self.lon, self.lat, data, True, 'metaphone')
0 ignored issues
show
Coding Style introduced by
This line is too long as per the coding-style (105/100).

This check looks for lines that are too long. You can specify the maximum line length.

Loading history...
435
                    if query is None or query.empty:
436
                        logging.warning('There is no street around named or metaphone named: {}'.format(data))
0 ignored issues
show
Coding Style introduced by
This line is too long as per the coding-style (110/100).

This check looks for lines that are too long. You can specify the maximum line length.

Loading history...
introduced by
Use lazy % formatting in logging functions
Loading history...
437
                        self.__street = data
438
                    else:
439
                        new_data = query.at[0, 'name']
440
                        logging.info('There is a metaphone street around named: {}, original was: {}.'
0 ignored issues
show
Coding Style introduced by
This line is too long as per the coding-style (102/100).

This check looks for lines that are too long. You can specify the maximum line length.

Loading history...
introduced by
Use lazy % formatting in logging functions
Loading history...
441
                            .format(new_data,data))
0 ignored issues
show
Coding Style introduced by
Wrong continued indentation (add 9 spaces).
Loading history...
Coding Style introduced by
Exactly one space required after comma
Loading history...
442
                        self.__street = new_data
443
                else:
444
                    logging.info('There is a street around named: {}.'.format(data))
0 ignored issues
show
introduced by
Use lazy % formatting in logging functions
Loading history...
445
                    self.__street = data
446
            else:
447
                self.__street = data
448
        except Exception as e:
0 ignored issues
show
Best Practice introduced by
Catching very general exceptions such as Exception is usually not recommended.

Generally, you would want to handle very specific errors in the exception handler. This ensure that you do not hide other types of errors which should be fixed.

So, unless you specifically plan to handle any error, consider adding a more specific exception.

Loading history...
Coding Style Naming introduced by
Variable name "e" doesn't conform to snake_case naming style ('([^\\W\\dA-Z][^\\WA-Z]2,|_[^\\WA-Z]*|__[^\\WA-Z\\d_][^\\WA-Z]+__)$' pattern)

This check looks for invalid names for a range of different identifiers.

You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements.

If your project includes a Pylint configuration file, the settings contained in that file take precedence.

To find out more about Pylint, please refer to their site.

Loading history...
449
            logging.error(e)
450
            logging.error(traceback.print_exc())
451
452
    @property
453
    def housenumber(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
454
        return self.__housenumber
455
456
    @housenumber.setter
457
    def housenumber(self, data):
458
        self.__housenumber = data
459
460
    @property
461
    def conscriptionnumber(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
462
        return self.__conscriptionnumber
463
464
    @conscriptionnumber.setter
465
    def conscriptionnumber(self, data):
466
        self.__conscriptionnumber = data
467
468
    @property
469
    def ref(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
470
        return self.__ref
471
472
    @ref.setter
473
    def ref(self, data):
474
        self.__ref = data
475
476
    @property
477
    def phone(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
478
        return self.__phone
479
480
    @phone.setter
481
    def phone(self, data):
482
        if data == 'NULL':
483
            self.__phone = None
484
        else:
485
            self.__phone = data
486
487
    @property
488
    def email(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
489
        return self.__email
490
491
    @email.setter
492
    def email(self, data):
493
        if data == 'NULL':
494
            self.__email = None
495
        else:
496
            self.__email = data
497
498
    @property
499
    def geom(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
500
        return self.__geom
501
502
    @geom.setter
503
    def geom(self, data):
504
        self.__geom = data
505
506
    @property
507
    def lat(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
508
        return self.__lat
509
510
    @lat.setter
511
    def lat(self, lat):
512
        self.__lat = lat
513
514
    @property
515
    def lon(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
516
        return self.__lon
517
518
    @lon.setter
519
    def lon(self, lon):
520
        self.__lon = lon
521
522
    def process_geom(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
523
        self.geom = check_geom(self.__lat, self.__lon)
524
525
    @property
526
    def opening_hours_table(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
527
        return self.__oh
528
529
    @opening_hours_table.setter
530
    def opening_hours_table(self, data):
531
        self.__oh = pd.DataFrame(data, index=WeekDaysShort, columns=OpenClose)
532
533
    @property
534
    def nonstop(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
535
        return self.__nonstop
536
537
    @nonstop.setter
538
    def nonstop(self, data):
539
        self.__nonstop = data
540
541
    @property
542
    def mo_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
543
        return self.__oh.at[WeekDaysShort.mo, OpenClose.open]
544
545
    @mo_o.setter
546
    def mo_o(self, data):
547
        self.__oh.at[WeekDaysShort.mo, OpenClose.open] = data
548
549
    @property
550
    def tu_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
551
        return self.__oh.at[WeekDaysShort.tu, OpenClose.open]
552
553
    @tu_o.setter
554
    def tu_o(self, data):
555
        self.__oh.at[WeekDaysShort.tu, OpenClose.open] = data
556
557
    @property
558
    def we_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
559
        return self.__oh.at[WeekDaysShort.we, OpenClose.open]
560
561
    @we_o.setter
562
    def we_o(self, data):
563
        self.__oh.at[WeekDaysShort.we, OpenClose.open] = data
564
565
    @property
566
    def th_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
567
        return self.__oh.at[WeekDaysShort.th, OpenClose.open]
568
569
    @th_o.setter
570
    def th_o(self, data):
571
        self.__oh.at[WeekDaysShort.th, OpenClose.open] = data
572
573
    @property
574
    def fr_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
575
        return self.__oh.at[WeekDaysShort.fr, OpenClose.open]
576
577
    @fr_o.setter
578
    def fr_o(self, data):
579
        self.__oh.at[WeekDaysShort.fr, OpenClose.open] = data
580
581
    @property
582
    def sa_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
583
        return self.__oh.at[WeekDaysShort.sa, OpenClose.open]
584
585
    @sa_o.setter
586
    def sa_o(self, data):
587
        self.__oh.at[WeekDaysShort.sa, OpenClose.open] = data
588
589
    @property
590
    def su_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
591
        return self.__oh.at[WeekDaysShort.su, OpenClose.open]
592
593
    @su_o.setter
594
    def su_o(self, data):
595
        self.__oh.at[WeekDaysShort.su, OpenClose.open] = data
596
597
    @property
598
    def mo_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
599
        return self.__oh.at[WeekDaysShort.mo, OpenClose.close]
600
601
    @mo_c.setter
602
    def mo_c(self, data):
603
        self.__oh.at[WeekDaysShort.mo, OpenClose.close] = data
604
605
    @property
606
    def tu_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
607
        return self.__oh.at[WeekDaysShort.tu, OpenClose.close]
608
609
    @tu_c.setter
610
    def tu_c(self, data):
611
        self.__oh.at[WeekDaysShort.tu, OpenClose.close] = data
612
613
    @property
614
    def we_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
615
        return self.__oh.at[WeekDaysShort.we, OpenClose.close]
616
617
    @we_c.setter
618
    def we_c(self, data):
619
        self.__oh.at[WeekDaysShort.we, OpenClose.close] = data
620
621
    @property
622
    def th_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
623
        return self.__oh.at[WeekDaysShort.th, OpenClose.close]
624
625
    @th_c.setter
626
    def th_c(self, data):
627
        self.__oh.at[WeekDaysShort.th, OpenClose.close] = data
628
629
    @property
630
    def fr_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
631
        return self.__oh.at[WeekDaysShort.fr, OpenClose.close]
632
633
    @fr_c.setter
634
    def fr_c(self, data):
635
        self.__oh.at[WeekDaysShort.fr, OpenClose.close] = data
636
637
    @property
638
    def sa_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
639
        return self.__oh.at[WeekDaysShort.sa, OpenClose.close]
640
641
    @sa_c.setter
642
    def sa_c(self, data):
643
        self.__oh.at[WeekDaysShort.sa, OpenClose.close] = data
644
645
    @property
646
    def su_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
647
        return self.__oh.at[WeekDaysShort.su, OpenClose.close]
648
649
    @su_c.setter
650
    def su_c(self, data):
651
        self.__oh.at[WeekDaysShort.su, OpenClose.close] = data
652
653
    @property
654
    def summer_mo_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
655
        return self.__oh.at[WeekDaysShort.mo, OpenClose.summer_open]
656
657
    @summer_mo_o.setter
658
    def summer_mo_o(self, data):
659
        self.__oh.at[WeekDaysShort.mo, OpenClose.summer_open] = data
660
661
    @property
662
    def summer_tu_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
663
        return self.__oh.at[WeekDaysShort.tu, OpenClose.summer_open]
664
665
    @summer_tu_o.setter
666
    def summer_tu_o(self, data):
667
        self.__oh.at[WeekDaysShort.tu, OpenClose.summer_open] = data
668
669
    @property
670
    def summer_we_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
671
        return self.__oh.at[WeekDaysShort.we, OpenClose.summer_open]
672
673
    @summer_we_o.setter
674
    def summer_we_o(self, data):
675
        self.__oh.at[WeekDaysShort.we, OpenClose.summer_open] = data
676
677
    @property
678
    def summer_th_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
679
        return self.__oh.at[WeekDaysShort.th, OpenClose.summer_open]
680
681
    @summer_th_o.setter
682
    def summer_th_o(self, data):
683
        self.__oh.at[WeekDaysShort.th, OpenClose.summer_open] = data
684
685
    @property
686
    def summer_fr_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
687
        return self.__oh.at[WeekDaysShort.fr, OpenClose.summer_open]
688
689
    @summer_fr_o.setter
690
    def summer_fr_o(self, data):
691
        self.__oh.at[WeekDaysShort.fr, OpenClose.summer_open] = data
692
693
    @property
694
    def summer_sa_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
695
        return self.__oh.at[WeekDaysShort.sa, OpenClose.summer_open]
696
697
    @summer_sa_o.setter
698
    def summer_sa_o(self, data):
699
        self.__oh.at[WeekDaysShort.sa, OpenClose.summer_open] = data
700
701
    @property
702
    def summer_su_o(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
703
        return self.__oh.at[WeekDaysShort.su, OpenClose.summer_open]
704
705
    @summer_su_o.setter
706
    def summer_su_o(self, data):
707
        self.__oh.at[WeekDaysShort.su, OpenClose.summer_open] = data
708
709
    @property
710
    def summer_mo_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
711
        return self.__oh.at[WeekDaysShort.mo, OpenClose.summer_close]
712
713
    @summer_mo_c.setter
714
    def summer_mo_c(self, data):
715
        self.__oh.at[WeekDaysShort.mo, OpenClose.summer_close] = data
716
717
    @property
718
    def summer_tu_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
719
        return self.__oh.at[WeekDaysShort.tu, OpenClose.summer_close]
720
721
    @summer_tu_c.setter
722
    def summer_tu_c(self, data):
723
        self.__oh.at[WeekDaysShort.tu, OpenClose.summer_close] = data
724
725
    @property
726
    def summer_we_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
727
        return self.__oh.at[WeekDaysShort.we, OpenClose.summer_close]
728
729
    @summer_we_c.setter
730
    def summer_we_c(self, data):
731
        self.__oh.at[WeekDaysShort.we, OpenClose.summer_close] = data
732
733
    @property
734
    def summer_th_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
735
        return self.__oh.at[WeekDaysShort.th, OpenClose.summer_close]
736
737
    @summer_th_c.setter
738
    def summer_th_c(self, data):
739
        self.__oh.at[WeekDaysShort.th, OpenClose.summer_close] = data
740
741
    @property
742
    def summer_fr_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
743
        return self.__oh.at[WeekDaysShort.fr, OpenClose.summer_close]
744
745
    @summer_fr_c.setter
746
    def summer_fr_c(self, data):
747
        self.__oh.at[WeekDaysShort.fr, OpenClose.summer_close] = data
748
749
    @property
750
    def summer_sa_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
751
        return self.__oh.at[WeekDaysShort.sa, OpenClose.summer_close]
752
753
    @summer_sa_c.setter
754
    def summer_sa_c(self, data):
755
        self.__oh.at[WeekDaysShort.sa, OpenClose.summer_close] = data
756
757
    @property
758
    def summer_su_c(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
759
        return self.__oh.at[WeekDaysShort.su, OpenClose.summer_close]
760
761
    @summer_su_c.setter
762
    def summer_su_c(self, data):
763
        self.__oh.at[WeekDaysShort.su, OpenClose.summer_close] = data
764
765
    @property
766
    def lunch_break(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
767
        return self.__lunch_break['start'], self.__lunch_break['stop']
768
769
    @lunch_break.setter
770
    def lunch_break(self, lunch_break_start, lunch_break_stop):
771
        self.__lunch_break = {'start': lunch_break_start, 'stop': lunch_break_stop}
772
773
    @property
774
    def lunch_break_start(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
775
        return self.__lunch_break['start']
776
777
    @lunch_break_start.setter
778
    def lunch_break_start(self, data):
779
        self.__lunch_break['start'] = data
780
781
    @property
782
    def lunch_break_stop(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
783
        return self.__lunch_break['stop']
784
785
    @lunch_break_stop.setter
786
    def lunch_break_stop(self, data):
787
        self.__lunch_break['stop'] = data
788
789
    def day_open(self, day, data):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
790
        self.__oh.at[WeekDaysShort(day), OpenClose.open] = data
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable WeekDaysShort does not seem to be defined.
Loading history...
791
792
    def day_close(self, day, data):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
793
        self.__oh.at[WeekDaysShort(day), OpenClose.close] = data
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable WeekDaysShort does not seem to be defined.
Loading history...
794
795
    def day_summer_open(self, day, data):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
796
        self.__oh.at[WeekDaysShort(day), OpenClose.summer_open] = data
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable WeekDaysShort does not seem to be defined.
Loading history...
797
798
    def day_summer_close(self, day, data):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
799
        self.__oh.at[WeekDaysShort(day), OpenClose.summer_close] = data
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable WeekDaysShort does not seem to be defined.
Loading history...
800
801
    def day_open_close(self, day, opening, closing):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
802
        self.__oh.at[WeekDaysShort(day), OpenClose.open] = opening
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable WeekDaysShort does not seem to be defined.
Loading history...
803
        self.__oh.at[WeekDaysShort(day), OpenClose.close] = closing
804
805
    def day_summer_open_close(self, day, opening, closing):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
806
        self.__oh.at[WeekDaysShort(day), OpenClose.summer_open] = opening
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable WeekDaysShort does not seem to be defined.
Loading history...
807
        self.__oh.at[WeekDaysShort(day), OpenClose.summer_close] = closing
808
809
    @property
810
    def opening_hours(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
811
        return self.__opening_hours
812
813
    @opening_hours.setter
814
    def opening_hours(self, data):
815
        self.__opening_hours = data
816
817
    @property
818
    def public_holiday_open(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
819
        return self.__public_holiday_open
820
821
    @public_holiday_open.setter
822
    def public_holiday_open(self, data):
823
        self.__public_holiday_open = data
824
825
    def process_opening_hours(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
826
        self.__oh = self.__oh.where((pd.notnull(self.__oh)), None)
827
        t = OpeningHours(self.__nonstop, self.__oh.at[WeekDaysShort.mo, OpenClose.open],
0 ignored issues
show
Coding Style Naming introduced by
Variable name "t" doesn't conform to snake_case naming style ('([^\\W\\dA-Z][^\\WA-Z]2,|_[^\\WA-Z]*|__[^\\WA-Z\\d_][^\\WA-Z]+__)$' pattern)

This check looks for invalid names for a range of different identifiers.

You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements.

If your project includes a Pylint configuration file, the settings contained in that file take precedence.

To find out more about Pylint, please refer to their site.

Loading history...
828
                         self.__oh.at[WeekDaysShort.tu, OpenClose.open],
829
                         self.__oh.at[WeekDaysShort.we, OpenClose.open],
830
                         self.__oh.at[WeekDaysShort.th, OpenClose.open],
831
                         self.__oh.at[WeekDaysShort.fr, OpenClose.open],
832
                         self.__oh.at[WeekDaysShort.sa, OpenClose.open],
833
                         self.__oh.at[WeekDaysShort.su, OpenClose.open],
834
                         self.__oh.at[WeekDaysShort.mo, OpenClose.close],
835
                         self.__oh.at[WeekDaysShort.tu, OpenClose.close],
836
                         self.__oh.at[WeekDaysShort.we, OpenClose.close],
837
                         self.__oh.at[WeekDaysShort.th, OpenClose.close],
838
                         self.__oh.at[WeekDaysShort.fr, OpenClose.close],
839
                         self.__oh.at[WeekDaysShort.sa, OpenClose.close],
840
                         self.__oh.at[WeekDaysShort.su, OpenClose.close],
841
                         self.__oh.at[WeekDaysShort.mo, OpenClose.summer_open],
842
                         self.__oh.at[WeekDaysShort.tu, OpenClose.summer_open],
843
                         self.__oh.at[WeekDaysShort.we, OpenClose.summer_open],
844
                         self.__oh.at[WeekDaysShort.th, OpenClose.summer_open],
845
                         self.__oh.at[WeekDaysShort.fr, OpenClose.summer_open],
846
                         self.__oh.at[WeekDaysShort.sa, OpenClose.summer_open],
847
                         self.__oh.at[WeekDaysShort.su, OpenClose.summer_open],
848
                         self.__oh.at[WeekDaysShort.mo, OpenClose.summer_close],
849
                         self.__oh.at[WeekDaysShort.tu, OpenClose.summer_close],
850
                         self.__oh.at[WeekDaysShort.we, OpenClose.summer_close],
851
                         self.__oh.at[WeekDaysShort.th, OpenClose.summer_close],
852
                         self.__oh.at[WeekDaysShort.fr, OpenClose.summer_close],
853
                         self.__oh.at[WeekDaysShort.sa, OpenClose.summer_close],
854
                         self.__oh.at[WeekDaysShort.su, OpenClose.summer_close],
855
                         self.__lunch_break['start'], self.__lunch_break['stop'],
856
                         self.__public_holiday_open)
857
        self.__opening_hours = t.process()
858
859
    def dump_opening_hours(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
860
        print(self.__opening_hours)
861
862
    def add(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
863
        try:
864
            self.process_opening_hours()
865
            self.process_geom()
866
            pqc = POIQC(self.__db, self.__lon, self.__lat, self.__opening_hours, self.__street)
867
            self.__good, self.__bad = pqc.process()
868
            self.insert_data.append(
869
                [self.__code, self.__postcode, self.__city, self.__name, clean_string(self.__branch), self.__website,
0 ignored issues
show
Coding Style introduced by
This line is too long as per the coding-style (117/100).

This check looks for lines that are too long. You can specify the maximum line length.

Loading history...
870
                 self.__description, self.__fuel_adblue, self.__fuel_octane_100, self.__fuel_octane_98,
0 ignored issues
show
Coding Style introduced by
This line is too long as per the coding-style (103/100).

This check looks for lines that are too long. You can specify the maximum line length.

Loading history...
871
                 self.__fuel_octane_95, self.__fuel_diesel_gtl, self.__fuel_diesel, self.__fuel_lpg,
872
                 self.__fuel_e85, self.__rent_lpg_bottles, self.__compressed_air, self.__restaurant, self.__food,
0 ignored issues
show
Coding Style introduced by
This line is too long as per the coding-style (113/100).

This check looks for lines that are too long. You can specify the maximum line length.

Loading history...
873
                 self.__truck,
874
                 self.__authentication_app, self.__authentication_membership_card, self.__capacity, self.__fee,
0 ignored issues
show
Coding Style introduced by
This line is too long as per the coding-style (111/100).

This check looks for lines that are too long. You can specify the maximum line length.

Loading history...
875
                 self.__parking_fee, self.__motorcar, self.__socket_chademo, self.__socket_chademo_output,
0 ignored issues
show
Coding Style introduced by
This line is too long as per the coding-style (106/100).

This check looks for lines that are too long. You can specify the maximum line length.

Loading history...
876
                 self.__socket_type1_combo, self.__socket_type1_combo_output,
877
                 self.__socket_type2_cable, self.__socket_type2_cable_output, self.__manufacturer, self.__model,
0 ignored issues
show
Coding Style introduced by
This line is too long as per the coding-style (112/100).

This check looks for lines that are too long. You can specify the maximum line length.

Loading history...
878
                 self.__original, self.__street, self.__housenumber, self.__conscriptionnumber,
879
                 self.__ref, self.__phone, self.__email, self.__geom, self.__nonstop,
880
                 self.__oh.at[WeekDaysShort.mo, OpenClose.open],
881
                 self.__oh.at[WeekDaysShort.tu, OpenClose.open],
882
                 self.__oh.at[WeekDaysShort.we, OpenClose.open],
883
                 self.__oh.at[WeekDaysShort.th, OpenClose.open],
884
                 self.__oh.at[WeekDaysShort.fr, OpenClose.open],
885
                 self.__oh.at[WeekDaysShort.sa, OpenClose.open],
886
                 self.__oh.at[WeekDaysShort.su, OpenClose.open],
887
                 self.__oh.at[WeekDaysShort.mo, OpenClose.close],
888
                 self.__oh.at[WeekDaysShort.tu, OpenClose.close],
889
                 self.__oh.at[WeekDaysShort.we, OpenClose.close],
890
                 self.__oh.at[WeekDaysShort.th, OpenClose.close],
891
                 self.__oh.at[WeekDaysShort.fr, OpenClose.close],
892
                 self.__oh.at[WeekDaysShort.sa, OpenClose.close],
893
                 self.__oh.at[WeekDaysShort.su, OpenClose.close],
894
                 self.__oh.at[WeekDaysShort.mo, OpenClose.summer_open],
895
                 self.__oh.at[WeekDaysShort.tu, OpenClose.summer_open],
896
                 self.__oh.at[WeekDaysShort.we, OpenClose.summer_open],
897
                 self.__oh.at[WeekDaysShort.th, OpenClose.summer_open],
898
                 self.__oh.at[WeekDaysShort.fr, OpenClose.summer_open],
899
                 self.__oh.at[WeekDaysShort.sa, OpenClose.summer_open],
900
                 self.__oh.at[WeekDaysShort.su, OpenClose.summer_open],
901
                 self.__oh.at[WeekDaysShort.mo, OpenClose.summer_close],
902
                 self.__oh.at[WeekDaysShort.tu, OpenClose.summer_close],
903
                 self.__oh.at[WeekDaysShort.we, OpenClose.summer_close],
904
                 self.__oh.at[WeekDaysShort.th, OpenClose.summer_close],
905
                 self.__oh.at[WeekDaysShort.fr, OpenClose.summer_close],
906
                 self.__oh.at[WeekDaysShort.sa, OpenClose.summer_close],
907
                 self.__oh.at[WeekDaysShort.su, OpenClose.summer_close], self.__lunch_break['start'],
0 ignored issues
show
Coding Style introduced by
This line is too long as per the coding-style (101/100).

This check looks for lines that are too long. You can specify the maximum line length.

Loading history...
908
                 self.__lunch_break['stop'],
909
                 self.__public_holiday_open, self.__opening_hours, self.__good, self.__bad])
910
            self.clear_all()
911
        except Exception as err:
0 ignored issues
show
Best Practice introduced by
Catching very general exceptions such as Exception is usually not recommended.

Generally, you would want to handle very specific errors in the exception handler. This ensure that you do not hide other types of errors which should be fixed.

So, unless you specifically plan to handle any error, consider adding a more specific exception.

Loading history...
912
            logging.error(err)
913
            logging.error(traceback.print_exc())
914
915
    def process(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
916
        df = pd.DataFrame(self.insert_data)
0 ignored issues
show
Coding Style Naming introduced by
Variable name "df" doesn't conform to snake_case naming style ('([^\\W\\dA-Z][^\\WA-Z]2,|_[^\\WA-Z]*|__[^\\WA-Z\\d_][^\\WA-Z]+__)$' pattern)

This check looks for invalid names for a range of different identifiers.

You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements.

If your project includes a Pylint configuration file, the settings contained in that file take precedence.

To find out more about Pylint, please refer to their site.

Loading history...
917
        df.columns = POI_COLS
918
        return df.where((pd.notnull(df)), None)
919
920
    def lenght(self):
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
921
        return len(self.insert_data)
922