|
6 | 6 |
|
7 | 7 | from coala_quickstart.Constants import ( |
8 | 8 | IMPORTANT_BEAR_LIST, ALL_CAPABILITIES, DEFAULT_CAPABILTIES) |
9 | | -from coala_quickstart.Strings import BEAR_HELP |
| 9 | +from coala_quickstart.Strings import (PRINT_BEARS, BEAR_HELP) |
10 | 10 | from coala_quickstart.generation.SettingsFilling import is_autofill_possible |
11 | 11 | from coalib.bearlib.abstractions.LinterClass import LinterClass |
12 | 12 | from coalib.settings.ConfigurationGathering import get_filtered_bears |
@@ -200,38 +200,48 @@ def get_non_optional_settings_bears(bears): |
200 | 200 |
|
201 | 201 | def remove_unusable_bears(bears, unusable_bears): |
202 | 202 | """ |
203 | | - From the bears dict, filter the bears appearing in unusable_bears. |
| 203 | + From the bears dict, filter the bears appearing in unusable_bears |
| 204 | + and save them under “unusable” key for printing later. |
204 | 205 |
|
205 | 206 | :param bears: |
206 | 207 | A dict with language name as key and bear classes as value. |
207 | 208 | :param unusable_bears: |
208 | 209 | A collection of Bear classes. |
209 | 210 | """ |
210 | | - for language, language_bears in bears.items(): |
| 211 | + for language, language_bears in bears['usable'].items(): |
211 | 212 | for bear in tuple(language_bears): |
212 | 213 | if bear in unusable_bears: |
213 | | - bears[language].remove(bear) |
| 214 | + bears['usable'][language].remove(bear) |
| 215 | + bears['unusable'][language] = bears['unusable'].get( |
| 216 | + language, ()) + (bear, ) |
214 | 217 |
|
215 | 218 |
|
216 | | -def print_relevant_bears(printer, relevant_bears, label='relevant'): |
| 219 | +def print_relevant_bears(printer, relevant_bears): |
217 | 220 | """ |
218 | | - Prints the relevant bears in sections separated by language. |
| 221 | + Prints both the usable and unusable, relevant bears |
| 222 | + in sections separated by language. |
219 | 223 |
|
220 | 224 | :param printer: |
221 | 225 | A ``ConsolePrinter`` object used for console interactions. |
222 | 226 | :param relevant_bears: |
223 | | - A dict with language name as key and bear classes as value. |
| 227 | + An ``OrderedDict`` indexed by “usable” and “unusable” bears stored in |
| 228 | + dictionaries that use language as key and bear classes as value. |
224 | 229 | """ |
225 | | - if label == 'relevant': |
226 | | - printer.print(BEAR_HELP) |
227 | | - |
228 | | - printer.print("\nBased on the languages used in project the following " |
229 | | - "bears have been identified to be %s:" % label) |
230 | | - for language in relevant_bears: |
231 | | - printer.print(" [" + language + "]", color="green") |
232 | | - for bear in relevant_bears[language]: |
233 | | - printer.print(" " + bear.name, color="cyan") |
234 | | - printer.print("") |
| 230 | + printer.print(BEAR_HELP) |
| 231 | + |
| 232 | + # Don't print anything for empty bear sets |
| 233 | + nonempty_label_bears = ( |
| 234 | + label for label in relevant_bears if len(relevant_bears[label]) > 0) |
| 235 | + |
| 236 | + for label_bears in nonempty_label_bears: |
| 237 | + printer.print(PRINT_BEARS[label_bears]['msg']) |
| 238 | + for language in relevant_bears[label_bears]: |
| 239 | + printer.print(" [" + language + "]", |
| 240 | + color=PRINT_BEARS[label_bears]["colors"][0]) |
| 241 | + for bear in relevant_bears[label_bears][language]: |
| 242 | + printer.print(" " + bear.name, |
| 243 | + color=PRINT_BEARS[label_bears]["colors"][1]) |
| 244 | + printer.print("") |
235 | 245 |
|
236 | 246 |
|
237 | 247 | def generate_requirements_map(bears): |
|
0 commit comments