Coverage report: 26%

Files Functions Classes

coverage.py v7.12.0, created at 2025-12-15 11:21 -0700

File function   statements missing excluded   coverage
src / dataknobs_llm / conversations / flow / adapter.py FlowExecutionState.increment_loop_count   3 3 0   0%
src / dataknobs_llm / conversations / flow / adapter.py FlowExecutionState.add_to_history   1 1 0   0%
src / dataknobs_llm / conversations / flow / adapter.py ConversationFlowAdapter.__init__   5 5 0   0%
src / dataknobs_llm / conversations / flow / adapter.py ConversationFlowAdapter.to_fsm_config   14 14 0   0%
src / dataknobs_llm / conversations / flow / adapter.py ConversationFlowAdapter._create_state_transform_function   4 4 0   0%
src / dataknobs_llm / conversations / flow / adapter.py ConversationFlowAdapter._create_state_transform_function.transform_func   27 27 0   0%
src / dataknobs_llm / conversations / flow / adapter.py ConversationFlowAdapter._register_condition_function   4 4 0   0%
src / dataknobs_llm / conversations / flow / adapter.py ConversationFlowAdapter._register_condition_function.condition_func   10 10 0   0%
src / dataknobs_llm / conversations / flow / adapter.py ConversationFlowAdapter.execute   11 11 0   0%
src / dataknobs_llm / conversations / flow / adapter.py ConversationFlowAdapter.get_execution_summary   1 1 0   0%
src / dataknobs_llm / conversations / flow / adapter.py (no function)   23 0 0   100%
src / dataknobs_llm / conversations / flow / conditions.py AlwaysCondition.evaluate   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py AlwaysCondition.to_fsm_function   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py KeywordCondition.evaluate   10 10 0   0%
src / dataknobs_llm / conversations / flow / conditions.py KeywordCondition.to_fsm_function   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py RegexCondition.__post_init__   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py RegexCondition.evaluate   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py RegexCondition.to_fsm_function   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py LLMClassifierCondition.evaluate   11 11 0   0%
src / dataknobs_llm / conversations / flow / conditions.py LLMClassifierCondition.to_fsm_function   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py ContextCondition.evaluate   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py ContextCondition.to_fsm_function   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py CompositeCondition.__post_init__   2 2 0   0%
src / dataknobs_llm / conversations / flow / conditions.py CompositeCondition.evaluate   4 4 0   0%
src / dataknobs_llm / conversations / flow / conditions.py CompositeCondition.to_fsm_function   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py SentimentCondition.__post_init__   3 3 0   0%
src / dataknobs_llm / conversations / flow / conditions.py SentimentCondition.evaluate   18 18 0   0%
src / dataknobs_llm / conversations / flow / conditions.py SentimentCondition.to_fsm_function   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py keyword_condition   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py regex_condition   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py always   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py context_condition   1 1 0   0%
src / dataknobs_llm / conversations / flow / conditions.py (no function)   53 0 0   100%
src / dataknobs_llm / conversations / flow / flow.py TransitionCondition.evaluate   0 0 10   100%
src / dataknobs_llm / conversations / flow / flow.py TransitionCondition.to_fsm_function   0 0 6   100%
src / dataknobs_llm / conversations / flow / flow.py FlowState.__post_init__   5 5 0   0%
src / dataknobs_llm / conversations / flow / flow.py ConversationFlow.__post_init__   12 12 0   0%
src / dataknobs_llm / conversations / flow / flow.py ConversationFlow.get_state   3 3 0   0%
src / dataknobs_llm / conversations / flow / flow.py ConversationFlow.get_reachable_states   2 2 0   0%
src / dataknobs_llm / conversations / flow / flow.py ConversationFlow.validate_flow   16 16 0   0%
src / dataknobs_llm / conversations / flow / flow.py (no function)   30 0 8   100%
src / dataknobs_llm / conversations / manager.py ConversationManager.__init__   8 0 0   100%
src / dataknobs_llm / conversations / manager.py ConversationManager.create   4 1 0   75%
src / dataknobs_llm / conversations / manager.py ConversationManager.resume   5 5 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.add_message   47 25 0   47%
src / dataknobs_llm / conversations / manager.py ConversationManager.complete   25 4 0   84%
src / dataknobs_llm / conversations / manager.py ConversationManager.stream_complete   30 4 0   87%
src / dataknobs_llm / conversations / manager.py ConversationManager.switch_to_node   8 8 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.execute_flow   23 23 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.get_history   3 3 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.get_branches   12 12 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.add_metadata   5 5 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager._find_cached_rag   42 42 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.get_rag_metadata   8 8 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager._save_state   2 0 0   100%
src / dataknobs_llm / conversations / manager.py ConversationManager.conversation_id   1 1 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.current_node_id   1 1 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.get_metadata   5 5 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.set_metadata   2 2 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.update_metadata   2 2 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.remove_metadata   2 2 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.get_total_cost   6 6 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.get_total_cost.walk_tree   6 6 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager.get_cost_by_branch   16 16 0   0%
src / dataknobs_llm / conversations / manager.py ConversationManager._calculate_and_track_cost   14 9 0   36%
src / dataknobs_llm / conversations / manager.py (no function)   37 0 0   100%
src / dataknobs_llm / conversations / middleware.py ConversationMiddleware.process_request   0 0 20   100%
src / dataknobs_llm / conversations / middleware.py ConversationMiddleware.process_response   0 0 19   100%
src / dataknobs_llm / conversations / middleware.py LoggingMiddleware.__init__   1 1 0   0%
src / dataknobs_llm / conversations / middleware.py LoggingMiddleware.process_request   3 3 0   0%
src / dataknobs_llm / conversations / middleware.py LoggingMiddleware.process_response   5 5 0   0%
src / dataknobs_llm / conversations / middleware.py ContentFilterMiddleware.__init__   3 3 0   0%
src / dataknobs_llm / conversations / middleware.py ContentFilterMiddleware.process_request   1 1 0   0%
src / dataknobs_llm / conversations / middleware.py ContentFilterMiddleware.process_response   13 13 0   0%
src / dataknobs_llm / conversations / middleware.py ValidationMiddleware.__init__   5 5 0   0%
src / dataknobs_llm / conversations / middleware.py ValidationMiddleware.process_request   1 1 0   0%
src / dataknobs_llm / conversations / middleware.py ValidationMiddleware.process_response   13 13 0   0%
src / dataknobs_llm / conversations / middleware.py ValidationMiddleware._check_validity   1 1 0   0%
src / dataknobs_llm / conversations / middleware.py MetadataMiddleware.__init__   4 4 0   0%
src / dataknobs_llm / conversations / middleware.py MetadataMiddleware.process_request   10 10 0   0%
src / dataknobs_llm / conversations / middleware.py MetadataMiddleware.process_response   9 9 0   0%
src / dataknobs_llm / conversations / middleware.py RateLimitMiddleware.__init__   5 5 0   0%
src / dataknobs_llm / conversations / middleware.py RateLimitMiddleware._get_rate_limit_key   5 5 0   0%
src / dataknobs_llm / conversations / middleware.py RateLimitMiddleware._clean_old_requests   3 3 0   0%
src / dataknobs_llm / conversations / middleware.py RateLimitMiddleware._check_rate_limit   6 6 0   0%
src / dataknobs_llm / conversations / middleware.py RateLimitMiddleware._record_request   3 3 0   0%
src / dataknobs_llm / conversations / middleware.py RateLimitMiddleware.process_request   19 19 0   0%
src / dataknobs_llm / conversations / middleware.py RateLimitMiddleware.process_response   9 9 0   0%
src / dataknobs_llm / conversations / middleware.py RateLimitMiddleware.get_rate_limit_status   9 9 0   0%
src / dataknobs_llm / conversations / middleware.py RateLimitMiddleware.reset   4 4 0   0%
src / dataknobs_llm / conversations / middleware.py (no function)   36 0 12   100%
src / dataknobs_llm / conversations / storage.py ConversationNode.to_dict   1 0 0   100%
src / dataknobs_llm / conversations / storage.py ConversationNode.from_dict   2 2 0   0%
src / dataknobs_llm / conversations / storage.py calculate_node_id   9 0 0   100%
src / dataknobs_llm / conversations / storage.py get_node_by_id   12 3 0   75%
src / dataknobs_llm / conversations / storage.py get_messages_for_llm   9 1 0   89%
src / dataknobs_llm / conversations / storage.py ConversationState.get_current_node   1 0 0   100%
src / dataknobs_llm / conversations / storage.py ConversationState.get_current_messages   1 0 0   100%
src / dataknobs_llm / conversations / storage.py ConversationState.to_dict   11 0 0   100%
src / dataknobs_llm / conversations / storage.py ConversationState.from_dict   25 25 0   0%
src / dataknobs_llm / conversations / storage.py ConversationState._migrate_schema   13 13 0   0%
src / dataknobs_llm / conversations / storage.py ConversationStorage.save_conversation   0 0 6   100%
src / dataknobs_llm / conversations / storage.py ConversationStorage.load_conversation   0 0 9   100%
src / dataknobs_llm / conversations / storage.py ConversationStorage.delete_conversation   0 0 9   100%
src / dataknobs_llm / conversations / storage.py ConversationStorage.list_conversations   0 0 11   100%
src / dataknobs_llm / conversations / storage.py DataknobsConversationStorage.__init__   1 0 0   100%
src / dataknobs_llm / conversations / storage.py DataknobsConversationStorage._state_to_record   6 2 0   67%
src / dataknobs_llm / conversations / storage.py DataknobsConversationStorage._record_to_state   4 4 0   0%
src / dataknobs_llm / conversations / storage.py DataknobsConversationStorage.save_conversation   5 2 0   60%
src / dataknobs_llm / conversations / storage.py DataknobsConversationStorage.load_conversation   7 7 0   0%
src / dataknobs_llm / conversations / storage.py DataknobsConversationStorage.delete_conversation   4 4 0   0%
src / dataknobs_llm / conversations / storage.py DataknobsConversationStorage.update_metadata   10 10 0   0%
src / dataknobs_llm / conversations / storage.py DataknobsConversationStorage.list_conversations   14 14 0   0%
src / dataknobs_llm / conversations / storage.py (no function)   50 0 16   100%
src / dataknobs_llm / exceptions.py (no function)   10 0 0   100%
src / dataknobs_llm / fsm_integration / functions.py PromptBuilder.__init__   4 4 0   0%
src / dataknobs_llm / fsm_integration / functions.py PromptBuilder.transform   26 26 0   0%
src / dataknobs_llm / fsm_integration / functions.py PromptBuilder.get_transform_description   1 1 0   0%
src / dataknobs_llm / fsm_integration / functions.py LLMCaller.__init__   6 6 0   0%
src / dataknobs_llm / fsm_integration / functions.py LLMCaller.transform   14 14 0   0%
src / dataknobs_llm / fsm_integration / functions.py LLMCaller.get_transform_description   1 1 0   0%
src / dataknobs_llm / fsm_integration / functions.py ResponseValidator.__init__   6 6 0   0%
src / dataknobs_llm / fsm_integration / functions.py ResponseValidator.validate   26 26 0   0%
src / dataknobs_llm / fsm_integration / functions.py ResponseValidator.get_validation_rules   1 1 0   0%
src / dataknobs_llm / fsm_integration / functions.py FunctionCaller.__init__   3 3 0   0%
src / dataknobs_llm / fsm_integration / functions.py FunctionCaller.transform   22 22 0   0%
src / dataknobs_llm / fsm_integration / functions.py FunctionCaller.get_transform_description   2 2 0   0%
src / dataknobs_llm / fsm_integration / functions.py ConversationManager.__init__   4 4 0   0%
src / dataknobs_llm / fsm_integration / functions.py ConversationManager.transform   12 12 0   0%
src / dataknobs_llm / fsm_integration / functions.py ConversationManager.get_transform_description   1 1 0   0%
src / dataknobs_llm / fsm_integration / functions.py EmbeddingGenerator.__init__   5 5 0   0%
src / dataknobs_llm / fsm_integration / functions.py EmbeddingGenerator.transform   17 17 0   0%
src / dataknobs_llm / fsm_integration / functions.py EmbeddingGenerator.get_transform_description   1 1 0   0%
src / dataknobs_llm / fsm_integration / functions.py build_prompt   1 1 0   0%
src / dataknobs_llm / fsm_integration / functions.py call_llm   1 1 0   0%
src / dataknobs_llm / fsm_integration / functions.py validate_response   1 1 0   0%
src / dataknobs_llm / fsm_integration / functions.py call_function   1 1 0   0%
src / dataknobs_llm / fsm_integration / functions.py manage_conversation   1 1 0   0%
src / dataknobs_llm / fsm_integration / functions.py generate_embeddings   1 1 0   0%
src / dataknobs_llm / fsm_integration / functions.py (no function)   35 35 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMSession.check_rate_limits   14 14 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMSession.record_usage   6 6 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource.__init__   14 14 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource._get_default_endpoint   2 2 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource._initialize_client   20 20 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource.acquire   17 17 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource.release   8 8 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource.validate   6 6 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource.health_check   30 30 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource.complete   21 21 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource._ollama_complete   7 7 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource._huggingface_complete   10 10 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource._openai_complete   14 14 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource._anthropic_complete   14 14 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource._custom_complete   0 0 1   100%
src / dataknobs_llm / fsm_integration / resources.py LLMResource.embed   18 18 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource._ollama_embed   9 9 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource._huggingface_embed   16 16 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource._openai_embed   13 13 0   0%
src / dataknobs_llm / fsm_integration / resources.py LLMResource.get_usage_stats   6 6 0   0%
src / dataknobs_llm / fsm_integration / resources.py (no function)   56 56 0   0%
src / dataknobs_llm / fsm_integration / workflows.py VectorRetriever.__init__   3 3 0   0%
src / dataknobs_llm / fsm_integration / workflows.py VectorRetriever.index_documents   15 15 0   0%
src / dataknobs_llm / fsm_integration / workflows.py VectorRetriever._normalize_embedding   5 5 0   0%
src / dataknobs_llm / fsm_integration / workflows.py VectorRetriever._generate_mock_embeddings   14 14 0   0%
src / dataknobs_llm / fsm_integration / workflows.py VectorRetriever.retrieve   22 22 0   0%
src / dataknobs_llm / fsm_integration / workflows.py VectorRetriever._cosine_similarity   6 6 0   0%
src / dataknobs_llm / fsm_integration / workflows.py LLMWorkflow.__init__   8 8 0   0%
src / dataknobs_llm / fsm_integration / workflows.py LLMWorkflow._build_fsm   25 25 0   0%
src / dataknobs_llm / fsm_integration / workflows.py LLMWorkflow._get_provider   6 6 0   0%
src / dataknobs_llm / fsm_integration / workflows.py LLMWorkflow._execute_step   48 48 0   0%
src / dataknobs_llm / fsm_integration / workflows.py LLMWorkflow._execute_rag   10 10 0   0%
src / dataknobs_llm / fsm_integration / workflows.py LLMWorkflow._execute_cot   12 12 0   0%
src / dataknobs_llm / fsm_integration / workflows.py LLMWorkflow.execute   33 33 0   0%
src / dataknobs_llm / fsm_integration / workflows.py LLMWorkflow.index_documents   3 3 0   0%
src / dataknobs_llm / fsm_integration / workflows.py LLMWorkflow.close   2 2 0   0%
src / dataknobs_llm / fsm_integration / workflows.py create_simple_llm_workflow   3 3 0   0%
src / dataknobs_llm / fsm_integration / workflows.py create_rag_workflow   2 2 0   0%
src / dataknobs_llm / fsm_integration / workflows.py create_chain_workflow   5 5 0   0%
src / dataknobs_llm / fsm_integration / workflows.py (no function)   98 98 0   0%
src / dataknobs_llm / llm / base.py LLMConfig.from_dict   6 6 0   0%
src / dataknobs_llm / llm / base.py LLMConfig.to_dict   12 12 0   0%
src / dataknobs_llm / llm / base.py LLMConfig.clone   2 0 0   100%
src / dataknobs_llm / llm / base.py normalize_llm_config   14 12 0   14%
src / dataknobs_llm / llm / base.py LLMProvider.__init__   4 0 0   100%
src / dataknobs_llm / llm / base.py LLMProvider._validate_prompt_builder   4 4 0   0%
src / dataknobs_llm / llm / base.py LLMProvider._validate_render_params   2 2 0   0%
src / dataknobs_llm / llm / base.py LLMProvider.initialize   0 0 2   100%
src / dataknobs_llm / llm / base.py LLMProvider.close   0 0 2   100%
src / dataknobs_llm / llm / base.py LLMProvider.validate_model   0 0 2   100%
src / dataknobs_llm / llm / base.py LLMProvider.get_capabilities   0 0 2   100%
src / dataknobs_llm / llm / base.py LLMProvider.is_initialized   1 1 0   0%
src / dataknobs_llm / llm / base.py LLMProvider.__enter__   2 2 0   0%
src / dataknobs_llm / llm / base.py LLMProvider.__exit__   1 1 0   0%
src / dataknobs_llm / llm / base.py ConfigOverrideMixin.register_preset   1 0 0   100%
src / dataknobs_llm / llm / base.py ConfigOverrideMixin.on_override_applied   1 0 0   100%
src / dataknobs_llm / llm / base.py ConfigOverrideMixin.clear_override_callbacks   1 0 0   100%
src / dataknobs_llm / llm / base.py ConfigOverrideMixin.get_preset   1 0 0   100%
src / dataknobs_llm / llm / base.py ConfigOverrideMixin.list_presets   1 0 0   100%
src / dataknobs_llm / llm / base.py ConfigOverrideMixin._validate_config_overrides   6 0 0   100%
src / dataknobs_llm / llm / base.py ConfigOverrideMixin._expand_preset   11 0 0   100%
src / dataknobs_llm / llm / base.py ConfigOverrideMixin._merge_options   3 0 0   100%
src / dataknobs_llm / llm / base.py ConfigOverrideMixin._notify_override_callbacks   5 0 0   100%
src / dataknobs_llm / llm / base.py ConfigOverrideMixin._get_runtime_config   9 0 0   100%
src / dataknobs_llm / llm / base.py AsyncLLMProvider.complete   0 0 66   100%
src / dataknobs_llm / llm / base.py AsyncLLMProvider.render_and_complete   5 5 0   0%
src / dataknobs_llm / llm / base.py AsyncLLMProvider.render_and_stream   6 6 0   0%
src / dataknobs_llm / llm / base.py AsyncLLMProvider._render_messages   11 11 0   0%
src / dataknobs_llm / llm / base.py AsyncLLMProvider.stream_complete   0 0 62   100%
src / dataknobs_llm / llm / base.py AsyncLLMProvider.embed   0 0 69   100%
src / dataknobs_llm / llm / base.py AsyncLLMProvider.function_call   0 0 108   100%
src / dataknobs_llm / llm / base.py AsyncLLMProvider.initialize   1 1 0   0%
src / dataknobs_llm / llm / base.py AsyncLLMProvider.close   1 1 0   0%
src / dataknobs_llm / llm / base.py AsyncLLMProvider.__aenter__   2 2 0   0%
src / dataknobs_llm / llm / base.py AsyncLLMProvider.__aexit__   1 1 0   0%
src / dataknobs_llm / llm / base.py SyncLLMProvider.complete   0 0 13   100%
src / dataknobs_llm / llm / base.py SyncLLMProvider.render_and_complete   5 5 0   0%
src / dataknobs_llm / llm / base.py SyncLLMProvider.render_and_stream   6 6 0   0%
src / dataknobs_llm / llm / base.py SyncLLMProvider._render_messages   11 11 0   0%
src / dataknobs_llm / llm / base.py SyncLLMProvider.stream_complete   0 0 13   100%
src / dataknobs_llm / llm / base.py SyncLLMProvider.embed   0 0 10   100%
src / dataknobs_llm / llm / base.py SyncLLMProvider.function_call   0 0 11   100%
src / dataknobs_llm / llm / base.py SyncLLMProvider.initialize   1 1 0   0%
src / dataknobs_llm / llm / base.py SyncLLMProvider.close   1 1 0   0%
src / dataknobs_llm / llm / base.py LLMAdapter.adapt_messages   0 0 9   100%
src / dataknobs_llm / llm / base.py LLMAdapter.adapt_response   0 0 9   100%
src / dataknobs_llm / llm / base.py LLMAdapter.adapt_config   0 0 9   100%
src / dataknobs_llm / llm / base.py LLMMiddleware.process_request   1 1 0   0%
src / dataknobs_llm / llm / base.py LLMMiddleware.process_response   1 1 0   0%
src / dataknobs_llm / llm / base.py (no function)   130 0 77   100%
src / dataknobs_llm / llm / providers / anthropic.py AnthropicProvider.__init__   2 2 0   0%
src / dataknobs_llm / llm / providers / anthropic.py AnthropicProvider.initialize   9 9 0   0%
src / dataknobs_llm / llm / providers / anthropic.py AnthropicProvider.close   3 3 0   0%
src / dataknobs_llm / llm / providers / anthropic.py AnthropicProvider.validate_model   2 2 0   0%
src / dataknobs_llm / llm / providers / anthropic.py AnthropicProvider.get_capabilities   4 4 0   0%
src / dataknobs_llm / llm / providers / anthropic.py AnthropicProvider.complete   16 16 0   0%
src / dataknobs_llm / llm / providers / anthropic.py AnthropicProvider.stream_complete   12 12 0   0%
src / dataknobs_llm / llm / providers / anthropic.py AnthropicProvider.embed   0 0 1   100%
src / dataknobs_llm / llm / providers / anthropic.py AnthropicProvider.function_call   38 38 0   0%
src / dataknobs_llm / llm / providers / anthropic.py AnthropicProvider._build_prompt   10 10 0   0%
src / dataknobs_llm / llm / providers / anthropic.py (no function)   16 0 2   100%
src / dataknobs_llm / llm / providers / base.py SyncProviderAdapter.__init__   1 1 0   0%
src / dataknobs_llm / llm / providers / base.py SyncProviderAdapter.initialize   7 7 0   0%
src / dataknobs_llm / llm / providers / base.py SyncProviderAdapter.close   7 7 0   0%
src / dataknobs_llm / llm / providers / base.py SyncProviderAdapter.complete   7 7 0   0%
src / dataknobs_llm / llm / providers / base.py SyncProviderAdapter.stream   15 15 0   0%
src / dataknobs_llm / llm / providers / base.py SyncProviderAdapter.stream._stream   2 2 0   0%
src / dataknobs_llm / llm / providers / base.py SyncProviderAdapter.embed   7 7 0   0%
src / dataknobs_llm / llm / providers / base.py SyncProviderAdapter.function_call   7 7 0   0%
src / dataknobs_llm / llm / providers / base.py SyncProviderAdapter.validate_model   7 7 0   0%
src / dataknobs_llm / llm / providers / base.py SyncProviderAdapter.get_capabilities   1 1 0   0%
src / dataknobs_llm / llm / providers / base.py SyncProviderAdapter.is_initialized   1 1 0   0%
src / dataknobs_llm / llm / providers / base.py (no function)   14 0 0   100%
src / dataknobs_llm / llm / providers / echo.py EchoProvider.__init__   6 0 0   100%
src / dataknobs_llm / llm / providers / echo.py EchoProvider._generate_embedding   11 11 0   0%
src / dataknobs_llm / llm / providers / echo.py EchoProvider._count_tokens   1 0 0   100%
src / dataknobs_llm / llm / providers / echo.py EchoProvider.initialize   1 0 0   100%
src / dataknobs_llm / llm / providers / echo.py EchoProvider.close   1 1 0   0%
src / dataknobs_llm / llm / providers / echo.py EchoProvider.validate_model   1 1 0   0%
src / dataknobs_llm / llm / providers / echo.py EchoProvider.get_capabilities   1 1 0   0%
src / dataknobs_llm / llm / providers / echo.py EchoProvider.complete   14 2 0   86%
src / dataknobs_llm / llm / providers / echo.py EchoProvider.stream_complete   9 2 0   78%
src / dataknobs_llm / llm / providers / echo.py EchoProvider.embed   5 5 0   0%
src / dataknobs_llm / llm / providers / echo.py EchoProvider.function_call   30 30 0   0%
src / dataknobs_llm / llm / providers / echo.py (no function)   16 0 2   100%
src / dataknobs_llm / llm / providers / huggingface.py HuggingFaceProvider.__init__   3 3 0   0%
src / dataknobs_llm / llm / providers / huggingface.py HuggingFaceProvider.initialize   9 9 0   0%
src / dataknobs_llm / llm / providers / huggingface.py HuggingFaceProvider.close   3 3 0   0%
src / dataknobs_llm / llm / providers / huggingface.py HuggingFaceProvider.validate_model   6 6 0   0%
src / dataknobs_llm / llm / providers / huggingface.py HuggingFaceProvider.get_capabilities   1 1 0   0%
src / dataknobs_llm / llm / providers / huggingface.py HuggingFaceProvider.complete   15 15 0   0%
src / dataknobs_llm / llm / providers / huggingface.py HuggingFaceProvider.stream_complete   2 2 0   0%
src / dataknobs_llm / llm / providers / huggingface.py HuggingFaceProvider.embed   12 12 0   0%
src / dataknobs_llm / llm / providers / huggingface.py HuggingFaceProvider.function_call   0 0 1   100%
src / dataknobs_llm / llm / providers / huggingface.py HuggingFaceProvider._build_prompt   9 9 0   0%
src / dataknobs_llm / llm / providers / huggingface.py (no function)   15 0 2   100%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider.__init__   6 6 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider._build_options   13 13 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider._messages_to_ollama   7 7 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider._adapt_tools   4 4 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider.initialize   28 28 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider.close   3 3 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider.validate_model   14 14 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider.get_capabilities   8 8 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider.complete   48 48 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider.stream_complete   13 13 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider.embed   14 14 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider.function_call   33 33 0   0%
src / dataknobs_llm / llm / providers / ollama.py OllamaProvider._build_prompt   9 9 0   0%
src / dataknobs_llm / llm / providers / ollama.py (no function)   19 0 2   100%
src / dataknobs_llm / llm / providers / openai.py OpenAIAdapter.adapt_messages   9 9 0   0%
src / dataknobs_llm / llm / providers / openai.py OpenAIAdapter.adapt_response   3 3 0   0%
src / dataknobs_llm / llm / providers / openai.py OpenAIAdapter.adapt_config   18 18 0   0%
src / dataknobs_llm / llm / providers / openai.py OpenAIProvider.__init__   3 3 0   0%
src / dataknobs_llm / llm / providers / openai.py OpenAIProvider.initialize   9 9 0   0%
src / dataknobs_llm / llm / providers / openai.py OpenAIProvider.close   3 3 0   0%
src / dataknobs_llm / llm / providers / openai.py OpenAIProvider.validate_model   6 6 0   0%
src / dataknobs_llm / llm / providers / openai.py OpenAIProvider.get_capabilities   8 8 0   0%
src / dataknobs_llm / llm / providers / openai.py OpenAIProvider.complete   12 12 0   0%
src / dataknobs_llm / llm / providers / openai.py OpenAIProvider.stream_complete   15 15 0   0%
src / dataknobs_llm / llm / providers / openai.py OpenAIProvider.embed   9 9 0   0%
src / dataknobs_llm / llm / providers / openai.py OpenAIProvider.function_call   11 11 0   0%
src / dataknobs_llm / llm / providers / openai.py (no function)   18 0 2   100%
src / dataknobs_llm / llm / utils.py MessageTemplate.__post_init__   12 12 0   0%
src / dataknobs_llm / llm / utils.py MessageTemplate.format   8 8 0   0%
src / dataknobs_llm / llm / utils.py MessageTemplate.partial   18 18 0   0%
src / dataknobs_llm / llm / utils.py MessageTemplate.from_conditional   1 1 0   0%
src / dataknobs_llm / llm / utils.py MessageBuilder.__init__   1 1 0   0%
src / dataknobs_llm / llm / utils.py MessageBuilder.system   2 2 0   0%
src / dataknobs_llm / llm / utils.py MessageBuilder.user   2 2 0   0%
src / dataknobs_llm / llm / utils.py MessageBuilder.assistant   2 2 0   0%
src / dataknobs_llm / llm / utils.py MessageBuilder.function   2 2 0   0%
src / dataknobs_llm / llm / utils.py MessageBuilder.from_template   3 3 0   0%
src / dataknobs_llm / llm / utils.py MessageBuilder.build   1 1 0   0%
src / dataknobs_llm / llm / utils.py MessageBuilder.clear   2 2 0   0%
src / dataknobs_llm / llm / utils.py ResponseParser.extract_json   13 13 0   0%
src / dataknobs_llm / llm / utils.py ResponseParser.extract_code   6 6 0   0%
src / dataknobs_llm / llm / utils.py ResponseParser.extract_list   6 6 0   0%
src / dataknobs_llm / llm / utils.py ResponseParser.extract_sections   15 15 0   0%
src / dataknobs_llm / llm / utils.py TokenCounter.estimate_tokens   6 6 0   0%
src / dataknobs_llm / llm / utils.py TokenCounter.estimate_messages_tokens   7 7 0   0%
src / dataknobs_llm / llm / utils.py TokenCounter.fits_in_context   2 2 0   0%
src / dataknobs_llm / llm / utils.py CostCalculator.calculate_cost   13 6 0   54%
src / dataknobs_llm / llm / utils.py CostCalculator.estimate_cost   11 11 0   0%
src / dataknobs_llm / llm / utils.py chain_prompts   14 14 0   0%
src / dataknobs_llm / llm / utils.py create_few_shot_prompt   10 10 0   0%
src / dataknobs_llm / llm / utils.py (no function)   50 0 0   100%
src / dataknobs_llm / prompts / adapters / dataknobs_backend_adapter.py DataknobsBackendAdapter.__init__   4 4 0   0%
src / dataknobs_llm / prompts / adapters / dataknobs_backend_adapter.py DataknobsBackendAdapter.get_value   15 15 0   0%
src / dataknobs_llm / prompts / adapters / dataknobs_backend_adapter.py DataknobsBackendAdapter.search   29 29 0   0%
src / dataknobs_llm / prompts / adapters / dataknobs_backend_adapter.py AsyncDataknobsBackendAdapter.__init__   4 4 0   0%
src / dataknobs_llm / prompts / adapters / dataknobs_backend_adapter.py AsyncDataknobsBackendAdapter.get_value   15 15 0   0%
src / dataknobs_llm / prompts / adapters / dataknobs_backend_adapter.py AsyncDataknobsBackendAdapter.search   29 29 0   0%
src / dataknobs_llm / prompts / adapters / dataknobs_backend_adapter.py (no function)   10 0 2   100%
src / dataknobs_llm / prompts / adapters / dict_adapter.py DictResourceAdapter.__init__   3 3 0   0%
src / dataknobs_llm / prompts / adapters / dict_adapter.py DictResourceAdapter.get_value   9 9 0   0%
src / dataknobs_llm / prompts / adapters / dict_adapter.py DictResourceAdapter.search   20 20 0   0%
src / dataknobs_llm / prompts / adapters / dict_adapter.py DictResourceAdapter._flatten_dict   7 7 0   0%
src / dataknobs_llm / prompts / adapters / dict_adapter.py AsyncDictResourceAdapter.__init__   3 3 0   0%
src / dataknobs_llm / prompts / adapters / dict_adapter.py AsyncDictResourceAdapter.get_value   9 9 0   0%
src / dataknobs_llm / prompts / adapters / dict_adapter.py AsyncDictResourceAdapter.search   20 20 0   0%
src / dataknobs_llm / prompts / adapters / dict_adapter.py AsyncDictResourceAdapter._flatten_dict   7 7 0   0%
src / dataknobs_llm / prompts / adapters / dict_adapter.py (no function)   12 0 0   100%
src / dataknobs_llm / prompts / adapters / inmemory_adapter.py InMemoryAdapterBase.__init__   4 4 0   0%
src / dataknobs_llm / prompts / adapters / inmemory_adapter.py InMemoryAdapterBase.reset   1 1 0   0%
src / dataknobs_llm / prompts / adapters / inmemory_adapter.py InMemoryAdapterBase._get_value_impl   1 1 0   0%
src / dataknobs_llm / prompts / adapters / inmemory_adapter.py InMemoryAdapterBase._search_impl   9 9 0   0%
src / dataknobs_llm / prompts / adapters / inmemory_adapter.py InMemoryAdapter.__init__   1 1 0   0%
src / dataknobs_llm / prompts / adapters / inmemory_adapter.py InMemoryAdapter.get_value   1 1 0   0%
src / dataknobs_llm / prompts / adapters / inmemory_adapter.py InMemoryAdapter.search   1 1 0   0%
src / dataknobs_llm / prompts / adapters / inmemory_adapter.py InMemoryAsyncAdapter.__init__   1 1 0   0%
src / dataknobs_llm / prompts / adapters / inmemory_adapter.py InMemoryAsyncAdapter.get_value   1 1 0   0%
src / dataknobs_llm / prompts / adapters / inmemory_adapter.py InMemoryAsyncAdapter.search   1 1 0   0%
src / dataknobs_llm / prompts / adapters / inmemory_adapter.py (no function)   15 0 0   100%
src / dataknobs_llm / prompts / adapters / resource_adapter.py ResourceAdapterBase.__init__   3 3 0   0%
src / dataknobs_llm / prompts / adapters / resource_adapter.py ResourceAdapterBase.name   1 1 0   0%
src / dataknobs_llm / prompts / adapters / resource_adapter.py ResourceAdapterBase.is_async   1 1 0   0%
src / dataknobs_llm / prompts / adapters / resource_adapter.py ResourceAdapterBase.get_metadata   1 1 0   0%
src / dataknobs_llm / prompts / adapters / resource_adapter.py ResourceAdapterBase.__repr__   0 0 3   100%
src / dataknobs_llm / prompts / adapters / resource_adapter.py ResourceAdapter.get_value   0 0 11   100%
src / dataknobs_llm / prompts / adapters / resource_adapter.py ResourceAdapter.search   0 0 12   100%
src / dataknobs_llm / prompts / adapters / resource_adapter.py ResourceAdapter.batch_get_values   1 1 0   0%
src / dataknobs_llm / prompts / adapters / resource_adapter.py AsyncResourceAdapter.get_value   0 0 11   100%
src / dataknobs_llm / prompts / adapters / resource_adapter.py AsyncResourceAdapter.search   0 0 12   100%
src / dataknobs_llm / prompts / adapters / resource_adapter.py AsyncResourceAdapter.batch_get_values   4 4 0   0%
src / dataknobs_llm / prompts / adapters / resource_adapter.py BaseSearchLogic.format_search_result   12 12 0   0%
src / dataknobs_llm / prompts / adapters / resource_adapter.py BaseSearchLogic.filter_results   7 7 0   0%
src / dataknobs_llm / prompts / adapters / resource_adapter.py BaseSearchLogic.deduplicate_results   8 8 0   0%
src / dataknobs_llm / prompts / adapters / resource_adapter.py (no function)   21 0 31   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.get_system_prompt   0 0 10   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.list_system_prompts   0 0 6   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.get_user_prompt   0 0 10   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.list_user_prompts   0 0 6   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.get_message_index   0 0 10   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.list_message_indexes   0 0 6   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.get_rag_config   0 0 12   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.get_prompt_rag_configs   0 0 13   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.get_metadata   0 0 6   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.reload   0 0 6   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.validate   1 1 0   0%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py AbstractPromptLibrary.__repr__   0 0 3   100%
src / dataknobs_llm / prompts / base / abstract_prompt_library.py (no function)   5 0 42   100%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.__init__   7 0 0   100%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.clear_cache   6 6 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.reload   3 3 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.get_metadata   1 1 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._get_cached_system_prompt   3 3 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._cache_system_prompt   2 0 0   100%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._get_cached_user_prompt   3 3 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._cache_user_prompt   2 2 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._get_cached_message_index   3 3 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._cache_message_index   2 2 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._get_cached_rag_config   3 3 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._cache_rag_config   2 2 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._get_cached_prompt_rag_configs   3 3 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._cache_prompt_rag_configs   2 2 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._parse_validation_config   14 14 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._parse_rag_config   12 12 0   0%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary._parse_prompt_template   43 29 0   33%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.get_system_prompt   0 0 1   100%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.list_system_prompts   0 0 1   100%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.get_user_prompt   0 0 1   100%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.list_user_prompts   0 0 1   100%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.get_message_index   0 0 1   100%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.list_message_indexes   0 0 1   100%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.get_rag_config   0 0 1   100%
src / dataknobs_llm / prompts / base / base_prompt_library.py BasePromptLibrary.get_prompt_rag_configs   0 0 1   100%
src / dataknobs_llm / prompts / base / base_prompt_library.py (no function)   31 0 0   100%
src / dataknobs_llm / prompts / base / types.py TemplateMode.from_string   4 4 0   0%
src / dataknobs_llm / prompts / base / types.py ValidationConfig.__init__   3 3 0   0%
src / dataknobs_llm / prompts / base / types.py (no function)   52 0 0   100%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py AsyncPromptBuilder.__init__   2 0 0   100%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py AsyncPromptBuilder._validate_adapters   3 2 0   33%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py AsyncPromptBuilder.render_system_prompt   5 5 0   0%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py AsyncPromptBuilder.render_user_prompt   5 5 0   0%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py AsyncPromptBuilder.render_inline_system_prompt   2 2 0   0%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py AsyncPromptBuilder.render_inline_user_prompt   2 2 0   0%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py AsyncPromptBuilder._render_prompt_impl   18 18 0   0%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py AsyncPromptBuilder._execute_rag_searches_impl   37 37 0   0%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py AsyncPromptBuilder._execute_single_rag_search_safe   1 1 0   0%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py AsyncPromptBuilder._execute_single_rag_search   13 13 0   0%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py AsyncPromptBuilder._execute_single_rag_with_metadata   16 16 0   0%
src / dataknobs_llm / prompts / builders / async_prompt_builder.py (no function)   19 0 0   100%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder.__init__   4 0 0   100%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder._extract_formatted_content_from_cache   4 4 0   0%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder._compute_rag_query_hash   3 3 0   0%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder._render_rag_query   2 2 0   0%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder._format_rag_results   11 11 0   0%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder._merge_params_with_defaults   2 2 0   0%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder._prepare_validation_config   6 6 0   0%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder.get_required_parameters   9 9 0   0%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder.__repr__   0 0 7   100%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder._validate_adapters   0 0 6   100%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder._render_prompt_impl   0 0 22   100%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py BasePromptBuilder._execute_rag_searches_impl   0 0 18   100%
src / dataknobs_llm / prompts / builders / base_prompt_builder.py (no function)   15 0 27   100%
src / dataknobs_llm / prompts / builders / prompt_builder.py PromptBuilder.__init__   2 2 0   0%
src / dataknobs_llm / prompts / builders / prompt_builder.py PromptBuilder._validate_adapters   3 3 0   0%
src / dataknobs_llm / prompts / builders / prompt_builder.py PromptBuilder.render_system_prompt   5 5 0   0%
src / dataknobs_llm / prompts / builders / prompt_builder.py PromptBuilder.render_user_prompt   5 5 0   0%
src / dataknobs_llm / prompts / builders / prompt_builder.py PromptBuilder._render_prompt_impl   17 17 0   0%
src / dataknobs_llm / prompts / builders / prompt_builder.py PromptBuilder._execute_rag_searches_impl   25 25 0   0%
src / dataknobs_llm / prompts / builders / prompt_builder.py PromptBuilder._execute_single_rag_search   13 13 0   0%
src / dataknobs_llm / prompts / builders / prompt_builder.py PromptBuilder._execute_single_rag_with_metadata   16 16 0   0%
src / dataknobs_llm / prompts / builders / prompt_builder.py (no function)   15 0 0   100%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.__init__   4 4 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.add_library   8 8 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.remove_library   9 9 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.get_system_prompt   7 7 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.get_user_prompt   7 7 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.get_message_index   7 7 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.get_rag_config   7 7 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.get_prompt_rag_configs   7 7 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.list_system_prompts   4 4 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.list_user_prompts   4 4 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.list_message_indexes   4 4 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.get_metadata   1 1 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.reload   2 2 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.libraries   1 1 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.library_names   1 1 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py CompositePromptLibrary.get_library_by_name   5 5 0   0%
src / dataknobs_llm / prompts / implementations / composite_library.py (no function)   23 0 0   100%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.__init__   3 3 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary._load_from_config   4 4 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary._load_system_prompts   8 8 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary._load_user_prompts   8 8 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary._load_message_indexes   8 8 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary._load_rag_configs   8 8 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary._parse_message_index   6 6 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.get_system_prompt   1 1 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.get_user_prompt   1 1 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.get_message_index   1 1 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.get_rag_config   1 1 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.get_prompt_rag_configs   15 15 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.add_system_prompt   2 2 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.add_user_prompt   2 2 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.add_message_index   2 2 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.add_rag_config   2 2 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.list_system_prompts   1 1 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.list_user_prompts   1 1 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py ConfigPromptLibrary.list_message_indexes   1 1 0   0%
src / dataknobs_llm / prompts / implementations / config_library.py (no function)   24 0 0   100%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary.__init__   9 2 0   78%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary.load_all   4 0 0   100%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary._load_system_prompts   13 4 0   69%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary._load_user_prompts   13 9 0   31%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary._load_message_indexes   13 9 0   31%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary._load_rag_configs   13 9 0   31%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary._load_prompt_template   2 0 0   100%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary._load_message_index   7 7 0   0%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary._load_rag_config   2 2 0   0%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary._load_file   10 5 0   50%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary.get_system_prompt   1 1 0   0%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary.get_user_prompt   1 1 0   0%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary.get_message_index   1 1 0   0%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary.get_rag_config   1 1 0   0%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary.get_prompt_rag_configs   15 15 0   0%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary.list_system_prompts   1 1 0   0%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary.list_user_prompts   1 1 0   0%
src / dataknobs_llm / prompts / implementations / filesystem_library.py FileSystemPromptLibrary.list_message_indexes   1 1 0   0%
src / dataknobs_llm / prompts / implementations / filesystem_library.py (no function)   26 0 0   100%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.__init__   6 6 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.create_version   3 3 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.get_version   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.list_versions   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.tag_version   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.create_experiment   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.get_variant_for_user   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.get_random_variant   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.get_experiment   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.list_experiments   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.record_usage   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.get_metrics   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.compare_variants   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.get_system_prompt   12 12 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.get_user_prompt   12 12 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.list_system_prompts   14 14 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.list_user_prompts   8 8 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.get_message_index   3 3 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.list_message_indexes   3 3 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.get_rag_config   3 3 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.get_prompt_rag_configs   3 3 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary.get_metadata   1 1 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py VersionedPromptLibrary._version_to_template   8 8 0   0%
src / dataknobs_llm / prompts / implementations / versioned_library.py (no function)   27 0 0   100%
src / dataknobs_llm / prompts / rendering / template_renderer.py PreserveUndefined.__str__   1 1 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py PreserveUndefined.__repr__   0 0 2   100%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateSyntaxError.__str__   1 1 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer.__init__   4 0 0   100%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer.render   31 31 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer.render_prompt_template   11 11 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer.batch_render   1 1 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer._extract_variables   4 4 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer._validate_no_jinja_in_conditionals   7 7 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer._register_custom_filters   4 0 0   100%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer._register_custom_filters.count_tokens   1 1 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer._register_custom_filters.format_code   1 1 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer.add_custom_filter   1 1 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer._get_line_col   4 4 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer._get_snippet   8 8 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer.validate_template_syntax_detailed   37 37 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py TemplateRenderer.validate_template_syntax   2 2 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py render_template   3 3 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py render_template_strict   4 4 0   0%
src / dataknobs_llm / prompts / rendering / template_renderer.py (no function)   38 0 1   100%
src / dataknobs_llm / prompts / utils / template_composition.py TemplateComposer.__init__   3 3 0   0%
src / dataknobs_llm / prompts / utils / template_composition.py TemplateComposer.compose_template   15 15 0   0%
src / dataknobs_llm / prompts / utils / template_composition.py TemplateComposer.get_sections_for_prompt   2 2 0   0%
src / dataknobs_llm / prompts / utils / template_composition.py TemplateComposer._get_sections_recursive   23 23 0   0%
src / dataknobs_llm / prompts / utils / template_composition.py TemplateComposer.merge_prompt_configs   39 39 0   0%
src / dataknobs_llm / prompts / utils / template_composition.py TemplateComposer.resolve_inheritance   36 36 0   0%
src / dataknobs_llm / prompts / utils / template_composition.py TemplateComposer.clear_cache   2 2 0   0%
src / dataknobs_llm / prompts / utils / template_composition.py (no function)   11 0 0   100%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager.__init__   3 3 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager.create_experiment   12 12 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager.get_experiment   1 1 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager.list_experiments   8 8 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager.get_random_variant   8 8 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager.get_variant_for_user   17 17 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager.update_experiment_status   11 11 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager.get_user_assignment   3 3 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager.get_experiment_assignments   1 1 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager.delete_experiment   8 8 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager._hash_based_assignment   10 10 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager._persist_experiment   3 3 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py ABTestManager.get_variant_distribution   9 9 0   0%
src / dataknobs_llm / prompts / versioning / ab_testing.py (no function)   21 0 0   100%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector.__init__   3 3 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector.record_event   10 10 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector.get_metrics   3 3 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector.get_events   9 9 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector.compare_variants   4 4 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector.get_experiment_metrics   1 1 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector.reset_metrics   9 9 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector.get_summary   5 5 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector._update_metrics   16 16 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector._persist_event   3 3 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector._persist_metrics   3 3 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector.get_top_versions   8 8 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py MetricsCollector.get_version_performance_over_time   21 21 0   0%
src / dataknobs_llm / prompts / versioning / metrics.py (no function)   17 0 0   100%
src / dataknobs_llm / prompts / versioning / types.py PromptVersion.to_dict   1 1 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptVersion.from_dict   6 6 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptVariant.__post_init__   2 2 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptVariant.to_dict   1 1 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptVariant.from_dict   1 1 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptExperiment.__post_init__   3 3 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptExperiment.to_dict   1 1 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptExperiment.from_dict   8 8 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptMetrics.success_rate   3 3 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptMetrics.avg_response_time   3 3 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptMetrics.avg_tokens   3 3 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptMetrics.avg_rating   3 3 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptMetrics.to_dict   1 1 0   0%
src / dataknobs_llm / prompts / versioning / types.py PromptMetrics.from_dict   6 6 0   0%
src / dataknobs_llm / prompts / versioning / types.py MetricEvent.to_dict   1 1 0   0%
src / dataknobs_llm / prompts / versioning / types.py MetricEvent.from_dict   4 4 0   0%
src / dataknobs_llm / prompts / versioning / types.py (no function)   88 0 0   100%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager.__init__   3 3 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager.create_version   21 21 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager.get_version   11 11 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager.list_versions   8 8 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager.tag_version   8 8 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager.untag_version   8 8 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager.update_status   7 7 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager.delete_version   10 10 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager._make_key   1 1 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager._parse_version   4 4 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager._get_latest_version   7 7 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager._auto_increment_version   8 8 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager._persist_version   3 3 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py VersionManager.get_version_history   2 2 0   0%
src / dataknobs_llm / prompts / versioning / version_manager.py (no function)   22 0 0   100%
src / dataknobs_llm / template_utils.py render_conditional_template   6 6 0   0%
src / dataknobs_llm / template_utils.py render_conditional_template.replace_variable   3 3 0   0%
src / dataknobs_llm / template_utils.py render_conditional_template.replace_variable.replace_var   17 17 0   0%
src / dataknobs_llm / template_utils.py render_conditional_template.find_all_variables   5 5 0   0%
src / dataknobs_llm / template_utils.py render_conditional_template.process_conditionals   56 56 0   0%
src / dataknobs_llm / template_utils.py (no function)   7 0 0   100%
src / dataknobs_llm / tools / base.py Tool.__init__   3 3 0   0%
src / dataknobs_llm / tools / base.py Tool.schema   0 0 28   100%
src / dataknobs_llm / tools / base.py Tool.execute   0 0 15   100%
src / dataknobs_llm / tools / base.py Tool.to_function_definition   1 1 0   0%
src / dataknobs_llm / tools / base.py Tool.to_anthropic_tool_definition   1 1 0   0%
src / dataknobs_llm / tools / base.py Tool.validate_parameters   2 2 0   0%
src / dataknobs_llm / tools / base.py Tool.__repr__   0 0 2   100%
src / dataknobs_llm / tools / base.py Tool.__str__   1 1 0   0%
src / dataknobs_llm / tools / base.py (no function)   8 0 6   100%
src / dataknobs_llm / tools / registry.py ToolRegistry.__init__   1 1 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.register_tool   4 4 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.register_many   5 5 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.get_tool   4 4 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.has_tool   1 1 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.list_tools   1 1 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.get_tool_names   1 1 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.to_function_definitions   8 8 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.to_anthropic_tool_definitions   8 8 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.execute_tool   2 2 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.filter_by_metadata   10 10 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.clone   4 4 0   0%
src / dataknobs_llm / tools / registry.py ToolRegistry.__repr__   0 0 2   100%
src / dataknobs_llm / tools / registry.py ToolRegistry.__str__   4 4 0   0%
src / dataknobs_llm / tools / registry.py (no function)   17 0 1   100%
Total     5142 3808 960   26%

No items found using the specified filter.