]> git.openstreetmap.org Git - nominatim.git/blob - nominatim/tools/special_phrases/importer_statistics.py
add tests for new data invalidation functions
[nominatim.git] / nominatim / tools / special_phrases / importer_statistics.py
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # This file is part of Nominatim. (https://nominatim.org)
4 #
5 # Copyright (C) 2022 by the Nominatim developer community.
6 # For a full list of authors see the git log.
7 """
8     Contains the class which handles statistics for the
9     import of special phrases.
10 """
11 import logging
12 LOG = logging.getLogger()
13
14 class SpecialPhrasesImporterStatistics():
15     # pylint: disable-msg=too-many-instance-attributes
16     """
17         Class handling statistics of the import
18         process of special phrases.
19     """
20     def __init__(self):
21         self._intialize_values()
22
23     def _intialize_values(self):
24         """
25             Set all counts for the global
26             import to 0.
27         """
28         self.tables_created = 0
29         self.tables_deleted = 0
30         self.tables_ignored = 0
31         self.invalids = 0
32
33     def notify_one_phrase_invalid(self):
34         """
35             Add +1 to the count of invalid entries
36             fetched from the wiki.
37         """
38         self.invalids += 1
39
40     def notify_one_table_created(self):
41         """
42             Add +1 to the count of created tables.
43         """
44         self.tables_created += 1
45
46     def notify_one_table_deleted(self):
47         """
48             Add +1 to the count of deleted tables.
49         """
50         self.tables_deleted += 1
51
52     def notify_one_table_ignored(self):
53         """
54             Add +1 to the count of ignored tables.
55         """
56         self.tables_ignored += 1
57
58     def notify_import_done(self):
59         """
60             Print stats for the whole import process
61             and reset all values.
62         """
63         LOG.info('====================================================================')
64         LOG.info('Final statistics of the import:')
65         LOG.info('- %s phrases were invalid.', self.invalids)
66         if self.invalids > 0:
67             LOG.info('  Those invalid phrases have been skipped.')
68         LOG.info('- %s tables were ignored as they already exist on the database',
69                  self.tables_ignored)
70         LOG.info('- %s tables were created', self.tables_created)
71         LOG.info('- %s tables were deleted from the database', self.tables_deleted)
72         if self.tables_deleted > 0:
73             LOG.info('  They were deleted as they are not valid anymore.')
74
75         if self.invalids > 0:
76             LOG.warning('%s phrases were invalid and have been skipped during the whole process.',
77                         self.invalids)
78
79         self._intialize_values()