Coverage report: 77%

Files Functions Classes

coverage.py v7.13.4, created at 2026-02-25 01:07 +0000

    Statements   Branches   Total
File   coverage statements missing excluded   coverage branches partial   coverage
src / local_deep_research / __init__.py   100% 6 0 0   100% 0 0   100%
src / local_deep_research / __version__.py   100% 1 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / __init__.py   100% 1 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / candidate_exploration / __init__.py   100% 7 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / candidate_exploration / adaptive_explorer.py   100% 129 0 0   100% 38 0   100%
src / local_deep_research / advanced_search_system / candidate_exploration / base_explorer.py   98% 130 2 0   95% 42 2   98%
src / local_deep_research / advanced_search_system / candidate_exploration / constraint_guided_explorer.py   99% 140 1 0   95% 60 3   98%
src / local_deep_research / advanced_search_system / candidate_exploration / diversity_explorer.py   70% 186 55 0   60% 88 7   67%
src / local_deep_research / advanced_search_system / candidate_exploration / parallel_explorer.py   100% 89 0 0   96% 24 1   99%
src / local_deep_research / advanced_search_system / candidate_exploration / progressive_explorer.py   92% 119 10 0   78% 64 4   87%
src / local_deep_research / advanced_search_system / candidates / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / candidates / base_candidate.py   100% 36 0 0   100% 14 0   100%
src / local_deep_research / advanced_search_system / constraint_checking / __init__.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / constraint_checking / base_constraint_checker.py   87% 31 4 0   75% 4 1   86%
src / local_deep_research / advanced_search_system / constraint_checking / constraint_checker.py   100% 55 0 0   100% 10 0   100%
src / local_deep_research / advanced_search_system / constraint_checking / dual_confidence_checker.py   89% 116 13 0   82% 34 6   87%
src / local_deep_research / advanced_search_system / constraint_checking / evidence_analyzer.py   91% 56 5 0   88% 8 1   91%
src / local_deep_research / advanced_search_system / constraint_checking / intelligent_constraint_relaxer.py   97% 167 5 0   93% 84 4   96%
src / local_deep_research / advanced_search_system / constraint_checking / rejection_engine.py   87% 30 4 0   70% 10 1   82%
src / local_deep_research / advanced_search_system / constraint_checking / strict_checker.py   96% 78 3 0   93% 28 2   95%
src / local_deep_research / advanced_search_system / constraint_checking / threshold_checker.py   100% 59 0 0   100% 16 0   100%
src / local_deep_research / advanced_search_system / constraints / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / constraints / base_constraint.py   100% 33 0 0   100% 12 0   100%
src / local_deep_research / advanced_search_system / constraints / constraint_analyzer.py   100% 46 0 0   89% 18 2   97%
src / local_deep_research / advanced_search_system / evidence / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / evidence / base_evidence.py   100% 27 0 0   100% 2 0   100%
src / local_deep_research / advanced_search_system / evidence / evaluator.py   100% 50 0 0   100% 14 0   100%
src / local_deep_research / advanced_search_system / evidence / requirements.py   100% 11 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / filters / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / filters / base_filter.py   89% 9 1 0   100% 0 0   89%
src / local_deep_research / advanced_search_system / filters / cross_engine_filter.py   97% 74 2 0   100% 34 0   98%
src / local_deep_research / advanced_search_system / filters / followup_relevance_filter.py   100% 47 0 0   100% 14 0   100%
src / local_deep_research / advanced_search_system / filters / journal_reputation_filter.py   85% 110 16 0   82% 22 2   85%
src / local_deep_research / advanced_search_system / findings / base_findings.py   79% 19 4 0   100% 0 0   79%
src / local_deep_research / advanced_search_system / findings / repository.py   71% 189 54 0   78% 72 6   73%
src / local_deep_research / advanced_search_system / findings / topic.py   96% 91 4 0   78% 50 9   89%
src / local_deep_research / advanced_search_system / knowledge / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / knowledge / base_knowledge.py   86% 37 5 0   100% 6 0   88%
src / local_deep_research / advanced_search_system / knowledge / followup_context_manager.py   97% 109 3 0   93% 44 3   96%
src / local_deep_research / advanced_search_system / knowledge / standard_knowledge.py   100% 44 0 0   100% 6 0   100%
src / local_deep_research / advanced_search_system / query_generation / adaptive_query_generator.py   94% 156 9 0   86% 74 2   92%
src / local_deep_research / advanced_search_system / questions / __init__.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / questions / atomic_fact_question.py   100% 44 0 0   100% 24 0   100%
src / local_deep_research / advanced_search_system / questions / base_question.py   100% 14 0 0   100% 4 0   100%
src / local_deep_research / advanced_search_system / questions / browsecomp_question.py   90% 151 15 0   78% 106 13   85%
src / local_deep_research / advanced_search_system / questions / decomposition_question.py   92% 133 10 0   85% 88 13   90%
src / local_deep_research / advanced_search_system / questions / entity_aware_question.py   100% 48 0 0   94% 16 1   98%
src / local_deep_research / advanced_search_system / questions / flexible_browsecomp_question.py   100% 26 0 0   93% 14 1   98%
src / local_deep_research / advanced_search_system / questions / followup / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / questions / followup / base_followup_question.py   93% 14 1 0   100% 0 0   93%
src / local_deep_research / advanced_search_system / questions / followup / llm_followup_question.py   100% 11 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / questions / followup / simple_followup_question.py   100% 7 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / questions / news_question.py   92% 13 1 0   50% 2 1   87%
src / local_deep_research / advanced_search_system / questions / standard_question.py   100% 41 0 0   92% 12 1   98%
src / local_deep_research / advanced_search_system / repositories / __init__.py   0% 2 2 0   100% 0 0   0%
src / local_deep_research / advanced_search_system / search_optimization / cross_constraint_manager.py   84% 259 41 0   76% 106 13   82%
src / local_deep_research / advanced_search_system / source_management / diversity_manager.py   97% 238 7 0   93% 112 8   96%
src / local_deep_research / advanced_search_system / tools / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / tools / base_tool.py   97% 36 1 0   92% 12 1   96%
src / local_deep_research / advanced_search_system / tools / knowledge_tools / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / tools / question_tools / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / advanced_search_system / tools / search_tools / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / api / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / api / benchmark_functions.py   87% 83 11 0   57% 30 5   79%
src / local_deep_research / api / client.py   97% 131 4 0   92% 50 4   96%
src / local_deep_research / api / research_functions.py   95% 186 9 0   87% 82 9   93%
src / local_deep_research / api / settings_utils.py   93% 152 11 0   91% 76 7   92%
src / local_deep_research / benchmarks / __init__.py   100% 6 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / benchmark_functions.py   73% 131 36 0   51% 78 22   65%
src / local_deep_research / benchmarks / comparison / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / comparison / evaluator.py   85% 301 44 0   77% 82 9   84%
src / local_deep_research / benchmarks / comparison / results.py   100% 28 0 0   100% 6 0   100%
src / local_deep_research / benchmarks / datasets.py   0% 2 2 0   100% 0 0   0%
src / local_deep_research / benchmarks / datasets / __init__.py   83% 12 2 0   100% 0 0   83%
src / local_deep_research / benchmarks / datasets / base.py   42% 101 59 0   14% 22 1   37%
src / local_deep_research / benchmarks / datasets / browsecomp.py   27% 51 37 0   0% 14 0   22%
src / local_deep_research / benchmarks / datasets / custom_dataset_template.py   0% 25 25 0   0% 6 0   0%
src / local_deep_research / benchmarks / datasets / simpleqa.py   52% 25 12 0   0% 6 0   42%
src / local_deep_research / benchmarks / datasets / utils.py   62% 63 24 0   62% 16 2   62%
src / local_deep_research / benchmarks / datasets / xbench_deepsearch.py   17% 99 82 0   0% 22 0   14%
src / local_deep_research / benchmarks / efficiency / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / efficiency / resource_monitor.py   71% 133 39 0   66% 38 5   70%
src / local_deep_research / benchmarks / efficiency / speed_profiler.py   95% 85 4 0   80% 30 4   91%
src / local_deep_research / benchmarks / evaluators / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / evaluators / base.py   93% 15 1 0   100% 0 0   93%
src / local_deep_research / benchmarks / evaluators / browsecomp.py   100% 18 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / evaluators / composite.py   100% 31 0 0   100% 6 0   100%
src / local_deep_research / benchmarks / evaluators / simpleqa.py   38% 69 43 0   50% 4 0   38%
src / local_deep_research / benchmarks / graders.py   81% 193 37 0   65% 62 16   77%
src / local_deep_research / benchmarks / metrics.py   0% 3 3 0   100% 0 0   0%
src / local_deep_research / benchmarks / metrics / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / metrics / calculation.py   63% 126 46 0   84% 38 0   68%
src / local_deep_research / benchmarks / metrics / reporting.py   100% 54 0 0   96% 26 1   99%
src / local_deep_research / benchmarks / models / __init__.py   0% 2 2 0   100% 0 0   0%
src / local_deep_research / benchmarks / optimization / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / optimization / api.py   100% 18 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / optimization / metrics.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / optimization / optuna_optimizer.py   68% 346 110 0   51% 78 20   65%
src / local_deep_research / benchmarks / runners.py   53% 122 57 0   43% 42 6   51%
src / local_deep_research / benchmarks / templates.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / ui / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / web_api / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / benchmarks / web_api / benchmark_routes.py   41% 356 210 0   20% 90 18   37%
src / local_deep_research / benchmarks / web_api / benchmark_service.py   49% 485 246 0   31% 134 13   45%
src / local_deep_research / citation_handler.py   100% 35 0 0   100% 10 0   100%
src / local_deep_research / citation_handlers / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / citation_handlers / base_citation_handler.py   95% 43 2 0   94% 16 1   95%
src / local_deep_research / citation_handlers / forced_answer_citation_handler.py   100% 52 0 0   100% 16 0   100%
src / local_deep_research / citation_handlers / precision_extraction_handler.py   90% 204 21 0   76% 84 20   86%
src / local_deep_research / citation_handlers / standard_citation_handler.py   100% 26 0 0   100% 4 0   100%
src / local_deep_research / config / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / config / llm_config.py   73% 386 106 0   64% 152 31   70%
src / local_deep_research / config / paths.py   100% 60 0 0   100% 2 0   100%
src / local_deep_research / config / search_config.py   100% 27 0 0   90% 10 1   97%
src / local_deep_research / config / thread_settings.py   100% 59 0 0   100% 28 0   100%
src / local_deep_research / constants.py   100% 17 0 0   100% 0 0   100%
src / local_deep_research / database / auth_db.py   97% 66 2 0   100% 12 0   97%
src / local_deep_research / database / credential_store_base.py   95% 41 2 0   100% 10 0   96%
src / local_deep_research / database / encrypted_db.py   89% 340 38 0   85% 78 6   88%
src / local_deep_research / database / encryption_check.py   100% 32 0 0   90% 10 1   98%
src / local_deep_research / database / initialize.py   91% 80 7 0   94% 18 1   92%
src / local_deep_research / database / library_init.py   100% 63 0 0   100% 8 0   100%
src / local_deep_research / database / models / __init__.py   100% 21 0 0   100% 0 0   100%
src / local_deep_research / database / models / active_research.py   94% 17 1 0   100% 0 0   94%
src / local_deep_research / database / models / auth.py   100% 18 0 0   100% 0 0   100%
src / local_deep_research / database / models / base.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / database / models / benchmark.py   100% 101 0 0   100% 0 0   100%
src / local_deep_research / database / models / cache.py   92% 49 4 0   75% 4 1   91%
src / local_deep_research / database / models / download_tracker.py   89% 47 5 0   100% 0 0   89%
src / local_deep_research / database / models / file_integrity.py   95% 39 2 0   100% 0 0   95%
src / local_deep_research / database / models / library.py   99% 306 3 0   100% 0 0   99%
src / local_deep_research / database / models / logs.py   92% 24 2 0   100% 0 0   92%
src / local_deep_research / database / models / metrics.py   96% 96 4 0   100% 0 0   96%
src / local_deep_research / database / models / news.py   99% 111 1 0   100% 0 0   99%
src / local_deep_research / database / models / providers.py   93% 14 1 0   100% 0 0   93%
src / local_deep_research / database / models / queue.py   100% 27 0 0   100% 0 0   100%
src / local_deep_research / database / models / queued_research.py   94% 16 1 0   100% 0 0   94%
src / local_deep_research / database / models / rate_limiting.py   93% 30 2 0   100% 0 0   93%
src / local_deep_research / database / models / reports.py   96% 53 2 0   100% 0 0   96%
src / local_deep_research / database / models / research.py   94% 127 7 0   100% 0 0   94%
src / local_deep_research / database / models / settings.py   95% 56 3 0   100% 0 0   95%
src / local_deep_research / database / models / user_news_search_history.py   86% 14 2 0   100% 0 0   86%
src / local_deep_research / database / queue_service.py   95% 78 4 0   93% 14 1   95%
src / local_deep_research / database / session_context.py   94% 94 6 0   95% 38 2   94%
src / local_deep_research / database / session_passwords.py   100% 23 0 0   100% 0 0   100%
src / local_deep_research / database / sqlcipher_compat.py   67% 6 2 0   100% 0 0   67%
src / local_deep_research / database / sqlcipher_utils.py   98% 160 3 0   91% 22 2   97%
src / local_deep_research / database / temp_auth.py   100% 24 0 0   100% 2 0   100%
src / local_deep_research / database / thread_local_session.py   95% 82 4 0   94% 18 1   95%
src / local_deep_research / database / thread_metrics.py   98% 49 1 0   88% 16 2   95%
src / local_deep_research / defaults / __init__.py   95% 19 1 0   75% 8 2   89%
src / local_deep_research / document_loaders / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / document_loaders / bytes_loader.py   91% 47 4 0   80% 10 2   89%
src / local_deep_research / document_loaders / json_loader.py   100% 59 0 0   100% 12 0   100%
src / local_deep_research / document_loaders / loader_registry.py   78% 94 21 0   67% 18 6   76%
src / local_deep_research / document_loaders / yaml_loader.py   100% 44 0 0   100% 4 0   100%
src / local_deep_research / domain_classifier / __init__.py   89% 9 1 0   75% 4 1   85%
src / local_deep_research / domain_classifier / classifier.py   91% 152 14 0   88% 42 5   90%
src / local_deep_research / domain_classifier / models.py   94% 18 1 0   100% 0 0   94%
src / local_deep_research / embeddings / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / embeddings / embeddings_config.py   92% 49 4 0   62% 16 6   85%
src / local_deep_research / embeddings / providers / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / embeddings / providers / base.py   91% 34 3 0   100% 2 0   92%
src / local_deep_research / embeddings / providers / implementations / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / embeddings / providers / implementations / ollama.py   96% 76 3 0   100% 16 0   97%
src / local_deep_research / embeddings / providers / implementations / openai.py   100% 61 0 0   100% 20 0   100%
src / local_deep_research / embeddings / providers / implementations / sentence_transformers.py   100% 28 0 0   100% 4 0   100%
src / local_deep_research / embeddings / splitters / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / embeddings / splitters / text_splitter_registry.py   100% 38 0 0   94% 16 1   98%
src / local_deep_research / error_handling / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / error_handling / error_reporter.py   91% 81 7 0   83% 24 2   90%
src / local_deep_research / error_handling / report_generator.py   100% 106 0 0   94% 54 3   98%
src / local_deep_research / exporters / __init__.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / exporters / base.py   90% 40 4 0   100% 8 0   92%
src / local_deep_research / exporters / latex_exporter.py   100% 31 0 0   100% 2 0   100%
src / local_deep_research / exporters / odt_exporter.py   92% 66 5 0   86% 14 2   91%
src / local_deep_research / exporters / pdf_exporter.py   100% 35 0 0   100% 4 0   100%
src / local_deep_research / exporters / quarto_exporter.py   100% 47 0 0   100% 4 0   100%
src / local_deep_research / exporters / registry.py   94% 34 2 0   100% 4 0   95%
src / local_deep_research / exporters / ris_exporter.py   100% 31 0 0   100% 2 0   100%
src / local_deep_research / followup_research / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / followup_research / models.py   100% 13 0 0   100% 0 0   100%
src / local_deep_research / followup_research / routes.py   88% 93 11 0   56% 16 5   83%
src / local_deep_research / followup_research / service.py   100% 50 0 0   90% 10 1   98%
src / local_deep_research / library / download_management / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / library / download_management / database_init.py   92% 24 2 0   75% 4 1   89%
src / local_deep_research / library / download_management / failure_classifier.py   100% 75 0 0   100% 32 0   100%
src / local_deep_research / library / download_management / filters / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / library / download_management / filters / resource_filter.py   84% 32 5 0   83% 6 1   84%
src / local_deep_research / library / download_management / models / __init__.py   97% 37 1 0   100% 0 0   97%
src / local_deep_research / library / download_management / retry_manager.py   100% 98 0 0   96% 24 1   99%
src / local_deep_research / library / download_management / status_tracker.py   93% 119 8 0   83% 42 7   91%
src / local_deep_research / llm / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / llm / llm_registry.py   100% 49 0 0   100% 4 0   100%
src / local_deep_research / llm / providers / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / llm / providers / auto_discovery.py   90% 92 9 0   82% 28 5   88%
src / local_deep_research / llm / providers / implementations / anthropic.py   96% 45 2 0   100% 6 0   96%
src / local_deep_research / llm / providers / implementations / custom_openai_endpoint.py   93% 30 2 0   100% 0 0   93%
src / local_deep_research / llm / providers / implementations / google.py   100% 48 0 0   100% 10 0   100%
src / local_deep_research / llm / providers / implementations / ionos.py   100% 21 0 0   100% 0 0   100%
src / local_deep_research / llm / providers / implementations / lmstudio.py   100% 42 0 0   100% 0 0   100%
src / local_deep_research / llm / providers / implementations / ollama.py   92% 117 9 0   78% 32 7   89%
src / local_deep_research / llm / providers / implementations / openai.py   100% 75 0 0   100% 16 0   100%
src / local_deep_research / llm / providers / implementations / openrouter.py   100% 21 0 0   100% 0 0   100%
src / local_deep_research / llm / providers / implementations / xai.py   100% 21 0 0   100% 0 0   100%
src / local_deep_research / llm / providers / openai_base.py   89% 119 13 0   81% 36 5   87%
src / local_deep_research / metrics / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / metrics / database.py   100% 33 0 0   100% 8 0   100%
src / local_deep_research / metrics / pricing / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / metrics / pricing / cost_calculator.py   96% 79 3 0   92% 24 2   95%
src / local_deep_research / metrics / pricing / pricing_cache.py   96% 51 2 0   100% 16 0   97%
src / local_deep_research / metrics / pricing / pricing_fetcher.py   72% 106 30 0   67% 48 6   70%
src / local_deep_research / metrics / query_utils.py   100% 22 0 0   100% 14 0   100%
src / local_deep_research / metrics / search_tracker.py   89% 126 14 0   82% 34 6   88%
src / local_deep_research / metrics / token_counter.py   75% 506 127 0   64% 204 36   72%
src / local_deep_research / news / __init__.py   100% 6 0 0   100% 0 0   100%
src / local_deep_research / news / api.py   90% 403 40 0   84% 140 19   88%
src / local_deep_research / news / core / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / news / core / base_card.py   93% 139 10 0   100% 10 0   93%
src / local_deep_research / news / core / card_factory.py   98% 124 3 0   94% 36 2   97%
src / local_deep_research / news / core / card_storage.py   97% 148 4 0   90% 48 5   95%
src / local_deep_research / news / core / news_analyzer.py   100% 159 0 0   98% 56 1   99%
src / local_deep_research / news / core / relevance_service.py   100% 52 0 0   97% 30 1   99%
src / local_deep_research / news / core / search_integration.py   94% 52 3 0   100% 6 0   95%
src / local_deep_research / news / core / storage.py   70% 121 36 0   100% 0 0   70%
src / local_deep_research / news / core / storage_manager.py   98% 180 4 0   85% 48 7   95%
src / local_deep_research / news / core / utils.py   100% 35 0 0   100% 8 0   100%
src / local_deep_research / news / exceptions.py   100% 55 0 0   100% 6 0   100%
src / local_deep_research / news / flask_api.py   21% 633 499 0   6% 132 0   19%
src / local_deep_research / news / folder_manager.py   100% 82 0 0   100% 26 0   100%
src / local_deep_research / news / preference_manager / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / news / preference_manager / base_preference.py   97% 70 2 0   100% 14 0   98%
src / local_deep_research / news / preference_manager / storage.py   100% 98 0 0   94% 32 2   98%
src / local_deep_research / news / rating_system / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / news / rating_system / base_rater.py   95% 77 4 0   93% 14 1   95%
src / local_deep_research / news / rating_system / storage.py   98% 92 2 0   94% 32 2   97%
src / local_deep_research / news / recommender / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / news / recommender / base_recommender.py   98% 63 1 0   100% 20 0   99%
src / local_deep_research / news / recommender / topic_based.py   100% 94 0 0   96% 28 1   99%
src / local_deep_research / news / subscription_manager / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / news / subscription_manager / base_subscription.py   98% 86 2 0   100% 10 0   98%
src / local_deep_research / news / subscription_manager / scheduler.py   79% 626 130 0   71% 154 13   78%
src / local_deep_research / news / subscription_manager / search_subscription.py   100% 62 0 0   100% 12 0   100%
src / local_deep_research / news / subscription_manager / storage.py   98% 122 2 0   92% 36 3   97%
src / local_deep_research / news / subscription_manager / topic_subscription.py   100% 75 0 0   100% 16 0   100%
src / local_deep_research / news / utils / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / news / utils / headline_generator.py   100% 26 0 0   100% 6 0   100%
src / local_deep_research / news / utils / topic_generator.py   100% 54 0 0   92% 24 2   97%
src / local_deep_research / news / web.py   100% 66 0 0   100% 8 0   100%
src / local_deep_research / notifications / __init__.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / notifications / exceptions.py   100% 8 0 0   100% 0 0   100%
src / local_deep_research / notifications / manager.py   94% 149 9 0   86% 36 5   92%
src / local_deep_research / notifications / queue_helpers.py   99% 99 1 0   89% 18 2   97%
src / local_deep_research / notifications / service.py   84% 86 14 0   58% 24 6   78%
src / local_deep_research / notifications / templates.py   80% 86 17 0   75% 16 4   79%
src / local_deep_research / notifications / url_builder.py   89% 27 3 0   88% 8 1   89%
src / local_deep_research / report_generator.py   100% 150 0 0   93% 60 4   98%
src / local_deep_research / research_library / __init__.py   100% 7 0 0   100% 0 0   100%
src / local_deep_research / research_library / deletion / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / research_library / deletion / routes / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / research_library / deletion / routes / delete_routes.py   73% 157 43 0   73% 30 2   73%
src / local_deep_research / research_library / deletion / services / __init__.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / research_library / deletion / services / bulk_deletion.py   94% 67 4 0   86% 22 3   92%
src / local_deep_research / research_library / deletion / services / collection_deletion.py   95% 77 4 0   92% 12 1   94%
src / local_deep_research / research_library / deletion / services / document_deletion.py   71% 119 35 0   65% 26 3   70%
src / local_deep_research / research_library / deletion / utils / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / research_library / deletion / utils / cascade_helper.py   86% 126 18 0   81% 32 2   85%
src / local_deep_research / research_library / downloaders / __init__.py   100% 9 0 0   100% 0 0   100%
src / local_deep_research / research_library / downloaders / arxiv.py   77% 107 25 0   54% 50 11   69%
src / local_deep_research / research_library / downloaders / base.py   87% 135 17 0   86% 28 2   87%
src / local_deep_research / research_library / downloaders / biorxiv.py   60% 95 38 0   40% 40 12   54%
src / local_deep_research / research_library / downloaders / direct_pdf.py   56% 59 26 0   32% 28 5   48%
src / local_deep_research / research_library / downloaders / generic.py   81% 86 16 0   75% 36 5   80%
src / local_deep_research / research_library / downloaders / openalex.py   66% 88 30 0   54% 26 8   63%
src / local_deep_research / research_library / downloaders / pubmed.py   69% 269 84 0   53% 130 21   64%
src / local_deep_research / research_library / downloaders / semantic_scholar.py   70% 71 21 0   55% 20 5   67%
src / local_deep_research / research_library / routes / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / research_library / routes / library_routes.py   47% 555 294 0   22% 130 6   42%
src / local_deep_research / research_library / routes / rag_routes.py   29% 1044 739 0   16% 258 10   27%
src / local_deep_research / research_library / services / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / research_library / services / download_service.py   40% 643 383 0   34% 202 14   39%
src / local_deep_research / research_library / services / library_rag_service.py   62% 458 172 2   48% 134 32   59%
src / local_deep_research / research_library / services / library_service.py   65% 245 86 0   39% 74 17   59%
src / local_deep_research / research_library / services / pdf_storage_manager.py   86% 171 24 0   76% 62 9   83%
src / local_deep_research / research_library / utils / __init__.py   50% 60 30 0   25% 12 3   46%
src / local_deep_research / research_scheduler / document_scheduler.py   100% 28 0 0   100% 4 0   100%
src / local_deep_research / research_scheduler / routes.py   94% 35 2 0   67% 6 2   90%
src / local_deep_research / search_system.py   100% 98 0 0   87% 30 4   97%
src / local_deep_research / search_system_factory.py   93% 144 10 0   90% 82 8   92%
src / local_deep_research / security / __init__.py   63% 30 11 0   100% 0 0   63%
src / local_deep_research / security / data_sanitizer.py   98% 48 1 0   95% 20 1   97%
src / local_deep_research / security / file_integrity / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / security / file_integrity / base_verifier.py   88% 26 3 0   100% 2 0   89%
src / local_deep_research / security / file_integrity / integrity_manager.py   62% 201 77 0   52% 66 10   59%
src / local_deep_research / security / file_integrity / verifiers / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / security / file_integrity / verifiers / faiss_verifier.py   100% 9 0 0   100% 0 0   100%
src / local_deep_research / security / file_upload_validator.py   100% 62 0 0   100% 24 0   100%
src / local_deep_research / security / file_write_verifier.py   100% 41 0 0   100% 14 0   100%
src / local_deep_research / security / ip_ranges.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / security / module_whitelist.py   100% 41 0 0   100% 12 0   100%
src / local_deep_research / security / network_utils.py   100% 11 0 0   100% 4 0   100%
src / local_deep_research / security / notification_validator.py   95% 63 3 0   96% 26 1   96%
src / local_deep_research / security / path_validator.py   81% 131 25 0   72% 72 10   78%
src / local_deep_research / security / rate_limiter.py   84% 37 6 0   75% 8 0   82%
src / local_deep_research / security / safe_requests.py   100% 63 0 0   83% 24 4   95%
src / local_deep_research / security / security_headers.py   94% 83 5 0   81% 26 5   91%
src / local_deep_research / security / security_settings.py   93% 56 4 0   91% 22 2   92%
src / local_deep_research / security / ssrf_validator.py   84% 79 13 0   90% 30 3   85%
src / local_deep_research / security / url_builder.py   94% 66 4 0   96% 24 1   94%
src / local_deep_research / security / url_validator.py   88% 146 18 0   91% 70 6   89%
src / local_deep_research / settings / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / settings / base.py   70% 30 9 0   100% 0 0   70%
src / local_deep_research / settings / env_definitions / __init__.py   100% 7 0 0   100% 0 0   100%
src / local_deep_research / settings / env_definitions / bootstrap.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / settings / env_definitions / db_config.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / settings / env_definitions / news_scheduler.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / settings / env_definitions / security.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / settings / env_definitions / testing.py   100% 6 0 0   100% 0 0   100%
src / local_deep_research / settings / env_registry.py   100% 31 0 0   100% 4 0   100%
src / local_deep_research / settings / env_settings.py   98% 154 3 0   100% 40 0   98%
src / local_deep_research / settings / logger.py   96% 53 2 0   90% 30 3   94%
src / local_deep_research / settings / manager.py   96% 422 17 0   95% 170 9   96%
src / local_deep_research / storage / __init__.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / storage / base.py   72% 18 5 0   100% 0 0   72%
src / local_deep_research / storage / database.py   95% 63 3 0   100% 12 0   96%
src / local_deep_research / storage / database_with_file_backup.py   98% 40 1 0   100% 8 0   98%
src / local_deep_research / storage / factory.py   100% 23 0 0   100% 4 0   100%
src / local_deep_research / storage / file.py   96% 67 3 0   100% 12 0   96%
src / local_deep_research / text_optimization / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / text_optimization / citation_formatter.py   98% 396 8 0   94% 146 9   97%
src / local_deep_research / text_processing / __init__.py   100% 2 0 0   100% 0 0   100%
src / local_deep_research / text_processing / text_cleaner.py   67% 9 3 0   100% 2 0   73%
src / local_deep_research / utilities / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / utilities / db_utils.py   88% 78 9 0   73% 22 2   85%
src / local_deep_research / utilities / enums.py   100% 9 0 0   100% 0 0   100%
src / local_deep_research / utilities / es_utils.py   88% 122 15 0   87% 30 0   88%
src / local_deep_research / utilities / json_utils.py   100% 81 0 0   90% 42 4   97%
src / local_deep_research / utilities / llm_utils.py   82% 109 20 0   97% 36 1   86%
src / local_deep_research / utilities / log_utils.py   85% 124 19 0   69% 26 2   82%
src / local_deep_research / utilities / search_cache.py   91% 231 21 0   90% 42 4   91%
src / local_deep_research / utilities / search_utilities.py   97% 138 4 0   100% 56 0   98%
src / local_deep_research / utilities / setup_utils.py   0% 3 3 0   100% 0 0   0%
src / local_deep_research / utilities / thread_context.py   81% 47 9 0   80% 10 0   81%
src / local_deep_research / utilities / threading_utils.py   100% 42 0 0   100% 8 0   100%
src / local_deep_research / utilities / type_utils.py   100% 9 0 0   100% 6 0   100%
src / local_deep_research / utilities / url_utils.py   100% 19 0 0   100% 10 0   100%
src / local_deep_research / web / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / web / api.py   59% 164 67 0   50% 38 7   57%
src / local_deep_research / web / app.py   22% 40 31 0   17% 6 1   22%
src / local_deep_research / web / app_factory.py   86% 365 50 0   65% 48 13   84%
src / local_deep_research / web / auth / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / web / auth / cleanup_middleware.py   94% 34 2 0   100% 10 0   95%
src / local_deep_research / web / auth / database_middleware.py   100% 40 0 0   88% 24 3   95%
src / local_deep_research / web / auth / decorators.py   100% 51 0 0   95% 20 1   99%
src / local_deep_research / web / auth / middleware_optimizer.py   100% 25 0 0   100% 16 0   100%
src / local_deep_research / web / auth / queue_middleware.py   100% 20 0 0   100% 8 0   100%
src / local_deep_research / web / auth / queue_middleware_v2.py   79% 19 4 0   75% 8 2   78%
src / local_deep_research / web / auth / routes.py   84% 265 43 0   82% 80 12   83%
src / local_deep_research / web / auth / session_cleanup.py   100% 20 0 0   100% 10 0   100%
src / local_deep_research / web / auth / session_manager.py   100% 57 0 0   100% 18 0   100%
src / local_deep_research / web / exceptions.py   100% 19 0 0   100% 4 0   100%
src / local_deep_research / web / models / database.py   96% 79 3 0   86% 14 2   95%
src / local_deep_research / web / models / settings.py   100% 44 0 0   100% 8 0   100%
src / local_deep_research / web / queue / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / web / queue / manager.py   97% 66 2 0   94% 16 1   96%
src / local_deep_research / web / queue / processor_v2.py   93% 282 20 0   88% 66 8   92%
src / local_deep_research / web / routes / api_routes.py   74% 196 50 0   73% 30 8   74%
src / local_deep_research / web / routes / context_overflow_api.py   91% 118 11 0   80% 40 4   88%
src / local_deep_research / web / routes / globals.py   100% 5 0 0   100% 0 0   100%
src / local_deep_research / web / routes / history_routes.py   82% 176 32 0   71% 34 10   80%
src / local_deep_research / web / routes / metrics_routes.py   66% 691 237 0   43% 184 57   61%
src / local_deep_research / web / routes / news_routes.py   96% 133 5 0   64% 14 5   93%
src / local_deep_research / web / routes / research_routes.py   56% 683 299 0   42% 194 51   53%
src / local_deep_research / web / routes / research_routes_orm.py   71% 180 53 0   48% 42 4   66%
src / local_deep_research / web / routes / route_registry.py   87% 31 4 0   72% 18 1   82%
src / local_deep_research / web / routes / settings_routes.py   56% 996 436 0   38% 358 41   51%
src / local_deep_research / web / server_config.py   100% 57 0 0   100% 22 0   100%
src / local_deep_research / web / services / pdf_extraction_service.py   100% 44 0 0   100% 12 0   100%
src / local_deep_research / web / services / pdf_service.py   100% 45 0 0   100% 10 0   100%
src / local_deep_research / web / services / research_service.py   43% 642 363 0   33% 180 36   41%
src / local_deep_research / web / services / research_sources_service.py   87% 91 12 0   91% 22 2   88%
src / local_deep_research / web / services / resource_service.py   100% 52 0 0   100% 6 0   100%
src / local_deep_research / web / services / settings_service.py   100% 31 0 0   100% 6 0   100%
src / local_deep_research / web / services / socket_service.py   82% 143 26 0   75% 44 5   80%
src / local_deep_research / web / themes / __init__.py   100% 77 0 0   91% 22 2   98%
src / local_deep_research / web / themes / loader.py   95% 76 4 0   79% 24 3   91%
src / local_deep_research / web / themes / schema.py   100% 16 0 0   100% 0 0   100%
src / local_deep_research / web / utils / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / web / utils / formatters.py   100% 23 0 0   100% 4 0   100%
src / local_deep_research / web / utils / rate_limiter.py   100% 22 0 0   100% 4 0   100%
src / local_deep_research / web / utils / templates.py   100% 7 0 0   100% 0 0   100%
src / local_deep_research / web / utils / theme_helper.py   100% 21 0 0   100% 2 0   100%
src / local_deep_research / web / utils / vite_helper.py   100% 46 0 0   100% 18 0   100%
src / local_deep_research / web_search_engines / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / default_search_engines.py   100% 4 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / engines / __init__.py   100% 0 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / engines / full_search.py   100% 75 0 0   94% 18 1   99%
src / local_deep_research / web_search_engines / engines / meta_search_engine.py   84% 194 32 0   72% 90 7   80%
src / local_deep_research / web_search_engines / engines / parallel_search_engine.py   87% 287 36 0   78% 124 19   85%
src / local_deep_research / web_search_engines / engines / search_engine_arxiv.py   70% 158 47 0   68% 38 4   70%
src / local_deep_research / web_search_engines / engines / search_engine_brave.py   86% 92 13 0   85% 34 5   86%
src / local_deep_research / web_search_engines / engines / search_engine_collection.py   98% 92 2 0   95% 20 1   97%
src / local_deep_research / web_search_engines / engines / search_engine_ddg.py   100% 46 0 0   100% 14 0   100%
src / local_deep_research / web_search_engines / engines / search_engine_elasticsearch.py   100% 116 0 0   100% 34 0   100%
src / local_deep_research / web_search_engines / engines / search_engine_github.py   78% 318 69 0   61% 108 24   74%
src / local_deep_research / web_search_engines / engines / search_engine_google_pse.py   80% 128 25 0   79% 34 3   80%
src / local_deep_research / web_search_engines / engines / search_engine_guardian.py   71% 243 71 0   60% 82 17   68%
src / local_deep_research / web_search_engines / engines / search_engine_library.py   70% 127 38 0   50% 38 7   65%
src / local_deep_research / web_search_engines / engines / search_engine_local.py   62% 563 212 0   52% 202 32   60%
src / local_deep_research / web_search_engines / engines / search_engine_local_all.py   100% 63 0 0   91% 22 2   98%
src / local_deep_research / web_search_engines / engines / search_engine_mojeek.py   91% 96 9 0   91% 32 3   91%
src / local_deep_research / web_search_engines / engines / search_engine_nasa_ads.py   89% 131 14 0   84% 44 7   88%
src / local_deep_research / web_search_engines / engines / search_engine_openalex.py   89% 158 18 0   83% 58 10   87%
src / local_deep_research / web_search_engines / engines / search_engine_paperless.py   93% 295 20 0   84% 98 16   91%
src / local_deep_research / web_search_engines / engines / search_engine_pubmed.py   79% 708 151 0   57% 354 97   71%
src / local_deep_research / web_search_engines / engines / search_engine_retriever.py   100% 58 0 0   100% 12 0   100%
src / local_deep_research / web_search_engines / engines / search_engine_scaleserp.py   77% 143 33 0   65% 60 13   73%
src / local_deep_research / web_search_engines / engines / search_engine_searxng.py   90% 222 23 0   80% 70 12   87%
src / local_deep_research / web_search_engines / engines / search_engine_semantic_scholar.py   71% 255 74 0   54% 94 15   66%
src / local_deep_research / web_search_engines / engines / search_engine_serpapi.py   73% 79 21 0   67% 30 4   72%
src / local_deep_research / web_search_engines / engines / search_engine_serper.py   85% 144 22 0   78% 58 13   83%
src / local_deep_research / web_search_engines / engines / search_engine_tavily.py   79% 108 23 0   71% 38 5   77%
src / local_deep_research / web_search_engines / engines / search_engine_wayback.py   90% 199 19 0   89% 54 6   90%
src / local_deep_research / web_search_engines / engines / search_engine_wikinews.py   92% 158 13 0   80% 40 8   89%
src / local_deep_research / web_search_engines / engines / search_engine_wikipedia.py   97% 115 3 0   91% 22 2   96%
src / local_deep_research / web_search_engines / rate_limiting / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / rate_limiting / __main__.py   0% 3 3 0   0% 2 0   0%
src / local_deep_research / web_search_engines / rate_limiting / exceptions.py   100% 6 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / rate_limiting / llm / __init__.py   100% 3 0 0   100% 0 0   100%
src / local_deep_research / web_search_engines / rate_limiting / llm / detection.py   91% 43 4 0   92% 24 2   91%
src / local_deep_research / web_search_engines / rate_limiting / llm / wrapper.py   98% 94 2 0   93% 30 2   97%
src / local_deep_research / web_search_engines / rate_limiting / tracker.py   62% 290 109 0   63% 102 12   62%
src / local_deep_research / web_search_engines / retriever_registry.py   100% 37 0 0   100% 4 0   100%
src / local_deep_research / web_search_engines / search_engine_base.py   95% 281 14 0   93% 84 4   95%
src / local_deep_research / web_search_engines / search_engine_factory.py   75% 217 54 0   61% 132 26   70%
src / local_deep_research / web_search_engines / search_engines_config.py   98% 101 2 0   98% 40 1   98%
Total   79% 39239 8121 2   70% 11672 1435   77%

No items found using the specified filter.