From cb3ebf498886168820135fd835c084b4cda34b26 Mon Sep 17 00:00:00 2001 From: "Fabian P. Schmidt" Date: Wed, 9 Dec 2015 00:24:10 +0100 Subject: [PATCH] Model: Change type of AddressOrigin again. Fixes db.update_ddb_ogn by removing the type Enum of AddressOrigin. Partly reverts commit 04137acaf645f2c04166fa68e59332690b9ccbc0 since this commit broke db.update_ddb_ogn. --- ogn/collect/fetchddb.py | 4 ++-- ogn/commands/database.py | 2 +- ogn/model/address_origin.py | 21 ++++++++++++++++----- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/ogn/collect/fetchddb.py b/ogn/collect/fetchddb.py index 2d17a3f..f351ca6 100644 --- a/ogn/collect/fetchddb.py +++ b/ogn/collect/fetchddb.py @@ -14,7 +14,7 @@ def update_ddb_from_ogn(): logger.info("Update ddb data from ogn.") app.session.query(Device) \ - .filter(AddressOrigin(Device.address_origin) is AddressOrigin.ogn_ddb) \ + .filter(Device.address_origin == AddressOrigin.ogn_ddb) \ .delete() devices = get_ddb() @@ -31,7 +31,7 @@ def update_ddb_from_file(): logger.info("Import ddb data from file.") app.session.query(Device) \ - .filter(AddressOrigin(Device.address_origin) is AddressOrigin.userdefined) \ + .filter(Device.address_origin == AddressOrigin.userdefined) \ .delete() devices = get_ddb('ogn/custom_ddb.txt') diff --git a/ogn/commands/database.py b/ogn/commands/database.py index 8d3f212..1be5dfb 100644 --- a/ogn/commands/database.py +++ b/ogn/commands/database.py @@ -57,7 +57,7 @@ def stats(): print('--- Devices ---') for [address_origin, device_count, nt_count, ni_count, ntni_count] in query.all(): print('{:12s} Total:{:5d} - not tracked:{:3d}, not identified:{:3d}, not tracked & not identified: {:3d}' - .format(AddressOrigin(address_origin).name, + .format(AddressOrigin(address_origin).name(), device_count, nt_count, ni_count, diff --git a/ogn/model/address_origin.py b/ogn/model/address_origin.py index 1520e6d..51a8dd8 100644 --- a/ogn/model/address_origin.py +++ b/ogn/model/address_origin.py @@ -1,8 +1,19 @@ -from enum import Enum, unique - - -@unique -class AddressOrigin(Enum): +class AddressOrigin: ogn_ddb = 1 flarmnet = 2 userdefined = 3 + + def __init__(self, origin): + if origin in [1, 2, 3]: + self.origin = origin + else: + raise ValueError('no address origin with id {} known'.format(origin)) + + def name(self): + if self.origin == self.ogn_ddb: + return 'ogn_ddb' + elif self.origin == self.flarmnet: + return 'flarmnet' + elif self.origin == self.userdefined: + return 'userdefined' + return ''