mapper.matchers.unique_value_matcher
Unique value matcher for matching Excel and geographical data.
This module provides a matcher that uses exact matching to find matches between Excel and geographical data columns. It matches values that are exactly equal between the two datasets.
UniqueValueMatcher
Bases: BaseMatcher, Ui_UniqueValueMatcher
Matcher for exact value matching between Excel and geographical data.
Behavior
- Finds exact matches between selected Excel and geo columns.
- Ensures one-to-one mapping (skips geo values once used).
- Normalizes values based on UI checkbox settings.
Source code in src/mapper/matchers/unique_value_matcher.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | |
__init__(nr, excel_cols, geo_cols)
Initialize the unique value matcher widget.
Steps
- Call BaseMatcher constructor to store identifier and column lists.
- Call setupUi(self) to build UI controls from .ui file.
- Populate Excel and geo combo boxes with provided column lists.
- Disable normalization checkboxes by default.
- Connect UI signals to the
updatedandremovedsignals.
Source code in src/mapper/matchers/unique_value_matcher.py
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | |
description()
Provide a description of this matcher’s configuration.
Steps
- Retrieve current selections for Excel and geo columns.
- Format as "UVM#
: → ".
Source code in src/mapper/matchers/unique_value_matcher.py
205 206 207 208 209 210 211 212 213 | |
match(excel_df, geo_df)
Match records using exact matching on normalized values.
Steps
- Retrieve selected columns from UI.
- If either column is missing, set stats to 0 and return no matches.
- Normalize values from both columns using
normalize(): a. Convert to string. b. Optionally lowercase, strip whitespace, remove punctuation. - Iterate over each Excel normalized value:
a. Find geo values that exactly match.
b. If none, skip; if multiple, take the first.
c. Skip if that geo index is already used.
d. Build combined row via
build_result(). - Concatenate all matched parts into one DataFrame.
- Update stats label with count of matched rows.
Source code in src/mapper/matchers/unique_value_matcher.py
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | |
normalize(s)
Normalize a string value based on UI checkboxes.
Steps
- If "Ignore Case" is checked, convert to lowercase.
- If "Ignore Whitespace" is checked, remove all whitespace.
- If "Ignore Punctuation" is checked, remove punctuation characters.
Source code in src/mapper/matchers/unique_value_matcher.py
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | |
set_stats(n)
Update the label showing number of matches found.
Steps
- Set
labelStatstext to "Mappings: n".
Source code in src/mapper/matchers/unique_value_matcher.py
193 194 195 196 197 198 199 200 | |