| Total Complexity | 5 |
| Total Lines | 32 |
| Duplicated Lines | 0 % |
| Changes | 4 | ||
| Bugs | 0 | Features | 0 |
| 1 | """ |
||
| 18 | class WaterOffice(RemoteGage): |
||
| 19 | """ |
||
| 20 | BC_07EA004 |
||
| 21 | """ |
||
| 22 | @staticmethod |
||
| 23 | def get_from_wateroffice(remote_id): |
||
| 24 | province = remote_id.split('_')[0] |
||
| 25 | url = 'http://dd.weather.gc.ca/hydrometric/csv/{}/hourly/{}_hourly_hydrometric.csv'.format(province, remote_id) |
||
| 26 | response = requests.get(url) |
||
| 27 | riter = response.iter_lines(decode_unicode=True) |
||
| 28 | next(riter) |
||
| 29 | reader = csv.reader(riter) |
||
| 30 | lines = [] |
||
| 31 | for row in reader: |
||
| 32 | lines.append(row) |
||
| 33 | last = lines[-1] |
||
| 34 | level = float(last[2]) |
||
| 35 | try: |
||
| 36 | discharge = float(last[6]) |
||
| 37 | except ValueError: |
||
| 38 | discharge = None |
||
| 39 | dt = arrow.get(last[1]).datetime |
||
| 40 | |||
| 41 | return dt, level, discharge |
||
| 42 | |||
| 43 | def get_sample(self, sensor_id): |
||
| 44 | sensor = self.sensor(sensor_id) |
||
| 45 | dt, level, discharge = self.get_from_wateroffice(sensor.remote_id) |
||
| 46 | if sensor.remote_parameter == 'discharge': |
||
| 47 | add_new_sample(sensor.id, dt, discharge) |
||
| 48 | else: |
||
| 49 | add_new_sample(sensor.id, dt, level) |
||
| 50 |