| src/local_deep_research/__init__.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/__version__.py |
(no class) |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/__init__.py |
(no class) |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidate_exploration/__init__.py |
(no class) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidate_exploration/adaptive_explorer.py |
AdaptiveExplorer |
|
100% |
107 |
0 |
0 |
|
100% |
38 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidate_exploration/adaptive_explorer.py |
(no class) |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidate_exploration/base_explorer.py |
ExplorationStrategy |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidate_exploration/base_explorer.py |
ExplorationResult |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidate_exploration/base_explorer.py |
BaseCandidateExplorer |
|
98% |
101 |
2 |
0 |
|
95% |
42 |
2 |
|
97% |
| src/local_deep_research/advanced_search_system/candidate_exploration/base_explorer.py |
(no class) |
|
100% |
31 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidate_exploration/constraint_guided_explorer.py |
ConstraintGuidedExplorer |
|
99% |
118 |
1 |
0 |
|
97% |
60 |
2 |
|
98% |
| src/local_deep_research/advanced_search_system/candidate_exploration/constraint_guided_explorer.py |
(no class) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidate_exploration/diversity_explorer.py |
DiversityExplorer |
|
93% |
164 |
11 |
0 |
|
84% |
88 |
6 |
|
90% |
| src/local_deep_research/advanced_search_system/candidate_exploration/diversity_explorer.py |
(no class) |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidate_exploration/parallel_explorer.py |
ParallelExplorer |
|
100% |
75 |
0 |
0 |
|
96% |
24 |
1 |
|
99% |
| src/local_deep_research/advanced_search_system/candidate_exploration/parallel_explorer.py |
(no class) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidate_exploration/progressive_explorer.py |
SearchProgress |
|
100% |
10 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidate_exploration/progressive_explorer.py |
ProgressiveExplorer |
|
100% |
85 |
0 |
0 |
|
96% |
56 |
2 |
|
99% |
| src/local_deep_research/advanced_search_system/candidate_exploration/progressive_explorer.py |
(no class) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidates/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidates/base_candidate.py |
Candidate |
|
100% |
23 |
0 |
0 |
|
100% |
14 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/candidates/base_candidate.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/constraints/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/constraints/base_constraint.py |
ConstraintType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/constraints/base_constraint.py |
Constraint |
|
100% |
14 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/constraints/base_constraint.py |
(no class) |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/constraints/constraint_analyzer.py |
ConstraintAnalyzer |
|
100% |
34 |
0 |
0 |
|
100% |
18 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/constraints/constraint_analyzer.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/evidence/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/evidence/base_evidence.py |
EvidenceType |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/evidence/base_evidence.py |
Evidence |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/evidence/base_evidence.py |
(no class) |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/evidence/evaluator.py |
EvidenceEvaluator |
|
100% |
38 |
0 |
0 |
|
100% |
14 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/evidence/evaluator.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/filters/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/filters/base_filter.py |
BaseFilter |
|
50% |
2 |
1 |
0 |
|
100% |
0 |
0 |
|
50% |
| src/local_deep_research/advanced_search_system/filters/base_filter.py |
(no class) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/filters/cross_engine_filter.py |
CrossEngineFilter |
|
98% |
83 |
2 |
0 |
|
100% |
38 |
0 |
|
98% |
| src/local_deep_research/advanced_search_system/filters/cross_engine_filter.py |
(no class) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/filters/followup_relevance_filter.py |
FollowUpRelevanceFilter |
|
98% |
54 |
1 |
0 |
|
96% |
26 |
1 |
|
98% |
| src/local_deep_research/advanced_search_system/filters/followup_relevance_filter.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/filters/journal_reputation_filter.py |
JournalFilterError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/filters/journal_reputation_filter.py |
JournalReputationFilter |
|
96% |
370 |
13 |
0 |
|
89% |
132 |
14 |
|
95% |
| src/local_deep_research/advanced_search_system/filters/journal_reputation_filter.py |
(no class) |
|
81% |
94 |
18 |
0 |
|
72% |
18 |
1 |
|
79% |
| src/local_deep_research/advanced_search_system/findings/base_findings.py |
BaseFindingsRepository |
|
33% |
6 |
4 |
0 |
|
100% |
0 |
0 |
|
33% |
| src/local_deep_research/advanced_search_system/findings/base_findings.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/findings/repository.py |
FindingsRepository |
|
94% |
174 |
11 |
0 |
|
94% |
72 |
4 |
|
94% |
| src/local_deep_research/advanced_search_system/findings/repository.py |
(no class) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/findings/topic.py |
Topic |
|
100% |
13 |
0 |
0 |
|
90% |
10 |
1 |
|
96% |
| src/local_deep_research/advanced_search_system/findings/topic.py |
TopicGraph |
|
100% |
53 |
0 |
0 |
|
88% |
42 |
5 |
|
95% |
| src/local_deep_research/advanced_search_system/findings/topic.py |
(no class) |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/knowledge/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/knowledge/followup_context_manager.py |
FollowUpContextHandler |
|
98% |
94 |
2 |
0 |
|
95% |
44 |
2 |
|
97% |
| src/local_deep_research/advanced_search_system/knowledge/followup_context_manager.py |
(no class) |
|
100% |
22 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/parallel_search.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/__init__.py |
(no class) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/atomic_fact_question.py |
AtomicFactQuestionGenerator |
|
100% |
31 |
0 |
0 |
|
100% |
20 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/atomic_fact_question.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/base_question.py |
BaseQuestionGenerator |
|
88% |
8 |
1 |
0 |
|
100% |
4 |
0 |
|
92% |
| src/local_deep_research/advanced_search_system/questions/base_question.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/browsecomp_question.py |
BrowseCompQuestionGenerator |
|
98% |
138 |
3 |
0 |
|
92% |
106 |
9 |
|
95% |
| src/local_deep_research/advanced_search_system/questions/browsecomp_question.py |
(no class) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/decomposition_question.py |
DecompositionQuestionGenerator |
|
97% |
119 |
4 |
0 |
|
88% |
84 |
10 |
|
93% |
| src/local_deep_research/advanced_search_system/questions/decomposition_question.py |
(no class) |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/flexible_browsecomp_question.py |
FlexibleBrowseCompQuestionGenerator |
|
100% |
22 |
0 |
0 |
|
93% |
14 |
1 |
|
97% |
| src/local_deep_research/advanced_search_system/questions/flexible_browsecomp_question.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/followup/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/followup/base_followup_question.py |
BaseFollowUpQuestionGenerator |
|
80% |
5 |
1 |
0 |
|
100% |
0 |
0 |
|
80% |
| src/local_deep_research/advanced_search_system/questions/followup/base_followup_question.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/followup/llm_followup_question.py |
LLMFollowUpQuestionGenerator |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/followup/llm_followup_question.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/followup/simple_followup_question.py |
SimpleFollowUpQuestionGenerator |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/followup/simple_followup_question.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/news_question.py |
NewsQuestionGenerator |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/news_question.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/questions/standard_question.py |
StandardQuestionGenerator |
|
100% |
28 |
0 |
0 |
|
88% |
8 |
1 |
|
97% |
| src/local_deep_research/advanced_search_system/questions/standard_question.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/repositories/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/summarization/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/summarization/base.py |
BaseSummarizer |
|
100% |
16 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/summarization/base.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/summarization/focused.py |
FocusedSummarizer |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/summarization/focused.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/tools/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/tools/archive.py |
(no class) |
|
99% |
86 |
1 |
0 |
|
97% |
38 |
1 |
|
98% |
| src/local_deep_research/advanced_search_system/tools/base_tool.py |
BaseTool |
|
96% |
24 |
1 |
0 |
|
92% |
12 |
1 |
|
94% |
| src/local_deep_research/advanced_search_system/tools/base_tool.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/tools/fetch/__init__.py |
(no class) |
|
96% |
485 |
19 |
15 |
|
95% |
214 |
10 |
|
96% |
| src/local_deep_research/advanced_search_system/tools/fetch/library_resolver.py |
_LibraryReference |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/tools/fetch/library_resolver.py |
(no class) |
|
96% |
141 |
6 |
4 |
|
93% |
60 |
4 |
|
95% |
| src/local_deep_research/advanced_search_system/tools/fetch/prompts.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/tools/search_availability.py |
NoResearchToolsAvailable |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/tools/search_availability.py |
SearchAvailabilityMiddleware |
|
100% |
31 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/advanced_search_system/tools/search_availability.py |
(no class) |
|
96% |
82 |
3 |
0 |
|
92% |
26 |
2 |
|
95% |
| src/local_deep_research/api/__init__.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/api/benchmark_functions.py |
(no class) |
|
100% |
79 |
0 |
0 |
|
100% |
28 |
0 |
|
100% |
| src/local_deep_research/api/client.py |
LDRClient |
|
96% |
105 |
4 |
0 |
|
92% |
48 |
4 |
|
95% |
| src/local_deep_research/api/client.py |
(no class) |
|
100% |
26 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/api/research_functions.py |
(no class) |
|
95% |
234 |
11 |
0 |
|
89% |
100 |
11 |
|
93% |
| src/local_deep_research/api/settings_utils.py |
InMemorySettingsManager |
|
96% |
115 |
5 |
0 |
|
97% |
68 |
2 |
|
96% |
| src/local_deep_research/api/settings_utils.py |
(no class) |
|
95% |
74 |
4 |
0 |
|
89% |
36 |
4 |
|
93% |
| src/local_deep_research/benchmarks/__init__.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/benchmark_functions.py |
(no class) |
|
98% |
131 |
3 |
0 |
|
91% |
76 |
7 |
|
95% |
| src/local_deep_research/benchmarks/comparison/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/comparison/evaluator.py |
_create_spider_chart.radar_factory.RadarAxes |
|
0% |
22 |
22 |
0 |
|
0% |
8 |
0 |
|
0% |
| src/local_deep_research/benchmarks/comparison/evaluator.py |
(no class) |
|
98% |
292 |
6 |
0 |
|
91% |
76 |
5 |
|
96% |
| src/local_deep_research/benchmarks/comparison/results.py |
Benchmark_results |
|
100% |
20 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/benchmarks/comparison/results.py |
(no class) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/datasets.py |
(no class) |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/benchmarks/datasets/__init__.py |
(no class) |
|
83% |
12 |
2 |
0 |
|
100% |
0 |
0 |
|
83% |
| src/local_deep_research/benchmarks/datasets/base.py |
BenchmarkDataset |
|
93% |
54 |
4 |
0 |
|
94% |
18 |
1 |
|
93% |
| src/local_deep_research/benchmarks/datasets/base.py |
DatasetRegistry |
|
100% |
15 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/benchmarks/datasets/base.py |
(no class) |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/datasets/browsecomp.py |
BrowseCompDataset |
|
95% |
39 |
2 |
0 |
|
86% |
14 |
2 |
|
92% |
| src/local_deep_research/benchmarks/datasets/browsecomp.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/datasets/custom_dataset_template.py |
CustomDataset |
|
100% |
14 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/benchmarks/datasets/custom_dataset_template.py |
(no class) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/datasets/simpleqa.py |
SimpleQADataset |
|
100% |
14 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/benchmarks/datasets/simpleqa.py |
(no class) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/datasets/utils.py |
(no class) |
|
87% |
63 |
8 |
0 |
|
88% |
16 |
2 |
|
87% |
| src/local_deep_research/benchmarks/datasets/xbench_deepsearch.py |
XBenchDeepSearchDataset |
|
95% |
76 |
4 |
0 |
|
88% |
16 |
2 |
|
93% |
| src/local_deep_research/benchmarks/datasets/xbench_deepsearch.py |
(no class) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/efficiency/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/efficiency/resource_monitor.py |
ResourceMonitor |
|
100% |
94 |
0 |
0 |
|
100% |
36 |
0 |
|
100% |
| src/local_deep_research/benchmarks/efficiency/resource_monitor.py |
(no class) |
|
87% |
23 |
3 |
0 |
|
100% |
0 |
0 |
|
87% |
| src/local_deep_research/benchmarks/efficiency/speed_profiler.py |
SpeedProfiler |
|
94% |
62 |
4 |
0 |
|
80% |
30 |
4 |
|
89% |
| src/local_deep_research/benchmarks/efficiency/speed_profiler.py |
(no class) |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/evaluators/__init__.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/evaluators/base.py |
BaseBenchmarkEvaluator |
|
83% |
6 |
1 |
0 |
|
100% |
0 |
0 |
|
83% |
| src/local_deep_research/benchmarks/evaluators/base.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/evaluators/browsecomp.py |
BrowseCompEvaluator |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/evaluators/browsecomp.py |
(no class) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/evaluators/composite.py |
CompositeBenchmarkEvaluator |
|
100% |
24 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/benchmarks/evaluators/composite.py |
(no class) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/evaluators/simpleqa.py |
SimpleQAEvaluator |
|
100% |
56 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/benchmarks/evaluators/simpleqa.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/graders.py |
(no class) |
|
89% |
245 |
26 |
0 |
|
82% |
56 |
8 |
|
88% |
| src/local_deep_research/benchmarks/metrics.py |
(no class) |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/benchmarks/metrics/__init__.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/metrics/calculation.py |
(no class) |
|
99% |
142 |
2 |
0 |
|
100% |
40 |
0 |
|
99% |
| src/local_deep_research/benchmarks/metrics/reporting.py |
(no class) |
|
97% |
60 |
2 |
0 |
|
90% |
30 |
3 |
|
94% |
| src/local_deep_research/benchmarks/metrics/statistics.py |
(no class) |
|
100% |
53 |
0 |
0 |
|
100% |
24 |
0 |
|
100% |
| src/local_deep_research/benchmarks/models/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/optimization/__init__.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/optimization/api.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/optimization/metrics.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/optimization/optuna_optimizer.py |
OptunaOptimizer |
|
77% |
311 |
71 |
0 |
|
74% |
86 |
10 |
|
77% |
| src/local_deep_research/benchmarks/optimization/optuna_optimizer.py |
(no class) |
|
98% |
57 |
1 |
0 |
|
75% |
4 |
1 |
|
97% |
| src/local_deep_research/benchmarks/runners.py |
(no class) |
|
100% |
122 |
0 |
0 |
|
100% |
42 |
0 |
|
100% |
| src/local_deep_research/benchmarks/templates.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/web_api/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/web_api/benchmark_service.py |
SocketIOService |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/web_api/benchmark_service.py |
BenchmarkTaskStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/benchmarks/web_api/benchmark_service.py |
BenchmarkQueueTracker |
|
100% |
29 |
0 |
0 |
|
93% |
14 |
1 |
|
98% |
| src/local_deep_research/benchmarks/web_api/benchmark_service.py |
BenchmarkService |
|
97% |
442 |
13 |
0 |
|
89% |
122 |
13 |
|
95% |
| src/local_deep_research/benchmarks/web_api/benchmark_service.py |
(no class) |
|
97% |
68 |
2 |
0 |
|
50% |
4 |
2 |
|
94% |
| src/local_deep_research/chat/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/chat/context.py |
ChatContextManager |
|
96% |
91 |
4 |
0 |
|
90% |
50 |
5 |
|
94% |
| src/local_deep_research/chat/context.py |
(no class) |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/chat/service.py |
ChatCursorError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/chat/service.py |
ArchiveBlockedError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/chat/service.py |
ChatSessionNotFound |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/chat/service.py |
ChatRepositoryError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/chat/service.py |
AttemptNotFound |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/chat/service.py |
AttemptInProgress |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/chat/service.py |
ChatService |
|
90% |
366 |
36 |
0 |
|
92% |
112 |
9 |
|
91% |
| src/local_deep_research/chat/service.py |
(no class) |
|
100% |
54 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/citation_handler.py |
CitationHandler |
|
100% |
30 |
0 |
0 |
|
92% |
12 |
1 |
|
98% |
| src/local_deep_research/citation_handler.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/citation_handlers/__init__.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/citation_handlers/base_citation_handler.py |
_HeadingRepetitionGuard |
|
97% |
32 |
1 |
0 |
|
94% |
18 |
1 |
|
96% |
| src/local_deep_research/citation_handlers/base_citation_handler.py |
BaseCitationHandler |
|
95% |
105 |
5 |
0 |
|
96% |
46 |
2 |
|
95% |
| src/local_deep_research/citation_handlers/base_citation_handler.py |
(no class) |
|
100% |
34 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/citation_handlers/forced_answer_citation_handler.py |
ForcedAnswerCitationHandler |
|
100% |
42 |
0 |
0 |
|
100% |
16 |
0 |
|
100% |
| src/local_deep_research/citation_handlers/forced_answer_citation_handler.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/citation_handlers/precision_extraction_handler.py |
PrecisionExtractionHandler |
|
99% |
194 |
1 |
0 |
|
92% |
90 |
7 |
|
97% |
| src/local_deep_research/citation_handlers/precision_extraction_handler.py |
(no class) |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/citation_handlers/standard_citation_handler.py |
StandardCitationHandler |
|
100% |
34 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/citation_handlers/standard_citation_handler.py |
(no class) |
|
100% |
15 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/config/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/config/constants.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/config/llm_config.py |
LLMNotConfiguredError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/config/llm_config.py |
ProcessingLLMWrapper |
|
71% |
374 |
107 |
0 |
|
63% |
172 |
31 |
|
69% |
| src/local_deep_research/config/llm_config.py |
(no class) |
|
97% |
186 |
5 |
0 |
|
97% |
74 |
2 |
|
97% |
| src/local_deep_research/config/paths.py |
DirectoryNotPrivateError |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/config/paths.py |
(no class) |
|
99% |
104 |
1 |
0 |
|
96% |
28 |
1 |
|
98% |
| src/local_deep_research/config/search_config.py |
(no class) |
|
100% |
27 |
0 |
0 |
|
90% |
10 |
1 |
|
97% |
| src/local_deep_research/config/thread_settings.py |
NoSettingsContextError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/config/thread_settings.py |
(no class) |
|
99% |
77 |
1 |
0 |
|
97% |
38 |
1 |
|
98% |
| src/local_deep_research/constants.py |
ResearchStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/constants.py |
(no class) |
|
100% |
64 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/content_fetcher/__init__.py |
(no class) |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/content_fetcher/fetcher.py |
ContentFetcher |
|
95% |
203 |
11 |
13 |
|
94% |
94 |
6 |
|
94% |
| src/local_deep_research/content_fetcher/fetcher.py |
(no class) |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/content_fetcher/url_classifier.py |
URLType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/content_fetcher/url_classifier.py |
URLClassifier |
|
97% |
60 |
2 |
0 |
|
95% |
42 |
2 |
|
96% |
| src/local_deep_research/content_fetcher/url_classifier.py |
(no class) |
|
100% |
35 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/alembic_runner.py |
(no class) |
|
94% |
181 |
10 |
0 |
|
90% |
58 |
6 |
|
93% |
| src/local_deep_research/database/auth_db.py |
(no class) |
|
95% |
98 |
5 |
0 |
|
81% |
16 |
3 |
|
93% |
| src/local_deep_research/database/backup/__init__.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/backup/backup_executor.py |
BackupExecutor |
|
98% |
42 |
1 |
0 |
|
80% |
10 |
2 |
|
94% |
| src/local_deep_research/database/backup/backup_executor.py |
(no class) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/backup/backup_service.py |
BackupResult |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/backup/backup_service.py |
BackupService |
|
87% |
422 |
53 |
0 |
|
92% |
136 |
11 |
|
89% |
| src/local_deep_research/database/backup/backup_service.py |
(no class) |
|
97% |
100 |
3 |
0 |
|
93% |
14 |
1 |
|
96% |
| src/local_deep_research/database/base.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/credential_store_base.py |
CredentialStoreBase |
|
93% |
27 |
2 |
0 |
|
100% |
10 |
0 |
|
95% |
| src/local_deep_research/database/credential_store_base.py |
(no class) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
_ConnectionCacheEntry |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
_ConnectionGeneration |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
_CurrentConnectionGeneration |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
_StaleConnectionGenerationDetached |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
_ConnectionGenerationChanged |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
_ConnectionGenerationMissing |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
_ConnectionGenerationUnverifiable |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
UserConnectionStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
DatabaseInitializationError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
_SidecarWaitBudget |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
_RekeyVerificationError |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/encrypted_db.py |
DatabaseManager |
|
93% |
861 |
64 |
0 |
|
87% |
260 |
27 |
|
91% |
| src/local_deep_research/database/encrypted_db.py |
(no class) |
|
98% |
246 |
5 |
0 |
|
95% |
20 |
1 |
|
98% |
| src/local_deep_research/database/initialize.py |
(no class) |
|
93% |
56 |
4 |
0 |
|
93% |
14 |
1 |
|
93% |
| src/local_deep_research/database/library_init.py |
(no class) |
|
100% |
98 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/database/models/__init__.py |
(no class) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/active_research.py |
UserActiveResearch |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/active_research.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/auth.py |
User |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/auth.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/base.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/benchmark.py |
BenchmarkStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/benchmark.py |
DatasetType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/benchmark.py |
BenchmarkRun |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/benchmark.py |
BenchmarkResult |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/benchmark.py |
BenchmarkConfig |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/benchmark.py |
BenchmarkProgress |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/benchmark.py |
(no class) |
|
100% |
103 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/chat.py |
ChatRole |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/chat.py |
ChatMessageType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/chat.py |
ChatSessionStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/chat.py |
ChatSession |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/chat.py |
ChatMessage |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/chat.py |
ChatProgressStep |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/chat.py |
(no class) |
|
100% |
57 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/citation.py |
Paper |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/citation.py |
PaperAppearance |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/citation.py |
(no class) |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/download_tracker.py |
DownloadTracker |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/download_tracker.py |
DownloadDuplicates |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/download_tracker.py |
DownloadAttempt |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/download_tracker.py |
(no class) |
|
100% |
43 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/file_integrity.py |
FileIntegrityRecord |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/file_integrity.py |
FileVerificationFailure |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/file_integrity.py |
(no class) |
|
100% |
37 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/journal.py |
Journal |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/journal.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
RAGIndexStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
DocumentStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
EmbeddingProvider |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
ExtractionMethod |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
ExtractionSource |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
ExtractionQuality |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
DistanceMetric |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
IndexType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
SplitterType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
PDFStorageMode |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
SourceType |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
UploadBatch |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
Document |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
DocumentBlob |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
Collection |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
DocumentCollection |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/library.py |
DocumentChunk |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
DownloadQueue |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/library.py |
LibraryStatistics |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
RAGIndex |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
RagDocumentStatus |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/library.py |
CollectionFolder |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
CollectionFolderFile |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/library.py |
(no class) |
|
100% |
298 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/logs.py |
ResearchLog |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/logs.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/metrics.py |
TokenUsage |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/metrics.py |
ModelUsage |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/metrics.py |
ResearchRating |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/metrics.py |
SearchCall |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/metrics.py |
(no class) |
|
100% |
92 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/news.py |
CardType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/news.py |
RatingType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/news.py |
SubscriptionType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/news.py |
SubscriptionStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/news.py |
NewsSubscription |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/news.py |
SubscriptionFolder |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/news.py |
NewsCard |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/news.py |
UserRating |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/news.py |
UserPreference |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/news.py |
NewsInterest |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/news.py |
(no class) |
|
100% |
114 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/note.py |
NoteChangeType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/note.py |
NoteSynthesisType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/note.py |
NoteVersion |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/note.py |
NoteLink |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/note.py |
NoteResearch |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/note.py |
NoteReference |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/note.py |
NoteSynthesis |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/note.py |
NoteSynthesisSource |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/note.py |
(no class) |
|
100% |
87 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/providers.py |
ProviderModel |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/providers.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/queue.py |
QueueStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/queue.py |
TaskMetadata |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/queue.py |
(no class) |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/queued_research.py |
QueuedResearch |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/queued_research.py |
(no class) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/rate_limiting.py |
RateLimitAttempt |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/rate_limiting.py |
RateLimitEstimate |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/rate_limiting.py |
(no class) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/reports.py |
Report |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/reports.py |
ReportSection |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/reports.py |
(no class) |
|
100% |
51 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/research.py |
LenientJSON |
|
92% |
12 |
1 |
0 |
|
75% |
4 |
1 |
|
88% |
| src/local_deep_research/database/models/research.py |
ResearchTask |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/research.py |
SearchQuery |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/research.py |
SearchResult |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/research.py |
ResearchMode |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/research.py |
ResearchResource |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/research.py |
ResearchHistory |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/research.py |
Research |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/research.py |
ResearchStrategy |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/research.py |
(no class) |
|
100% |
137 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/settings.py |
UserSettings |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/settings.py |
APIKey |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/settings.py |
SettingType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/settings.py |
Setting |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/settings.py |
(no class) |
|
100% |
53 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/user_base.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/user_news_search_history.py |
UserNewsSearchHistory |
|
50% |
2 |
1 |
0 |
|
100% |
0 |
0 |
|
50% |
| src/local_deep_research/database/models/user_news_search_history.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/models/zotero.py |
ZoteroSyncState |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/zotero.py |
ZoteroItemMap |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/database/models/zotero.py |
(no class) |
|
100% |
34 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/pool_config.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/queue_service.py |
UserQueueService |
|
100% |
61 |
0 |
0 |
|
100% |
22 |
0 |
|
100% |
| src/local_deep_research/database/queue_service.py |
(no class) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_epoch.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
RekeyOperationalError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
AuthorizationLeaseMode |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
RekeySidecarOperation |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
RekeySidecarIOError |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
RekeyStage |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
RekeyUnavailableError |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
RekeyIndeterminateError |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
RekeyLockContentionError |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
DatabaseKeyCheckUnavailableError |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
RekeyRecoveryRequiredError |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
RekeyEpochUnreadableError |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
RekeyEpochState |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
_SidecarLockRequest |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/rekey_lock.py |
(no class) |
|
92% |
443 |
37 |
0 |
|
84% |
116 |
18 |
|
90% |
| src/local_deep_research/database/research_cascade.py |
SharedDownloadIndex |
|
100% |
27 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/database/research_cascade.py |
(no class) |
|
96% |
239 |
10 |
0 |
|
91% |
122 |
11 |
|
94% |
| src/local_deep_research/database/session_context.py |
DatabaseSessionError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/session_context.py |
DatabaseSessionUnavailableError |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/session_context.py |
DatabaseAccessMixin |
|
50% |
2 |
1 |
0 |
|
100% |
0 |
0 |
|
50% |
| src/local_deep_research/database/session_context.py |
(no class) |
|
98% |
114 |
2 |
0 |
|
100% |
34 |
0 |
|
99% |
| src/local_deep_research/database/session_passwords.py |
SessionPasswordStore |
|
100% |
26 |
0 |
0 |
|
90% |
10 |
1 |
|
97% |
| src/local_deep_research/database/session_passwords.py |
(no class) |
|
100% |
23 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/database/sqlcipher_compat.py |
_guarded_connection_type.LifecycleConnection |
|
82% |
17 |
3 |
0 |
|
75% |
4 |
1 |
|
81% |
| src/local_deep_research/database/sqlcipher_compat.py |
_guarded_connection_type.ThreadCheckedCursor |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/sqlcipher_compat.py |
(no class) |
|
99% |
69 |
1 |
0 |
|
82% |
22 |
4 |
|
95% |
| src/local_deep_research/database/sqlcipher_utils.py |
SQLCipherRekeyError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/sqlcipher_utils.py |
(no class) |
|
98% |
281 |
7 |
1 |
|
95% |
56 |
3 |
|
97% |
| src/local_deep_research/database/temp_auth.py |
TemporaryAuthStore |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/database/temp_auth.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/thread_local_session.py |
ThreadLocalSessionManager |
|
96% |
104 |
4 |
0 |
|
98% |
40 |
1 |
|
97% |
| src/local_deep_research/database/thread_local_session.py |
_ThreadCleanup |
|
90% |
21 |
2 |
0 |
|
100% |
0 |
0 |
|
90% |
| src/local_deep_research/database/thread_local_session.py |
ThreadSessionContext |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/database/thread_local_session.py |
(no class) |
|
87% |
69 |
9 |
0 |
|
100% |
2 |
0 |
|
87% |
| src/local_deep_research/database/thread_metrics.py |
ThreadSafeMetricsWriter |
|
100% |
48 |
0 |
0 |
|
91% |
22 |
2 |
|
97% |
| src/local_deep_research/database/thread_metrics.py |
(no class) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/defaults/__init__.py |
(no class) |
|
95% |
19 |
1 |
0 |
|
75% |
8 |
2 |
|
89% |
| src/local_deep_research/document_loaders/__init__.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/bounded_pdf.py |
(no class) |
|
98% |
54 |
1 |
0 |
|
94% |
18 |
1 |
|
97% |
| src/local_deep_research/document_loaders/bytes_loader.py |
(no class) |
|
90% |
80 |
8 |
0 |
|
100% |
18 |
0 |
|
92% |
| src/local_deep_research/document_loaders/evernote_loader.py |
_EvernoteXMLParser |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/document_loaders/evernote_loader.py |
EverNoteLoader |
|
97% |
32 |
1 |
0 |
|
91% |
22 |
2 |
|
94% |
| src/local_deep_research/document_loaders/evernote_loader.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/json_loader.py |
SimpleJSONLoader |
|
100% |
22 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/document_loaders/json_loader.py |
(no class) |
|
100% |
37 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/document_loaders/loader_registry.py |
(no class) |
|
95% |
122 |
6 |
0 |
|
77% |
30 |
5 |
|
91% |
| src/local_deep_research/document_loaders/openpyxl_hardening.py |
(no class) |
|
88% |
16 |
2 |
0 |
|
100% |
4 |
0 |
|
90% |
| src/local_deep_research/document_loaders/text_encoding.py |
EncodingAwareTextLoader |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/text_encoding.py |
EncodingAwareCSVLoader |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/text_encoding.py |
(no class) |
|
100% |
39 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/document_loaders/toml_loader.py |
TOMLLoader |
|
100% |
9 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/document_loaders/toml_loader.py |
(no class) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/xls_loader.py |
XLSLoader |
|
95% |
20 |
1 |
0 |
|
80% |
10 |
2 |
|
90% |
| src/local_deep_research/document_loaders/xls_loader.py |
(no class) |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/yaml_loader.py |
YAMLLoader |
|
100% |
20 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/document_loaders/yaml_loader.py |
(no class) |
|
100% |
24 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
DecompressionBombError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
_XlsxScanTarget |
|
95% |
21 |
1 |
0 |
|
100% |
8 |
0 |
|
97% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
_XmlTagSigns |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
_XmlProlog |
|
100% |
53 |
0 |
0 |
|
100% |
34 |
0 |
|
100% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
_CountedXmlStream |
|
95% |
21 |
1 |
0 |
|
83% |
6 |
1 |
|
93% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
_XlsxIndexedList |
|
100% |
14 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
_ContentTypes |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
_PptxShapeTree |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
_DocxSectionStats |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
_OpenCell |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
_OpenRow |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
_OpenTable |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/document_loaders/zip_container_guard.py |
(no class) |
|
98% |
1709 |
42 |
2 |
|
94% |
820 |
43 |
|
96% |
| src/local_deep_research/domain_classifier/__init__.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/domain_classifier/classifier.py |
DomainClassifier |
|
92% |
132 |
10 |
0 |
|
93% |
42 |
3 |
|
93% |
| src/local_deep_research/domain_classifier/classifier.py |
(no class) |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/domain_classifier/models.py |
DomainClassification |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/domain_classifier/models.py |
(no class) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/embeddings_config.py |
(no class) |
|
97% |
68 |
2 |
0 |
|
92% |
24 |
2 |
|
96% |
| src/local_deep_research/embeddings/model_cache.py |
_ModelCache |
|
98% |
87 |
2 |
0 |
|
90% |
30 |
3 |
|
96% |
| src/local_deep_research/embeddings/model_cache.py |
SharedSentenceTransformerEmbeddings |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/model_cache.py |
(no class) |
|
99% |
90 |
1 |
0 |
|
95% |
22 |
1 |
|
98% |
| src/local_deep_research/embeddings/model_loading.py |
ModelAccessLock |
|
96% |
48 |
2 |
0 |
|
89% |
18 |
2 |
|
94% |
| src/local_deep_research/embeddings/model_loading.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/providers/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/providers/base.py |
BaseEmbeddingProvider |
|
67% |
9 |
3 |
0 |
|
100% |
2 |
0 |
|
73% |
| src/local_deep_research/embeddings/providers/base.py |
(no class) |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/providers/implementations/__init__.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/providers/implementations/ollama.py |
OllamaEmbeddingsProvider |
|
94% |
70 |
4 |
0 |
|
100% |
20 |
0 |
|
96% |
| src/local_deep_research/embeddings/providers/implementations/ollama.py |
(no class) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/providers/implementations/openai.py |
OpenAIEmbeddingsProvider |
|
98% |
134 |
3 |
0 |
|
98% |
50 |
1 |
|
98% |
| src/local_deep_research/embeddings/providers/implementations/openai.py |
(no class) |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/providers/implementations/owned_openai_embeddings.py |
OwnedOpenAIEmbeddings |
|
88% |
8 |
1 |
0 |
|
88% |
8 |
1 |
|
88% |
| src/local_deep_research/embeddings/providers/implementations/owned_openai_embeddings.py |
(no class) |
|
89% |
46 |
5 |
0 |
|
100% |
2 |
0 |
|
90% |
| src/local_deep_research/embeddings/providers/implementations/sentence_transformers.py |
SentenceTransformersProvider |
|
94% |
169 |
10 |
8 |
|
91% |
80 |
7 |
|
93% |
| src/local_deep_research/embeddings/providers/implementations/sentence_transformers.py |
(no class) |
|
100% |
38 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/sentence_transformer_models.py |
SentenceTransformerModelSpec |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/sentence_transformer_models.py |
(no class) |
|
100% |
15 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/embeddings/splitters/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/splitters/bounded_semantic_chunker.py |
_DocumentSplitter |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/embeddings/splitters/bounded_semantic_chunker.py |
BoundedSemanticChunker |
|
100% |
21 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/embeddings/splitters/bounded_semantic_chunker.py |
(no class) |
|
100% |
13 |
0 |
3 |
|
50% |
2 |
1 |
|
93% |
| src/local_deep_research/embeddings/splitters/text_splitter_registry.py |
(no class) |
|
100% |
60 |
0 |
2 |
|
95% |
22 |
1 |
|
99% |
| src/local_deep_research/error_handling/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/error_handling/error_messages.py |
(no class) |
|
100% |
14 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/error_handling/error_reporter.py |
ErrorCategory |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/error_handling/error_reporter.py |
ErrorReporter |
|
90% |
67 |
7 |
0 |
|
86% |
28 |
2 |
|
88% |
| src/local_deep_research/error_handling/error_reporter.py |
(no class) |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/error_handling/openai_compat_errors.py |
(no class) |
|
95% |
60 |
3 |
0 |
|
95% |
20 |
1 |
|
95% |
| src/local_deep_research/error_handling/report_generator.py |
ErrorReportGenerator |
|
100% |
103 |
0 |
0 |
|
97% |
58 |
2 |
|
99% |
| src/local_deep_research/error_handling/report_generator.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exceptions.py |
ResearchTerminatedException |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exceptions.py |
NoUserDatabaseError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exceptions.py |
SystemAtCapacityError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exceptions.py |
DuplicateResearchError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exceptions.py |
InvalidQueuedResearchOverridesError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exceptions.py |
(no class) |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exporters/__init__.py |
(no class) |
|
83% |
12 |
2 |
0 |
|
100% |
0 |
0 |
|
83% |
| src/local_deep_research/exporters/base.py |
ExportResult |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exporters/base.py |
ExportOptions |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exporters/base.py |
BaseExporter |
|
79% |
19 |
4 |
0 |
|
100% |
12 |
0 |
|
87% |
| src/local_deep_research/exporters/base.py |
(no class) |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exporters/latex_exporter.py |
LaTeXExporter |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exporters/latex_exporter.py |
(no class) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exporters/odt_exporter.py |
ODTExporter |
|
98% |
63 |
1 |
0 |
|
94% |
18 |
1 |
|
98% |
| src/local_deep_research/exporters/odt_exporter.py |
(no class) |
|
90% |
30 |
3 |
0 |
|
100% |
0 |
0 |
|
90% |
| src/local_deep_research/exporters/pdf_exporter.py |
PDFExporter |
|
100% |
18 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/exporters/pdf_exporter.py |
(no class) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exporters/quarto_exporter.py |
QuartoExporter |
|
100% |
30 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/exporters/quarto_exporter.py |
(no class) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exporters/registry.py |
ExporterRegistry |
|
100% |
18 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/exporters/registry.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exporters/ris_exporter.py |
RISExporter |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/exporters/ris_exporter.py |
(no class) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/followup_research/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/followup_research/models.py |
FollowUpRequest |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/followup_research/models.py |
(no class) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/followup_research/service.py |
FollowUpResearchService |
|
95% |
43 |
2 |
0 |
|
100% |
10 |
0 |
|
96% |
| src/local_deep_research/followup_research/service.py |
(no class) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/data_sources/__init__.py |
(no class) |
|
93% |
14 |
1 |
0 |
|
75% |
4 |
1 |
|
89% |
| src/local_deep_research/journal_quality/data_sources/_openalex_common.py |
(no class) |
|
98% |
114 |
2 |
0 |
|
96% |
50 |
2 |
|
98% |
| src/local_deep_research/journal_quality/data_sources/base.py |
DataSource |
|
13% |
15 |
13 |
0 |
|
0% |
4 |
0 |
|
11% |
| src/local_deep_research/journal_quality/data_sources/base.py |
(no class) |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/data_sources/doaj.py |
DOAJSource |
|
92% |
24 |
2 |
0 |
|
67% |
6 |
2 |
|
87% |
| src/local_deep_research/journal_quality/data_sources/doaj.py |
(no class) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/data_sources/institutions.py |
InstitutionSource |
|
82% |
51 |
9 |
0 |
|
60% |
20 |
6 |
|
76% |
| src/local_deep_research/journal_quality/data_sources/institutions.py |
(no class) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/data_sources/jabref.py |
JabRefSource |
|
86% |
36 |
5 |
0 |
|
62% |
16 |
4 |
|
79% |
| src/local_deep_research/journal_quality/data_sources/jabref.py |
(no class) |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/data_sources/openalex.py |
SchemaDriftError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/data_sources/openalex.py |
OpenAlexSource |
|
88% |
58 |
7 |
0 |
|
77% |
22 |
5 |
|
85% |
| src/local_deep_research/journal_quality/data_sources/openalex.py |
(no class) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/data_sources/predatory.py |
PredatorySource |
|
91% |
33 |
3 |
0 |
|
64% |
14 |
3 |
|
83% |
| src/local_deep_research/journal_quality/data_sources/predatory.py |
(no class) |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/db.py |
JournalQualityDB |
|
98% |
341 |
6 |
0 |
|
89% |
156 |
17 |
|
95% |
| src/local_deep_research/journal_quality/db.py |
(no class) |
|
95% |
406 |
19 |
0 |
|
91% |
122 |
9 |
|
94% |
| src/local_deep_research/journal_quality/downloader.py |
(no class) |
|
85% |
226 |
33 |
0 |
|
86% |
44 |
6 |
|
86% |
| src/local_deep_research/journal_quality/models.py |
JournalQualityBase |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/models.py |
Source |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/models.py |
Institution |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/models.py |
PredatoryJournal |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/models.py |
PredatoryPublisher |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/models.py |
PredatoryHijacked |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/models.py |
Abbreviation |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/models.py |
(no class) |
|
100% |
49 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/journal_quality/scoring.py |
(no class) |
|
100% |
56 |
0 |
0 |
|
100% |
44 |
0 |
|
100% |
| src/local_deep_research/library/download_management/__init__.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/database_init.py |
(no class) |
|
92% |
24 |
2 |
0 |
|
75% |
4 |
1 |
|
89% |
| src/local_deep_research/library/download_management/failure_classifier.py |
BaseFailure |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/failure_classifier.py |
PermanentFailure |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/failure_classifier.py |
TemporaryFailure |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/failure_classifier.py |
RateLimitFailure |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/library/download_management/failure_classifier.py |
FailureClassifier |
|
97% |
63 |
2 |
0 |
|
96% |
52 |
2 |
|
97% |
| src/local_deep_research/library/download_management/failure_classifier.py |
(no class) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/filters/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/filters/resource_filter.py |
ResourceFilter |
|
100% |
16 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/library/download_management/filters/resource_filter.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/models/__init__.py |
Base |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/models/__init__.py |
FailureType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/models/__init__.py |
DownloadStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/models/__init__.py |
ResourceDownloadStatus |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/library/download_management/models/__init__.py |
(no class) |
|
100% |
43 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/retry_manager.py |
RetryDecision |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/retry_manager.py |
ResourceFilterResult |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/retry_manager.py |
FilterSummary |
|
100% |
15 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/library/download_management/retry_manager.py |
RetryManager |
|
98% |
57 |
1 |
0 |
|
91% |
22 |
2 |
|
96% |
| src/local_deep_research/library/download_management/retry_manager.py |
(no class) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/library/download_management/status_tracker.py |
ResourceStatusTracker |
|
92% |
120 |
9 |
0 |
|
95% |
42 |
2 |
|
93% |
| src/local_deep_research/library/download_management/status_tracker.py |
(no class) |
|
100% |
26 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/llm/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/cancellation.py |
(no class) |
|
68% |
68 |
22 |
0 |
|
73% |
22 |
4 |
|
69% |
| src/local_deep_research/llm/llm_registry.py |
LLMRegistry |
|
100% |
42 |
0 |
0 |
|
100% |
14 |
0 |
|
100% |
| src/local_deep_research/llm/llm_registry.py |
(no class) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/_helpers.py |
(no class) |
|
100% |
73 |
0 |
0 |
|
100% |
20 |
0 |
|
100% |
| src/local_deep_research/llm/providers/auto_discovery.py |
ProviderInfo |
|
100% |
14 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/llm/providers/auto_discovery.py |
ProviderDiscovery |
|
98% |
59 |
1 |
0 |
|
93% |
30 |
2 |
|
97% |
| src/local_deep_research/llm/providers/auto_discovery.py |
(no class) |
|
100% |
38 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/llm/providers/base.py |
BaseLLMProvider |
|
100% |
27 |
0 |
1 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/llm/providers/base.py |
(no class) |
|
100% |
28 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/anthropic.py |
AnthropicProvider |
|
96% |
55 |
2 |
0 |
|
95% |
20 |
1 |
|
96% |
| src/local_deep_research/llm/providers/implementations/anthropic.py |
(no class) |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/atlascloud.py |
AtlasCloudProvider |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/atlascloud.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/custom_anthropic_endpoint.py |
CustomAnthropicEndpointProvider |
|
100% |
20 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/custom_anthropic_endpoint.py |
(no class) |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/custom_openai_endpoint.py |
CustomOpenAIEndpointProvider |
|
100% |
31 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/custom_openai_endpoint.py |
(no class) |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/deepseek.py |
DeepseekProvider |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/deepseek.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/google.py |
GoogleProvider |
|
100% |
29 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/google.py |
(no class) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/ionos.py |
IONOSProvider |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/ionos.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/llamacpp.py |
LlamaCppProvider |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/llamacpp.py |
(no class) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/lmstudio.py |
LMStudioProvider |
|
100% |
30 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/lmstudio.py |
(no class) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/ollama.py |
OllamaProvider |
|
96% |
83 |
3 |
0 |
|
100% |
18 |
0 |
|
97% |
| src/local_deep_research/llm/providers/implementations/ollama.py |
(no class) |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/openai.py |
OpenAIProvider |
|
100% |
28 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/openai.py |
(no class) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/openrouter.py |
OpenRouterProvider |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/openrouter.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/orcarouter.py |
OrcaRouterProvider |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/orcarouter.py |
(no class) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/qwen.py |
QwenCloudProvider |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/qwen.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/requesty.py |
RequestyProvider |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/requesty.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/xai.py |
XAIProvider |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/implementations/xai.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/llm/providers/openai_base.py |
OpenAICompatibleProvider |
|
97% |
105 |
3 |
0 |
|
92% |
38 |
3 |
|
96% |
| src/local_deep_research/llm/providers/openai_base.py |
(no class) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/mcp/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/mcp/__main__.py |
(no class) |
|
67% |
3 |
1 |
0 |
|
50% |
2 |
1 |
|
60% |
| src/local_deep_research/mcp/server.py |
ValidationError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/mcp/server.py |
(no class) |
|
97% |
326 |
11 |
0 |
|
93% |
84 |
6 |
|
96% |
| src/local_deep_research/metrics/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/metrics/database.py |
MetricsDatabase |
|
100% |
16 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/metrics/database.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/metrics/pricing/__init__.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/metrics/pricing/cost_calculator.py |
CostCalculator |
|
100% |
48 |
0 |
0 |
|
94% |
16 |
1 |
|
98% |
| src/local_deep_research/metrics/pricing/cost_calculator.py |
(no class) |
|
100% |
46 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/metrics/pricing/pricing_cache.py |
PricingCache |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/metrics/pricing/pricing_cache.py |
(no class) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/metrics/pricing/pricing_fetcher.py |
PricingFetcher |
|
98% |
55 |
1 |
0 |
|
97% |
38 |
1 |
|
98% |
| src/local_deep_research/metrics/pricing/pricing_fetcher.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/metrics/query_utils.py |
TruncationSummary |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/metrics/query_utils.py |
(no class) |
|
100% |
40 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/metrics/search_tracker.py |
SearchTracker |
|
99% |
126 |
1 |
0 |
|
95% |
40 |
2 |
|
98% |
| src/local_deep_research/metrics/search_tracker.py |
(no class) |
|
93% |
27 |
2 |
0 |
|
100% |
4 |
0 |
|
94% |
| src/local_deep_research/metrics/token_counter.py |
TokenCountingCallback |
|
98% |
303 |
6 |
0 |
|
95% |
134 |
5 |
|
97% |
| src/local_deep_research/metrics/token_counter.py |
TokenCounter |
|
98% |
239 |
5 |
0 |
|
92% |
96 |
8 |
|
96% |
| src/local_deep_research/metrics/token_counter.py |
(no class) |
|
100% |
37 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/__init__.py |
(no class) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/api.py |
(no class) |
|
95% |
424 |
22 |
0 |
|
93% |
136 |
9 |
|
94% |
| src/local_deep_research/news/constants.py |
(no class) |
|
100% |
80 |
0 |
0 |
|
100% |
40 |
0 |
|
100% |
| src/local_deep_research/news/core/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/base_card.py |
CardSource |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/base_card.py |
CardVersion |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/news/core/base_card.py |
BaseCard |
|
95% |
39 |
2 |
0 |
|
100% |
10 |
0 |
|
96% |
| src/local_deep_research/news/core/base_card.py |
NewsCard |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/news/core/base_card.py |
ResearchCard |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/base_card.py |
UpdateCard |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/base_card.py |
OverviewCard |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/base_card.py |
(no class) |
|
100% |
83 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/card_factory.py |
CardFactory |
|
98% |
92 |
2 |
0 |
|
94% |
36 |
2 |
|
97% |
| src/local_deep_research/news/core/card_factory.py |
(no class) |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/card_storage.py |
SQLCardStorage |
|
98% |
125 |
2 |
0 |
|
92% |
48 |
4 |
|
97% |
| src/local_deep_research/news/core/card_storage.py |
(no class) |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/news_analyzer.py |
NewsAnalyzer |
|
100% |
145 |
0 |
0 |
|
98% |
58 |
1 |
|
99% |
| src/local_deep_research/news/core/news_analyzer.py |
(no class) |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/relevance_service.py |
RelevanceService |
|
100% |
40 |
0 |
0 |
|
100% |
28 |
0 |
|
100% |
| src/local_deep_research/news/core/relevance_service.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/news/core/search_integration.py |
NewsSearchCallback |
|
88% |
24 |
3 |
0 |
|
100% |
6 |
0 |
|
90% |
| src/local_deep_research/news/core/search_integration.py |
(no class) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/storage.py |
BaseStorage |
|
17% |
6 |
5 |
0 |
|
100% |
0 |
0 |
|
17% |
| src/local_deep_research/news/core/storage.py |
CardStorage |
|
0% |
6 |
6 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/news/core/storage.py |
RatingStorage |
|
0% |
4 |
4 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/news/core/storage.py |
PreferenceStorage |
|
0% |
5 |
5 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/news/core/storage.py |
(no class) |
|
100% |
48 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/storage_manager.py |
InteractionType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/storage_manager.py |
StorageManager |
|
95% |
122 |
6 |
0 |
|
86% |
42 |
6 |
|
93% |
| src/local_deep_research/news/core/storage_manager.py |
(no class) |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/core/utils.py |
(no class) |
|
100% |
35 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
NewsAPIException |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
NewsFeatureDisabledException |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
InvalidLimitException |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
SubscriptionNotFoundException |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
SubscriptionCreationException |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
SubscriptionUpdateException |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
SubscriptionDeletionException |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
DatabaseAccessException |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
NewsFeedGenerationException |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
ResearchProcessingException |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
NotImplementedException |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
InvalidParameterException |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
SchedulerNotificationException |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/exceptions.py |
(no class) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/folder_manager.py |
FolderManager |
|
100% |
67 |
0 |
0 |
|
100% |
22 |
0 |
|
100% |
| src/local_deep_research/news/folder_manager.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/preference_manager/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/preference_manager/base_preference.py |
BasePreferenceManager |
|
94% |
32 |
2 |
0 |
|
100% |
10 |
0 |
|
95% |
| src/local_deep_research/news/preference_manager/base_preference.py |
TopicRegistry |
|
100% |
16 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/news/preference_manager/base_preference.py |
(no class) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/preference_manager/storage.py |
SQLPreferenceStorage |
|
100% |
80 |
0 |
0 |
|
94% |
32 |
2 |
|
98% |
| src/local_deep_research/news/preference_manager/storage.py |
(no class) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/rating_system/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/rating_system/base_rater.py |
RelevanceRating |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/rating_system/base_rater.py |
QualityRating |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/rating_system/base_rater.py |
BaseRatingSystem |
|
79% |
14 |
3 |
0 |
|
100% |
2 |
0 |
|
81% |
| src/local_deep_research/news/rating_system/base_rater.py |
QualityRatingSystem |
|
100% |
13 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/news/rating_system/base_rater.py |
RelevanceRatingSystem |
|
92% |
13 |
1 |
0 |
|
83% |
6 |
1 |
|
89% |
| src/local_deep_research/news/rating_system/base_rater.py |
(no class) |
|
100% |
37 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/rating_system/storage.py |
SQLRatingStorage |
|
96% |
73 |
3 |
0 |
|
91% |
32 |
3 |
|
94% |
| src/local_deep_research/news/rating_system/storage.py |
(no class) |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/recommender/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/recommender/base_recommender.py |
BaseRecommender |
|
98% |
45 |
1 |
0 |
|
100% |
20 |
0 |
|
98% |
| src/local_deep_research/news/recommender/base_recommender.py |
(no class) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/recommender/topic_based.py |
TopicBasedRecommender |
|
96% |
95 |
4 |
0 |
|
96% |
28 |
1 |
|
96% |
| src/local_deep_research/news/recommender/topic_based.py |
SearchBasedRecommender |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/recommender/topic_based.py |
(no class) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/subscription_runner.py |
(no class) |
|
100% |
31 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/news/utils/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/news/utils/headline_generator.py |
(no class) |
|
98% |
57 |
1 |
0 |
|
90% |
10 |
1 |
|
97% |
| src/local_deep_research/news/utils/topic_generator.py |
(no class) |
|
97% |
88 |
3 |
0 |
|
96% |
28 |
1 |
|
97% |
| src/local_deep_research/notifications/__init__.py |
(no class) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/apprise_log_utils.py |
_AppriseSanitizingRecordFactory |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/notifications/apprise_log_utils.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/notifications/exceptions.py |
NotificationError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/exceptions.py |
ServiceError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/exceptions.py |
SecurityBlockError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/exceptions.py |
SendError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/exceptions.py |
RateLimitError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/exceptions.py |
(no class) |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/manager.py |
NotificationReason |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/manager.py |
NotificationResult |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/manager.py |
NotificationManager |
|
95% |
151 |
7 |
0 |
|
98% |
50 |
1 |
|
96% |
| src/local_deep_research/notifications/manager.py |
RateLimiter |
|
100% |
66 |
0 |
0 |
|
96% |
26 |
1 |
|
99% |
| src/local_deep_research/notifications/manager.py |
(no class) |
|
100% |
47 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/queue_helpers.py |
(no class) |
|
98% |
127 |
3 |
0 |
|
97% |
30 |
1 |
|
97% |
| src/local_deep_research/notifications/service.py |
NotificationService |
|
90% |
167 |
16 |
0 |
|
95% |
78 |
4 |
|
92% |
| src/local_deep_research/notifications/service.py |
(no class) |
|
100% |
39 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/templates.py |
EventType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/templates.py |
NotificationTemplate |
|
95% |
62 |
3 |
0 |
|
94% |
18 |
1 |
|
95% |
| src/local_deep_research/notifications/templates.py |
(no class) |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/notifications/url_builder.py |
(no class) |
|
100% |
27 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/report_generator.py |
IntegratedReportGenerator |
|
90% |
498 |
52 |
0 |
|
82% |
284 |
34 |
|
87% |
| src/local_deep_research/report_generator.py |
(no class) |
|
96% |
114 |
4 |
0 |
|
88% |
24 |
3 |
|
95% |
| src/local_deep_research/research_library/__init__.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/deletion/__init__.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/deletion/services/__init__.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/deletion/services/bulk_deletion.py |
BulkDeletionService |
|
95% |
58 |
3 |
0 |
|
91% |
22 |
2 |
|
94% |
| src/local_deep_research/research_library/deletion/services/bulk_deletion.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/deletion/services/collection_deletion.py |
CollectionDeletionService |
|
98% |
117 |
2 |
0 |
|
100% |
30 |
0 |
|
99% |
| src/local_deep_research/research_library/deletion/services/collection_deletion.py |
(no class) |
|
91% |
23 |
2 |
0 |
|
100% |
0 |
0 |
|
91% |
| src/local_deep_research/research_library/deletion/services/document_deletion.py |
DocumentDeletionService |
|
98% |
171 |
4 |
0 |
|
93% |
58 |
4 |
|
97% |
| src/local_deep_research/research_library/deletion/services/document_deletion.py |
(no class) |
|
100% |
45 |
0 |
0 |
|
83% |
6 |
1 |
|
98% |
| src/local_deep_research/research_library/deletion/utils/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/deletion/utils/cascade_helper.py |
RemoteVectorStoreDropError |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/deletion/utils/cascade_helper.py |
_PlannedIndex |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/deletion/utils/cascade_helper.py |
CascadeHelper |
|
94% |
201 |
12 |
0 |
|
98% |
88 |
2 |
|
95% |
| src/local_deep_research/research_library/deletion/utils/cascade_helper.py |
(no class) |
|
100% |
69 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/__init__.py |
(no class) |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/arxiv.py |
ArxivTextSource |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/arxiv.py |
ArxivTextResult |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/arxiv.py |
ArxivFullTextStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/arxiv.py |
ArxivFullTextOutcome |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/arxiv.py |
ArxivDownloader |
|
97% |
264 |
7 |
0 |
|
96% |
148 |
6 |
|
97% |
| src/local_deep_research/research_library/downloaders/arxiv.py |
(no class) |
|
100% |
69 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/base.py |
ContentType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/base.py |
DownloadResult |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/base.py |
_ResponseBodyTooLarge |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/base.py |
BaseDownloader |
|
95% |
179 |
9 |
0 |
|
94% |
64 |
4 |
|
95% |
| src/local_deep_research/research_library/downloaders/base.py |
(no class) |
|
100% |
62 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/biorxiv.py |
BioRxivDownloader |
|
96% |
82 |
3 |
0 |
|
100% |
40 |
0 |
|
98% |
| src/local_deep_research/research_library/downloaders/biorxiv.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/direct_pdf.py |
DirectPDFDownloader |
|
98% |
50 |
1 |
0 |
|
96% |
28 |
1 |
|
97% |
| src/local_deep_research/research_library/downloaders/direct_pdf.py |
(no class) |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/extraction/__init__.py |
(no class) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/extraction/base.py |
BaseExtractor |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/extraction/base.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/extraction/justext_extractor.py |
JustextExtractor |
|
100% |
26 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/extraction/justext_extractor.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/extraction/metadata_extractor.py |
(no class) |
|
100% |
154 |
0 |
0 |
|
97% |
92 |
3 |
|
99% |
| src/local_deep_research/research_library/downloaders/extraction/newspaper_extractor.py |
NewspaperExtractor |
|
100% |
18 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/extraction/newspaper_extractor.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/extraction/pipeline.py |
_SpecializedResult |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/extraction/pipeline.py |
(no class) |
|
93% |
377 |
28 |
15 |
|
92% |
140 |
7 |
|
92% |
| src/local_deep_research/research_library/downloaders/extraction/readability_extractor.py |
ReadabilityExtractor |
|
100% |
18 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/extraction/readability_extractor.py |
(no class) |
|
100% |
86 |
0 |
0 |
|
100% |
20 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/extraction/trafilatura_extractor.py |
TrafilaturaExtractor |
|
95% |
21 |
1 |
0 |
|
75% |
4 |
1 |
|
92% |
| src/local_deep_research/research_library/downloaders/extraction/trafilatura_extractor.py |
(no class) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/generic.py |
GenericDownloader |
|
99% |
68 |
1 |
0 |
|
94% |
36 |
2 |
|
97% |
| src/local_deep_research/research_library/downloaders/generic.py |
(no class) |
|
100% |
22 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/html.py |
_TerminalTransportError |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/html.py |
HTMLDownloader |
|
96% |
237 |
9 |
1 |
|
95% |
96 |
5 |
|
96% |
| src/local_deep_research/research_library/downloaders/html.py |
(no class) |
|
100% |
55 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/openalex.py |
OpenAlexDownloader |
|
98% |
88 |
2 |
0 |
|
96% |
28 |
1 |
|
97% |
| src/local_deep_research/research_library/downloaders/openalex.py |
(no class) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/playwright_html.py |
PlaywrightHTMLDownloader |
|
93% |
331 |
23 |
0 |
|
91% |
102 |
9 |
|
93% |
| src/local_deep_research/research_library/downloaders/playwright_html.py |
AutoHTMLDownloader |
|
88% |
104 |
12 |
0 |
|
77% |
44 |
8 |
|
85% |
| src/local_deep_research/research_library/downloaders/playwright_html.py |
(no class) |
|
89% |
117 |
13 |
0 |
|
68% |
28 |
9 |
|
85% |
| src/local_deep_research/research_library/downloaders/pubmed.py |
PubMedDownloader |
|
96% |
256 |
10 |
0 |
|
92% |
130 |
9 |
|
95% |
| src/local_deep_research/research_library/downloaders/pubmed.py |
(no class) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/downloaders/semantic_scholar.py |
SemanticScholarDownloader |
|
98% |
60 |
1 |
0 |
|
90% |
20 |
2 |
|
96% |
| src/local_deep_research/research_library/downloaders/semantic_scholar.py |
(no class) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/extraction_catalog.py |
ExtractionMethodExtra |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/extraction_catalog.py |
ExtractionSourceExtra |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/extraction_catalog.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/notes/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/notes/services/__init__.py |
(no class) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/notes/services/note_ai_service.py |
NoteAIService |
|
100% |
500 |
0 |
0 |
|
97% |
202 |
7 |
|
99% |
| src/local_deep_research/research_library/notes/services/note_ai_service.py |
(no class) |
|
100% |
87 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/notes/services/note_service.py |
NoteService |
|
92% |
770 |
65 |
0 |
|
93% |
266 |
19 |
|
92% |
| src/local_deep_research/research_library/notes/services/note_service.py |
(no class) |
|
94% |
179 |
10 |
0 |
|
86% |
36 |
3 |
|
93% |
| src/local_deep_research/research_library/search/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/search/services/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/search/services/research_history_indexer.py |
ResearchHistoryIndexer |
|
100% |
79 |
0 |
0 |
|
96% |
28 |
1 |
|
99% |
| src/local_deep_research/research_library/search/services/research_history_indexer.py |
(no class) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/services/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/services/collection_rebuild.py |
RebuildCancelled |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/services/collection_rebuild.py |
CollectionRebuild |
|
94% |
163 |
9 |
0 |
|
88% |
50 |
6 |
|
93% |
| src/local_deep_research/research_library/services/collection_rebuild.py |
(no class) |
|
100% |
62 |
0 |
2 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/research_library/services/download_service.py |
RefillRank |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/services/download_service.py |
DownloadService |
|
96% |
1147 |
44 |
0 |
|
90% |
470 |
43 |
|
94% |
| src/local_deep_research/research_library/services/download_service.py |
(no class) |
|
98% |
117 |
2 |
0 |
|
88% |
16 |
2 |
|
97% |
| src/local_deep_research/research_library/services/faiss_safe_load.py |
_RestrictedFaissUnpickler |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/research_library/services/faiss_safe_load.py |
(no class) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/services/library_rag_service.py |
_PreparedDocument |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/services/library_rag_service.py |
_LazyEmbeddings |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/services/library_rag_service.py |
_TrackedRLock |
|
100% |
29 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/research_library/services/library_rag_service.py |
LibraryRAGService |
|
89% |
979 |
105 |
0 |
|
89% |
344 |
37 |
|
89% |
| src/local_deep_research/research_library/services/library_rag_service.py |
(no class) |
|
100% |
177 |
0 |
0 |
|
100% |
16 |
0 |
|
100% |
| src/local_deep_research/research_library/services/library_service.py |
LibraryService |
|
93% |
407 |
27 |
0 |
|
88% |
182 |
15 |
|
92% |
| src/local_deep_research/research_library/services/library_service.py |
(no class) |
|
100% |
68 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/research_library/services/pdf_storage_manager.py |
PDFStorageManager |
|
92% |
156 |
12 |
0 |
|
94% |
54 |
3 |
|
93% |
| src/local_deep_research/research_library/services/pdf_storage_manager.py |
(no class) |
|
100% |
52 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/research_library/services/rag_service_factory.py |
(no class) |
|
93% |
71 |
5 |
0 |
|
94% |
16 |
1 |
|
93% |
| src/local_deep_research/research_library/utils/__init__.py |
(no class) |
|
96% |
233 |
10 |
0 |
|
94% |
82 |
5 |
|
95% |
| src/local_deep_research/research_library/zotero/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/zotero/client.py |
ZoteroError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/zotero/client.py |
ZoteroAuthError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/zotero/client.py |
ZoteroTransientError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/zotero/client.py |
ZoteroAttachment |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/zotero/client.py |
ZoteroItem |
|
100% |
7 |
0 |
0 |
|
75% |
4 |
1 |
|
91% |
| src/local_deep_research/research_library/zotero/client.py |
ZoteroClient |
|
99% |
280 |
2 |
0 |
|
96% |
116 |
5 |
|
98% |
| src/local_deep_research/research_library/zotero/client.py |
(no class) |
|
100% |
81 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/research_library/zotero/sync_service.py |
ZoteroConfig |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/research_library/zotero/sync_service.py |
ZoteroSyncService |
|
100% |
593 |
0 |
0 |
|
95% |
240 |
11 |
|
99% |
| src/local_deep_research/research_library/zotero/sync_service.py |
(no class) |
|
98% |
112 |
2 |
0 |
|
100% |
2 |
0 |
|
98% |
| src/local_deep_research/scheduler/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/scheduler/background.py |
SchedulerCredentialStore |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/scheduler/background.py |
DocumentSchedulerSettings |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/scheduler/background.py |
BackgroundJobScheduler |
|
94% |
799 |
47 |
0 |
|
91% |
218 |
12 |
|
93% |
| src/local_deep_research/scheduler/background.py |
(no class) |
|
100% |
114 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/search_system.py |
AdvancedSearchSystem |
|
82% |
181 |
32 |
2 |
|
74% |
70 |
14 |
|
80% |
| src/local_deep_research/search_system.py |
(no class) |
|
100% |
24 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/search_system_factory.py |
(no class) |
|
92% |
75 |
6 |
0 |
|
87% |
38 |
5 |
|
90% |
| src/local_deep_research/security/__init__.py |
(no class) |
|
100% |
35 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/security/account_lockout.py |
AccountLockoutManager |
|
100% |
52 |
0 |
0 |
|
100% |
24 |
0 |
|
100% |
| src/local_deep_research/security/account_lockout.py |
(no class) |
|
100% |
20 |
0 |
0 |
|
75% |
4 |
1 |
|
96% |
| src/local_deep_research/security/client_safe_errors.py |
(no class) |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/security/data_sanitizer.py |
DataSanitizer |
|
100% |
47 |
0 |
0 |
|
100% |
32 |
0 |
|
100% |
| src/local_deep_research/security/data_sanitizer.py |
(no class) |
|
99% |
78 |
1 |
0 |
|
96% |
24 |
1 |
|
98% |
| src/local_deep_research/security/directory_creation.py |
DirectoryCreationSecurityError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/directory_creation.py |
(no class) |
|
100% |
20 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/security/dns_pinning.py |
NotificationGuardUnavailableError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/dns_pinning.py |
(no class) |
|
94% |
199 |
12 |
0 |
|
83% |
66 |
11 |
|
91% |
| src/local_deep_research/security/egress/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/audit_hook.py |
(no class) |
|
91% |
81 |
7 |
2 |
|
77% |
30 |
7 |
|
87% |
| src/local_deep_research/security/egress/classification.py |
Sensitivity |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/classification.py |
Exposure |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/classification.py |
Role |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/classification.py |
Mode |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/classification.py |
Label |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/classification.py |
Component |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/classification.py |
Decision |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/classification.py |
(no class) |
|
100% |
48 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/security/egress/fetch.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/security/egress/guidance.py |
(no class) |
|
96% |
27 |
1 |
0 |
|
92% |
12 |
1 |
|
95% |
| src/local_deep_research/security/egress/policy.py |
EgressScope |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/policy.py |
EgressContext |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/policy.py |
Decision |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/policy.py |
EngineClassification |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/policy.py |
PolicyDeniedError |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/policy.py |
(no class) |
|
93% |
759 |
56 |
26 |
|
94% |
340 |
16 |
|
93% |
| src/local_deep_research/security/egress/run_classification.py |
(no class) |
|
98% |
90 |
2 |
0 |
|
100% |
28 |
0 |
|
98% |
| src/local_deep_research/security/egress/validators.py |
GuardedEngineUrl |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/egress/validators.py |
(no class) |
|
89% |
306 |
33 |
0 |
|
92% |
126 |
10 |
|
90% |
| src/local_deep_research/security/egress/warnings.py |
(no class) |
|
92% |
145 |
11 |
0 |
|
94% |
66 |
4 |
|
93% |
| src/local_deep_research/security/file_integrity/__init__.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/file_integrity/base_verifier.py |
FileType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/file_integrity/base_verifier.py |
BaseFileVerifier |
|
67% |
9 |
3 |
0 |
|
100% |
2 |
0 |
|
73% |
| src/local_deep_research/security/file_integrity/base_verifier.py |
(no class) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/file_integrity/integrity_manager.py |
FileIntegrityManager |
|
98% |
190 |
4 |
0 |
|
96% |
78 |
1 |
|
97% |
| src/local_deep_research/security/file_integrity/integrity_manager.py |
(no class) |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/file_integrity/verifiers/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/file_integrity/verifiers/faiss_verifier.py |
FAISSIndexVerifier |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/file_integrity/verifiers/faiss_verifier.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/file_upload_validator.py |
FileUploadValidator |
|
100% |
40 |
0 |
0 |
|
100% |
24 |
0 |
|
100% |
| src/local_deep_research/security/file_upload_validator.py |
(no class) |
|
100% |
39 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/security/file_write_verifier.py |
FileWriteSecurityError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/file_write_verifier.py |
(no class) |
|
98% |
63 |
1 |
0 |
|
90% |
20 |
2 |
|
96% |
| src/local_deep_research/security/filename_sanitizer.py |
UnsafeFilenameError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/filename_sanitizer.py |
(no class) |
|
100% |
43 |
0 |
0 |
|
96% |
24 |
1 |
|
99% |
| src/local_deep_research/security/ip_ranges.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/legacy_ipv4.py |
(no class) |
|
100% |
87 |
0 |
0 |
|
100% |
36 |
0 |
|
100% |
| src/local_deep_research/security/log_sanitizer.py |
_BarePass |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/log_sanitizer.py |
_PipelineRun |
|
98% |
59 |
1 |
0 |
|
94% |
32 |
2 |
|
97% |
| src/local_deep_research/security/log_sanitizer.py |
_ExceptionNodePlan |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/log_sanitizer.py |
(no class) |
|
94% |
1533 |
94 |
0 |
|
90% |
700 |
65 |
|
93% |
| src/local_deep_research/security/module_whitelist.py |
SecurityError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/module_whitelist.py |
(no class) |
|
100% |
41 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/security/network_utils.py |
(no class) |
|
100% |
27 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/security/notification_destination.py |
NotificationDestinationKind |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/notification_destination.py |
NotificationDestination |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/notification_destination.py |
NotificationDestinationError |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/notification_destination.py |
(no class) |
|
89% |
219 |
25 |
0 |
|
83% |
90 |
15 |
|
87% |
| src/local_deep_research/security/notification_validator.py |
NotificationURLValidationError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/notification_validator.py |
NotificationURLValidator |
|
95% |
218 |
11 |
0 |
|
97% |
114 |
3 |
|
96% |
| src/local_deep_research/security/notification_validator.py |
(no class) |
|
100% |
173 |
0 |
0 |
|
100% |
54 |
0 |
|
100% |
| src/local_deep_research/security/password_validator.py |
PasswordValidator |
|
100% |
9 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/security/password_validator.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/path_validator.py |
PathValidator |
|
93% |
141 |
10 |
0 |
|
100% |
84 |
0 |
|
96% |
| src/local_deep_research/security/path_validator.py |
(no class) |
|
97% |
73 |
2 |
0 |
|
89% |
18 |
2 |
|
96% |
| src/local_deep_research/security/safe_requests.py |
_BodyGuard |
|
100% |
16 |
0 |
0 |
|
88% |
8 |
1 |
|
96% |
| src/local_deep_research/security/safe_requests.py |
_size_guarded_class.SizeGuarded |
|
100% |
14 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/security/safe_requests.py |
SafeSession |
|
100% |
75 |
0 |
0 |
|
97% |
38 |
1 |
|
99% |
| src/local_deep_research/security/safe_requests.py |
(no class) |
|
97% |
336 |
9 |
2 |
|
93% |
106 |
5 |
|
96% |
| src/local_deep_research/security/secure_logging.py |
SecureLogger |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/secure_logging.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/security_settings.py |
(no class) |
|
95% |
55 |
3 |
0 |
|
95% |
20 |
1 |
|
95% |
| src/local_deep_research/security/ssrf_validator.py |
(no class) |
|
97% |
233 |
8 |
0 |
|
95% |
100 |
5 |
|
96% |
| src/local_deep_research/security/toml_limits.py |
TOMLLimitError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/toml_limits.py |
(no class) |
|
100% |
33 |
0 |
0 |
|
100% |
14 |
0 |
|
100% |
| src/local_deep_research/security/url_builder.py |
URLBuilderError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/url_builder.py |
(no class) |
|
93% |
70 |
5 |
0 |
|
100% |
26 |
0 |
|
95% |
| src/local_deep_research/security/url_redaction.py |
(no class) |
|
97% |
118 |
4 |
0 |
|
93% |
56 |
4 |
|
95% |
| src/local_deep_research/security/url_validator.py |
URLValidationError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/security/url_validator.py |
URLValidator |
|
91% |
142 |
13 |
0 |
|
98% |
86 |
2 |
|
93% |
| src/local_deep_research/security/url_validator.py |
(no class) |
|
100% |
34 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/__init__.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/base.py |
ISettingsManager |
|
0% |
9 |
9 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/settings/base.py |
(no class) |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/env_definitions/__init__.py |
(no class) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/env_definitions/bootstrap.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/env_definitions/db_config.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/env_definitions/news_scheduler.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/env_definitions/queue_processor.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/env_definitions/security.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/env_definitions/server.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/env_definitions/testing.py |
(no class) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/env_registry.py |
(no class) |
|
100% |
42 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/settings/env_settings.py |
EnvSetting |
|
96% |
26 |
1 |
0 |
|
100% |
12 |
0 |
|
97% |
| src/local_deep_research/settings/env_settings.py |
BooleanSetting |
|
100% |
9 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/settings/env_settings.py |
StringSetting |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/env_settings.py |
IntegerSetting |
|
100% |
29 |
0 |
0 |
|
100% |
14 |
0 |
|
100% |
| src/local_deep_research/settings/env_settings.py |
PathSetting |
|
93% |
28 |
2 |
0 |
|
86% |
14 |
2 |
|
90% |
| src/local_deep_research/settings/env_settings.py |
SecretSetting |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/env_settings.py |
EnumSetting |
|
100% |
14 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/settings/env_settings.py |
SettingsRegistry |
|
100% |
48 |
0 |
0 |
|
100% |
18 |
0 |
|
100% |
| src/local_deep_research/settings/env_settings.py |
(no class) |
|
100% |
51 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/exceptions.py |
SettingsValueError |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/exceptions.py |
EnvSettingError |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/exceptions.py |
MissingEnvironmentVariableError |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/exceptions.py |
EnvironmentValueRangeError |
|
83% |
6 |
1 |
0 |
|
75% |
4 |
1 |
|
80% |
| src/local_deep_research/settings/exceptions.py |
EnvironmentPathNotFoundError |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/exceptions.py |
InvalidEnvironmentValueError |
|
83% |
6 |
1 |
0 |
|
75% |
4 |
1 |
|
80% |
| src/local_deep_research/settings/exceptions.py |
(no class) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/settings/logger.py |
(no class) |
|
98% |
87 |
2 |
0 |
|
93% |
44 |
3 |
|
96% |
| src/local_deep_research/settings/manager.py |
SettingsManager |
|
95% |
454 |
22 |
0 |
|
95% |
220 |
12 |
|
95% |
| src/local_deep_research/settings/manager.py |
SnapshotSettingsContext |
|
100% |
12 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/settings/manager.py |
(no class) |
|
96% |
272 |
12 |
0 |
|
90% |
124 |
8 |
|
94% |
| src/local_deep_research/storage/__init__.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/storage/base.py |
ReportStorage |
|
0% |
6 |
6 |
0 |
|
100% |
0 |
0 |
|
0% |
| src/local_deep_research/storage/base.py |
(no class) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/storage/database.py |
DatabaseReportStorage |
|
95% |
58 |
3 |
0 |
|
100% |
12 |
0 |
|
96% |
| src/local_deep_research/storage/database.py |
(no class) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/storage/database_with_file_backup.py |
DatabaseWithFileBackupStorage |
|
100% |
32 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/storage/database_with_file_backup.py |
(no class) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/storage/factory.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/storage/file.py |
FileReportStorage |
|
96% |
83 |
3 |
0 |
|
100% |
18 |
0 |
|
97% |
| src/local_deep_research/storage/file.py |
(no class) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/text_optimization/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/text_optimization/citation_formatter.py |
CitationMode |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/text_optimization/citation_formatter.py |
CitationFormatter |
|
97% |
235 |
7 |
0 |
|
98% |
104 |
2 |
|
97% |
| src/local_deep_research/text_optimization/citation_formatter.py |
QuartoExporter |
|
100% |
44 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/text_optimization/citation_formatter.py |
RISExporter |
|
99% |
140 |
2 |
0 |
|
99% |
74 |
1 |
|
99% |
| src/local_deep_research/text_optimization/citation_formatter.py |
LaTeXExporter |
|
100% |
111 |
0 |
0 |
|
100% |
54 |
0 |
|
100% |
| src/local_deep_research/text_optimization/citation_formatter.py |
(no class) |
|
97% |
574 |
15 |
0 |
|
94% |
246 |
15 |
|
96% |
| src/local_deep_research/text_processing/__init__.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/text_processing/text_cleaner.py |
(no class) |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/utilities/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/arxiv.py |
(no class) |
|
100% |
47 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/utilities/arxiv_api.py |
ArxivSortCriterion |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/arxiv_api.py |
ArxivSortOrder |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/arxiv_api.py |
ArxivQueryRequest |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/arxiv_api.py |
ArxivIdRequest |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/arxiv_api.py |
ArxivAuthor |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/arxiv_api.py |
ArxivPaper |
|
100% |
2 |
0 |
0 |
|
25% |
4 |
3 |
|
50% |
| src/local_deep_research/utilities/arxiv_api.py |
_Readable |
|
100% |
1 |
0 |
0 |
|
50% |
2 |
1 |
|
67% |
| src/local_deep_research/utilities/arxiv_api.py |
_ItemSource |
|
100% |
1 |
0 |
0 |
|
50% |
2 |
1 |
|
67% |
| src/local_deep_research/utilities/arxiv_api.py |
_GatedArxivSession |
|
60% |
10 |
4 |
0 |
|
25% |
4 |
1 |
|
50% |
| src/local_deep_research/utilities/arxiv_api.py |
(no class) |
|
98% |
111 |
2 |
3 |
|
93% |
14 |
1 |
|
98% |
| src/local_deep_research/utilities/chunk_anchor.py |
(no class) |
|
97% |
102 |
3 |
0 |
|
98% |
62 |
1 |
|
98% |
| src/local_deep_research/utilities/citation_normalizer.py |
(no class) |
|
92% |
186 |
14 |
0 |
|
88% |
114 |
10 |
|
91% |
| src/local_deep_research/utilities/db_utils.py |
(no class) |
|
97% |
77 |
2 |
0 |
|
100% |
22 |
0 |
|
98% |
| src/local_deep_research/utilities/download_url.py |
(no class) |
|
95% |
59 |
3 |
0 |
|
78% |
18 |
4 |
|
91% |
| src/local_deep_research/utilities/enums.py |
KnowledgeAccumulationApproach |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/enums.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/es_utils.py |
ElasticsearchManager |
|
97% |
110 |
3 |
0 |
|
97% |
30 |
1 |
|
97% |
| src/local_deep_research/utilities/es_utils.py |
(no class) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/formatting.py |
(no class) |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/utilities/host_match.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/utilities/js_rendering.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/json_utils.py |
(no class) |
|
100% |
93 |
0 |
0 |
|
91% |
56 |
5 |
|
97% |
| src/local_deep_research/utilities/llm_utils.py |
_close_inner_ollama_clients._Proxy |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/llm_utils.py |
(no class) |
|
100% |
102 |
0 |
0 |
|
100% |
32 |
0 |
|
100% |
| src/local_deep_research/utilities/log_utils.py |
InterceptHandler |
|
100% |
14 |
0 |
0 |
|
75% |
4 |
1 |
|
94% |
| src/local_deep_research/utilities/log_utils.py |
(no class) |
|
88% |
287 |
34 |
0 |
|
81% |
98 |
11 |
|
86% |
| src/local_deep_research/utilities/lxml_thread_safety.py |
(no class) |
|
93% |
44 |
3 |
0 |
|
100% |
10 |
0 |
|
94% |
| src/local_deep_research/utilities/metric_write_health.py |
MetricWriteSnapshot |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/metric_write_health.py |
MetricWriteHealth |
|
100% |
20 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/utilities/metric_write_health.py |
(no class) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/office_conversion.py |
OfficeConversionError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/office_conversion.py |
(no class) |
|
91% |
80 |
7 |
2 |
|
83% |
18 |
3 |
|
90% |
| src/local_deep_research/utilities/openalex_enrichment.py |
(no class) |
|
99% |
135 |
1 |
0 |
|
97% |
64 |
2 |
|
98% |
| src/local_deep_research/utilities/pandoc_conversion.py |
PandocConversionError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/pandoc_conversion.py |
_MemoryCap |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/pandoc_conversion.py |
(no class) |
|
94% |
122 |
7 |
4 |
|
88% |
26 |
3 |
|
93% |
| src/local_deep_research/utilities/pdf_extraction_limits.py |
(no class) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/pdf_page_walk.py |
(no class) |
|
91% |
22 |
2 |
2 |
|
100% |
2 |
0 |
|
92% |
| src/local_deep_research/utilities/pdf_stream_release.py |
_Pending |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/pdf_stream_release.py |
PdfplumberWalkReleaser |
|
94% |
297 |
17 |
0 |
|
92% |
116 |
9 |
|
94% |
| src/local_deep_research/utilities/pdf_stream_release.py |
PypdfWalkReleaser |
|
95% |
56 |
3 |
0 |
|
100% |
28 |
0 |
|
96% |
| src/local_deep_research/utilities/pdf_stream_release.py |
(no class) |
|
92% |
202 |
17 |
0 |
|
90% |
70 |
5 |
|
91% |
| src/local_deep_research/utilities/request_context.py |
(no class) |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/research_content_cache.py |
ResearchContentCache |
|
78% |
136 |
30 |
0 |
|
65% |
52 |
10 |
|
74% |
| src/local_deep_research/utilities/research_content_cache.py |
(no class) |
|
94% |
98 |
6 |
10 |
|
85% |
40 |
6 |
|
91% |
| src/local_deep_research/utilities/resource_utils.py |
(no class) |
|
100% |
14 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/utilities/search_utilities.py |
_URLCandidateBudgetExceeded |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/search_utilities.py |
_URLCandidateBudget |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/utilities/search_utilities.py |
(no class) |
|
92% |
742 |
61 |
0 |
|
90% |
396 |
34 |
|
91% |
| src/local_deep_research/utilities/setup_utils.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/sql_utils.py |
(no class) |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/utilities/thread_context.py |
(no class) |
|
96% |
50 |
2 |
0 |
|
100% |
10 |
0 |
|
97% |
| src/local_deep_research/utilities/threading_utils.py |
(no class) |
|
100% |
15 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/utilities/type_utils.py |
(no class) |
|
97% |
96 |
3 |
0 |
|
98% |
62 |
1 |
|
97% |
| src/local_deep_research/utilities/url_utils.py |
(no class) |
|
92% |
246 |
19 |
0 |
|
92% |
116 |
9 |
|
92% |
| src/local_deep_research/vector_stores/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/vector_stores/base.py |
WriteLock |
|
100% |
1 |
0 |
0 |
|
0% |
2 |
2 |
|
33% |
| src/local_deep_research/vector_stores/base.py |
BaseVectorStore |
|
100% |
0 |
0 |
3 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/vector_stores/base.py |
(no class) |
|
100% |
37 |
0 |
0 |
|
50% |
2 |
1 |
|
97% |
| src/local_deep_research/vector_stores/config.py |
(no class) |
|
100% |
30 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/vector_stores/facade.py |
_BindKwargs |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/vector_stores/facade.py |
ChunkInput |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/vector_stores/facade.py |
SearchResult |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/vector_stores/facade.py |
IndexStats |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/vector_stores/facade.py |
DeleteStats |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/vector_stores/facade.py |
VectorIndex |
|
95% |
124 |
6 |
0 |
|
85% |
46 |
5 |
|
92% |
| src/local_deep_research/vector_stores/facade.py |
(no class) |
|
100% |
39 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/vector_stores/implementations/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/vector_stores/implementations/faiss_store.py |
FaissVectorStore |
|
93% |
346 |
25 |
0 |
|
88% |
144 |
17 |
|
91% |
| src/local_deep_research/vector_stores/implementations/faiss_store.py |
(no class) |
|
100% |
55 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/vector_stores/legacy_cleanup.py |
(no class) |
|
92% |
240 |
20 |
0 |
|
97% |
72 |
2 |
|
93% |
| src/local_deep_research/vector_stores/legacy_rekey.py |
(no class) |
|
99% |
184 |
1 |
0 |
|
96% |
50 |
2 |
|
99% |
| src/local_deep_research/web/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/app.py |
(no class) |
|
98% |
46 |
1 |
0 |
|
83% |
6 |
1 |
|
96% |
| src/local_deep_research/web/auth/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/auth/connection_cleanup.py |
(no class) |
|
94% |
128 |
8 |
0 |
|
100% |
22 |
0 |
|
95% |
| src/local_deep_research/web/auth/password_utils.py |
(no class) |
|
100% |
21 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/web/auth/session_manager.py |
SessionManager |
|
100% |
89 |
0 |
0 |
|
100% |
36 |
0 |
|
100% |
| src/local_deep_research/web/auth/session_manager.py |
(no class) |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/database/benchmark_schema.py |
BenchmarkStatus |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/database/benchmark_schema.py |
DatasetType |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/database/benchmark_schema.py |
(no class) |
|
100% |
30 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/web/dependencies/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/dependencies/auth.py |
(no class) |
|
99% |
145 |
2 |
0 |
|
93% |
54 |
4 |
|
97% |
| src/local_deep_research/web/dependencies/csrf.py |
CSRFMiddleware |
|
96% |
81 |
3 |
0 |
|
97% |
30 |
1 |
|
96% |
| src/local_deep_research/web/dependencies/csrf.py |
(no class) |
|
97% |
37 |
1 |
0 |
|
90% |
10 |
1 |
|
96% |
| src/local_deep_research/web/dependencies/flash.py |
(no class) |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/dependencies/json_body.py |
(no class) |
|
100% |
23 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/web/dependencies/rate_limit.py |
_LocalTrustedHosts |
|
88% |
16 |
2 |
0 |
|
100% |
6 |
0 |
|
91% |
| src/local_deep_research/web/dependencies/rate_limit.py |
(no class) |
|
98% |
432 |
7 |
3 |
|
96% |
172 |
7 |
|
98% |
| src/local_deep_research/web/dependencies/template_helpers.py |
(no class) |
|
100% |
33 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/web/dependencies/threadpool.py |
WorkerCleanupStreamingResponse |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/dependencies/threadpool.py |
WorkerCleanupAPIRoute |
|
100% |
2 |
0 |
2 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/dependencies/threadpool.py |
(no class) |
|
92% |
119 |
10 |
2 |
|
83% |
24 |
0 |
|
90% |
| src/local_deep_research/web/exceptions.py |
WebAPIException |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/exceptions.py |
AuthenticationRequiredError |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/exceptions.py |
(no class) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/fastapi_app.py |
SecurityHeadersMiddleware |
|
100% |
25 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/web/fastapi_app.py |
_RequestBodyTooLarge |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/fastapi_app.py |
BodySizeLimitMiddleware |
|
100% |
72 |
0 |
0 |
|
100% |
32 |
0 |
|
100% |
| src/local_deep_research/web/fastapi_app.py |
SecureCookieMiddleware |
|
100% |
58 |
0 |
0 |
|
100% |
36 |
0 |
|
100% |
| src/local_deep_research/web/fastapi_app.py |
RememberMeMiddleware |
|
100% |
21 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/web/fastapi_app.py |
DatabaseMiddleware |
|
95% |
44 |
2 |
0 |
|
100% |
14 |
0 |
|
97% |
| src/local_deep_research/web/fastapi_app.py |
DatabaseMiddleware._call_http._MinimalRequest |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/fastapi_app.py |
RequestTimingASGIMiddleware |
|
100% |
22 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/web/fastapi_app.py |
_PathScopedCORSMiddleware |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/web/fastapi_app.py |
(no class) |
|
90% |
635 |
64 |
0 |
|
86% |
146 |
20 |
|
89% |
| src/local_deep_research/web/models/database.py |
(no class) |
|
100% |
82 |
0 |
0 |
|
88% |
16 |
2 |
|
98% |
| src/local_deep_research/web/models/settings.py |
BaseSetting |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/models/settings.py |
LLMSetting |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/models/settings.py |
SearchSetting |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/models/settings.py |
ReportSetting |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/models/settings.py |
AppSetting |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/models/settings.py |
ChatSetting |
|
0% |
3 |
3 |
0 |
|
0% |
2 |
0 |
|
0% |
| src/local_deep_research/web/models/settings.py |
SettingsGroup |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/models/settings.py |
(no class) |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/queue/__init__.py |
(no class) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/queue/lifecycle_cleanup.py |
QueuedResearchCleanupResult |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/queue/lifecycle_cleanup.py |
(no class) |
|
96% |
47 |
2 |
0 |
|
90% |
20 |
2 |
|
94% |
| src/local_deep_research/web/queue/manager.py |
QueueManager |
|
100% |
43 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/web/queue/manager.py |
(no class) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/queue/processor_v2.py |
QueueSweepResult |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/queue/processor_v2.py |
_DirectStartOutcome |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/queue/processor_v2.py |
QueueProcessorV2 |
|
94% |
627 |
36 |
0 |
|
86% |
192 |
24 |
|
92% |
| src/local_deep_research/web/queue/processor_v2.py |
(no class) |
|
100% |
65 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/research_state.py |
_ReentrantUserLock |
|
95% |
19 |
1 |
0 |
|
75% |
4 |
1 |
|
91% |
| src/local_deep_research/web/research_state.py |
(no class) |
|
100% |
148 |
0 |
0 |
|
95% |
44 |
2 |
|
99% |
| src/local_deep_research/web/routers/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/routers/api.py |
(no class) |
|
100% |
208 |
0 |
0 |
|
98% |
52 |
1 |
|
99% |
| src/local_deep_research/web/routers/api_v1.py |
(no class) |
|
97% |
301 |
10 |
0 |
|
98% |
106 |
2 |
|
97% |
| src/local_deep_research/web/routers/auth.py |
(no class) |
|
92% |
489 |
41 |
0 |
|
90% |
100 |
10 |
|
91% |
| src/local_deep_research/web/routers/benchmark.py |
(no class) |
|
94% |
393 |
22 |
0 |
|
89% |
126 |
14 |
|
93% |
| src/local_deep_research/web/routers/chat.py |
(no class) |
|
99% |
588 |
1 |
2 |
|
94% |
144 |
8 |
|
99% |
| src/local_deep_research/web/routers/context_overflow_api.py |
(no class) |
|
100% |
106 |
0 |
0 |
|
100% |
24 |
0 |
|
100% |
| src/local_deep_research/web/routers/followup.py |
(no class) |
|
86% |
187 |
27 |
0 |
|
90% |
30 |
1 |
|
86% |
| src/local_deep_research/web/routers/history.py |
(no class) |
|
100% |
175 |
0 |
0 |
|
100% |
34 |
0 |
|
100% |
| src/local_deep_research/web/routers/library.py |
(no class) |
|
96% |
652 |
28 |
0 |
|
95% |
164 |
6 |
|
96% |
| src/local_deep_research/web/routers/library_delete.py |
(no class) |
|
100% |
176 |
0 |
0 |
|
100% |
56 |
0 |
|
100% |
| src/local_deep_research/web/routers/library_search.py |
(no class) |
|
97% |
175 |
6 |
0 |
|
92% |
50 |
4 |
|
96% |
| src/local_deep_research/web/routers/metrics.py |
(no class) |
|
99% |
942 |
10 |
0 |
|
96% |
268 |
11 |
|
98% |
| src/local_deep_research/web/routers/news_flask_api.py |
(no class) |
|
92% |
732 |
57 |
0 |
|
95% |
188 |
9 |
|
93% |
| src/local_deep_research/web/routers/news_pages.py |
(no class) |
|
100% |
64 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/web/routers/notes.py |
_RedactingRepr |
|
75% |
24 |
6 |
0 |
|
75% |
8 |
2 |
|
75% |
| src/local_deep_research/web/routers/notes.py |
(no class) |
|
96% |
1156 |
45 |
0 |
|
97% |
324 |
9 |
|
96% |
| src/local_deep_research/web/routers/rag.py |
(no class) |
|
96% |
1468 |
62 |
0 |
|
96% |
418 |
14 |
|
96% |
| src/local_deep_research/web/routers/research.py |
(no class) |
|
93% |
1051 |
69 |
3 |
|
94% |
330 |
17 |
|
94% |
| src/local_deep_research/web/routers/scheduler.py |
(no class) |
|
100% |
25 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/routers/settings.py |
(no class) |
|
97% |
1575 |
53 |
14 |
|
95% |
658 |
32 |
|
96% |
| src/local_deep_research/web/routers/unified_search.py |
(no class) |
|
98% |
130 |
3 |
0 |
|
98% |
42 |
1 |
|
98% |
| src/local_deep_research/web/routers/zotero.py |
(no class) |
|
92% |
120 |
10 |
0 |
|
100% |
30 |
0 |
|
93% |
| src/local_deep_research/web/routes/_search_constants.py |
(no class) |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/routes/globals.py |
(no class) |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/routes/research_validation.py |
(no class) |
|
100% |
30 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| src/local_deep_research/web/server_config.py |
(no class) |
|
100% |
72 |
0 |
0 |
|
100% |
34 |
0 |
|
100% |
| src/local_deep_research/web/services/pdf_extraction_service.py |
PDFExtractionService |
|
97% |
63 |
2 |
0 |
|
100% |
18 |
0 |
|
98% |
| src/local_deep_research/web/services/pdf_extraction_service.py |
(no class) |
|
100% |
20 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/services/pdf_service.py |
UnsafePDFResourceURLError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/services/pdf_service.py |
_SafeUrlFetcher |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/services/pdf_service.py |
_SkippingUrlFetcher |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/services/pdf_service.py |
MissingPDFDependencyError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/services/pdf_service.py |
PDFService |
|
100% |
54 |
0 |
0 |
|
92% |
12 |
1 |
|
98% |
| src/local_deep_research/web/services/pdf_service.py |
(no class) |
|
87% |
78 |
10 |
0 |
|
64% |
14 |
3 |
|
84% |
| src/local_deep_research/web/services/report_assembly_service.py |
(no class) |
|
95% |
142 |
7 |
0 |
|
95% |
62 |
3 |
|
95% |
| src/local_deep_research/web/services/research_service.py |
_SocketEmitter |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/services/research_service.py |
(no class) |
|
93% |
1074 |
79 |
0 |
|
90% |
368 |
28 |
|
92% |
| src/local_deep_research/web/services/research_sources_service.py |
ResearchSourcesService |
|
87% |
112 |
15 |
0 |
|
81% |
32 |
4 |
|
85% |
| src/local_deep_research/web/services/research_sources_service.py |
(no class) |
|
91% |
184 |
17 |
0 |
|
88% |
102 |
12 |
|
90% |
| src/local_deep_research/web/services/resource_service.py |
(no class) |
|
100% |
40 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/web/services/settings_service.py |
(no class) |
|
96% |
84 |
3 |
0 |
|
89% |
38 |
2 |
|
94% |
| src/local_deep_research/web/services/socketio_asgi.py |
(no class) |
|
99% |
421 |
2 |
0 |
|
89% |
152 |
16 |
|
97% |
| src/local_deep_research/web/static_files.py |
(no class) |
|
92% |
38 |
3 |
0 |
|
90% |
10 |
1 |
|
92% |
| src/local_deep_research/web/template_config.py |
_LDRTemplates |
|
97% |
66 |
2 |
0 |
|
73% |
30 |
6 |
|
90% |
| src/local_deep_research/web/template_config.py |
(no class) |
|
83% |
18 |
3 |
0 |
|
100% |
0 |
0 |
|
83% |
| src/local_deep_research/web/themes/__init__.py |
ThemeRegistry |
|
100% |
47 |
0 |
0 |
|
91% |
22 |
2 |
|
97% |
| src/local_deep_research/web/themes/__init__.py |
(no class) |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/themes/loader.py |
ThemeLoader |
|
92% |
65 |
5 |
0 |
|
79% |
28 |
4 |
|
88% |
| src/local_deep_research/web/themes/loader.py |
(no class) |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/themes/schema.py |
ThemeMetadata |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/themes/schema.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/utils/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/utils/download_headers.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/web/utils/pagination.py |
(no class) |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/utils/path_ids.py |
(no class) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/utils/range_response.py |
(no class) |
|
100% |
42 |
0 |
0 |
|
100% |
16 |
0 |
|
100% |
| src/local_deep_research/web/utils/request_timing.py |
RequestTimingMiddleware |
|
100% |
17 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/web/utils/request_timing.py |
(no class) |
|
100% |
19 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web/utils/vite_helper.py |
_ManifestState |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web/utils/vite_helper.py |
ViteHelper |
|
93% |
212 |
14 |
0 |
|
91% |
112 |
10 |
|
93% |
| src/local_deep_research/web/utils/vite_helper.py |
(no class) |
|
97% |
71 |
2 |
0 |
|
67% |
6 |
2 |
|
95% |
| src/local_deep_research/web/warning_checks/__init__.py |
(no class) |
|
90% |
167 |
17 |
0 |
|
88% |
58 |
7 |
|
89% |
| src/local_deep_research/web/warning_checks/backup.py |
(no class) |
|
100% |
30 |
0 |
0 |
|
100% |
18 |
0 |
|
100% |
| src/local_deep_research/web/warning_checks/context.py |
(no class) |
|
100% |
21 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/web/warning_checks/hardware.py |
(no class) |
|
100% |
29 |
0 |
0 |
|
100% |
20 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engine_availability.py |
SearchFailure |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engine_availability.py |
UnrecordedFailure |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engine_availability.py |
EngineDisablement |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engine_availability.py |
SearchEngineAvailability |
|
98% |
90 |
2 |
0 |
|
100% |
30 |
0 |
|
98% |
| src/local_deep_research/web_search_engines/engine_availability.py |
(no class) |
|
97% |
152 |
5 |
0 |
|
93% |
46 |
3 |
|
96% |
| src/local_deep_research/web_search_engines/engine_groups.py |
SearchEngineGroup |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engine_groups.py |
(no class) |
|
100% |
27 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engine_registry.py |
EngineEntry |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engine_registry.py |
(no class) |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/__init__.py |
(no class) |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/_google_pse_rate_limiter.py |
(no class) |
|
100% |
35 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/_searxng_rate_limiter.py |
_UrlState |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/_searxng_rate_limiter.py |
(no class) |
|
99% |
120 |
1 |
0 |
|
98% |
40 |
1 |
|
99% |
| src/local_deep_research/web_search_engines/engines/full_search.py |
_Invokable |
|
100% |
1 |
0 |
0 |
|
50% |
2 |
1 |
|
67% |
| src/local_deep_research/web_search_engines/engines/full_search.py |
FullSearchResults |
|
98% |
178 |
4 |
4 |
|
95% |
74 |
4 |
|
97% |
| src/local_deep_research/web_search_engines/engines/full_search.py |
(no class) |
|
100% |
57 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/local_embedding_manager.py |
LocalEmbeddingManager |
|
100% |
59 |
0 |
0 |
|
100% |
18 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/local_embedding_manager.py |
(no class) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_arxiv.py |
FullTextNotExtractedError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_arxiv.py |
FullTextFetchFailedError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_arxiv.py |
FullTextRateLimitedError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_arxiv.py |
ArXivSearchEngine |
|
100% |
172 |
0 |
0 |
|
98% |
52 |
1 |
|
99% |
| src/local_deep_research/web_search_engines/engines/search_engine_arxiv.py |
(no class) |
|
100% |
35 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_brave.py |
BraveSearchEngine |
|
97% |
37 |
1 |
0 |
|
100% |
8 |
0 |
|
98% |
| src/local_deep_research/web_search_engines/engines/search_engine_brave.py |
(no class) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_collection.py |
CollectionSearchEngine |
|
100% |
92 |
0 |
0 |
|
94% |
32 |
2 |
|
98% |
| src/local_deep_research/web_search_engines/engines/search_engine_collection.py |
(no class) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_elasticsearch.py |
ElasticsearchSearchEngine |
|
93% |
202 |
14 |
0 |
|
93% |
60 |
4 |
|
93% |
| src/local_deep_research/web_search_engines/engines/search_engine_elasticsearch.py |
(no class) |
|
100% |
38 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_exa.py |
ExaSearchEngine |
|
100% |
65 |
0 |
0 |
|
96% |
26 |
1 |
|
99% |
| src/local_deep_research/web_search_engines/engines/search_engine_exa.py |
(no class) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_federal_register.py |
_FullContentDeadlineReached |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_federal_register.py |
_UnexpectedResponseHost |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_federal_register.py |
_FederalRegisterRunState |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_federal_register.py |
FederalRegisterSearchEngine |
|
91% |
214 |
20 |
0 |
|
88% |
78 |
9 |
|
90% |
| src/local_deep_research/web_search_engines/engines/search_engine_federal_register.py |
(no class) |
|
100% |
59 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_github.py |
GitHubSearchEngine |
|
99% |
308 |
2 |
0 |
|
97% |
110 |
3 |
|
99% |
| src/local_deep_research/web_search_engines/engines/search_engine_github.py |
(no class) |
|
100% |
41 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_google_pse.py |
GooglePSESearchEngine |
|
93% |
115 |
8 |
0 |
|
92% |
36 |
3 |
|
93% |
| src/local_deep_research/web_search_engines/engines/search_engine_google_pse.py |
(no class) |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_guardian.py |
GuardianSearchEngine |
|
97% |
229 |
6 |
0 |
|
92% |
78 |
6 |
|
96% |
| src/local_deep_research/web_search_engines/engines/search_engine_guardian.py |
(no class) |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_gutenberg.py |
GutenbergSearchEngine |
|
95% |
185 |
9 |
0 |
|
88% |
80 |
10 |
|
93% |
| src/local_deep_research/web_search_engines/engines/search_engine_gutenberg.py |
(no class) |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_library.py |
LibraryRAGSearchEngine |
|
99% |
184 |
2 |
0 |
|
92% |
62 |
5 |
|
97% |
| src/local_deep_research/web_search_engines/engines/search_engine_library.py |
(no class) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_mojeek.py |
MojeekSearchEngine |
|
98% |
60 |
1 |
0 |
|
95% |
22 |
1 |
|
98% |
| src/local_deep_research/web_search_engines/engines/search_engine_mojeek.py |
(no class) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_nasa_ads.py |
NasaAdsSearchEngine |
|
91% |
133 |
12 |
0 |
|
87% |
54 |
7 |
|
90% |
| src/local_deep_research/web_search_engines/engines/search_engine_nasa_ads.py |
(no class) |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_openalex.py |
OpenAlexAuthError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_openalex.py |
OpenAlexSearchEngine |
|
99% |
196 |
2 |
0 |
|
92% |
76 |
6 |
|
97% |
| src/local_deep_research/web_search_engines/engines/search_engine_openalex.py |
(no class) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_openlibrary.py |
OpenLibrarySearchEngine |
|
90% |
194 |
19 |
0 |
|
83% |
90 |
15 |
|
88% |
| src/local_deep_research/web_search_engines/engines/search_engine_openlibrary.py |
(no class) |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_paperless.py |
PaperlessSearchEngine |
|
94% |
285 |
17 |
0 |
|
82% |
100 |
16 |
|
91% |
| src/local_deep_research/web_search_engines/engines/search_engine_paperless.py |
(no class) |
|
100% |
31 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_pubchem.py |
PubChemSearchEngine |
|
98% |
234 |
5 |
0 |
|
79% |
80 |
17 |
|
93% |
| src/local_deep_research/web_search_engines/engines/search_engine_pubchem.py |
(no class) |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_pubmed.py |
PubMedSearchEngine |
|
98% |
694 |
15 |
0 |
|
86% |
356 |
51 |
|
94% |
| src/local_deep_research/web_search_engines/engines/search_engine_pubmed.py |
(no class) |
|
100% |
39 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_retriever.py |
RetrieverSearchEngine |
|
100% |
48 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_retriever.py |
(no class) |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_scaleserp.py |
ScaleSerpSearchEngine |
|
100% |
62 |
0 |
0 |
|
94% |
18 |
1 |
|
99% |
| src/local_deep_research/web_search_engines/engines/search_engine_scaleserp.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_searxng.py |
SafeSearchSetting |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_searxng.py |
SearXNGSearchEngine |
|
96% |
232 |
10 |
0 |
|
95% |
86 |
4 |
|
96% |
| src/local_deep_research/web_search_engines/engines/search_engine_searxng.py |
(no class) |
|
100% |
39 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_semantic_scholar.py |
SemanticScholarSearchEngine |
|
98% |
256 |
5 |
0 |
|
92% |
100 |
8 |
|
96% |
| src/local_deep_research/web_search_engines/engines/search_engine_semantic_scholar.py |
(no class) |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_serpapi.py |
SerpAPISearchEngine |
|
100% |
28 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_serpapi.py |
(no class) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_serper.py |
SerperSearchEngine |
|
100% |
60 |
0 |
0 |
|
94% |
16 |
1 |
|
99% |
| src/local_deep_research/web_search_engines/engines/search_engine_serper.py |
(no class) |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_serply.py |
SerplySearchEngine |
|
91% |
44 |
4 |
0 |
|
100% |
10 |
0 |
|
93% |
| src/local_deep_research/web_search_engines/engines/search_engine_serply.py |
(no class) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_sofya.py |
SofyaSearchEngine |
|
100% |
56 |
0 |
0 |
|
100% |
16 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_sofya.py |
(no class) |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_stackexchange.py |
StackExchangeSearchEngine |
|
95% |
203 |
10 |
0 |
|
89% |
56 |
6 |
|
94% |
| src/local_deep_research/web_search_engines/engines/search_engine_stackexchange.py |
(no class) |
|
100% |
34 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_tavily.py |
TavilySearchEngine |
|
100% |
49 |
0 |
0 |
|
93% |
14 |
1 |
|
98% |
| src/local_deep_research/web_search_engines/engines/search_engine_tavily.py |
(no class) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_tinyfish.py |
TinyFishSearchEngine |
|
83% |
89 |
15 |
0 |
|
75% |
28 |
7 |
|
81% |
| src/local_deep_research/web_search_engines/engines/search_engine_tinyfish.py |
(no class) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_wayback.py |
WaybackSearchEngine |
|
98% |
276 |
5 |
0 |
|
97% |
102 |
3 |
|
98% |
| src/local_deep_research/web_search_engines/engines/search_engine_wayback.py |
(no class) |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_webz.py |
WebzSearchEngine |
|
98% |
125 |
3 |
0 |
|
97% |
78 |
2 |
|
98% |
| src/local_deep_research/web_search_engines/engines/search_engine_webz.py |
(no class) |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_wikinews.py |
WikinewsSearchEngine |
|
97% |
124 |
4 |
0 |
|
85% |
40 |
6 |
|
94% |
| src/local_deep_research/web_search_engines/engines/search_engine_wikinews.py |
(no class) |
|
100% |
41 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_wikipedia.py |
WikipediaSearchEngine |
|
100% |
116 |
0 |
0 |
|
100% |
18 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_wikipedia.py |
(no class) |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/engines/search_engine_zenodo.py |
ZenodoSearchEngine |
|
97% |
147 |
4 |
0 |
|
92% |
52 |
4 |
|
96% |
| src/local_deep_research/web_search_engines/engines/search_engine_zenodo.py |
(no class) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/rate_limiting/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/rate_limiting/exceptions.py |
RateLimitError |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/rate_limiting/exceptions.py |
AdaptiveRetryError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/rate_limiting/exceptions.py |
RateLimitConfigError |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/rate_limiting/exceptions.py |
(no class) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/rate_limiting/llm/__init__.py |
(no class) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/rate_limiting/llm/detection.py |
(no class) |
|
92% |
48 |
4 |
0 |
|
96% |
26 |
1 |
|
93% |
| src/local_deep_research/web_search_engines/rate_limiting/llm/wrapper.py |
AdaptiveLLMWait |
|
100% |
12 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/rate_limiting/llm/wrapper.py |
create_rate_limited_llm_wrapper.RateLimitedLLMWrapper |
|
90% |
230 |
22 |
0 |
|
90% |
72 |
5 |
|
90% |
| src/local_deep_research/web_search_engines/rate_limiting/llm/wrapper.py |
(no class) |
|
100% |
44 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/rate_limiting/tracker.py |
AdaptiveRateLimitTracker |
|
92% |
365 |
28 |
0 |
|
92% |
140 |
9 |
|
92% |
| src/local_deep_research/web_search_engines/rate_limiting/tracker.py |
(no class) |
|
100% |
43 |
0 |
2 |
|
100% |
2 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/relevance_filter.py |
(no class) |
|
95% |
194 |
9 |
0 |
|
93% |
76 |
5 |
|
95% |
| src/local_deep_research/web_search_engines/retriever_registry.py |
RetrieverRegistry |
|
100% |
68 |
0 |
0 |
|
100% |
24 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/retriever_registry.py |
(no class) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/search_engine_base.py |
_SearchRunState |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/search_engine_base.py |
AdaptiveWait |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/search_engine_base.py |
BaseSearchEngine |
|
94% |
532 |
30 |
30 |
|
92% |
230 |
19 |
|
94% |
| src/local_deep_research/web_search_engines/search_engine_base.py |
(no class) |
|
100% |
136 |
0 |
2 |
|
100% |
8 |
0 |
|
100% |
| src/local_deep_research/web_search_engines/search_engine_factory.py |
(no class) |
|
91% |
426 |
37 |
0 |
|
87% |
260 |
27 |
|
90% |
| src/local_deep_research/web_search_engines/search_engines_config.py |
(no class) |
|
92% |
226 |
18 |
0 |
|
96% |
90 |
4 |
|
93% |
| src/local_deep_research/web_search_engines/wayback_client.py |
(no class) |
|
99% |
107 |
1 |
0 |
|
96% |
48 |
2 |
|
98% |