f8a_tagger_cli.py
    F 133:0 find_diffs - C (18)
    F 27:0 _print_result - B (10)
    F 164:0 cli_diff - A (4)
    F 56:0 cli_lookup - A (3)
    F 111:0 cli_aggregate - A (2)
    F 46:0 cli - A (1)
    F 94:0 cli_collect - A (1)
    F 189:0 cli_reckon - A (1)
setup.py
    F 13:0 get_requirements - A (2)
tests/test_tokenizer.py
    F 18:0 test_stopwords_reading - B (6)
    F 56:0 test_remove_stopwords_method - B (6)
    F 117:0 test_lemmatize_method - A (5)
    F 181:0 test_stem_method - A (5)
    F 38:0 test_raw_stopwords_property - A (3)
    F 48:0 test_regexp_stopwords_property - A (3)
    F 12:0 test_initial_state - A (2)
    F 219:0 test_tokenize - A (2)
    F 236:0 test_tokenize_error_handling - A (2)
    F 209:0 sent_tokenize_mock - A (1)
    F 214:0 word_tokenize_mock - A (1)
    F 231:0 sent_tokenize_mock_2 - A (1)
    C 81:0 CustomLemmatizer - A (1)
    M 84:4 CustomLemmatizer.__init__ - A (1)
    M 88:4 CustomLemmatizer.lemmatize - A (1)
    C 93:0 CustomLemmatizer2 - A (1)
    M 96:4 CustomLemmatizer2.__init__ - A (1)
    M 100:4 CustomLemmatizer2.lemmatize - A (1)
    C 105:0 CustomLemmatizer3 - A (1)
    M 108:4 CustomLemmatizer3.__init__ - A (1)
    M 112:4 CustomLemmatizer3.lemmatize - A (1)
    C 145:0 CustomStemmer - A (1)
    M 148:4 CustomStemmer.__init__ - A (1)
    M 152:4 CustomStemmer.stem - A (1)
    C 157:0 CustomStemmer2 - A (1)
    M 160:4 CustomStemmer2.__init__ - A (1)
    M 164:4 CustomStemmer2.stem - A (1)
    C 169:0 CustomStemmer3 - A (1)
    M 172:4 CustomStemmer3.__init__ - A (1)
    M 176:4 CustomStemmer3.stem - A (1)
tests/test_init.py
    F 22:0 mocked_requests_get - A (2)
    F 28:0 test_prepare_negative - A (2)
    F 9:0 test_prepare - A (1)
    C 14:0 _response - A (1)
    M 16:4 _response.__init__ - A (1)
tests/test_parsers.py
    F 9:0 test_initial_states - C (12)
    F 61:0 test_html_parser - A (3)
    F 45:0 test_text_parser - A (2)
    F 53:0 test_markdown_parser - A (2)
    F 72:0 test_restructuredtext_parser - A (2)
    F 80:0 test_asciidoc_parser - A (2)
    F 89:0 test_textile_parser - A (2)
    F 98:0 test_rdoc_parser - A (2)
    F 107:0 test_org_parser - A (2)
    F 116:0 test_creole_parser - A (2)
    F 125:0 test_mediawiki_parser - A (2)
    F 134:0 test_pod_parser - A (2)
tests/test_keywords_chief.py
    F 130:0 test_keywords_property - C (11)
    F 265:0 test_filter_keywords - C (11)
    F 322:0 test_matches_keyword_pattern_negative - B (10)
    F 280:0 test_compute_synonyms - B (9)
    F 250:0 test_extract_keywords - B (8)
    F 35:0 test_keyword_file_check - B (7)
    F 10:0 test_initial_state - B (6)
    F 195:0 test_get_synonyms_method_positive - A (5)
    F 305:0 test_is_keyword_negative - A (5)
    F 314:0 test_matches_keyword_pattern_positive - A (5)
    F 55:0 test_keyword_loading_from_bytestream - A (4)
    F 156:0 test_get_keywords_count_method - A (4)
    F 168:0 test_get_average_occurence_count_method - A (4)
    F 180:0 test_compute_ngram_size_method - A (4)
    F 204:0 test_get_synonyms_method_negative - A (4)
    F 232:0 test_get_keyword_method_negative - A (4)
    F 20:0 test_custom_keyword_file_loading - A (3)
    F 79:0 test_custom_lemmatizer - A (3)
    F 100:0 test_custom_stemmer - A (3)
    F 121:0 test_synonyms_detection - A (3)
    F 212:0 test_get_keyword_method_positive - A (3)
    F 298:0 test_is_keyword_positive - A (3)
    F 28:0 test_non_existing_keyword_file_loading - A (2)
    F 241:0 test_get_keyword_special_cases - A (2)
    C 67:0 CustomLemmatizer - A (1)
    M 70:4 CustomLemmatizer.__init__ - A (1)
    M 74:4 CustomLemmatizer.lemmatize - A (1)
    C 88:0 CustomStemmer - A (1)
    M 91:4 CustomStemmer.__init__ - A (1)
    M 95:4 CustomStemmer.stem - A (1)
    C 109:0 UpdatedCustomStemmer - A (1)
    M 112:4 UpdatedCustomStemmer.__init__ - A (1)
    M 116:4 UpdatedCustomStemmer.stem - A (1)
tests/test_recipes.py
    F 133:0 test_aggregate - B (10)
    F 50:0 test_lookup_file - B (7)
    F 83:0 test_lookup_readme_wrong_input - A (5)
    F 109:0 test_prepare_lookup - A (4)
    F 9:0 test_get_registered_stemmers - A (3)
    F 16:0 test_get_registered_scorers - A (3)
    F 24:0 test_get_registered_collectors - A (3)
    F 32:0 test_reckon - A (3)
    F 39:0 test_lookup_text - A (3)
    F 72:0 test_lookup_readme_proper_input - A (2)
    F 124:0 test_perform_lookup - A (2)
    F 161:0 test_collect - A (2)
tests/test_pypi_collector.py
    F 65:0 test_execute_method_negative - A (4)
    F 90:0 test_execute_method_negative2 - A (4)
    F 10:0 test_initial_state - A (2)
    F 26:0 mocked_requests_get - A (2)
    F 43:0 ___test_original_execute_method - A (2)
    F 51:0 test_execute_method - A (2)
    F 76:0 mocked_requests_get_3 - A (2)
    F 60:0 mocked_requests_get_2 - A (1)
    C 16:0 _response - A (1)
    M 18:4 _response.__init__ - A (1)
tests/test_lemmatizer.py
    F 8:0 test_get_lemmatizer - A (2)
tests/test_scoring.py
    F 38:0 test_relative_usage_scoring - B (6)
    F 26:0 test_count_scoring - A (4)
    F 8:0 test_get_registered_scorers - A (3)
    F 17:0 test_get_scoring - A (3)
    F 55:0 test_tfid_scoring - A (3)
    F 66:0 test_scoring_func - A (2)
tests/test_maven_collector.py
    F 16:0 test_execute_method - A (3)
    F 10:0 test_initial_state - A (2)
tests/test_npm_collector.py
    F 7:0 test_initial_state - A (2)
    F 13:0 test_execute_method - A (2)
tests/test_utils.py
    F 7:0 test_iter_files - B (8)
    F 24:0 test_iter_files_negative - B (7)
    F 54:0 test_get_files_dir - A (3)
    F 70:0 test_cwd - A (3)
    F 77:0 test_progressbarsize - A (3)
    F 39:0 test_json_dumps - A (2)
    F 49:0 path_home_mock - A (1)
tests/test_stemmer.py
    F 9:0 test_get_stemmer_positive - A (4)
    F 21:0 test_get_stemmer_negative - A (4)
    F 36:0 test_get_registered_stemmers - A (3)
tests/test_corpus.py
    F 72:0 test_load_json_method - B (7)
    F 57:0 test_load_pickle_method - B (6)
    F 17:0 test_add_method - A (5)
    F 9:0 test_initial_state - A (4)
    F 30:0 test_get_memory_usage_method - A (3)
    F 39:0 test_dump_pickle_method - A (2)
    F 48:0 test_dump_json_method - A (2)
tests/test_stackoverflow_collector.py
    F 15:0 test_execute_method - A (3)
    F 69:0 test_execute_method_negative2 - A (3)
    F 94:0 test_execute_method_negative3 - A (3)
    F 9:0 test_initial_state - A (2)
    F 32:0 mocked_requests_1 - A (2)
    F 44:0 test_execute_method_negative1 - A (2)
    F 58:0 mocked_add - A (2)
    F 82:0 mocked_add_2 - A (2)
    C 24:0 _response - A (1)
    M 26:4 _response.__init__ - A (1)
tests/test_core_parser.py
    F 13:0 test_parse_method - B (6)
    F 81:0 test_parse_readme_json_method_negative - B (6)
    F 34:0 test_parse_file_method_positive - A (3)
    F 45:0 test_parse_file_method_negative - A (3)
    F 59:0 test_parse_file_method_json_fallback - A (3)
    F 70:0 test_parse_readme_json_method_positive - A (3)
    F 7:0 test_initial_state - A (2)
tests/test_keywords_set.py
    F 13:0 test_add_method - C (14)
    F 50:0 test_union_method - C (13)
    F 80:0 test_union_method_and_occurrence_count_1 - C (13)
    F 108:0 test_union_method_and_occurrence_count_2 - C (13)
    F 136:0 test_union_method_for_overlapping_data - B (7)
    F 156:0 test_union_method_for_empty_data - A (5)
    F 39:0 test_occurrence_counting - A (4)
    F 6:0 test_initial_state - A (3)
tools/check_python_version.py
    F 19:0 get_expected_version - A (4)
    F 48:0 compare_versions - A (2)
    F 59:0 main - A (2)
    F 43:0 get_actual_version - A (1)
f8a_tagger/lemmatizer.py
    C 7:0 Lemmatizer - A (2)
    M 10:4 Lemmatizer.get_lemmatizer - A (2)
f8a_tagger/tokenizer.py
    M 24:4 Tokenizer.__init__ - C (14)
    M 143:4 Tokenizer.tokenize - C (12)
    C 18:0 Tokenizer - B (6)
    M 116:4 Tokenizer.remove_stopwords - B (6)
    M 86:4 Tokenizer._lemmatize - A (5)
    M 101:4 Tokenizer._stem - A (5)
    M 81:4 Tokenizer.regexp_stopwords - A (2)
    M 76:4 Tokenizer.raw_stopwords - A (1)
f8a_tagger/__init__.py
    F 39:0 prepare - A (2)
f8a_tagger/utils.py
    F 40:0 iter_files - B (9)
    F 22:0 _get_remote_resource - A (3)
    F 126:0 get_files_dir - A (3)
    F 78:0 json_dumps - A (2)
    F 96:0 progressbarize - A (2)
    F 115:0 cwd - A (1)
f8a_tagger/keywords_chief.py
    M 23:4 KeywordsChief.__init__ - C (18)
    M 153:4 KeywordsChief.get_keyword - B (9)
    M 92:4 KeywordsChief.keywords - B (8)
    M 82:4 KeywordsChief.read_keyword_file - B (6)
    M 196:4 KeywordsChief.filter_keyword - B (6)
    C 16:0 KeywordsChief - A (5)
    M 127:4 KeywordsChief.compute_ngram_size - A (5)
    M 180:4 KeywordsChief.extract_keywords - A (3)
    M 231:4 KeywordsChief.compute_synonyms - A (3)
    M 119:4 KeywordsChief.get_average_occurrence_count - A (2)
    M 142:4 KeywordsChief.get_synonyms - A (2)
    M 258:4 KeywordsChief.matches_keyword_pattern - A (2)
    M 115:4 KeywordsChief.get_keywords_count - A (1)
    M 250:4 KeywordsChief.is_keyword - A (1)
f8a_tagger/scoring.py
    C 71:0 RelativeUsageScoring - A (3)
    M 74:4 RelativeUsageScoring._scoring_func - A (3)
    M 100:4 RelativeUsageScoring.score - A (3)
    M 17:4 Scoring.register_scoring - A (2)
    M 35:4 Scoring.get_scoring - A (2)
    C 12:0 Scoring - A (1)
    M 27:4 Scoring.get_registered_scorers - A (1)
    M 48:4 Scoring.score - A (1)
    C 58:0 CountScoring - A (1)
    M 61:4 CountScoring.score - A (1)
    C 122:0 TfIdfScoring - A (1)
    M 125:4 TfIdfScoring.score - A (1)
f8a_tagger/stemmer.py
    C 9:0 Stemmer - A (2)
    M 18:4 Stemmer.get_stemmer - A (2)
    M 32:4 Stemmer.get_registered_stemmers - A (1)
f8a_tagger/corpus.py
    M 21:4 Corpus.get_memory_usage - A (2)
    M 53:4 Corpus.dump_pickle - A (2)
    M 63:4 Corpus.dump_json - A (2)
    M 74:4 Corpus.load_pickle - A (2)
    M 91:4 Corpus.load_json - A (2)
    C 13:0 Corpus - A (1)
    M 16:4 Corpus.__init__ - A (1)
    M 34:4 Corpus.get_size - A (1)
    M 42:4 Corpus.add - A (1)
f8a_tagger/recipes.py
    F 216:0 aggregate - C (20)
    F 25:0 _prepare_lookup - B (6)
    F 73:0 lookup_file - B (6)
    F 187:0 collect - A (5)
    F 123:0 lookup_readme - A (4)
    F 274:0 reckon - A (3)
    F 55:0 _perform_lookup - A (2)
    F 159:0 lookup_text - A (2)
    F 210:0 check_input_keywords_file - A (2)
    F 297:0 get_registered_collectors - A (1)
    F 302:0 get_registered_stemmers - A (1)
    F 307:0 get_registered_scorers - A (1)
f8a_tagger/keywords_set.py
    M 24:4 KeywordsSet.union - A (3)
    C 5:0 KeywordsSet - A (2)
    M 17:4 KeywordsSet.add - A (2)
    M 8:4 KeywordsSet.__init__ - A (1)
    M 12:4 KeywordsSet.keywords - A (1)
f8a_tagger/errors.py
    C 5:0 StemmerNotFoundError - A (1)
    C 9:0 InvalidInputError - A (1)
    C 13:0 RemoteResourceMissingError - A (1)
    C 17:0 RemoteDependencyMissingError - A (1)
    C 21:0 InstallPrepareError - A (1)
f8a_tagger/collectors/pypi.py
    C 18:0 PypiCollector - C (11)
    M 24:4 PypiCollector.execute - C (11)
f8a_tagger/collectors/maven.py
    C 25:0 MavenCollector - B (10)
    M 30:4 MavenCollector.execute - B (10)
f8a_tagger/collectors/npm.py
    C 7:0 NpmCollector - A (3)
    M 10:4 NpmCollector.execute - A (3)
f8a_tagger/collectors/base.py
    M 12:4 CollectorBase.execute - A (3)
    C 7:0 CollectorBase - A (2)
    M 25:4 CollectorBase.register_collector - A (2)
    M 43:4 CollectorBase.get_collector_class - A (2)
    M 38:4 CollectorBase.get_registered_collectors - A (1)
f8a_tagger/collectors/stackoverflow.py
    C 16:0 StackOverflowCollector - B (10)
    M 21:4 StackOverflowCollector.execute - B (10)
f8a_tagger/parsers/core_parser.py
    M 86:4 CoreParser.parse_readme_json - A (5)
    M 108:4 CoreParser.parse_file - A (5)
    C 23:0 CoreParser - A (4)
    M 64:4 CoreParser.parse - A (3)
f8a_tagger/parsers/parsers.py
    C 15:0 TextParser - A (1)
    M 18:4 TextParser.parse - A (1)
    C 29:0 MarkdownParser - A (1)
    M 32:4 MarkdownParser.parse - A (1)
    C 43:0 HtmlParser - A (1)
    M 46:4 HtmlParser.parse - A (1)
    C 57:0 ReStructuredTextParser - A (1)
    M 60:4 ReStructuredTextParser.parse - A (1)
    C 74:0 AsciidocParser - A (1)
    M 77:4 AsciidocParser.parse - A (1)
    C 88:0 TextileParser - A (1)
    M 91:4 TextileParser.parse - A (1)
    C 103:0 RdocParser - A (1)
    M 106:4 RdocParser.parse - A (1)
    C 118:0 OrgParser - A (1)
    M 121:4 OrgParser.parse - A (1)
    C 133:0 CreoleParser - A (1)
    M 136:4 CreoleParser.parse - A (1)
    C 148:0 MediawikiParser - A (1)
    M 151:4 MediawikiParser.parse - A (1)
    C 163:0 PodParser - A (1)
    M 166:4 PodParser.parse - A (1)
f8a_tagger/parsers/abstract.py
    C 7:0 AbstractParser - A (1)
    M 10:4 AbstractParser.parse - A (1)

286 blocks (classes, functions, methods) analyzed.
Average complexity: A (3.2832167832167833)