Coverage report: 35%

Files Functions Classes

coverage.py v7.5.1, created at 2026-04-08 17:14 +0000

File function statements missing excluded branches partial coverage
src/asketmc_bot/__init__.py (no function) 2 0 0 0 0 100%
src/asketmc_bot/config.py get_conf 8 3 0 2 0 70%
src/asketmc_bot/config.py (no function) 63 0 0 2 0 100%
src/asketmc_bot/discord_bot.py _AsyncSessionHolder.__init__ 2 0 0 0 0 100%
src/asketmc_bot/discord_bot.py _AsyncSessionHolder.get 4 0 0 4 0 100%
src/asketmc_bot/discord_bot.py _AsyncSessionHolder.close 4 0 0 4 1 88%
src/asketmc_bot/discord_bot.py _configure_logging 6 6 0 0 0 0%
src/asketmc_bot/discord_bot.py _require_state 3 0 0 2 0 100%
src/asketmc_bot/discord_bot.py _check_cooldown 6 0 0 2 0 100%
src/asketmc_bot/discord_bot.py _sanitize 1 0 0 0 0 100%
src/asketmc_bot/discord_bot.py _split_for_discord 11 0 0 6 1 94%
src/asketmc_bot/discord_bot.py _qhash 1 1 0 0 0 0%
src/asketmc_bot/discord_bot.py _send_long 5 5 0 2 0 0%
src/asketmc_bot/discord_bot.py _build_bot 5 0 0 0 0 100%
src/asketmc_bot/discord_bot.py _check_admin_only 2 0 0 0 0 100%
src/asketmc_bot/discord_bot.py _check_admin_only.predicate 3 3 0 2 0 0%
src/asketmc_bot/discord_bot.py _check_channel_allowed 2 0 0 0 0 100%
src/asketmc_bot/discord_bot.py _check_channel_allowed.predicate 3 3 0 2 0 0%
src/asketmc_bot/discord_bot.py _read_prompt_file 1 1 0 0 0 0%
src/asketmc_bot/discord_bot.py _answer_rag 47 47 0 20 0 0%
src/asketmc_bot/discord_bot.py _register_commands 19 0 0 0 0 100%
src/asketmc_bot/discord_bot.py _register_commands.cmd_strict 1 1 0 0 0 0%
src/asketmc_bot/discord_bot.py _register_commands.cmd_think 1 1 0 0 0 0%
src/asketmc_bot/discord_bot.py _register_commands.cmd_local 1 1 0 0 0 0%
src/asketmc_bot/discord_bot.py _register_commands.cmd_status 6 6 0 0 0 0%
src/asketmc_bot/discord_bot.py _register_commands.cmd_reload_index 10 10 0 0 0 0%
src/asketmc_bot/discord_bot.py _register_commands.cmd_stop 2 2 0 0 0 0%
src/asketmc_bot/discord_bot.py _register_commands.on_ready 7 7 0 2 0 0%
src/asketmc_bot/discord_bot.py _register_commands.on_command_error 13 13 0 8 0 0%
src/asketmc_bot/discord_bot.py _shutdown_once 19 19 0 9 0 0%
src/asketmc_bot/discord_bot.py run_bot 6 6 0 0 0 0%
src/asketmc_bot/discord_bot.py start_bot_async 9 9 0 2 0 0%
src/asketmc_bot/discord_bot.py (no function) 60 0 0 2 0 100%
src/asketmc_bot/index_builder.py _require_torch 2 2 0 2 0 0%
src/asketmc_bot/index_builder.py LoggingBGE._get_text_embedding 6 6 0 2 0 0%
src/asketmc_bot/index_builder.py _configure_llamaindex_settings 5 5 0 2 0 0%
src/asketmc_bot/index_builder.py _make_document 6 6 0 0 0 0%
src/asketmc_bot/index_builder.py _doc_hash 5 5 0 5 0 0%
src/asketmc_bot/index_builder.py _load_stored_hashes 6 6 0 2 0 0%
src/asketmc_bot/index_builder.py _compute_hashes_incremental 11 11 0 4 0 0%
src/asketmc_bot/index_builder.py _plan_doc_changes 6 6 0 2 0 0%
src/asketmc_bot/index_builder.py _load_index_if_present 7 7 0 2 0 0%
src/asketmc_bot/index_builder.py build_index 63 63 0 28 0 0%
src/asketmc_bot/index_builder.py (no function) 36 36 0 0 0 0%
src/asketmc_bot/lemma.py _invalidate_all_lemma_caches 14 14 0 4 0 0%
src/asketmc_bot/lemma.py _notify_degraded_once 4 4 0 2 0 0%
src/asketmc_bot/lemma.py _lang_of 7 7 0 2 0 0%
src/asketmc_bot/lemma.py _looks_like_torch_weights_only_error 3 3 0 2 0 0%
src/asketmc_bot/lemma.py _torch_allowlist_stanza_safe_globals 20 20 0 4 0 0%
src/asketmc_bot/lemma.py _TorchLoadWeightsOnlyFalse.__enter__ 6 6 0 0 0 0%
src/asketmc_bot/lemma.py _TorchLoadWeightsOnlyFalse.__enter__._patched 2 2 0 0 0 0%
src/asketmc_bot/lemma.py _TorchLoadWeightsOnlyFalse.__exit__ 2 2 0 0 0 0%
src/asketmc_bot/lemma.py _try_init_models 63 63 0 18 0 0%
src/asketmc_bot/lemma.py _try_init_models._build_stanza_pipeline 1 1 0 0 0 0%
src/asketmc_bot/lemma.py _extract_lemmas_cached 29 29 0 16 0 0%
src/asketmc_bot/lemma.py extract_lemmas 1 1 0 0 0 0%
src/asketmc_bot/lemma.py _chunk_hash 1 1 0 0 0 0%
src/asketmc_bot/lemma.py get_lemmas_for_chunk 9 9 0 2 0 0%
src/asketmc_bot/lemma.py save_chunk_lemma_cache 7 7 0 2 0 0%
src/asketmc_bot/lemma.py _persist_lemmas 8 8 0 2 0 0%
src/asketmc_bot/lemma.py load_saved_lemmas 12 12 0 8 0 0%
src/asketmc_bot/lemma.py _read_file 4 4 0 0 0 0%
src/asketmc_bot/lemma.py _compute_and_store_lemmas 8 8 0 0 0 0%
src/asketmc_bot/lemma.py update_file_lemmas_async 9 9 0 6 0 0%
src/asketmc_bot/lemma.py (no function) 58 58 0 0 0 0%
src/asketmc_bot/llm_client.py AsyncSessionHolder.__init__ 4 0 0 0 0 100%
src/asketmc_bot/llm_client.py AsyncSessionHolder.get 4 0 0 4 0 100%
src/asketmc_bot/llm_client.py AsyncSessionHolder.close 4 0 0 4 1 88%
src/asketmc_bot/llm_client.py CircuitBreaker.__init__ 5 0 0 0 0 100%
src/asketmc_bot/llm_client.py CircuitBreaker.allow 8 0 0 6 0 100%
src/asketmc_bot/llm_client.py CircuitBreaker.on_success 3 0 0 2 0 100%
src/asketmc_bot/llm_client.py CircuitBreaker.on_failure 4 0 0 2 0 100%
src/asketmc_bot/llm_client.py CircuitBreaker.state 2 0 0 2 0 100%
src/asketmc_bot/llm_client.py LLMClient.__init__ 5 0 0 0 0 100%
src/asketmc_bot/llm_client.py LLMClient.attach_loop 1 0 0 0 0 100%
src/asketmc_bot/llm_client.py LLMClient.is_remote_blocked 1 0 0 0 0 100%
src/asketmc_bot/llm_client.py LLMClient.is_remote_blocked_sync 7 3 0 2 1 56%
src/asketmc_bot/llm_client.py LLMClient.close 1 0 0 0 0 100%
src/asketmc_bot/llm_client.py LLMClient.query_model 20 3 0 14 2 74%
src/asketmc_bot/llm_client.py LLMClient.call_local_llm 13 8 0 4 3 35%
src/asketmc_bot/llm_client.py LLMClient._call_openrouter 30 30 0 14 0 0%
src/asketmc_bot/llm_client.py (no function) 41 0 0 2 0 100%
src/asketmc_bot/main.py setup_logging 2 2 0 0 0 0%
src/asketmc_bot/main.py load_settings 18 18 0 12 0 0%
src/asketmc_bot/main.py make_llm_config 1 1 0 0 0 0%
src/asketmc_bot/main.py generate_rag_answer 14 14 0 4 0 0%
src/asketmc_bot/main.py main 32 32 0 8 0 0%
src/asketmc_bot/main.py main.shutdown 11 11 0 2 0 0%
src/asketmc_bot/main.py main.query_model_text 2 2 0 0 0 0%
src/asketmc_bot/main.py main.is_openrouter_blocked_fn 1 1 0 0 0 0%
src/asketmc_bot/main.py main._bot_done 6 6 0 2 0 0%
src/asketmc_bot/main.py main._signal_handler 1 1 0 0 0 0%
src/asketmc_bot/main.py cli 9 9 0 2 0 0%
src/asketmc_bot/main.py (no function) 24 24 2 0 0 0%
src/asketmc_bot/rag_filter.py _cfg 1 0 0 0 0 100%
src/asketmc_bot/rag_filter.py _safe_score 4 2 0 0 0 50%
src/asketmc_bot/rag_filter.py _node_id 2 0 0 0 0 100%
src/asketmc_bot/rag_filter.py _metadata_lemmas 5 2 0 2 0 71%
src/asketmc_bot/rag_filter.py _cache_key 7 0 0 2 0 100%
src/asketmc_bot/rag_filter.py _content_from_node 7 3 0 2 1 56%
src/asketmc_bot/rag_filter.py _cache_get 5 0 0 2 0 100%
src/asketmc_bot/rag_filter.py _cache_put 4 1 0 2 1 67%
src/asketmc_bot/rag_filter.py purge_filter_cache 1 0 0 0 0 100%
src/asketmc_bot/rag_filter.py _filter_nodes 33 13 0 24 3 58%
src/asketmc_bot/rag_filter.py get_filtered_nodes 9 0 0 6 0 100%
src/asketmc_bot/rag_filter.py build_context 31 0 0 14 0 100%
src/asketmc_bot/rag_filter.py (no function) 31 0 0 0 0 100%
src/asketmc_bot/rag_langchain.py _maybe_init_langsmith 6 6 2 2 0 0%
src/asketmc_bot/rag_langchain.py _require_non_empty_question 4 4 0 2 0 0%
src/asketmc_bot/rag_langchain.py _lemmas_node 2 2 0 0 0 0%
src/asketmc_bot/rag_langchain.py _lemmas_node._impl 9 9 0 0 0 0%
src/asketmc_bot/rag_langchain.py _retrieve_node 2 2 0 0 0 0%
src/asketmc_bot/rag_langchain.py _retrieve_node._impl 5 5 0 0 0 0%
src/asketmc_bot/rag_langchain.py _rerank_node 2 2 0 0 0 0%
src/asketmc_bot/rag_langchain.py _rerank_node._impl 13 13 0 2 0 0%
src/asketmc_bot/rag_langchain.py _filter_node 2 2 0 0 0 0%
src/asketmc_bot/rag_langchain.py _filter_node._impl 19 19 0 6 0 0%
src/asketmc_bot/rag_langchain.py _context_node 2 2 0 0 0 0%
src/asketmc_bot/rag_langchain.py _context_node._impl 20 20 0 6 0 0%
src/asketmc_bot/rag_langchain.py _llm_node 2 2 0 0 0 0%
src/asketmc_bot/rag_langchain.py _llm_node._impl 12 12 0 0 0 0%
src/asketmc_bot/rag_langchain.py build_rag_graph 15 15 2 0 0 0%
src/asketmc_bot/rag_langchain.py run_rag_pipeline 10 10 0 4 0 0%
src/asketmc_bot/rag_langchain.py (no function) 39 39 4 0 0 0%
src/asketmc_bot/rerank.py _sanitize_input 10 4 0 8 4 56%
src/asketmc_bot/rerank.py _choose_device 7 5 0 6 1 23%
src/asketmc_bot/rerank.py _node_text 9 5 0 4 1 38%
src/asketmc_bot/rerank.py _node_id 10 3 0 6 2 69%
src/asketmc_bot/rerank.py _filter_pairs 11 1 0 4 1 87%
src/asketmc_bot/rerank.py _clear_inflight_cb 2 0 0 2 1 75%
src/asketmc_bot/rerank.py init_reranker 29 17 2 14 3 44%
src/asketmc_bot/rerank.py shutdown_reranker 34 17 2 14 5 50%
src/asketmc_bot/rerank.py rerank 82 43 0 41 9 50%
src/asketmc_bot/rerank.py rerank._predict_once 8 0 0 0 0 100%
src/asketmc_bot/rerank.py (no function) 46 0 0 2 0 100%
Total   1580 1010 14 451 41 35%

No items found using the specified filter.