-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
coala-quickstart.py: Change the printing of bears #227
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,7 @@ | |
import logging | ||
import os | ||
import sys | ||
from collections import OrderedDict | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't see the use of ordered dict over here There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I used a OrderedDict there because I wanted to make sure that each time |
||
|
||
from pyprint.ConsolePrinter import ConsolePrinter | ||
|
||
|
@@ -17,7 +18,7 @@ | |
filter_relevant_bears, | ||
print_relevant_bears, | ||
get_non_optional_settings_bears, | ||
remove_unusable_bears, | ||
filter_unusable_bears, | ||
) | ||
from coala_quickstart.generation.Settings import ( | ||
generate_settings, write_coafile) | ||
|
@@ -103,18 +104,27 @@ def main(): | |
|
||
extracted_information = collect_info(project_dir) | ||
|
||
relevant_bears = filter_relevant_bears( | ||
selected_bears = filter_relevant_bears( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. unnecessary .. see elsewhere |
||
used_languages, printer, arg_parser, extracted_information) | ||
|
||
if args.green_mode: | ||
collect_bear_settings(relevant_bears) | ||
collect_bear_settings(selected_bears) | ||
|
||
print_relevant_bears(printer, relevant_bears) | ||
# OrderedDict used for print_relevant_bears to first print unusable bears | ||
relevant_bears = OrderedDict( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. labelled_bears = {'usable': selected_bears}
print_labels = ['usable'] |
||
[('unusable', {}), | ||
('usable', | ||
selected_bears)]) | ||
|
||
if args.non_interactive and not args.incomplete_sections: | ||
unusable_bears = get_non_optional_settings_bears(relevant_bears) | ||
remove_unusable_bears(relevant_bears, unusable_bears) | ||
print_relevant_bears(printer, relevant_bears, 'usable') | ||
unusable_bears = get_non_optional_settings_bears( | ||
relevant_bears['usable']) | ||
filter_unusable_bears(relevant_bears, unusable_bears) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. labelled_bears['unusable'] = remove_unusable_bears(relevant_bears, unusable_bears)
print_labels = ['unusable', 'usable'] |
||
|
||
print_relevant_bears(printer, relevant_bears) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
# Drop unusable bears | ||
relevant_bears = relevant_bears['usable'] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Isn't the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I changed There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
doesn't that contradict with the function name? |
||
|
||
settings = generate_settings( | ||
project_dir, | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,7 +6,7 @@ | |
|
||
from coala_quickstart.Constants import ( | ||
IMPORTANT_BEAR_LIST, ALL_CAPABILITIES, DEFAULT_CAPABILTIES) | ||
from coala_quickstart.Strings import BEAR_HELP | ||
from coala_quickstart.Strings import PRINT_BEARS, BEAR_HELP | ||
from coala_quickstart.generation.SettingsFilling import is_autofill_possible | ||
from coalib.bearlib.abstractions.LinterClass import LinterClass | ||
from coalib.settings.ConfigurationGathering import get_filtered_bears | ||
|
@@ -201,40 +201,52 @@ def get_non_optional_settings_bears(bears): | |
return non_optional_settings | ||
|
||
|
||
def remove_unusable_bears(bears, unusable_bears): | ||
def filter_unusable_bears(bears, unusable_bears): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This can stay as |
||
""" | ||
From the bears dict, filter the bears appearing in unusable_bears. | ||
From the bears dict, filter the bears appearing in unusable_bears | ||
and save them under “unusable” key for printing later. | ||
|
||
:param bears: | ||
A dict with language name as key and bear classes as value. | ||
:param unusable_bears: | ||
A collection of Bear classes. | ||
""" | ||
for language, language_bears in bears.items(): | ||
for language, language_bears in bears['usable'].items(): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. not needed |
||
for bear in tuple(language_bears): | ||
if bear in unusable_bears: | ||
bears[language].remove(bear) | ||
bears['usable'][language].remove(bear) | ||
bears['unusable'][language] = bears['unusable'].get( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. return a new dict with the unusable bears grouped by language. |
||
language, ()) + (bear, ) | ||
|
||
|
||
def print_relevant_bears(printer, relevant_bears, label='relevant'): | ||
def print_relevant_bears(printer, relevant_bears): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. change this to:
The order of the labels is then used to determine which groups to show. |
||
""" | ||
Prints the relevant bears in sections separated by language. | ||
Prints both the usable and unusable, relevant bears | ||
in sections indexed by language. | ||
|
||
:param printer: | ||
A ``ConsolePrinter`` object used for console interactions. | ||
:param relevant_bears: | ||
A dict with language name as key and bear classes as value. | ||
An ``OrderedDict`` indexed by “usable” and “unusable” bears stored in | ||
dictionaries that use language as key and bear classes as value. | ||
""" | ||
if label == 'relevant': | ||
printer.print(BEAR_HELP) | ||
|
||
printer.print('\nBased on the languages used in project the following ' | ||
'bears have been identified to be %s:' % label) | ||
for language in relevant_bears: | ||
printer.print(' [' + language + ']', color='green') | ||
for bear in relevant_bears[language]: | ||
printer.print(' ' + bear.name, color='cyan') | ||
printer.print('') | ||
printer.print(BEAR_HELP) | ||
|
||
nonempty_label_bears = [ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nonempty -> non_empty |
||
label for label in relevant_bears if len(relevant_bears[label]) > 0] | ||
|
||
if not nonempty_label_bears: | ||
printer.print('No relevant bears were found.') | ||
else: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. you can use then the following can be dedented |
||
for label_bears in nonempty_label_bears: | ||
printer.print(PRINT_BEARS[label_bears]['msg']) | ||
for language in relevant_bears[label_bears]: | ||
printer.print(' [' + language + ']', | ||
color=PRINT_BEARS[label_bears]['colors'][0]) | ||
for bear in relevant_bears[label_bears][language]: | ||
printer.print(' ' + bear.name, | ||
color=PRINT_BEARS[label_bears]['colors'][1]) | ||
printer.print('') | ||
|
||
|
||
def generate_requirements_map(bears): | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add trailing comma