Coverage report: 34%

Files Functions Classes

coverage.py v7.15.2, created at 2026-10-07 05:07 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
open_webui/__init__.py version_callback   0% 4 4 0   0% 2 0   0%
open_webui/__init__.py main   0% 1 1 0   100% 0 0   0%
open_webui/__init__.py serve   0% 27 27 0   0% 8 0   0%
open_webui/__init__.py dev   0% 2 2 0   100% 0 0   0%
open_webui/__init__.py (no function)   95% 20 1 0   50% 2 1   91%
open_webui/config.py seed_registered_defaults   100% 3 0 0   100% 0 0   100%
open_webui/config.py async_reset_config   0% 1 1 0   100% 0 0   0%
open_webui/config.py EndpointFilter.filter   100% 1 0 0   100% 0 0   100%
open_webui/config.py run_migrations   73% 11 3 0   100% 0 0   73%
open_webui/config.py import_legacy_config_json   40% 5 3 0   50% 2 1   43%
open_webui/config.py _resolve_ollama_base_url   82% 11 2 0   50% 4 2   73%
open_webui/config.py _resolve_ollama_base_url.reachable   80% 5 1 0   100% 0 0   80%
open_webui/config.py validate_cors_origin   0% 6 6 0   0% 4 0   0%
open_webui/config.py oauth_client_kwargs   0% 6 6 0   0% 4 0   0%
open_webui/config.py load_oauth_providers   45% 29 16 0   50% 20 10   47%
open_webui/config.py load_oauth_providers.google_oauth_register   0% 2 2 0   100% 0 0   0%
open_webui/config.py load_oauth_providers.microsoft_oauth_register   0% 2 2 0   100% 0 0   0%
open_webui/config.py load_oauth_providers.github_oauth_register   0% 2 2 0   100% 0 0   0%
open_webui/config.py load_oauth_providers.oidc_oauth_register   100% 2 0 0   100% 0 0   100%
open_webui/config.py load_oauth_providers.feishu_oauth_register   0% 2 2 0   100% 0 0   0%
open_webui/config.py (no function)   83% 1084 184 0   39% 138 48   78%
open_webui/constants.py _error_message   100% 7 0 0   100% 6 0   100%
open_webui/constants.py ERROR_MESSAGES.__str__   100% 1 0 0   100% 0 0   100%
open_webui/constants.py TASKS.__str__   0% 1 1 0   100% 0 0   0%
open_webui/constants.py (no function)   100% 84 0 0   100% 0 0   100%
open_webui/env.py JSONFormatter.format   0% 8 8 0   0% 6 0   0%
open_webui/env.py parse_section   100% 9 0 0   100% 2 0   100%
open_webui/env.py _build_ssl_context_from_file   25% 8 6 0   25% 4 1   25%
open_webui/env.py _parse_ssl_env   33% 9 6 0   17% 6 1   27%
open_webui/env.py _int_env   50% 4 2 0   100% 0 0   50%
open_webui/env.py (no function)   71% 582 170 0   45% 110 44   67%
open_webui/events.py EventDefinition.defaults   67% 6 2 0   50% 4 2   60%
open_webui/events.py get_event_catalog   100% 1 0 0   100% 0 0   100%
open_webui/events.py normalize_event_webhook   76% 17 4 0   60% 10 2   70%
open_webui/events.py normalize_event_targets   63% 19 7 0   58% 12 3   61%
open_webui/events.py event_filter_matches   0% 10 10 0   0% 10 0   0%
open_webui/events.py event_user_ids   0% 14 14 0   0% 10 0   0%
open_webui/events.py event_target_matches   0% 17 17 0   0% 12 0   0%
open_webui/events.py event_webhook_matches   0% 3 3 0   0% 2 0   0%
open_webui/events.py get_event_webhooks   67% 12 4 0   67% 6 2   67%
open_webui/events.py migrate_legacy_webhook_config   60% 10 4 0   50% 4 2   57%
open_webui/events.py upsert_event_webhook   94% 16 1 0   75% 8 2   88%
open_webui/events.py delete_event_webhook   44% 9 5 0   25% 4 1   38%
open_webui/events.py Event.model_dump   100% 2 0 0   100% 0 0   100%
open_webui/events.py _sensitive   100% 2 0 0   100% 0 0   100%
open_webui/events.py _sanitize   89% 9 1 0   88% 8 1   88%
open_webui/events.py _actor   89% 9 1 0   75% 4 1   85%
open_webui/events.py event_name   75% 4 1 0   50% 2 1   67%
open_webui/events.py build_event   100% 7 0 0   100% 0 0   100%
open_webui/events.py dispatch_webhook_event   71% 14 4 0   83% 6 1   75%
open_webui/events.py schedule_webhook_dispatch   50% 4 2 0   100% 0 0   50%
open_webui/events.py WebhookEventSink.handle_event   100% 1 0 0   100% 0 0   100%
open_webui/events.py schedule_notification_dispatch   60% 5 2 0   100% 0 0   60%
open_webui/events.py NotificationEventSink.handle_event   100% 2 0 0   100% 2 0   100%
open_webui/events.py SocketSessionEventSink.handle_event   86% 7 1 0   75% 4 1   82%
open_webui/events.py dispatch_event_functions   27% 33 24 0   25% 12 3   27%
open_webui/events.py schedule_event_function_dispatch   50% 4 2 0   100% 0 0   50%
open_webui/events.py EventFunctionSink.handle_event   100% 1 0 0   100% 0 0   100%
open_webui/events.py publish_event   75% 8 2 0   100% 2 0   80%
open_webui/events.py publish_model_provider_request_failed   42% 19 11 0   20% 10 4   34%
open_webui/events.py (no function)   100% 264 0 0   100% 0 0   100%
open_webui/functions.py get_function_module_by_id   0% 12 12 0   0% 4 0   0%
open_webui/functions.py get_function_models   17% 36 30 0   12% 16 2   15%
open_webui/functions.py generate_function_chat_completion   0% 71 71 0   0% 30 0   0%
open_webui/functions.py generate_function_chat_completion.execute_pipe   0% 3 3 0   0% 2 0   0%
open_webui/functions.py generate_function_chat_completion.get_message_content   33% 6 4 0   17% 6 1   25%
open_webui/functions.py generate_function_chat_completion.process_line   0% 13 13 0   0% 6 0   0%
open_webui/functions.py generate_function_chat_completion.get_pipe_id   25% 4 3 0   0% 2 2   17%
open_webui/functions.py generate_function_chat_completion.get_function_params   15% 13 11 0   0% 4 2   12%
open_webui/functions.py generate_function_chat_completion.stream_content   0% 26 26 0   0% 16 0   0%
open_webui/functions.py (no function)   100% 25 0 0   100% 0 0   100%
open_webui/internal/db.py _pop_first   0% 2 2 0   100% 0 0   0%
open_webui/internal/db.py _is_postgres_url   100% 1 0 0   100% 0 0   100%
open_webui/internal/db.py extract_ssl_params_from_url   11% 18 16 0   10% 10 1   11%
open_webui/internal/db.py reattach_ssl_params_to_url   14% 7 6 0   0% 4 0   9%
open_webui/internal/db.py JSONField.process_bind_param   100% 1 0 0   100% 0 0   100%
open_webui/internal/db.py JSONField.process_result_value   100% 1 0 0   100% 0 0   100%
open_webui/internal/db.py JSONField.copy   100% 1 0 0   100% 0 0   100%
open_webui/internal/db.py RDSIAMTokenAuth.__init__   18% 11 9 0   0% 4 0   13%
open_webui/internal/db.py RDSIAMTokenAuth.client   25% 4 3 0   0% 2 0   17%
open_webui/internal/db.py RDSIAMTokenAuth.get_password   29% 7 5 0   0% 2 0   22%
open_webui/internal/db.py _set_iam_token_password   0% 2 2 0   0% 2 0   0%
open_webui/internal/db.py enable_iam_token_auth   20% 10 8 0   17% 6 1   19%
open_webui/internal/db.py _make_async_url   27% 11 8 0   20% 10 2   24%
open_webui/internal/db.py _json_codec_kwargs   100% 3 0 0   100% 0 0   100%
open_webui/internal/db.py _create_engine   100% 1 0 0   100% 0 0   100%
open_webui/internal/db.py _create_async_engine   100% 1 0 0   100% 0 0   100%
open_webui/internal/db.py create_sqlcipher_connection   0% 4 4 0   100% 0 0   0%
open_webui/internal/db.py get_session   0% 4 4 0   100% 0 0   0%
open_webui/internal/db.py _set_sqlite_pragmas   100% 1 0 0   100% 0 0   100%
open_webui/internal/db.py get_async_session   100% 4 0 0   100% 0 0   100%
open_webui/internal/db.py get_async_db   100% 4 0 0   100% 0 0   100%
open_webui/internal/db.py get_async_db_context   75% 4 1 0   50% 2 1   67%
open_webui/internal/db.py (no function)   81% 150 29 0   43% 56 18   70%
open_webui/main.py emit_chat_list_event   0% 6 6 0   0% 4 0   0%
open_webui/main.py SPAStaticFiles.get_response   88% 8 1 0   75% 4 1   83%
open_webui/main.py CORSStaticFiles.get_response   33% 3 2 0   100% 0 0   33%
open_webui/main.py lifespan   52% 75 36 0   43% 30 13   50%
open_webui/main.py recurrence_timeout_handler   0% 1 1 0   100% 0 0   0%
open_webui/main.py initialize_runtime_config   47% 43 23 0   25% 16 4   41%
open_webui/main.py get_models   47% 19 10 0   38% 8 3   44%
open_webui/main.py get_base_models   100% 2 0 0   100% 0 0   100%
open_webui/main.py unload_model   26% 66 49 0   28% 18 5   26%
open_webui/main.py embeddings   100% 3 0 0   50% 2 1   80%
open_webui/main.py _set_direct_model   0% 7 7 0   0% 2 0   0%
open_webui/main.py chat_completion   10% 242 219 0   3% 138 4   7%
open_webui/main.py chat_completion.run_initial_title_generation   0% 4 4 0   100% 0 0   0%
open_webui/main.py chat_completion.process_chat   3% 69 67 0   0% 28 2   2%
open_webui/main.py resolve_chat_message_tool_call   25% 4 3 0   100% 0 0   25%
open_webui/main.py count_message_tokens   100% 1 0 0   100% 0 0   100%
open_webui/main.py passthrough_anthropic_messages   11% 27 24 0   0% 6 0   9%
open_webui/main.py generate_messages   64% 28 10 0   25% 12 3   52%
open_webui/main.py verify_chat_ownership   33% 6 4 0   17% 6 1   25%
open_webui/main.py chat_completed   88% 8 1 0   50% 2 1   80%
open_webui/main.py chat_action   88% 8 1 0   50% 2 1   80%
open_webui/main.py stop_task_endpoint   60% 5 2 0   100% 0 0   60%
open_webui/main.py list_tasks_endpoint   100% 1 0 0   100% 0 0   100%
open_webui/main.py list_tasks_by_chat_id_endpoint   45% 11 6 0   33% 6 2   41%
open_webui/main.py stop_tasks_by_chat_id_endpoint   46% 28 15 0   35% 20 3   42%
open_webui/main.py get_app_config   54% 24 11 0   33% 12 4   47%
open_webui/main.py get_event_catalog   100% 1 0 0   100% 0 0   100%
open_webui/main.py get_event_webhooks_api   100% 1 0 0   100% 0 0   100%
open_webui/main.py create_event_webhook   100% 6 0 0   100% 0 0   100%
open_webui/main.py update_event_webhook   40% 10 6 0   50% 2 1   42%
open_webui/main.py delete_event_webhook_api   60% 5 2 0   50% 2 1   57%
open_webui/main.py get_app_version   100% 1 0 0   100% 0 0   100%
open_webui/main.py get_app_latest_release_version   29% 14 10 0   50% 2 1   31%
open_webui/main.py get_app_changelog   100% 1 0 0   100% 0 0   100%
open_webui/main.py get_current_usage   33% 9 6 0   50% 2 1   36%
open_webui/main.py register_client   6% 51 48 0   0% 14 0   5%
open_webui/main.py oauth_client_authorize   25% 16 12 0   10% 10 1   19%
open_webui/main.py oauth_client_callback   100% 1 0 0   100% 0 0   100%
open_webui/main.py oauth_login   100% 1 0 0   100% 0 0   100%
open_webui/main.py oauth_login_callback   100% 1 0 0   100% 0 0   100%
open_webui/main.py oauth_backchannel_logout   67% 3 1 0   50% 2 1   60%
open_webui/main.py get_manifest_json   43% 7 4 0   50% 2 1   44%
open_webui/main.py get_opensearch_xml   100% 3 0 0   100% 0 0   100%
open_webui/main.py _sync_db_ping   100% 2 0 0   100% 0 0   100%
open_webui/main.py async_db_ping   100% 1 0 0   100% 0 0   100%
open_webui/main.py healthcheck   100% 1 0 0   100% 0 0   100%
open_webui/main.py readiness_check   33% 18 12 0   33% 6 2   33%
open_webui/main.py check_db_health   100% 2 0 0   100% 0 0   100%
open_webui/main.py serve_cache_file   42% 12 7 0   33% 6 2   39%
open_webui/main.py swagger_ui_html   0% 1 1 0   100% 0 0   0%
open_webui/main.py (no function)   95% 288 14 0   50% 20 10   92%
open_webui/models/access_grants.py AccessGrantResponse.from_grant   0% 1 1 0   100% 0 0   0%
open_webui/models/access_grants.py access_control_to_grants   0% 16 16 0   0% 14 0   0%
open_webui/models/access_grants.py normalize_access_grants   59% 22 9 0   50% 16 2   55%
open_webui/models/access_grants.py has_public_read_access_grant   0% 4 4 0   0% 4 0   0%
open_webui/models/access_grants.py has_public_write_access_grant   0% 4 4 0   0% 4 0   0%
open_webui/models/access_grants.py has_anyone_read_access_grant   50% 4 2 0   25% 4 1   38%
open_webui/models/access_grants.py has_user_access_grant   0% 4 4 0   0% 4 0   0%
open_webui/models/access_grants.py strip_user_access_grants   0% 3 3 0   0% 2 0   0%
open_webui/models/access_grants.py strip_anyone_access_grants   0% 3 3 0   0% 2 0   0%
open_webui/models/access_grants.py grants_to_access_control   0% 19 19 0   0% 18 0   0%
open_webui/models/access_grants.py AccessGrantsTable.grant_access   0% 9 9 0   0% 2 0   0%
open_webui/models/access_grants.py AccessGrantsTable.revoke_access   0% 4 4 0   100% 0 0   0%
open_webui/models/access_grants.py AccessGrantsTable.revoke_all_access   75% 4 1 0   100% 0 0   75%
open_webui/models/access_grants.py AccessGrantsTable.set_access_control   0% 10 10 0   0% 2 0   0%
open_webui/models/access_grants.py AccessGrantsTable.set_access_grants   40% 10 6 0   0% 2 0   33%
open_webui/models/access_grants.py AccessGrantsTable.get_access_control   0% 5 5 0   100% 0 0   0%
open_webui/models/access_grants.py AccessGrantsTable.get_grants_by_resource   75% 4 1 0   100% 0 0   75%
open_webui/models/access_grants.py AccessGrantsTable.get_grants_by_resources   56% 9 4 0   50% 4 0   54%
open_webui/models/access_grants.py AccessGrantsTable.has_anyone_access   67% 3 1 0   100% 0 0   67%
open_webui/models/access_grants.py AccessGrantsTable.has_access   0% 11 11 0   0% 4 0   0%
open_webui/models/access_grants.py AccessGrantsTable.get_accessible_resource_ids   69% 13 4 0   83% 6 1   74%
open_webui/models/access_grants.py AccessGrantsTable.get_users_with_access   0% 20 20 0   0% 14 0   0%
open_webui/models/access_grants.py AccessGrantsTable.has_permission_filter   90% 21 2 0   75% 12 3   85%
open_webui/models/access_grants.py AccessGrantsTable._has_read_only_permission_filter   0% 10 10 0   0% 2 0   0%
open_webui/models/access_grants.py (no function)   100% 65 0 0   100% 0 0   100%
open_webui/models/auths.py SignupForm.check_profile_image_url   100% 3 0 0   100% 2 0   100%
open_webui/models/auths.py AuthsTable.insert_new_auth   67% 12 4 0   100% 0 0   67%
open_webui/models/auths.py AuthsTable.authenticate_user   77% 13 3 0   67% 6 0   74%
open_webui/models/auths.py AuthsTable.authenticate_user_by_api_key   0% 4 4 0   0% 2 0   0%
open_webui/models/auths.py AuthsTable.authenticate_user_by_email   0% 8 8 0   0% 2 0   0%
open_webui/models/auths.py AuthsTable.update_email_by_id   0% 8 8 0   0% 2 0   0%
open_webui/models/auths.py AuthsTable.update_user_password_by_id   0% 7 7 0   0% 2 0   0%
open_webui/models/auths.py AuthsTable.delete_auth_by_id   67% 6 2 0   50% 2 1   62%
open_webui/models/auths.py (no function)   100% 62 0 0   100% 0 0   100%
open_webui/models/automations.py AutomationTable.insert   17% 6 5 0   100% 0 0   17%
open_webui/models/automations.py AutomationTable.count_by_user   0% 3 3 0   100% 0 0   0%
open_webui/models/automations.py AutomationTable.get_by_id   67% 3 1 0   100% 0 0   67%
open_webui/models/automations.py AutomationTable.get_active_by_user   0% 3 3 0   100% 0 0   0%
open_webui/models/automations.py AutomationTable.search_automations   62% 21 8 0   50% 12 2   58%
open_webui/models/automations.py AutomationTable.update_by_id   0% 14 14 0   0% 4 0   0%
open_webui/models/automations.py AutomationTable.clear_folder_ids   0% 6 6 0   0% 2 0   0%
open_webui/models/automations.py AutomationTable.toggle   0% 9 9 0   0% 2 0   0%
open_webui/models/automations.py AutomationTable.delete   0% 7 7 0   0% 2 0   0%
open_webui/models/automations.py AutomationTable.claim_due   54% 26 12 0   50% 6 3   53%
open_webui/models/automations.py AutomationRunTable.insert   0% 5 5 0   100% 0 0   0%
open_webui/models/automations.py AutomationRunTable.get_latest   0% 4 4 0   100% 0 0   0%
open_webui/models/automations.py AutomationRunTable.get_latest_batch   0% 7 7 0   0% 2 0   0%
open_webui/models/automations.py AutomationRunTable.get_by_automation   0% 4 4 0   100% 0 0   0%
open_webui/models/automations.py AutomationRunTable.delete_by_automation   0% 4 4 0   100% 0 0   0%
open_webui/models/automations.py AutomationRunTable.get_runs_by_user_range   33% 3 2 0   100% 0 0   33%
open_webui/models/automations.py (no function)   100% 98 0 0   100% 0 0   100%
open_webui/models/calendar.py validate_calendar_rrule   0% 10 10 0   0% 4 0   0%
open_webui/models/calendar.py CalendarTable._get_access_grants   100% 1 0 0   100% 0 0   100%
open_webui/models/calendar.py CalendarTable._to_calendar_model   100% 3 0 0   100% 0 0   100%
open_webui/models/calendar.py CalendarTable.get_or_create_defaults   0% 10 10 0   0% 2 0   0%
open_webui/models/calendar.py CalendarTable.get_calendars_by_user   77% 13 3 0   0% 2 0   67%
open_webui/models/calendar.py CalendarTable.get_calendar_by_id   75% 4 1 0   100% 0 0   75%
open_webui/models/calendar.py CalendarTable.insert_new_calendar   88% 8 1 0   0% 2 0   70%
open_webui/models/calendar.py CalendarTable.update_calendar_by_id   32% 19 13 0   0% 12 0   19%
open_webui/models/calendar.py CalendarTable.set_default_calendar   50% 10 5 0   0% 2 0   42%
open_webui/models/calendar.py CalendarTable.delete_calendar_by_id   56% 18 8 0   0% 4 0   45%
open_webui/models/calendar.py CalendarEventTable._get_attendees   0% 4 4 0   100% 0 0   0%
open_webui/models/calendar.py CalendarEventTable._to_event_model   0% 3 3 0   100% 0 0   0%
open_webui/models/calendar.py CalendarEventTable.insert_new_event   11% 9 8 0   0% 2 0   9%
open_webui/models/calendar.py CalendarEventTable.get_event_by_id   50% 4 2 0   100% 0 0   50%
open_webui/models/calendar.py CalendarEventTable.get_events_by_range   0% 35 35 0   0% 14 0   0%
open_webui/models/calendar.py CalendarEventTable.search_events   25% 36 27 0   0% 14 0   18%
open_webui/models/calendar.py CalendarEventTable.update_event_by_id   0% 19 19 0   0% 12 0   0%
open_webui/models/calendar.py CalendarEventTable.get_upcoming_events   45% 20 11 0   10% 10 1   33%
open_webui/models/calendar.py CalendarEventTable.delete_event_by_id   0% 8 8 0   100% 0 0   0%
open_webui/models/calendar.py CalendarEventAttendeeTable.set_attendees   0% 12 12 0   0% 2 0   0%
open_webui/models/calendar.py CalendarEventAttendeeTable.update_rsvp   0% 9 9 0   0% 2 0   0%
open_webui/models/calendar.py CalendarEventAttendeeTable.get_attendees_by_event   0% 3 3 0   100% 0 0   0%
open_webui/models/calendar.py CalendarEventAttendeeTable.get_events_by_attendee   0% 3 3 0   100% 0 0   0%
open_webui/models/calendar.py (no function)   100% 171 0 0   100% 0 0   100%
open_webui/models/channels.py ChannelWebhookForm.check_profile_image_url   100% 3 0 0   100% 2 0   100%
open_webui/models/channels.py ChannelTable._get_access_grants   0% 1 1 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable._to_channel_model   0% 3 3 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable._collect_unique_user_ids   0% 6 6 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable._create_membership_models   0% 6 6 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable._has_permission   0% 1 1 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.insert_new_channel   0% 11 11 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.get_channels   0% 6 6 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.get_channels_by_user_id   0% 12 12 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.get_dm_channel_by_user_ids   0% 7 7 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.add_members_to_channel   0% 11 11 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.remove_members_from_channel   0% 4 4 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.is_user_channel_manager   0% 8 8 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.join_channel   0% 10 10 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.leave_channel   0% 11 11 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.get_member_by_channel_and_user_id   0% 4 4 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.get_members_by_channel_id   0% 4 4 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.pin_channel   0% 9 9 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.update_member_last_read_at   0% 9 9 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.update_member_active_status   0% 9 9 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.is_user_channel_member   0% 4 4 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.get_channel_by_id   0% 7 7 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.get_channels_by_file_id   0% 8 8 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.get_channels_by_file_id_and_user_id   0% 26 26 0   0% 12 0   0%
open_webui/models/channels.py ChannelTable.get_channel_by_id_and_user_id   0% 17 17 0   0% 6 0   0%
open_webui/models/channels.py ChannelTable.update_channel_by_id   0% 15 15 0   0% 4 0   0%
open_webui/models/channels.py ChannelTable.add_file_to_channel_by_id   0% 11 11 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.set_file_message_id_in_channel_by_id   0% 12 12 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.remove_file_from_channel_by_id   0% 7 7 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.delete_channel_by_id   0% 5 5 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.insert_webhook   0% 5 5 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.get_webhooks_by_channel_id   0% 4 4 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.get_webhook_by_id   0% 4 4 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.get_webhook_by_id_and_token   0% 4 4 0   100% 0 0   0%
open_webui/models/channels.py ChannelTable.update_webhook_by_id   0% 10 10 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.update_webhook_last_used_at   0% 8 8 0   0% 2 0   0%
open_webui/models/channels.py ChannelTable.delete_webhook_by_id   0% 4 4 0   100% 0 0   0%
open_webui/models/channels.py (no function)   100% 185 0 0   100% 0 0   100%
open_webui/models/chat_messages.py _normalize_timestamp   100% 8 0 0   100% 4 0   100%
open_webui/models/chat_messages.py _timezone   50% 4 2 0   100% 0 0   50%
open_webui/models/chat_messages.py _date_key   100% 1 0 0   100% 0 0   100%
open_webui/models/chat_messages.py get_usage   100% 2 0 0   100% 0 0   100%
open_webui/models/chat_messages.py _token_columns   50% 6 3 0   25% 4 1   40%
open_webui/models/chat_messages.py _extract_tool_names   100% 5 0 0   100% 0 0   100%
open_webui/models/chat_messages.py _extract_tool_names.add   0% 4 4 0   0% 4 0   0%
open_webui/models/chat_messages.py _extract_tool_names.walk   19% 16 13 0   14% 14 2   17%
open_webui/models/chat_messages.py ChatMessageTable._apply_message_data   65% 31 11 0   54% 28 13   59%
open_webui/models/chat_messages.py ChatMessageTable._build_message   100% 1 0 0   100% 0 0   100%
open_webui/models/chat_messages.py ChatMessageTable.upsert_message   50% 10 5 0   0% 2 0   42%
open_webui/models/chat_messages.py ChatMessageTable.upsert_messages   54% 13 6 0   33% 6 0   47%
open_webui/models/chat_messages.py ChatMessageTable.get_message_by_id   0% 3 3 0   100% 0 0   0%
open_webui/models/chat_messages.py ChatMessageTable.has_unfinished_assistant_by_chat_id   0% 3 3 0   100% 0 0   0%
open_webui/models/chat_messages.py ChatMessageTable.get_messages_by_chat_id   75% 4 1 0   100% 0 0   75%
open_webui/models/chat_messages.py ChatMessageTable.get_messages_map_by_chat_id   78% 37 8 0   71% 24 3   75%
open_webui/models/chat_messages.py ChatMessageTable.get_messages_by_user_id   75% 4 1 0   100% 0 0   75%
open_webui/models/chat_messages.py ChatMessageTable.get_messages_by_model_id   80% 10 2 0   75% 4 1   79%
open_webui/models/chat_messages.py ChatMessageTable.get_chat_ids_by_model_id   70% 10 3 0   50% 4 2   64%
open_webui/models/chat_messages.py ChatMessageTable.delete_messages_by_chat_id   0% 4 4 0   100% 0 0   0%
open_webui/models/chat_messages.py ChatMessageTable.delete_message_ids_by_chat_id   67% 6 2 0   50% 2 1   62%
open_webui/models/chat_messages.py ChatMessageTable.get_message_count_by_model   100% 13 0 0   100% 6 0   100%
open_webui/models/chat_messages.py ChatMessageTable.get_unique_counts_by_model   100% 13 0 0   100% 6 0   100%
open_webui/models/chat_messages.py ChatMessageTable.get_token_usage_by_model   100% 16 0 0   100% 6 0   100%
open_webui/models/chat_messages.py ChatMessageTable.get_token_usage_by_user   100% 16 0 0   100% 6 0   100%
open_webui/models/chat_messages.py ChatMessageTable.get_user_usage_summary   66% 32 11 0   40% 10 0   60%
open_webui/models/chat_messages.py ChatMessageTable.get_user_first_message_created_at   0% 4 4 0   100% 0 0   0%
open_webui/models/chat_messages.py ChatMessageTable.get_user_daily_usage   33% 24 16 0   0% 8 0   25%
open_webui/models/chat_messages.py ChatMessageTable.get_user_top_models   100% 7 0 0   100% 0 0   100%
open_webui/models/chat_messages.py ChatMessageTable.get_user_top_tools   40% 10 6 0   0% 6 0   25%
open_webui/models/chat_messages.py ChatMessageTable.get_message_count_by_user   100% 13 0 0   100% 6 0   100%
open_webui/models/chat_messages.py ChatMessageTable.get_message_count_by_chat   100% 13 0 0   100% 6 0   100%
open_webui/models/chat_messages.py ChatMessageTable.get_daily_message_counts_by_model   43% 28 16 0   38% 16 0   41%
open_webui/models/chat_messages.py ChatMessageTable.get_hourly_message_counts_by_model   0% 24 24 0   0% 14 0   0%
open_webui/models/chat_messages.py (no function)   100% 94 0 0   100% 0 0   100%
open_webui/models/chats.py chat_search_content_query   100% 2 0 0   100% 0 0   100%
open_webui/models/chats.py chat_search_terms   100% 1 0 0   100% 0 0   100%
open_webui/models/chats.py chat_search_message_content_match_sql   40% 5 3 0   25% 4 1   33%
open_webui/models/chats.py chat_list_order   100% 10 0 0   100% 4 0   100%
open_webui/models/chats.py is_internal_chat   0% 1 1 0   100% 0 0   0%
open_webui/models/chats.py ChatModel.normalize_variables   100% 1 0 0   100% 0 0   100%
open_webui/models/chats.py ChatResponse.normalize_variables   100% 1 0 0   100% 0 0   100%
open_webui/models/chats.py ChatTable._clean_null_bytes   100% 1 0 0   100% 0 0   100%
open_webui/models/chats.py ChatTable.get_current_message_id   82% 11 2 0   62% 8 1   74%
open_webui/models/chats.py ChatTable._sanitize_chat_row   67% 12 4 0   62% 8 3   65%
open_webui/models/chats.py ChatTable._last_descendant_id   0% 11 11 0   0% 4 0   0%
open_webui/models/chats.py ChatTable._add_child_id_to_parent   27% 11 8 0   17% 6 1   24%
open_webui/models/chats.py ChatTable._repair_chat_current_id   62% 39 15 0   54% 24 5   59%
open_webui/models/chats.py ChatTable.insert_new_chat   56% 16 7 0   17% 6 1   45%
open_webui/models/chats.py ChatTable.get_internal_chat_ids_by_parent_id   67% 3 1 0   100% 0 0   67%
open_webui/models/chats.py ChatTable.get_internal_chat_by_note_id   50% 4 2 0   100% 0 0   50%
open_webui/models/chats.py ChatTable.get_internal_chats_by_note_id   100% 3 0 0   100% 0 0   100%
open_webui/models/chats.py ChatTable._chat_import_form_to_chat_model   100% 3 0 0   100% 0 0   100%
open_webui/models/chats.py ChatTable.import_chats   81% 31 6 0   75% 20 3   78%
open_webui/models/chats.py ChatTable.update_chat_by_id   25% 20 15 0   0% 8 2   18%
open_webui/models/chats.py ChatTable.update_chat_variables_by_id   33% 12 8 0   0% 4 0   25%
open_webui/models/chats.py ChatTable.update_chat_last_read_at_by_id   0% 12 12 0   0% 2 0   0%
open_webui/models/chats.py ChatTable.mark_chat_unread_by_id   40% 10 6 0   0% 2 0   33%
open_webui/models/chats.py ChatTable.mark_chats_read_by_folder_ids   67% 6 2 0   50% 2 1   62%
open_webui/models/chats.py ChatTable.mark_chats_read_by_user_id   75% 4 1 0   100% 0 0   75%
open_webui/models/chats.py ChatTable.update_chat_title_by_id   0% 12 12 0   0% 2 0   0%
open_webui/models/chats.py ChatTable.update_chat_tags_by_id   0% 14 14 0   0% 4 0   0%
open_webui/models/chats.py ChatTable.get_chat_title_by_id   0% 6 6 0   0% 2 0   0%
open_webui/models/chats.py ChatTable.get_unresolved_parent_ids   100% 1 0 0   100% 0 0   100%
open_webui/models/chats.py ChatTable.merge_history   0% 13 13 0   0% 8 0   0%
open_webui/models/chats.py ChatTable.delete_message_from_history   91% 23 2 0   80% 10 2   88%
open_webui/models/chats.py ChatTable.upsert_message_to_history   84% 25 4 0   64% 14 5   77%
open_webui/models/chats.py ChatTable.backfill_messages_by_chat_id   100% 5 0 0   100% 0 0   100%
open_webui/models/chats.py ChatTable.reconcile_messages_by_chat_id   100% 4 0 0   100% 0 0   100%
open_webui/models/chats.py ChatTable.get_messages_map_by_chat_id   48% 21 11 0   42% 12 3   45%
open_webui/models/chats.py ChatTable.get_message_by_id_and_message_id   80% 10 2 0   75% 4 1   79%
open_webui/models/chats.py ChatTable.get_message_metadata   0% 10 10 0   0% 4 0   0%
open_webui/models/chats.py ChatTable.upsert_message_to_chat_by_id_and_message_id   38% 32 20 0   38% 8 1   38%
open_webui/models/chats.py ChatTable.delete_message_from_chat_by_id_and_message_id   26% 31 23 0   0% 4 0   23%
open_webui/models/chats.py ChatTable.add_message_status_to_chat_by_id_and_message_id   9% 22 20 0   0% 4 0   8%
open_webui/models/chats.py ChatTable.add_message_files_by_id_and_message_id   0% 17 17 0   0% 4 0   0%
open_webui/models/chats.py ChatTable.insert_shared_chat_by_chat_id   0% 13 13 0   0% 6 0   0%
open_webui/models/chats.py ChatTable.update_shared_chat_by_chat_id   0% 8 8 0   0% 2 0   0%
open_webui/models/chats.py ChatTable.delete_shared_chat_by_chat_id   60% 5 2 0   100% 0 0   60%
open_webui/models/chats.py ChatTable.unarchive_all_chats_by_user_id   57% 7 3 0   100% 0 0   57%
open_webui/models/chats.py ChatTable.update_chat_share_id_by_id   50% 8 4 0   100% 0 0   50%
open_webui/models/chats.py ChatTable.toggle_chat_pinned_by_id   40% 10 6 0   100% 0 0   40%
open_webui/models/chats.py ChatTable.toggle_chat_archive_by_id   36% 11 7 0   100% 0 0   36%
open_webui/models/chats.py ChatTable.archive_all_chats_by_user_id   57% 7 3 0   100% 0 0   57%
open_webui/models/chats.py ChatTable.get_archived_chat_list_by_user_id   76% 25 6 0   62% 16 2   71%
open_webui/models/chats.py ChatTable.count_archived_chats_by_user_id   75% 4 1 0   100% 0 0   75%
open_webui/models/chats.py ChatTable.get_shared_chat_list_by_user_id   0% 2 2 0   100% 0 0   0%
open_webui/models/chats.py ChatTable.get_chat_list_by_user_id   76% 25 6 0   62% 16 2   71%
open_webui/models/chats.py ChatTable.get_chat_title_id_list_by_user_id   94% 17 1 0   90% 10 1   93%
open_webui/models/chats.py ChatTable.get_chat_list_by_chat_ids   0% 6 6 0   100% 0 0   0%
open_webui/models/chats.py ChatTable.get_chat_metas_by_chat_ids   0% 6 6 0   0% 2 0   0%
open_webui/models/chats.py ChatTable.get_chats_by_model_id   74% 27 7 0   57% 14 2   68%
open_webui/models/chats.py ChatTable.get_chat_by_id   21% 14 11 0   0% 6 0   15%
open_webui/models/chats.py ChatTable.get_chat_by_share_id   75% 8 2 0   100% 2 0   80%
open_webui/models/chats.py ChatTable.get_chat_by_id_and_user_id   20% 15 12 0   0% 6 0   14%
open_webui/models/chats.py ChatTable.get_chat_by_id_for_user   38% 16 10 0   25% 12 1   32%
open_webui/models/chats.py ChatTable.is_chat_owner   0% 6 6 0   100% 0 0   0%
open_webui/models/chats.py ChatTable.get_chat_folder_id   43% 7 4 0   100% 0 0   43%
open_webui/models/chats.py ChatTable.count_unread_by_folder_ids   100% 6 0 0   100% 2 0   100%
open_webui/models/chats.py ChatTable.get_chats   80% 5 1 0   100% 0 0   80%
open_webui/models/chats.py ChatTable.get_user_usage_chat_stats   24% 17 13 0   0% 6 0   17%
open_webui/models/chats.py ChatTable.get_chats_by_user_id   88% 25 3 0   56% 16 5   76%
open_webui/models/chats.py ChatTable.get_pinned_chats_by_user_id   83% 6 1 0   100% 0 0   83%
open_webui/models/chats.py ChatTable.get_archived_chats_by_user_id   100% 5 0 0   100% 0 0   100%
open_webui/models/chats.py ChatTable.get_chats_by_user_id_and_search_text   69% 81 25 0   48% 48 17   61%
open_webui/models/chats.py ChatTable.get_chats_by_folder_id_and_user_id   90% 10 1 0   75% 4 1   86%
open_webui/models/chats.py ChatTable.get_all_chats_by_folder_id   90% 10 1 0   75% 4 1   86%
open_webui/models/chats.py ChatTable.count_all_chats_by_folder_id   75% 4 1 0   100% 0 0   75%
open_webui/models/chats.py ChatTable.get_chats_by_folder_ids_and_user_id   80% 5 1 0   100% 0 0   80%
open_webui/models/chats.py ChatTable.update_chat_folder_id_by_id_and_user_id   31% 13 9 0   0% 2 0   27%
open_webui/models/chats.py ChatTable.get_chat_tags_by_id_and_user_id   0% 6 6 0   100% 0 0   0%
open_webui/models/chats.py ChatTable.get_chat_list_by_user_id_and_tag_name   80% 20 4 0   62% 8 1   75%
open_webui/models/chats.py ChatTable.add_chat_tag_by_id_and_user_id_and_tag_name   54% 13 6 0   0% 4 0   41%
open_webui/models/chats.py ChatTable.count_chats_by_tag_name_and_user_id   100% 3 0 0   100% 0 0   100%
open_webui/models/chats.py ChatTable.count_chats_by_tag_ids_and_user_id   74% 19 5 0   50% 8 2   67%
open_webui/models/chats.py ChatTable.delete_orphan_tags_for_user   100% 6 0 0   100% 2 0   100%
open_webui/models/chats.py ChatTable.count_chats_by_folder_id_and_user_id   0% 6 6 0   100% 0 0   0%
open_webui/models/chats.py ChatTable.count_chats_by_folder_ids_and_user_id   0% 8 8 0   0% 2 0   0%
open_webui/models/chats.py ChatTable.delete_tag_by_id_and_user_id_and_tag_name   45% 11 6 0   100% 0 0   45%
open_webui/models/chats.py ChatTable.delete_chat_by_id   78% 9 2 0   100% 0 0   78%
open_webui/models/chats.py ChatTable.delete_chat_by_id_and_user_id   0% 9 9 0   100% 0 0   0%
open_webui/models/chats.py ChatTable.delete_chats_by_user_id   73% 11 3 0   100% 0 0   73%
open_webui/models/chats.py ChatTable.delete_chats_by_user_id_and_folder_id   0% 10 10 0   100% 0 0   0%
open_webui/models/chats.py ChatTable.move_chats_by_folder_id   0% 7 7 0   100% 0 0   0%
open_webui/models/chats.py ChatTable.delete_shared_chats_by_user_id   70% 10 3 0   100% 0 0   70%
open_webui/models/chats.py ChatTable.insert_chat_files   3% 30 29 0   0% 12 2   2%
open_webui/models/chats.py ChatTable.get_chat_files_by_chat_id_and_message_id   0% 4 4 0   100% 0 0   0%
open_webui/models/chats.py ChatTable.delete_chat_file   0% 7 7 0   100% 0 0   0%
open_webui/models/chats.py ChatTable.get_shared_chat_ids_by_file_id   0% 3 3 0   100% 0 0   0%
open_webui/models/chats.py ChatTable.update_chat_tasks_by_id   0% 10 10 0   0% 2 0   0%
open_webui/models/chats.py ChatTable.get_chat_tasks_by_id   0% 6 6 0   0% 2 0   0%
open_webui/models/chats.py (no function)   100% 291 0 0   100% 0 0   100%
open_webui/models/config.py _split_api_config_fragment   0% 18 18 0   0% 12 0   0%
open_webui/models/config.py _assign_path   0% 8 8 0   0% 4 0   0%
open_webui/models/config.py _json_value   100% 1 0 0   100% 0 0   100%
open_webui/models/config.py Config.configure   100% 3 0 0   100% 0 0   100%
open_webui/models/config.py Config.default_value   100% 1 0 0   100% 0 0   100%
open_webui/models/config.py Config.persistent_enabled_for   80% 5 1 0   75% 4 1   78%
open_webui/models/config.py Config.get   80% 5 1 0   50% 2 1   71%
open_webui/models/config.py Config.get_many   100% 8 0 0   100% 2 0   100%
open_webui/models/config.py Config.get_namespace   62% 8 3 0   50% 2 1   60%
open_webui/models/config.py Config.get_all   62% 8 3 0   25% 4 1   50%
open_webui/models/config.py Config.upsert   76% 17 4 0   70% 10 1   74%
open_webui/models/config.py Config.delete   0% 7 7 0   0% 2 0   0%
open_webui/models/config.py Config.clear   0% 3 3 0   100% 0 0   0%
open_webui/models/config.py Config.seed_defaults   25% 16 12 0   0% 8 0   17%
open_webui/models/config.py Config.rename_prefix   20% 20 16 0   12% 8 1   18%
open_webui/models/config.py Config.repair_config_rows   35% 63 41 0   15% 40 6   27%
open_webui/models/config.py (no function)   100% 49 0 0   100% 0 0   100%
open_webui/models/feedbacks.py FeedbackTable.insert_new_feedback   54% 13 6 0   0% 2 0   47%
open_webui/models/feedbacks.py FeedbackTable.get_feedback_by_id   33% 9 6 0   0% 2 0   27%
open_webui/models/feedbacks.py FeedbackTable.get_feedback_by_id_and_user_id   0% 9 9 0   0% 2 0   0%
open_webui/models/feedbacks.py FeedbackTable.get_feedbacks_by_chat_id   0% 7 7 0   100% 0 0   0%
open_webui/models/feedbacks.py FeedbackTable.get_feedback_items   43% 42 24 0   31% 26 4   38%
open_webui/models/feedbacks.py FeedbackTable.get_all_feedbacks   100% 3 0 0   100% 0 0   100%
open_webui/models/feedbacks.py FeedbackTable.get_all_feedback_ids   100% 3 0 0   100% 0 0   100%
open_webui/models/feedbacks.py FeedbackTable.get_distinct_model_ids   75% 4 1 0   100% 0 0   75%
open_webui/models/feedbacks.py FeedbackTable.get_feedbacks_for_leaderboard   100% 3 0 0   100% 0 0   100%
open_webui/models/feedbacks.py FeedbackTable.get_model_evaluation_history   68% 37 12 0   56% 18 2   64%
open_webui/models/feedbacks.py FeedbackTable.get_model_feedback_counts_by_day   50% 20 10 0   30% 10 1   43%
open_webui/models/feedbacks.py FeedbackTable.get_feedbacks_by_type   0% 3 3 0   100% 0 0   0%
open_webui/models/feedbacks.py FeedbackTable.get_feedbacks_by_user_id   25% 16 12 0   0% 6 0   18%
open_webui/models/feedbacks.py FeedbackTable.update_feedback_by_id   21% 14 11 0   0% 8 0   14%
open_webui/models/feedbacks.py FeedbackTable.update_feedback_by_id_and_user_id   0% 14 14 0   0% 8 0   0%
open_webui/models/feedbacks.py FeedbackTable.delete_feedback_by_id   38% 8 5 0   0% 2 0   30%
open_webui/models/feedbacks.py FeedbackTable.delete_feedback_by_id_and_user_id   0% 8 8 0   0% 2 0   0%
open_webui/models/feedbacks.py FeedbackTable.delete_feedbacks_by_user_id   75% 4 1 0   100% 0 0   75%
open_webui/models/feedbacks.py FeedbackTable.delete_all_feedbacks   75% 4 1 0   100% 0 0   75%
open_webui/models/feedbacks.py (no function)   100% 117 0 0   100% 0 0   100%
open_webui/models/files.py FileMeta.sanitize_meta   62% 8 3 0   50% 6 3   57%
open_webui/models/files.py FilesTable.insert_new_file   60% 15 6 0   25% 4 1   53%
open_webui/models/files.py FilesTable.get_file_by_id   75% 8 2 0   100% 2 0   80%
open_webui/models/files.py FilesTable.get_file_by_id_and_user_id   0% 9 9 0   0% 2 0   0%
open_webui/models/files.py FilesTable.get_file_metadata_by_id   12% 8 7 0   0% 2 0   10%
open_webui/models/files.py FilesTable.get_files   0% 3 3 0   100% 0 0   0%
open_webui/models/files.py FilesTable.count_files_by_user_id   83% 6 1 0   50% 2 1   75%
open_webui/models/files.py FilesTable.check_access_by_user_id   0% 6 6 0   0% 4 0   0%
open_webui/models/files.py FilesTable.get_files_by_ids   0% 3 3 0   100% 0 0   0%
open_webui/models/files.py FilesTable.get_file_metadatas_by_ids   0% 3 3 0   100% 0 0   0%
open_webui/models/files.py FilesTable.get_files_by_user_id   0% 3 3 0   100% 0 0   0%
open_webui/models/files.py FilesTable.get_file_list   67% 9 3 0   50% 2 1   64%
open_webui/models/files.py FilesTable._glob_to_like_pattern   100% 6 0 0   100% 0 0   100%
open_webui/models/files.py FilesTable.search_files   89% 9 1 0   50% 4 2   77%
open_webui/models/files.py FilesTable.update_file_by_id   0% 16 16 0   0% 6 0   0%
open_webui/models/files.py FilesTable.update_file_hash_by_id   40% 10 6 0   100% 0 0   40%
open_webui/models/files.py FilesTable.update_file_data_by_id   70% 10 3 0   100% 0 0   70%
open_webui/models/files.py FilesTable.update_file_metadata_by_id   100% 10 0 0   100% 0 0   100%
open_webui/models/files.py FilesTable.update_file_name_by_id   36% 11 7 0   100% 0 0   36%
open_webui/models/files.py FilesTable.get_pending_files_for_knowledge   0% 10 10 0   100% 0 0   0%
open_webui/models/files.py FilesTable.delete_file_by_id   0% 7 7 0   100% 0 0   0%
open_webui/models/files.py FilesTable.delete_all_files   57% 7 3 0   100% 0 0   57%
open_webui/models/files.py (no function)   100% 93 0 0   100% 0 0   100%
open_webui/models/folders.py FolderTable.insert_new_folder   57% 14 6 0   0% 2 0   50%
open_webui/models/folders.py FolderTable.get_folder_by_id_and_user_id   33% 9 6 0   0% 2 0   27%
open_webui/models/folders.py FolderTable.get_folder_by_id   33% 9 6 0   0% 2 0   27%
open_webui/models/folders.py FolderTable.get_folders_by_ids   100% 3 0 0   100% 0 0   100%
open_webui/models/folders.py FolderTable.get_shared_folder_ids_for_user   38% 13 8 0   17% 6 1   32%
open_webui/models/folders.py FolderTable.get_children_folders_by_id_and_user_id   46% 13 7 0   0% 2 0   40%
open_webui/models/folders.py FolderTable.get_children_folders_by_id_and_user_id.get_children   0% 7 7 0   0% 4 0   0%
open_webui/models/folders.py FolderTable.get_folders_by_user_id   100% 3 0 0   100% 0 0   100%
open_webui/models/folders.py FolderTable.get_folder_by_parent_id_and_user_id_and_name   30% 10 7 0   0% 2 0   25%
open_webui/models/folders.py FolderTable.get_folders_by_parent_id_and_user_id   100% 3 0 0   100% 0 0   100%
open_webui/models/folders.py FolderTable.get_folder_ids_by_id_and_user_id_in_subtree   40% 15 9 0   25% 8 2   35%
open_webui/models/folders.py FolderTable.update_folder_parent_id_by_id_and_user_id   31% 13 9 0   0% 2 0   27%
open_webui/models/folders.py FolderTable.update_folder_by_id_and_user_id   36% 22 14 0   0% 8 0   27%
open_webui/models/folders.py FolderTable.update_folder_is_expanded_by_id_and_user_id   31% 13 9 0   0% 2 0   27%
open_webui/models/folders.py FolderTable.delete_folder_by_id_and_user_id   0% 17 17 0   0% 2 0   0%
open_webui/models/folders.py FolderTable.delete_folder_by_id_and_user_id.delete_children   0% 11 11 0   0% 4 0   0%
open_webui/models/folders.py FolderTable.normalize_folder_name   0% 2 2 0   100% 0 0   0%
open_webui/models/folders.py FolderTable.search_folders_by_names   17% 18 15 0   8% 12 1   13%
open_webui/models/folders.py FolderTable.search_folders_by_name_contains   0% 10 10 0   0% 4 0   0%
open_webui/models/folders.py (no function)   100% 87 0 0   100% 0 0   100%
open_webui/models/functions.py FunctionsTable.insert_new_function   0% 12 12 0   0% 2 0   0%
open_webui/models/functions.py FunctionsTable.sync_functions   46% 24 13 0   0% 8 2   34%
open_webui/models/functions.py FunctionsTable.get_function_by_id   50% 6 3 0   100% 0 0   50%
open_webui/models/functions.py FunctionsTable.get_functions_by_ids   20% 10 8 0   0% 2 0   17%
open_webui/models/functions.py FunctionsTable.get_functions   75% 8 2 0   50% 4 0   67%
open_webui/models/functions.py FunctionsTable.get_function_list   71% 7 2 0   100% 0 0   71%
open_webui/models/functions.py FunctionsTable.get_functions_by_type   80% 5 1 0   50% 2 1   71%
open_webui/models/functions.py FunctionsTable.get_global_filter_functions   0% 3 3 0   100% 0 0   0%
open_webui/models/functions.py FunctionsTable.get_active_function_ids_by_type   0% 3 3 0   100% 0 0   0%
open_webui/models/functions.py FunctionsTable.get_active_filter_ids   0% 1 1 0   100% 0 0   0%
open_webui/models/functions.py FunctionsTable.get_global_action_functions   0% 3 3 0   100% 0 0   0%
open_webui/models/functions.py FunctionsTable.get_function_valves_by_id   0% 7 7 0   100% 0 0   0%
open_webui/models/functions.py FunctionsTable.get_function_valves_by_ids   0% 9 9 0   0% 2 0   0%
open_webui/models/functions.py FunctionsTable.update_function_valves_by_id   0% 9 9 0   100% 0 0   0%
open_webui/models/functions.py FunctionsTable.update_function_metadata_by_id   0% 14 14 0   0% 4 0   0%
open_webui/models/functions.py FunctionsTable.get_user_valves_by_id_and_user_id   0% 13 13 0   0% 4 0   0%
open_webui/models/functions.py FunctionsTable.update_user_valves_by_id_and_user_id   77% 13 3 0   50% 4 2   71%
open_webui/models/functions.py FunctionsTable.update_function_by_id   62% 8 3 0   100% 0 0   62%
open_webui/models/functions.py FunctionsTable.deactivate_all_functions   0% 7 7 0   100% 0 0   0%
open_webui/models/functions.py FunctionsTable.delete_function_by_id   57% 7 3 0   100% 0 0   57%
open_webui/models/functions.py (no function)   100% 95 0 0   100% 0 0   100%
open_webui/models/groups.py GroupTable._ensure_default_share_config   100% 7 0 0   67% 6 2   85%
open_webui/models/groups.py GroupTable.insert_new_group   62% 13 5 0   0% 2 0   53%
open_webui/models/groups.py GroupTable.get_all_groups   0% 4 4 0   100% 0 0   0%
open_webui/models/groups.py GroupTable.get_group_by_name   0% 4 4 0   100% 0 0   0%
open_webui/models/groups.py GroupTable.get_groups   24% 25 19 0   8% 12 1   19%
open_webui/models/groups.py GroupTable.search_groups   0% 16 16 0   0% 8 0   0%
open_webui/models/groups.py GroupTable.get_groups_by_member_id   100% 3 0 0   100% 0 0   100%
open_webui/models/groups.py GroupTable.get_groups_by_member_ids   43% 7 4 0   0% 2 0   33%
open_webui/models/groups.py GroupTable.get_group_by_id   43% 7 4 0   100% 0 0   43%
open_webui/models/groups.py GroupTable.get_group_user_ids_by_id   33% 6 4 0   0% 2 0   25%
open_webui/models/groups.py GroupTable.get_group_user_ids_by_ids   0% 7 7 0   0% 2 0   0%
open_webui/models/groups.py GroupTable.set_group_user_ids_by_id   0% 6 6 0   100% 0 0   0%
open_webui/models/groups.py GroupTable.get_group_member_count_by_id   50% 4 2 0   100% 0 0   50%
open_webui/models/groups.py GroupTable.get_group_member_counts_by_ids   0% 6 6 0   0% 2 0   0%
open_webui/models/groups.py GroupTable.update_group_by_id   62% 8 3 0   100% 0 0   62%
open_webui/models/groups.py GroupTable.delete_group_by_id   57% 7 3 0   100% 0 0   57%
open_webui/models/groups.py GroupTable.delete_all_groups   0% 7 7 0   100% 0 0   0%
open_webui/models/groups.py GroupTable.remove_user_from_all_groups   33% 12 8 0   0% 2 0   29%
open_webui/models/groups.py GroupTable.create_groups_by_group_names   0% 17 17 0   0% 4 0   0%
open_webui/models/groups.py GroupTable.sync_groups_by_group_names   0% 23 23 0   0% 6 0   0%
open_webui/models/groups.py GroupTable.add_users_to_group   24% 21 16 0   0% 4 0   20%
open_webui/models/groups.py GroupTable.remove_users_from_group   38% 16 10 0   0% 4 0   30%
open_webui/models/groups.py (no function)   100% 93 0 0   100% 0 0   100%
open_webui/models/knowledge.py KnowledgeTable._get_access_grants   100% 1 0 0   100% 0 0   100%
open_webui/models/knowledge.py KnowledgeTable._to_knowledge_model   100% 3 0 0   100% 0 0   100%
open_webui/models/knowledge.py KnowledgeTable.insert_new_knowledge   77% 13 3 0   50% 2 1   73%
open_webui/models/knowledge.py KnowledgeTable.get_knowledge_bases   92% 13 1 0   100% 2 0   93%
open_webui/models/knowledge.py KnowledgeTable.search_knowledge_bases   51% 47 23 0   38% 24 5   46%
open_webui/models/knowledge.py KnowledgeTable.search_knowledge_files   69% 35 11 0   50% 14 1   63%
open_webui/models/knowledge.py KnowledgeTable.check_access_by_user_id   0% 9 9 0   0% 6 0   0%
open_webui/models/knowledge.py KnowledgeTable.get_knowledge_by_id   43% 7 4 0   100% 0 0   43%
open_webui/models/knowledge.py KnowledgeTable.get_knowledges_by_file_id   56% 9 4 0   100% 0 0   56%
open_webui/models/knowledge.py KnowledgeTable.search_files_by_id   0% 46 46 0   0% 24 0   0%
open_webui/models/knowledge.py KnowledgeTable.get_files_by_id   57% 7 3 0   100% 0 0   57%
open_webui/models/knowledge.py KnowledgeTable.get_file_metadatas_by_id   0% 6 6 0   100% 0 0   0%
open_webui/models/knowledge.py KnowledgeTable.add_file_to_knowledge_by_id   0% 12 12 0   0% 2 0   0%
open_webui/models/knowledge.py KnowledgeTable.has_file   0% 6 6 0   100% 0 0   0%
open_webui/models/knowledge.py KnowledgeTable.remove_file_from_knowledge_by_id   0% 7 7 0   100% 0 0   0%
open_webui/models/knowledge.py KnowledgeTable.reset_knowledge_by_id   0% 12 12 0   0% 2 0   0%
open_webui/models/knowledge.py KnowledgeTable.update_knowledge_by_id   0% 10 10 0   0% 2 0   0%
open_webui/models/knowledge.py KnowledgeTable.update_knowledge_meta_by_id   0% 8 8 0   100% 0 0   0%
open_webui/models/knowledge.py KnowledgeTable.delete_knowledge_by_id   0% 8 8 0   100% 0 0   0%
open_webui/models/knowledge.py KnowledgeTable.delete_all_knowledge   73% 11 3 0   100% 2 0   77%
open_webui/models/knowledge.py KnowledgeTable.create_directory   0% 11 11 0   100% 0 0   0%
open_webui/models/knowledge.py KnowledgeTable.get_directories   0% 8 8 0   0% 2 0   0%
open_webui/models/knowledge.py KnowledgeTable.get_all_directories   0% 4 4 0   100% 0 0   0%
open_webui/models/knowledge.py KnowledgeTable.get_files_with_directory_ids   0% 6 6 0   100% 0 0   0%
open_webui/models/knowledge.py KnowledgeTable.get_directory_by_id   0% 4 4 0   100% 0 0   0%
open_webui/models/knowledge.py KnowledgeTable.get_directory_breadcrumbs   0% 16 16 0   0% 6 0   0%
open_webui/models/knowledge.py KnowledgeTable.rename_directory   0% 8 8 0   100% 0 0   0%
open_webui/models/knowledge.py KnowledgeTable.move_directory   0% 18 18 0   0% 6 0   0%
open_webui/models/knowledge.py KnowledgeTable.update_directory   0% 7 7 0   0% 6 0   0%
open_webui/models/knowledge.py KnowledgeTable.delete_directory   0% 17 17 0   0% 4 0   0%
open_webui/models/knowledge.py KnowledgeTable._move_files_from_subtree   0% 5 5 0   0% 2 0   0%
open_webui/models/knowledge.py KnowledgeTable._delete_files_in_subtree   0% 5 5 0   0% 2 0   0%
open_webui/models/knowledge.py KnowledgeTable.get_files_by_id_and_directory_id   0% 7 7 0   0% 2 0   0%
open_webui/models/knowledge.py KnowledgeTable.move_file_to_directory   0% 8 8 0   100% 0 0   0%
open_webui/models/knowledge.py (no function)   100% 133 0 0   100% 0 0   100%
open_webui/models/memories.py MemoriesTable.normalize_memory_type   100% 1 0 0   100% 0 0   100%
open_webui/models/memories.py MemoriesTable.insert_new_memory   83% 6 1 0   100% 0 0   83%
open_webui/models/memories.py MemoriesTable.update_memory_by_id_and_user_id   22% 18 14 0   0% 10 0   14%
open_webui/models/memories.py MemoriesTable.get_memories   57% 7 3 0   100% 0 0   57%
open_webui/models/memories.py MemoriesTable.get_memories_by_user_id   57% 7 3 0   100% 0 0   57%
open_webui/models/memories.py MemoriesTable.get_memory_by_id   0% 6 6 0   100% 0 0   0%
open_webui/models/memories.py MemoriesTable.delete_memory_by_id   0% 7 7 0   100% 0 0   0%
open_webui/models/memories.py MemoriesTable.delete_memories_by_user_id   57% 7 3 0   100% 0 0   57%
open_webui/models/memories.py MemoriesTable.delete_memory_by_id_and_user_id   40% 10 6 0   0% 2 0   33%
open_webui/models/memories.py MemoriesTable.apply_memory_operations   33% 55 37 0   23% 26 4   30%
open_webui/models/memories.py (no function)   100% 42 0 0   100% 0 0   100%
open_webui/models/messages.py MessageUserSlimResponse.convert_data_to_bool   0% 3 3 0   0% 2 0   0%
open_webui/models/messages.py MessageTable.insert_new_message   0% 10 10 0   100% 0 0   0%
open_webui/models/messages.py MessageTable.get_message_by_id   0% 18 18 0   0% 8 0   0%
open_webui/models/messages.py MessageTable._resolve_user_info   0% 7 7 0   0% 4 0   0%
open_webui/models/messages.py MessageTable.get_thread_replies_by_message_id   0% 9 9 0   0% 2 0   0%
open_webui/models/messages.py MessageTable.get_reply_user_ids_by_message_id   0% 3 3 0   100% 0 0   0%
open_webui/models/messages.py MessageTable.get_messages_by_channel_id   0% 9 9 0   0% 2 0   0%
open_webui/models/messages.py MessageTable.get_messages_by_parent_id   0% 14 14 0   0% 6 0   0%
open_webui/models/messages.py MessageTable.get_last_message_by_channel_id   0% 4 4 0   100% 0 0   0%
open_webui/models/messages.py MessageTable.get_pinned_messages_by_channel_id   0% 4 4 0   100% 0 0   0%
open_webui/models/messages.py MessageTable.update_message_by_id   0% 9 9 0   100% 0 0   0%
open_webui/models/messages.py MessageTable.update_is_pinned_by_id   0% 8 8 0   100% 0 0   0%
open_webui/models/messages.py MessageTable.get_unread_message_count   0% 6 6 0   0% 2 0   0%
open_webui/models/messages.py MessageTable.add_reaction_to_message   0% 12 12 0   0% 2 0   0%
open_webui/models/messages.py MessageTable.get_reactions_by_message_id   0% 10 10 0   0% 4 0   0%
open_webui/models/messages.py MessageTable.get_reactions_by_message_ids   0% 15 15 0   0% 8 0   0%
open_webui/models/messages.py MessageTable.get_thread_reply_counts_by_message_ids   0% 5 5 0   0% 2 0   0%
open_webui/models/messages.py MessageTable.remove_reaction_by_id_and_user_id_and_name   0% 4 4 0   100% 0 0   0%
open_webui/models/messages.py MessageTable.delete_reactions_by_id   0% 4 4 0   100% 0 0   0%
open_webui/models/messages.py MessageTable.delete_replies_by_id   0% 4 4 0   100% 0 0   0%
open_webui/models/messages.py MessageTable.delete_message_by_id   0% 5 5 0   100% 0 0   0%
open_webui/models/messages.py MessageTable.search_messages_by_channel_ids   0% 10 10 0   0% 4 0   0%
open_webui/models/messages.py (no function)   100% 103 0 0   100% 0 0   100%
open_webui/models/models.py normalize_model_tags   0% 8 8 0   0% 6 0   0%
open_webui/models/models.py strip_extracted_content_from_model_knowledge   68% 22 7 0   67% 12 2   68%
open_webui/models/models.py ModelMeta.check_image_url   100% 8 0 0   100% 4 0   100%
open_webui/models/models.py ModelMeta.strip_knowledge_content   100% 1 0 0   100% 0 0   100%
open_webui/models/models.py ModelMeta.normalize_tags   67% 3 1 0   50% 2 1   60%
open_webui/models/models.py ModelsTable._get_access_grants   100% 1 0 0   100% 0 0   100%
open_webui/models/models.py ModelsTable._to_model_model   70% 10 3 0   33% 6 2   56%
open_webui/models/models.py ModelsTable.insert_new_model   67% 12 4 0   50% 2 1   64%
open_webui/models/models.py ModelsTable.get_all_models   75% 12 3 0   100% 2 0   79%
open_webui/models/models.py ModelsTable.get_models   84% 19 3 0   83% 6 1   84%
open_webui/models/models.py ModelsTable.get_model_owner_ids_by_file_id   0% 3 3 0   100% 0 0   0%
open_webui/models/models.py ModelsTable._meta_has_tag   43% 7 4 0   33% 6 2   38%
open_webui/models/models.py ModelsTable.get_base_models   75% 8 2 0   0% 2 0   60%
open_webui/models/models.py ModelsTable._has_permission   100% 1 0 0   100% 0 0   100%
open_webui/models/models.py ModelsTable.search_models   66% 50 17 0   50% 30 5   60%
open_webui/models/models.py ModelsTable.get_model_meta_by_id   50% 6 3 0   100% 0 0   50%
open_webui/models/models.py ModelsTable.get_all_tags   17% 23 19 0   8% 12 1   14%
open_webui/models/models.py ModelsTable.get_model_by_id   67% 6 2 0   100% 0 0   67%
open_webui/models/models.py ModelsTable.get_models_by_ids   67% 9 3 0   100% 0 0   67%
open_webui/models/models.py ModelsTable.toggle_model_by_id   0% 12 12 0   0% 2 0   0%
open_webui/models/models.py ModelsTable.update_model_by_id   67% 12 4 0   0% 2 0   57%
open_webui/models/models.py ModelsTable.update_model_updated_at_by_id   42% 12 7 0   0% 2 0   36%
open_webui/models/models.py ModelsTable.delete_model_by_id   62% 8 3 0   100% 0 0   62%
open_webui/models/models.py ModelsTable.delete_all_models   73% 11 3 0   100% 2 0   77%
open_webui/models/models.py ModelsTable.sync_models   92% 25 2 0   75% 8 2   88%
open_webui/models/models.py (no function)   100% 103 0 0   100% 0 0   100%
open_webui/models/notes.py sanitize_note_data   58% 12 5 0   62% 8 1   60%
open_webui/models/notes.py NoteModel.sanitize_data   100% 1 0 0   100% 0 0   100%
open_webui/models/notes.py NoteForm.sanitize_data   100% 1 0 0   100% 0 0   100%
open_webui/models/notes.py NoteUpdateForm.sanitize_data   0% 1 1 0   100% 0 0   0%
open_webui/models/notes.py NoteTable._get_access_grants   100% 1 0 0   100% 0 0   100%
open_webui/models/notes.py NoteTable._to_note_model   100% 4 0 0   100% 0 0   100%
open_webui/models/notes.py NoteTable._has_permission   100% 1 0 0   100% 0 0   100%
open_webui/models/notes.py NoteTable.insert_new_note   100% 7 0 0   100% 0 0   100%
open_webui/models/notes.py NoteTable.get_notes   0% 11 11 0   0% 4 0   0%
open_webui/models/notes.py NoteTable.search_notes   65% 48 17 0   50% 30 5   59%
open_webui/models/notes.py NoteTable.get_notes_by_user_id   93% 14 1 0   100% 4 0   94%
open_webui/models/notes.py NoteTable.get_note_by_id   75% 4 1 0   100% 0 0   75%
open_webui/models/notes.py NoteTable.update_note_by_id   35% 20 13 0   0% 12 0   22%
open_webui/models/notes.py NoteTable.toggle_note_pinned_by_id   44% 16 9 0   0% 4 0   35%
open_webui/models/notes.py NoteTable.get_pinned_notes_by_user_id   90% 10 1 0   100% 0 0   90%
open_webui/models/notes.py NoteTable.delete_note_by_id   67% 9 3 0   100% 0 0   67%
open_webui/models/notes.py NoteTable.get_pinned_note_ids   67% 3 1 0   100% 0 0   67%
open_webui/models/notes.py (no function)   100% 86 0 0   100% 0 0   100%
open_webui/models/oauth_sessions.py OAuthSessionTable.__init__   58% 12 5 0   50% 4 2   56%
open_webui/models/oauth_sessions.py OAuthSessionTable._encrypt_token   0% 7 7 0   100% 0 0   0%
open_webui/models/oauth_sessions.py OAuthSessionTable._decrypt_token   0% 6 6 0   100% 0 0   0%
open_webui/models/oauth_sessions.py OAuthSessionTable.create_session   0% 14 14 0   0% 2 0   0%
open_webui/models/oauth_sessions.py OAuthSessionTable.get_session_by_id   0% 10 10 0   0% 2 0   0%
open_webui/models/oauth_sessions.py OAuthSessionTable.get_session_by_id_and_user_id   0% 10 10 0   0% 2 0   0%
open_webui/models/oauth_sessions.py OAuthSessionTable.get_session_by_provider_and_user_id   0% 10 10 0   0% 2 0   0%
open_webui/models/oauth_sessions.py OAuthSessionTable.get_sessions_by_user_id   19% 16 13 0   0% 2 0   17%
open_webui/models/oauth_sessions.py OAuthSessionTable.update_session_by_id   0% 13 13 0   0% 2 0   0%
open_webui/models/oauth_sessions.py OAuthSessionTable.delete_session_by_id   0% 8 8 0   100% 0 0   0%
open_webui/models/oauth_sessions.py OAuthSessionTable.delete_sessions_by_user_id   0% 8 8 0   100% 0 0   0%
open_webui/models/oauth_sessions.py OAuthSessionTable.delete_sessions_by_user_id_and_provider   50% 8 4 0   100% 0 0   50%
open_webui/models/oauth_sessions.py OAuthSessionTable.delete_sessions_by_provider   0% 8 8 0   100% 0 0   0%
open_webui/models/oauth_sessions.py (no function)   100% 53 0 0   100% 0 0   100%
open_webui/models/prompt_history.py PromptHistoryTable.create_history_entry   80% 5 1 0   100% 0 0   80%
open_webui/models/prompt_history.py PromptHistoryTable.get_history_by_prompt_id   86% 7 1 0   100% 0 0   86%
open_webui/models/prompt_history.py PromptHistoryTable.get_history_entry_by_id   33% 6 4 0   0% 2 0   25%
open_webui/models/prompt_history.py PromptHistoryTable.get_latest_history_entry   33% 6 4 0   0% 2 0   25%
open_webui/models/prompt_history.py PromptHistoryTable.get_history_count   0% 3 3 0   100% 0 0   0%
open_webui/models/prompt_history.py PromptHistoryTable.compute_diff   0% 13 13 0   0% 2 0   0%
open_webui/models/prompt_history.py PromptHistoryTable.delete_history_by_prompt_id   75% 4 1 0   100% 0 0   75%
open_webui/models/prompt_history.py PromptHistoryTable.delete_history_entry   17% 12 10 0   0% 4 0   12%
open_webui/models/prompt_history.py (no function)   100% 39 0 0   100% 0 0   100%
open_webui/models/prompts.py PromptsTable._get_access_grants   100% 1 0 0   100% 0 0   100%
open_webui/models/prompts.py PromptsTable._to_prompt_model   100% 3 0 0   100% 0 0   100%
open_webui/models/prompts.py PromptsTable.insert_new_prompt   80% 20 4 0   50% 4 2   75%
open_webui/models/prompts.py PromptsTable.get_prompt_by_id   44% 9 5 0   0% 2 0   36%
open_webui/models/prompts.py PromptsTable.get_prompt_by_command   50% 6 3 0   0% 2 0   38%
open_webui/models/prompts.py PromptsTable.get_prompts   100% 12 0 0   100% 2 0   100%
open_webui/models/prompts.py PromptsTable.get_prompts_by_user_id   0% 19 19 0   0% 4 0   0%
open_webui/models/prompts.py PromptsTable.search_prompts   60% 58 23 0   44% 34 7   54%
open_webui/models/prompts.py PromptsTable.update_prompt_by_command   0% 30 30 0   0% 10 0   0%
open_webui/models/prompts.py PromptsTable.update_prompt_by_id   81% 32 6 0   67% 12 0   77%
open_webui/models/prompts.py PromptsTable.update_prompt_metadata   33% 15 10 0   0% 4 0   26%
open_webui/models/prompts.py PromptsTable.update_prompt_version   74% 23 6 0   50% 6 1   69%
open_webui/models/prompts.py PromptsTable.toggle_prompt_active   43% 14 8 0   25% 4 1   39%
open_webui/models/prompts.py PromptsTable.delete_prompt_by_command   0% 13 13 0   0% 2 0   0%
open_webui/models/prompts.py PromptsTable.delete_prompt_by_id   50% 14 7 0   0% 2 0   44%
open_webui/models/prompts.py PromptsTable.get_tags   25% 12 9 0   0% 8 0   15%
open_webui/models/prompts.py PromptsTable.get_tags_by_user_id   0% 16 16 0   0% 8 0   0%
open_webui/models/prompts.py (no function)   100% 84 0 0   100% 0 0   100%
open_webui/models/shared_chats.py SharedChatsTable.create   42% 12 7 0   0% 2 0   36%
open_webui/models/shared_chats.py SharedChatsTable.update   43% 14 8 0   0% 4 0   33%
open_webui/models/shared_chats.py SharedChatsTable.get_by_id   40% 5 3 0   0% 2 0   29%
open_webui/models/shared_chats.py SharedChatsTable.get_by_chat_id   0% 6 6 0   0% 2 0   0%
open_webui/models/shared_chats.py SharedChatsTable.get_by_user_id   79% 24 5 0   62% 16 2   72%
open_webui/models/shared_chats.py SharedChatsTable.delete_by_id   0% 7 7 0   100% 0 0   0%
open_webui/models/shared_chats.py SharedChatsTable.delete_by_chat_id   57% 7 3 0   100% 0 0   57%
open_webui/models/shared_chats.py SharedChatsTable.delete_all_by_user_id   57% 7 3 0   100% 0 0   57%
open_webui/models/shared_chats.py (no function)   100% 44 0 0   100% 0 0   100%
open_webui/models/skills.py SkillsTable._get_access_grants   100% 1 0 0   100% 0 0   100%
open_webui/models/skills.py SkillsTable._to_skill_model   100% 3 0 0   100% 0 0   100%
open_webui/models/skills.py SkillsTable.insert_new_skill   67% 12 4 0   50% 2 1   64%
open_webui/models/skills.py SkillsTable.get_skill_by_id   67% 6 2 0   100% 0 0   67%
open_webui/models/skills.py SkillsTable.get_skill_by_name   0% 7 7 0   100% 0 0   0%
open_webui/models/skills.py SkillsTable.get_skills   79% 19 4 0   67% 6 2   76%
open_webui/models/skills.py SkillsTable.search_skills   56% 45 20 0   42% 26 5   51%
open_webui/models/skills.py SkillsTable.update_skill_by_id   91% 11 1 0   0% 2 0   77%
open_webui/models/skills.py SkillsTable.toggle_skill_by_id   42% 12 7 0   0% 2 0   36%
open_webui/models/skills.py SkillsTable.delete_skill_by_id   62% 8 3 0   100% 0 0   62%
open_webui/models/skills.py (no function)   100% 80 0 0   100% 0 0   100%
open_webui/models/tags.py TagTable.insert_new_tag   0% 10 10 0   100% 0 0   0%
open_webui/models/tags.py TagTable.get_tag_by_name_and_user_id   0% 8 8 0   100% 0 0   0%
open_webui/models/tags.py TagTable.get_tags_by_user_id   100% 3 0 0   100% 0 0   100%
open_webui/models/tags.py TagTable.get_tags_by_ids_and_user_id   100% 3 0 0   100% 0 0   100%
open_webui/models/tags.py TagTable.delete_tag_by_name_and_user_id   50% 10 5 0   100% 0 0   50%
open_webui/models/tags.py TagTable.delete_tags_by_ids_and_user_id   60% 10 4 0   100% 2 0   67%
open_webui/models/tags.py TagTable.ensure_tags_exist   80% 10 2 0   50% 4 0   71%
open_webui/models/tags.py (no function)   100% 35 0 0   100% 0 0   100%
open_webui/models/tools.py ToolsTable._get_access_grants   0% 1 1 0   100% 0 0   0%
open_webui/models/tools.py ToolsTable._to_tool_model   0% 3 3 0   100% 0 0   0%
open_webui/models/tools.py ToolsTable.insert_new_tool   0% 12 12 0   0% 2 0   0%
open_webui/models/tools.py ToolsTable.get_tool_by_id   38% 8 5 0   0% 2 0   30%
open_webui/models/tools.py ToolsTable.get_tools_by_ids   0% 7 7 0   0% 2 0   0%
open_webui/models/tools.py ToolsTable.get_tools   39% 18 11 0   17% 6 1   33%
open_webui/models/tools.py ToolsTable.get_tools_by_user_id   0% 3 3 0   100% 0 0   0%
open_webui/models/tools.py ToolsTable.get_tool_valves_by_id   0% 7 7 0   100% 0 0   0%
open_webui/models/tools.py ToolsTable.update_tool_valves_by_id   0% 7 7 0   100% 0 0   0%
open_webui/models/tools.py ToolsTable.get_user_valves_by_id_and_user_id   0% 11 11 0   0% 4 0   0%
open_webui/models/tools.py ToolsTable.update_user_valves_by_id_and_user_id   0% 13 13 0   0% 4 0   0%
open_webui/models/tools.py ToolsTable.update_tool_by_id   0% 11 11 0   0% 2 0   0%
open_webui/models/tools.py ToolsTable.delete_tool_by_id   0% 8 8 0   100% 0 0   0%
open_webui/models/tools.py (no function)   100% 77 0 0   100% 0 0   100%
open_webui/models/users.py UserModel._ensure_profile_image   100% 2 0 0   100% 0 0   100%
open_webui/models/users.py UserModel.normalize_variables   100% 1 0 0   100% 0 0   100%
open_webui/models/users.py UpdateProfileForm.check_profile_image_url   100% 1 0 0   100% 0 0   100%
open_webui/models/users.py UserUpdateForm.check_profile_image_url   0% 3 3 0   0% 2 0   0%
open_webui/models/users.py UsersTable.insert_new_user   90% 10 1 0   100% 0 0   90%
open_webui/models/users.py UsersTable.get_user_by_id   67% 3 1 0   100% 0 0   67%
open_webui/models/users.py UsersTable.get_user_by_api_key   0% 4 4 0   100% 0 0   0%
open_webui/models/users.py UsersTable.get_user_by_email   50% 8 4 0   0% 2 0   40%
open_webui/models/users.py UsersTable.get_user_by_oauth_sub   0% 10 10 0   0% 4 0   0%
open_webui/models/users.py UsersTable.get_user_by_scim_external_id   0% 4 4 0   100% 0 0   0%
open_webui/models/users.py UsersTable.get_scim_users   0% 22 22 0   0% 12 0   0%
open_webui/models/users.py UsersTable.get_scim_user_by_id   0% 4 4 0   100% 0 0   0%
open_webui/models/users.py UsersTable.get_users   43% 72 41 0   31% 54 13   38%
open_webui/models/users.py UsersTable.get_users_by_group_id   80% 5 1 0   100% 0 0   80%
open_webui/models/users.py UsersTable.get_users_by_user_ids   75% 4 1 0   100% 0 0   75%
open_webui/models/users.py UsersTable.get_num_users   67% 3 1 0   100% 0 0   67%
open_webui/models/users.py UsersTable.has_users   67% 3 1 0   100% 0 0   67%
open_webui/models/users.py UsersTable.get_first_user   75% 4 1 0   100% 0 0   75%
open_webui/models/users.py UsersTable.get_num_users_active_today   0% 5 5 0   100% 0 0   0%
open_webui/models/users.py UsersTable.update_user_role_by_id   43% 7 4 0   0% 2 0   33%
open_webui/models/users.py UsersTable.update_user_status_by_id   38% 8 5 0   0% 4 0   25%
open_webui/models/users.py UsersTable.update_user_profile_image_url_by_id   0% 11 11 0   0% 2 0   0%
open_webui/models/users.py UsersTable.update_last_active_by_id   100% 3 0 0   100% 0 0   100%
open_webui/models/users.py UsersTable.update_user_oauth_by_id   0% 12 12 0   0% 2 0   0%
open_webui/models/users.py UsersTable.update_user_scim_by_id   0% 11 11 0   0% 4 0   0%
open_webui/models/users.py UsersTable.update_user_by_id   38% 8 5 0   0% 4 0   25%
open_webui/models/users.py UsersTable.update_user_settings_by_id   17% 18 15 0   0% 8 0   12%
open_webui/models/users.py UsersTable.delete_user_by_id   80% 10 2 0   50% 2 1   75%
open_webui/models/users.py UsersTable.get_user_api_key_by_id   0% 3 3 0   100% 0 0   0%
open_webui/models/users.py UsersTable.update_user_api_key_by_id   0% 7 7 0   100% 0 0   0%
open_webui/models/users.py UsersTable.delete_user_api_key_by_id   0% 4 4 0   100% 0 0   0%
open_webui/models/users.py UsersTable.get_valid_user_ids   67% 3 1 0   100% 0 0   67%
open_webui/models/users.py UsersTable.get_super_admin_user   0% 3 3 0   100% 0 0   0%
open_webui/models/users.py UsersTable.get_active_user_count   75% 4 1 0   100% 0 0   75%
open_webui/models/users.py UsersTable.is_active   0% 4 4 0   0% 2 0   0%
open_webui/models/users.py UsersTable.is_user_active   33% 6 4 0   0% 2 0   25%
open_webui/models/users.py (no function)   100% 271 0 0   100% 0 0   100%
open_webui/retrieval/external.py _get_external_connection   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/external.py _get_path   0% 8 8 0   0% 6 0   0%
open_webui/retrieval/external.py _normalize_result   0% 17 17 0   0% 6 0   0%
open_webui/retrieval/external.py _source_config   0% 3 3 0   100% 0 0   0%
open_webui/retrieval/external.py _root_field   0% 3 3 0   0% 2 0   0%
open_webui/retrieval/external.py _safe_identifier   0% 3 3 0   0% 2 0   0%
open_webui/retrieval/external.py _retrieve_qdrant   0% 22 22 0   0% 6 0   0%
open_webui/retrieval/external.py _retrieve_qdrant._search   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/external.py _retrieve_milvus   0% 27 27 0   0% 6 0   0%
open_webui/retrieval/external.py _retrieve_milvus._search   0% 10 10 0   0% 4 0   0%
open_webui/retrieval/external.py _retrieve_pgvector   0% 26 26 0   0% 4 0   0%
open_webui/retrieval/external.py _retrieve_pgvector._search   0% 12 12 0   100% 0 0   0%
open_webui/retrieval/external.py retrieve_external_knowledge   0% 8 8 0   0% 4 0   0%
open_webui/retrieval/external.py retrieve_external_knowledge_for_connection   0% 17 17 0   0% 10 0   0%
open_webui/retrieval/external.py (no function)   100% 22 0 0   100% 0 0   100%
open_webui/retrieval/loaders/datalab_marker.py DatalabMarkerLoader.__init__   0% 12 12 0   100% 0 0   0%
open_webui/retrieval/loaders/datalab_marker.py DatalabMarkerLoader._get_mime_type   0% 3 3 0   100% 0 0   0%
open_webui/retrieval/loaders/datalab_marker.py DatalabMarkerLoader.load   0% 89 89 0   0% 30 0   0%
open_webui/retrieval/loaders/datalab_marker.py (no function)   100% 14 0 0   100% 0 0   100%
open_webui/retrieval/loaders/external_document.py ExternalDocumentLoader.__init__   0% 8 8 0   100% 0 0   0%
open_webui/retrieval/loaders/external_document.py ExternalDocumentLoader.load   0% 35 35 0   0% 18 0   0%
open_webui/retrieval/loaders/external_document.py (no function)   100% 12 0 0   100% 0 0   100%
open_webui/retrieval/loaders/external_web.py ExternalWebLoader.__init__   0% 4 4 0   100% 0 0   0%
open_webui/retrieval/loaders/external_web.py ExternalWebLoader.lazy_load   0% 13 13 0   0% 6 0   0%
open_webui/retrieval/loaders/external_web.py (no function)   100% 9 0 0   100% 0 0   100%
open_webui/retrieval/loaders/local.py TextLoader.__init__   100% 2 0 0   100% 0 0   100%
open_webui/retrieval/loaders/local.py TextLoader.load   60% 5 2 0   100% 0 0   60%
open_webui/retrieval/loaders/local.py HTMLLoader.load   0% 3 3 0   100% 0 0   0%
open_webui/retrieval/loaders/local.py DocxLoader.load   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/loaders/local.py UnstructuredLoader.__init__   0% 5 5 0   100% 0 0   0%
open_webui/retrieval/loaders/local.py UnstructuredLoader.load   0% 22 22 0   0% 8 0   0%
open_webui/retrieval/loaders/local.py DocumentIntelligenceLoader.__init__   0% 7 7 0   0% 2 0   0%
open_webui/retrieval/loaders/local.py DocumentIntelligenceLoader.load   0% 6 6 0   100% 0 0   0%
open_webui/retrieval/loaders/local.py (no function)   100% 17 0 0   100% 0 0   100%
open_webui/retrieval/loaders/main.py ExcelLoader.__init__   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/loaders/main.py ExcelLoader.load   0% 7 7 0   0% 2 0   0%
open_webui/retrieval/loaders/main.py get_csv_summary   0% 21 21 0   0% 6 0   0%
open_webui/retrieval/loaders/main.py CSVLoaderWithSummary.__init__   0% 3 3 0   100% 0 0   0%
open_webui/retrieval/loaders/main.py CSVLoaderWithSummary.load   0% 20 20 0   0% 12 0   0%
open_webui/retrieval/loaders/main.py PptxLoader.__init__   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/loaders/main.py PptxLoader.load   0% 11 11 0   0% 8 0   0%
open_webui/retrieval/loaders/main.py TikaLoader.__init__   0% 5 5 0   100% 0 0   0%
open_webui/retrieval/loaders/main.py TikaLoader.load   0% 19 19 0   0% 8 0   0%
open_webui/retrieval/loaders/main.py DoclingLoader.__init__   0% 5 5 0   100% 0 0   0%
open_webui/retrieval/loaders/main.py DoclingLoader.load   0% 32 32 0   0% 14 0   0%
open_webui/retrieval/loaders/main.py Loader.__init__   100% 5 0 0   100% 0 0   100%
open_webui/retrieval/loaders/main.py Loader.load   100% 3 0 0   100% 0 0   100%
open_webui/retrieval/loaders/main.py Loader.aload   67% 3 1 0   50% 2 1   60%
open_webui/retrieval/loaders/main.py Loader._is_text_file   100% 1 0 0   100% 0 0   100%
open_webui/retrieval/loaders/main.py Loader._detect_text_encoding   16% 44 37 0   8% 12 1   14%
open_webui/retrieval/loaders/main.py Loader._has_cjk_characters   0% 14 14 0   0% 10 0   0%
open_webui/retrieval/loaders/main.py Loader._get_loader   22% 120 93 0   34% 70 24   27%
open_webui/retrieval/loaders/main.py (no function)   100% 51 0 0   100% 0 0   100%
open_webui/retrieval/loaders/microsoft_web_iq.py MicrosoftWebIQLoader.__init__   0% 7 7 0   100% 0 0   0%
open_webui/retrieval/loaders/microsoft_web_iq.py MicrosoftWebIQLoader.lazy_load   0% 9 9 0   0% 6 0   0%
open_webui/retrieval/loaders/microsoft_web_iq.py MicrosoftWebIQLoader._browse_url   0% 34 34 0   0% 8 0   0%
open_webui/retrieval/loaders/microsoft_web_iq.py (no function)   100% 15 0 0   100% 0 0   100%
open_webui/retrieval/loaders/mineru.py MinerULoader.__init__   0% 17 17 0   0% 4 0   0%
open_webui/retrieval/loaders/mineru.py MinerULoader.load   0% 7 7 0   0% 2 0   0%
open_webui/retrieval/loaders/mineru.py MinerULoader._load_local_api   0% 43 43 0   0% 10 0   0%
open_webui/retrieval/loaders/mineru.py MinerULoader._load_cloud_api   0% 9 9 0   100% 0 0   0%
open_webui/retrieval/loaders/mineru.py MinerULoader._request_upload_url   0% 34 34 0   0% 8 0   0%
open_webui/retrieval/loaders/mineru.py MinerULoader._upload_to_presigned_url   0% 14 14 0   100% 0 0   0%
open_webui/retrieval/loaders/mineru.py MinerULoader._poll_batch_status   0% 48 48 0   0% 20 0   0%
open_webui/retrieval/loaders/mineru.py MinerULoader._download_and_extract_zip   0% 64 64 0   0% 16 0   0%
open_webui/retrieval/loaders/mineru.py (no function)   100% 19 0 0   100% 0 0   100%
open_webui/retrieval/loaders/mistral.py MistralLoader.__init__   0% 20 20 0   0% 6 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._debug_log   0% 2 2 0   0% 2 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._handle_response   0% 14 14 0   0% 2 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._is_retryable_error   0% 10 10 0   0% 8 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._retry_request_sync   0% 9 9 0   0% 4 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._upload_file   0% 13 13 0   0% 2 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._upload_file.upload_request   0% 5 5 0   100% 0 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._get_signed_url   0% 15 15 0   0% 2 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._get_signed_url.url_request   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._process_ocr   0% 13 13 0   100% 0 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._process_ocr.ocr_request   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._get_file_data_url   0% 3 3 0   100% 0 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._delete_file   0% 8 8 0   100% 0 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader._process_results   0% 28 28 0   0% 14 0   0%
open_webui/retrieval/loaders/mistral.py MistralLoader.load   0% 24 24 0   0% 2 0   0%
open_webui/retrieval/loaders/mistral.py (no function)   100% 25 0 0   100% 0 0   100%
open_webui/retrieval/loaders/paddleocr_vl.py PaddleOCRVLLoader.__init__   0% 8 8 0   0% 4 0   0%
open_webui/retrieval/loaders/paddleocr_vl.py PaddleOCRVLLoader.load   0% 38 38 0   0% 10 0   0%
open_webui/retrieval/loaders/paddleocr_vl.py (no function)   100% 15 0 0   100% 0 0   100%
open_webui/retrieval/loaders/pdf.py PDFLoader.__init__   0% 6 6 0   0% 2 0   0%
open_webui/retrieval/loaders/pdf.py PDFLoader.lazy_load   0% 28 28 0   0% 14 0   0%
open_webui/retrieval/loaders/pdf.py PDFLoader._merge_image_text   0% 9 9 0   0% 6 0   0%
open_webui/retrieval/loaders/pdf.py PDFLoader._extract_images   0% 26 26 0   0% 10 0   0%
open_webui/retrieval/loaders/pdf.py (no function)   100% 13 0 0   100% 0 0   100%
open_webui/retrieval/loaders/tavily.py TavilyLoader.__init__   0% 7 7 0   0% 2 0   0%
open_webui/retrieval/loaders/tavily.py TavilyLoader.lazy_load   0% 26 26 0   0% 10 0   0%
open_webui/retrieval/loaders/tavily.py (no function)   100% 10 0 0   100% 0 0   100%
open_webui/retrieval/loaders/youtube.py _transcript_error_message   0% 12 12 0   0% 10 0   0%
open_webui/retrieval/loaders/youtube.py _parse_video_id   0% 18 18 0   0% 10 0   0%
open_webui/retrieval/loaders/youtube.py YoutubeLoader.__init__   0% 9 9 0   0% 4 0   0%
open_webui/retrieval/loaders/youtube.py YoutubeLoader.load   0% 46 46 0   0% 8 0   0%
open_webui/retrieval/loaders/youtube.py YoutubeLoader.aload   0% 3 3 0   100% 0 0   0%
open_webui/retrieval/loaders/youtube.py (no function)   100% 15 0 0   100% 0 0   100%
open_webui/retrieval/utils.py BM25Retriever._get_relevant_documents   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/utils.py is_youtube_url   100% 2 0 0   100% 0 0   100%
open_webui/retrieval/utils.py get_loader_config   100% 2 0 0   100% 0 0   100%
open_webui/retrieval/utils.py get_loader   0% 3 3 0   0% 2 0   0%
open_webui/retrieval/utils.py build_loader_from_config   100% 4 0 0   100% 0 0   100%
open_webui/retrieval/utils.py _extract_text_from_binary_response   0% 32 32 0   0% 12 0   0%
open_webui/retrieval/utils.py _is_text_content_type   0% 8 8 0   0% 6 0   0%
open_webui/retrieval/utils.py get_content_from_url   100% 2 0 0   100% 0 0   100%
open_webui/retrieval/utils.py _get_content_from_url_sync   8% 25 23 0   0% 6 0   6%
open_webui/retrieval/utils.py _content_hash   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/utils.py VectorSearchRetriever._get_relevant_documents   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/utils.py VectorSearchRetriever._aget_relevant_documents   0% 3 3 0   100% 0 0   0%
open_webui/retrieval/utils.py query_doc   0% 5 5 0   0% 2 0   0%
open_webui/retrieval/utils.py get_doc   0% 9 9 0   0% 2 0   0%
open_webui/retrieval/utils.py get_enriched_texts   0% 19 19 0   0% 12 0   0%
open_webui/retrieval/utils.py _search_result_to_documents   0% 13 13 0   0% 4 0   0%
open_webui/retrieval/utils.py _supports_native_hybrid_search   0% 4 4 0   0% 2 0   0%
open_webui/retrieval/utils.py query_doc_with_native_hybrid_search   0% 27 27 0   0% 12 0   0%
open_webui/retrieval/utils.py query_doc_with_hybrid_search   0% 39 39 0   0% 18 0   0%
open_webui/retrieval/utils.py merge_get_results   0% 9 9 0   0% 2 0   0%
open_webui/retrieval/utils.py merge_and_sort_query_results   0% 19 19 0   0% 12 0   0%
open_webui/retrieval/utils.py get_all_items_from_collections   0% 11 11 0   0% 6 0   0%
open_webui/retrieval/utils.py query_collection   41% 27 16 0   25% 12 1   36%
open_webui/retrieval/utils.py query_collection.process_query_collection   0% 8 8 0   0% 4 0   0%
open_webui/retrieval/utils.py query_collection_with_hybrid_search   0% 26 26 0   0% 14 0   0%
open_webui/retrieval/utils.py query_collection_with_hybrid_search.process_native_query   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/utils.py query_collection_with_hybrid_search._fetch_collection   0% 5 5 0   100% 0 0   0%
open_webui/retrieval/utils.py query_collection_with_hybrid_search.process_query   0% 5 5 0   100% 0 0   0%
open_webui/retrieval/utils.py generate_openai_batch_embeddings   0% 13 13 0   0% 6 0   0%
open_webui/retrieval/utils.py agenerate_openai_batch_embeddings   0% 14 14 0   0% 6 0   0%
open_webui/retrieval/utils.py generate_azure_openai_batch_embeddings   0% 20 20 0   0% 10 0   0%
open_webui/retrieval/utils.py agenerate_azure_openai_batch_embeddings   0% 15 15 0   0% 6 0   0%
open_webui/retrieval/utils.py generate_ollama_batch_embeddings   0% 15 15 0   0% 8 0   0%
open_webui/retrieval/utils.py agenerate_ollama_batch_embeddings   0% 17 17 0   0% 8 0   0%
open_webui/retrieval/utils.py get_embedding_function   16% 32 27 0   19% 16 1   17%
open_webui/retrieval/utils.py get_embedding_function.async_embedding_function   83% 6 1 0   75% 4 1   80%
open_webui/retrieval/utils.py get_embedding_function.async_embedding_function.encode   100% 2 0 0   100% 0 0   100%
open_webui/retrieval/utils.py generate_embeddings   0% 23 23 0   0% 16 0   0%
open_webui/retrieval/utils.py get_reranking_function   27% 11 8 0   33% 6 2   29%
open_webui/retrieval/utils.py get_reranking_function.unavailable   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/utils.py _is_safe_collection_name   100% 1 0 0   100% 0 0   100%
open_webui/retrieval/utils.py filter_accessible_collections   24% 25 19 0   12% 24 1   18%
open_webui/retrieval/utils.py filter_source_metadata   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/utils.py get_sources_from_items   0% 143 143 0   0% 110 0   0%
open_webui/retrieval/utils.py get_model_path   91% 22 2 0   62% 8 3   83%
open_webui/retrieval/utils.py cosine_similarity   0% 7 7 0   0% 2 0   0%
open_webui/retrieval/utils.py RerankCompressor.compress_documents   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/utils.py RerankCompressor.acompress_documents   0% 24 24 0   0% 10 0   0%
open_webui/retrieval/utils.py (no function)   100% 105 0 0   100% 0 0   100%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.__init__   100% 1 0 0   100% 0 0   100%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.sync   100% 1 0 0   100% 0 0   100%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.supports_hybrid_search   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.has_collection   100% 1 0 0   100% 0 0   100%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.delete_collection   100% 1 0 0   100% 0 0   100%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.insert   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.upsert   100% 1 0 0   100% 0 0   100%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.search   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.hybrid_search   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.query   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.get   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.delete   100% 1 0 0   100% 0 0   100%
open_webui/retrieval/vector/async_client.py AsyncVectorDBClient.reset   100% 1 0 0   100% 0 0   100%
open_webui/retrieval/vector/async_client.py (no function)   100% 22 0 0   100% 0 0   100%
open_webui/retrieval/vector/dbs/chroma.py ChromaClient.__init__   80% 10 2 0   50% 8 4   67%
open_webui/retrieval/vector/dbs/chroma.py ChromaClient.has_collection   80% 5 1 0   100% 0 0   80%
open_webui/retrieval/vector/dbs/chroma.py ChromaClient.delete_collection   100% 1 0 0   100% 0 0   100%
open_webui/retrieval/vector/dbs/chroma.py ChromaClient.search   0% 11 11 0   0% 2 0   0%
open_webui/retrieval/vector/dbs/chroma.py ChromaClient.query   50% 8 4 0   0% 2 0   40%
open_webui/retrieval/vector/dbs/chroma.py ChromaClient.get   0% 5 5 0   0% 2 0   0%
open_webui/retrieval/vector/dbs/chroma.py ChromaClient.insert   0% 7 7 0   0% 2 0   0%
open_webui/retrieval/vector/dbs/chroma.py ChromaClient.upsert   100% 6 0 0   100% 0 0   100%
open_webui/retrieval/vector/dbs/chroma.py ChromaClient.delete   50% 10 5 0   0% 6 0   31%
open_webui/retrieval/vector/dbs/chroma.py ChromaClient.reset   100% 1 0 0   100% 0 0   100%
open_webui/retrieval/vector/dbs/chroma.py (no function)   100% 23 0 0   100% 0 0   100%
open_webui/retrieval/vector/factory.py Vector.get_vector   28% 50 36 0   34% 32 11   30%
open_webui/retrieval/vector/factory.py get_vector_db_client   14% 14 12 0   17% 6 1   15%
open_webui/retrieval/vector/factory.py (no function)   100% 12 0 0   100% 0 0   100%
open_webui/retrieval/vector/main.py VectorDBBase.has_collection   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/main.py VectorDBBase.delete_collection   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/main.py VectorDBBase.insert   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/main.py VectorDBBase.upsert   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/main.py VectorDBBase.search   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/main.py VectorDBBase.hybrid_search   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/main.py VectorDBBase.query   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/main.py VectorDBBase.get   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/main.py VectorDBBase.delete   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/main.py VectorDBBase.reset   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/main.py (no function)   100% 34 0 0   100% 0 0   100%
open_webui/retrieval/vector/type.py (no function)   100% 15 0 0   100% 0 0   100%
open_webui/retrieval/vector/utils.py filter_metadata   50% 12 6 0   50% 8 2   50%
open_webui/retrieval/vector/utils.py process_metadata   50% 16 8 0   50% 12 4   50%
open_webui/retrieval/vector/utils.py iter_filter_conditions   0% 6 6 0   0% 6 0   0%
open_webui/retrieval/vector/utils.py normalize_filter   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/vector/utils.py metadata_matches_filter   0% 10 10 0   0% 10 0   0%
open_webui/retrieval/vector/utils.py merge_hybrid_search_results   0% 29 29 0   0% 12 0   0%
open_webui/retrieval/vector/utils.py (no function)   100% 12 0 0   100% 0 0   100%
open_webui/retrieval/web/azure.py search_azure   0% 26 26 0   0% 8 0   0%
open_webui/retrieval/web/azure.py (no function)   100% 6 0 0   100% 0 0   100%
open_webui/retrieval/web/bing.py search_bing   0% 14 14 0   0% 2 0   0%
open_webui/retrieval/web/bing.py main   0% 8 8 0   100% 0 0   0%
open_webui/retrieval/web/bing.py (no function)   100% 11 0 0   100% 0 0   100%
open_webui/retrieval/web/bocha.py _parse_response   0% 8 8 0   0% 6 0   0%
open_webui/retrieval/web/bocha.py search_bocha   0% 9 9 0   0% 2 0   0%
open_webui/retrieval/web/bocha.py (no function)   100% 8 0 0   100% 0 0   100%
open_webui/retrieval/web/brave.py search_brave   0% 17 17 0   0% 4 0   0%
open_webui/retrieval/web/brave.py (no function)   100% 8 0 0   100% 0 0   100%
open_webui/retrieval/web/brave_llm_context.py search_brave_llm_context   0% 14 14 0   0% 4 0   0%
open_webui/retrieval/web/brave_llm_context.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/retrieval/web/duckduckgo.py search_duckduckgo   0% 12 12 0   0% 6 0   0%
open_webui/retrieval/web/duckduckgo.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/retrieval/web/exa.py search_exa   0% 13 13 0   100% 0 0   0%
open_webui/retrieval/web/exa.py (no function)   100% 6 0 0   100% 0 0   100%
open_webui/retrieval/web/external.py search_external   0% 17 17 0   0% 4 0   0%
open_webui/retrieval/web/external.py (no function)   100% 9 0 0   100% 0 0   100%
open_webui/retrieval/web/firecrawl.py build_firecrawl_url   0% 5 5 0   0% 2 0   0%
open_webui/retrieval/web/firecrawl.py build_firecrawl_headers   0% 4 4 0   0% 2 0   0%
open_webui/retrieval/web/firecrawl.py get_firecrawl_timeout_seconds   0% 7 7 0   0% 2 0   0%
open_webui/retrieval/web/firecrawl.py get_firecrawl_scrape_timeout_ms   0% 4 4 0   0% 2 0   0%
open_webui/retrieval/web/firecrawl.py get_firecrawl_client_timeout_seconds   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/web/firecrawl.py get_firecrawl_retry_delay   0% 7 7 0   0% 2 0   0%
open_webui/retrieval/web/firecrawl.py request_firecrawl_json   0% 21 21 0   0% 8 0   0%
open_webui/retrieval/web/firecrawl.py get_firecrawl_result_url   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/web/firecrawl.py scrape_firecrawl_url   0% 16 16 0   0% 8 0   0%
open_webui/retrieval/web/firecrawl.py search_firecrawl   0% 20 20 0   0% 6 0   0%
open_webui/retrieval/web/firecrawl.py (no function)   95% 22 1 0   50% 2 1   92%
open_webui/retrieval/web/google_pse.py search_google_pse   0% 23 23 0   0% 8 0   0%
open_webui/retrieval/web/google_pse.py (no function)   100% 6 0 0   100% 0 0   100%
open_webui/retrieval/web/jina_search.py search_jina   0% 11 11 0   0% 2 0   0%
open_webui/retrieval/web/jina_search.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/retrieval/web/kagi.py search_kagi   0% 12 12 0   0% 2 0   0%
open_webui/retrieval/web/kagi.py (no function)   100% 6 0 0   100% 0 0   100%
open_webui/retrieval/web/linkup.py search_linkup   0% 20 20 0   0% 4 0   0%
open_webui/retrieval/web/linkup.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/retrieval/web/main.py get_filtered_results   0% 24 24 0   0% 12 0   0%
open_webui/retrieval/web/main.py (no function)   100% 11 0 0   100% 0 0   100%
open_webui/retrieval/web/microsoft_web_iq.py search_microsoft_web_iq   0% 14 14 0   0% 4 0   0%
open_webui/retrieval/web/microsoft_web_iq.py (no function)   100% 8 0 0   100% 0 0   100%
open_webui/retrieval/web/mojeek.py search_mojeek   0% 11 11 0   0% 2 0   0%
open_webui/retrieval/web/mojeek.py (no function)   100% 6 0 0   100% 0 0   100%
open_webui/retrieval/web/ollama.py search_ollama_cloud   0% 15 15 0   0% 2 0   0%
open_webui/retrieval/web/ollama.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/retrieval/web/openserp.py search_openserp   0% 11 11 0   0% 2 0   0%
open_webui/retrieval/web/openserp.py (no function)   100% 6 0 0   100% 0 0   100%
open_webui/retrieval/web/perplexity.py search_perplexity   0% 22 22 0   0% 8 0   0%
open_webui/retrieval/web/perplexity.py (no function)   100% 9 0 0   100% 0 0   100%
open_webui/retrieval/web/perplexity_search.py search_perplexity_search   0% 15 15 0   0% 2 0   0%
open_webui/retrieval/web/perplexity_search.py (no function)   100% 8 0 0   100% 0 0   100%
open_webui/retrieval/web/searchapi.py search_searchapi   0% 14 14 0   0% 4 0   0%
open_webui/retrieval/web/searchapi.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/retrieval/web/searxng.py _get_ssl_context   0% 5 5 0   0% 2 0   0%
open_webui/retrieval/web/searxng.py search_searxng   0% 12 12 0   0% 4 0   0%
open_webui/retrieval/web/searxng.py (no function)   100% 12 0 0   100% 0 0   100%
open_webui/retrieval/web/serpapi.py search_serpapi   0% 11 11 0   0% 2 0   0%
open_webui/retrieval/web/serpapi.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/retrieval/web/serper.py search_serper   0% 10 10 0   0% 2 0   0%
open_webui/retrieval/web/serper.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/retrieval/web/serphouse.py search_serphouse   0% 9 9 0   0% 2 0   0%
open_webui/retrieval/web/serphouse.py (no function)   100% 4 0 0   100% 0 0   100%
open_webui/retrieval/web/serply.py search_serply   0% 13 13 0   0% 2 0   0%
open_webui/retrieval/web/serply.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/retrieval/web/serpstack.py search_serpstack   0% 11 11 0   0% 2 0   0%
open_webui/retrieval/web/serpstack.py (no function)   100% 6 0 0   100% 0 0   100%
open_webui/retrieval/web/sougou.py search_sougou   0% 21 21 0   0% 2 0   0%
open_webui/retrieval/web/sougou.py (no function)   100% 6 0 0   100% 0 0   100%
open_webui/retrieval/web/staan.py search_staan   0% 12 12 0   0% 4 0   0%
open_webui/retrieval/web/staan.py _build_snippet   0% 3 3 0   100% 0 0   0%
open_webui/retrieval/web/staan.py (no function)   100% 5 0 0   100% 0 0   100%
open_webui/retrieval/web/tavily.py search_tavily   0% 10 10 0   0% 2 0   0%
open_webui/retrieval/web/tavily.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/retrieval/web/utils.py resolve_hostname   0% 4 4 0   100% 0 0   0%
open_webui/retrieval/web/utils.py _embedded_ipv4   0% 15 15 0   0% 12 0   0%
open_webui/retrieval/web/utils.py _assert_host_allowed   0% 3 3 0   0% 2 0   0%
open_webui/retrieval/web/utils.py _assert_addresses_allowed   0% 10 10 0   0% 8 0   0%
open_webui/retrieval/web/utils.py validate_url   13% 23 20 0   17% 12 2   14%
open_webui/retrieval/web/utils.py safe_validate_urls   0% 9 9 0   0% 4 0   0%
open_webui/retrieval/web/utils.py _ssrf_safe_new_conn   0% 28 28 0   0% 16 0   0%
open_webui/retrieval/web/utils.py _SSRFSafeAdapter.init_poolmanager   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/web/utils.py _SSRFSafeAdapter.send   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/web/utils.py _SSRFSafeConnector.connect   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/web/utils.py _SSRFSafeConnector._resolve_host   0% 3 3 0   100% 0 0   0%
open_webui/retrieval/web/utils.py get_ssrf_safe_session   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/web/utils.py get_ssrf_safe_requests_session   0% 7 7 0   0% 2 0   0%
open_webui/retrieval/web/utils.py _forwardable_request_headers   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/web/utils.py _fulfillable_response_headers   0% 6 6 0   0% 4 0   0%
open_webui/retrieval/web/utils.py extract_metadata   0% 8 8 0   0% 6 0   0%
open_webui/retrieval/web/utils.py verify_ssl_cert   0% 13 13 0   0% 2 0   0%
open_webui/retrieval/web/utils.py RateLimitMixin._wait_for_rate_limit   0% 6 6 0   0% 4 0   0%
open_webui/retrieval/web/utils.py RateLimitMixin._sync_wait_for_rate_limit   0% 6 6 0   0% 4 0   0%
open_webui/retrieval/web/utils.py URLProcessingMixin._verify_ssl_cert   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/web/utils.py URLProcessingMixin._safe_process_url   0% 4 4 0   0% 2 0   0%
open_webui/retrieval/web/utils.py URLProcessingMixin._safe_process_url_sync   0% 4 4 0   0% 2 0   0%
open_webui/retrieval/web/utils.py SafeFireCrawlLoader.__init__   0% 19 19 0   0% 6 0   0%
open_webui/retrieval/web/utils.py SafeFireCrawlLoader.lazy_load   0% 11 11 0   0% 6 0   0%
open_webui/retrieval/web/utils.py SafeFireCrawlLoader.alazy_load   0% 11 11 0   0% 6 0   0%
open_webui/retrieval/web/utils.py SafeTavilyLoader.__init__   0% 17 17 0   0% 6 0   0%
open_webui/retrieval/web/utils.py SafeTavilyLoader.lazy_load   0% 21 21 0   0% 10 0   0%
open_webui/retrieval/web/utils.py SafeTavilyLoader.alazy_load   0% 22 22 0   0% 12 0   0%
open_webui/retrieval/web/utils.py SafeMicrosoftWebIQLoader.__init__   0% 10 10 0   100% 0 0   0%
open_webui/retrieval/web/utils.py SafeMicrosoftWebIQLoader.lazy_load   0% 16 16 0   0% 8 0   0%
open_webui/retrieval/web/utils.py SafeMicrosoftWebIQLoader.alazy_load   0% 8 8 0   0% 4 0   0%
open_webui/retrieval/web/utils.py SafePlaywrightURLLoader.__init__   0% 23 23 0   0% 10 0   0%
open_webui/retrieval/web/utils.py SafePlaywrightURLLoader._extract_html   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/web/utils.py SafePlaywrightURLLoader._request_timeout   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/web/utils.py SafePlaywrightURLLoader._requests_verify   0% 5 5 0   0% 4 0   0%
open_webui/retrieval/web/utils.py SafePlaywrightURLLoader._intercept_navigation_sync   0% 30 30 0   0% 12 0   0%
open_webui/retrieval/web/utils.py SafePlaywrightURLLoader._intercept_navigation_sync.fetch   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/web/utils.py SafePlaywrightURLLoader._intercept_navigation   0% 29 29 0   0% 12 0   0%
open_webui/retrieval/web/utils.py SafePlaywrightURLLoader._intercept_navigation.fetch   0% 3 3 0   100% 0 0   0%
open_webui/retrieval/web/utils.py SafePlaywrightURLLoader.lazy_load   0% 28 28 0   0% 14 0   0%
open_webui/retrieval/web/utils.py SafePlaywrightURLLoader.alazy_load   0% 28 28 0   0% 14 0   0%
open_webui/retrieval/web/utils.py SafeWebBaseLoader.__init__   0% 12 12 0   100% 0 0   0%
open_webui/retrieval/web/utils.py SafeWebBaseLoader.fetch_all   0% 3 3 0   100% 0 0   0%
open_webui/retrieval/web/utils.py SafeWebBaseLoader.fetch_all.fetch   0% 8 8 0   0% 2 0   0%
open_webui/retrieval/web/utils.py SafeWebBaseLoader._fetch   0% 21 21 0   0% 10 0   0%
open_webui/retrieval/web/utils.py SafeWebBaseLoader.lazy_load   0% 9 9 0   0% 4 0   0%
open_webui/retrieval/web/utils.py SafeWebBaseLoader._document_from_html   0% 4 4 0   100% 0 0   0%
open_webui/retrieval/web/utils.py SafeWebBaseLoader.alazy_load   0% 3 3 0   0% 2 0   0%
open_webui/retrieval/web/utils.py SafeWebBaseLoader.aload   0% 1 1 0   100% 0 0   0%
open_webui/retrieval/web/utils.py get_web_loader   0% 61 61 0   0% 28 0   0%
open_webui/retrieval/web/utils.py get_web_loader.cfg   0% 2 2 0   100% 0 0   0%
open_webui/retrieval/web/utils.py (no function)   100% 100 0 0   100% 0 0   100%
open_webui/retrieval/web/yacy.py search_yacy   0% 15 15 0   0% 6 0   0%
open_webui/retrieval/web/yacy.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/retrieval/web/yandex.py xml_element_contents_to_string   0% 7 7 0   0% 4 0   0%
open_webui/retrieval/web/yandex.py search_yandex   0% 36 36 0   0% 16 0   0%
open_webui/retrieval/web/yandex.py (no function)   81% 21 4 0   50% 2 1   78%
open_webui/retrieval/web/ydc.py search_youcom   0% 10 10 0   0% 2 0   0%
open_webui/retrieval/web/ydc.py _build_snippet   0% 8 8 0   0% 4 0   0%
open_webui/retrieval/web/ydc.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/routers/analytics.py get_model_analytics   100% 4 0 0   100% 0 0   100%
open_webui/routers/analytics.py get_user_analytics   70% 10 3 0   50% 2 1   67%
open_webui/routers/analytics.py get_messages   100% 7 0 0   100% 6 0   100%
open_webui/routers/analytics.py get_summary   100% 4 0 0   100% 0 0   100%
open_webui/routers/analytics.py get_daily_stats   75% 4 1 0   50% 2 1   67%
open_webui/routers/analytics.py get_token_usage   100% 5 0 0   100% 0 0   100%
open_webui/routers/analytics.py get_model_chats   100% 11 0 0   100% 8 0   100%
open_webui/routers/analytics.py get_model_overview   72% 29 8 0   50% 16 2   64%
open_webui/routers/analytics.py (no function)   100% 90 0 0   100% 0 0   100%
open_webui/routers/audio.py get_config_values   100% 2 0 0   100% 0 0   100%
open_webui/routers/audio.py config_updates   100% 1 0 0   100% 0 0   100%
open_webui/routers/audio.py is_audio_conversion_required   0% 17 17 0   0% 6 0   0%
open_webui/routers/audio.py convert_audio_to_mp3   0% 9 9 0   100% 0 0   0%
open_webui/routers/audio.py transcode_audio_to_mp3   0% 19 19 0   0% 10 0   0%
open_webui/routers/audio.py set_faster_whisper_model   92% 13 1 0   75% 4 1   88%
open_webui/routers/audio.py get_audio_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/audio.py update_audio_config   62% 13 5 0   38% 8 1   52%
open_webui/routers/audio.py load_speech_pipeline   0% 8 8 0   0% 6 0   0%
open_webui/routers/audio.py _raise_tts_error   0% 15 15 0   0% 8 0   0%
open_webui/routers/audio.py _write_tts_cache   0% 10 10 0   0% 4 0   0%
open_webui/routers/audio.py _tts_openai   0% 28 28 0   0% 8 0   0%
open_webui/routers/audio.py _tts_elevenlabs   0% 17 17 0   0% 4 0   0%
open_webui/routers/audio.py _tts_azure   0% 17 17 0   100% 0 0   0%
open_webui/routers/audio.py _tts_transformers   0% 17 17 0   0% 2 0   0%
open_webui/routers/audio.py _tts_transformers._run_pipeline   0% 3 3 0   100% 0 0   0%
open_webui/routers/audio.py _tts_mistral   0% 18 18 0   0% 4 0   0%
open_webui/routers/audio.py speech   52% 29 14 0   42% 12 3   49%
open_webui/routers/audio.py _transcribe_whisper   0% 10 10 0   0% 2 0   0%
open_webui/routers/audio.py _transcribe_whisper._run   0% 3 3 0   100% 0 0   0%
open_webui/routers/audio.py _transcribe_openai   0% 45 45 0   0% 18 0   0%
open_webui/routers/audio.py _transcribe_deepgram   0% 40 40 0   0% 12 0   0%
open_webui/routers/audio.py _transcribe_azure   0% 57 57 0   0% 20 0   0%
open_webui/routers/audio.py _transcribe_azure.audio_chunks   0% 3 3 0   0% 2 0   0%
open_webui/routers/audio.py transcription_handler   0% 15 15 0   0% 10 0   0%
open_webui/routers/audio.py _transcribe_mistral   0% 78 78 0   0% 28 0   0%
open_webui/routers/audio.py transcribe   0% 32 32 0   0% 10 0   0%
open_webui/routers/audio.py compress_audio   0% 9 9 0   0% 2 0   0%
open_webui/routers/audio.py split_audio   0% 27 27 0   0% 8 0   0%
open_webui/routers/audio.py transcription   13% 39 34 0   20% 10 2   14%
open_webui/routers/audio.py get_available_models   20% 35 28 0   38% 8 3   23%
open_webui/routers/audio.py get_models   100% 1 0 0   100% 0 0   100%
open_webui/routers/audio.py get_available_voices   12% 58 51 0   22% 18 4   14%
open_webui/routers/audio.py get_voices   100% 1 0 0   100% 0 0   100%
open_webui/routers/audio.py (no function)   100% 116 0 0   50% 2 1   99%
open_webui/routers/auths.py get_config_values   100% 2 0 0   100% 0 0   100%
open_webui/routers/auths.py config_updates   100% 1 0 0   100% 0 0   100%
open_webui/routers/auths.py create_session_response   100% 12 0 0   50% 4 2   88%
open_webui/routers/auths.py get_session_user   86% 21 3 0   50% 12 6   73%
open_webui/routers/auths.py update_profile   71% 7 2 0   50% 4 2   64%
open_webui/routers/auths.py update_timezone   80% 5 1 0   50% 2 1   71%
open_webui/routers/auths.py update_password   0% 17 17 0   0% 8 0   0%
open_webui/routers/auths.py _unescape_ldap_dn_value   0% 18 18 0   0% 8 0   0%
open_webui/routers/auths.py extract_group_cn_from_dn   0% 4 4 0   0% 4 0   0%
open_webui/routers/auths.py ldap_auth   2% 124 122 0   2% 52 1   2%
open_webui/routers/auths.py signin   17% 54 45 0   16% 38 4   16%
open_webui/routers/auths.py signup_handler   91% 11 1 0   50% 4 2   80%
open_webui/routers/auths.py signup   54% 26 12 0   50% 14 5   52%
open_webui/routers/auths.py signout   10% 49 44 0   0% 22 0   7%
open_webui/routers/auths.py delete_oauth_session_by_provider   60% 5 2 0   50% 2 1   57%
open_webui/routers/auths.py add_user   21% 24 19 0   50% 6 1   27%
open_webui/routers/auths.py get_admin_details   71% 14 4 0   38% 8 3   59%
open_webui/routers/auths.py get_admin_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/auths.py AdminConfig.validate_i18n   5% 19 18 0   0% 16 0   3%
open_webui/routers/auths.py AdminConfig.validate_i18n.placeholders   0% 1 1 0   100% 0 0   0%
open_webui/routers/auths.py update_admin_config   0% 18 18 0   0% 10 0   0%
open_webui/routers/auths.py get_ldap_server   100% 1 0 0   100% 0 0   100%
open_webui/routers/auths.py update_ldap_server   100% 12 0 0   100% 6 0   100%
open_webui/routers/auths.py get_ldap_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/auths.py update_ldap_config   0% 2 2 0   100% 0 0   0%
open_webui/routers/auths.py _format_oauth_form_value   80% 5 1 0   75% 4 1   78%
open_webui/routers/auths.py _parse_oauth_update_value   100% 5 0 0   100% 4 0   100%
open_webui/routers/auths.py get_oauth_config_values   100% 4 0 0   100% 0 0   100%
open_webui/routers/auths.py oauth_config_updates   100% 1 0 0   100% 0 0   100%
open_webui/routers/auths.py get_oauth_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/auths.py update_oauth_config   100% 2 0 0   100% 0 0   100%
open_webui/routers/auths.py _check_api_key_permission   100% 2 0 0   50% 2 1   75%
open_webui/routers/auths.py generate_api_key   14% 7 6 0   0% 2 0   11%
open_webui/routers/auths.py delete_api_key   20% 5 4 0   0% 2 0   14%
open_webui/routers/auths.py get_api_key   20% 5 4 0   0% 2 0   14%
open_webui/routers/auths.py get_token_client_id   0% 19 19 0   0% 6 0   0%
open_webui/routers/auths.py token_exchange   7% 59 55 0   3% 36 1   5%
open_webui/routers/auths.py (no function)   100% 202 0 0   100% 0 0   100%
open_webui/routers/automations.py check_automations_permission   60% 5 2 0   50% 4 2   56%
open_webui/routers/automations.py check_automation_access   100% 2 0 0   50% 2 1   75%
open_webui/routers/automations.py check_automation_limits   0% 15 15 0   0% 14 0   0%
open_webui/routers/automations.py check_automation_folder_access   100% 5 0 0   75% 4 1   89%
open_webui/routers/automations.py check_automation_channel_access   29% 17 12 0   21% 14 1   26%
open_webui/routers/automations.py enrich_automation   0% 2 2 0   100% 0 0   0%
open_webui/routers/automations.py get_automation_items   100% 8 0 0   100% 0 0   100%
open_webui/routers/automations.py create_new_automation   54% 13 6 0   100% 0 0   54%
open_webui/routers/automations.py get_automation_by_id   75% 4 1 0   100% 0 0   75%
open_webui/routers/automations.py update_automation_by_id   20% 15 12 0   100% 0 0   20%
open_webui/routers/automations.py toggle_automation_by_id   43% 7 4 0   100% 0 0   43%
open_webui/routers/automations.py run_automation_by_id   50% 6 3 0   100% 0 0   50%
open_webui/routers/automations.py delete_automation_by_id   38% 8 5 0   0% 2 0   30%
open_webui/routers/automations.py get_automation_runs   75% 4 1 0   100% 0 0   75%
open_webui/routers/automations.py (no function)   100% 41 0 0   100% 0 0   100%
open_webui/routers/calendar.py check_calendar_permission   60% 5 2 0   50% 4 2   56%
open_webui/routers/calendar.py _user_has_automations   67% 6 2 0   50% 4 2   60%
open_webui/routers/calendar.py _check_calendar_access   50% 10 5 0   50% 6 1   50%
open_webui/routers/calendar.py get_calendars   100% 6 0 0   50% 2 1   88%
open_webui/routers/calendar.py create_calendar   100% 5 0 0   100% 0 0   100%
open_webui/routers/calendar.py get_events   15% 40 34 0   0% 16 0   11%
open_webui/routers/calendar.py create_event   25% 8 6 0   100% 0 0   25%
open_webui/routers/calendar.py search_events   100% 2 0 0   100% 0 0   100%
open_webui/routers/calendar.py get_event   67% 6 2 0   50% 2 1   62%
open_webui/routers/calendar.py update_event   27% 15 11 0   17% 6 1   24%
open_webui/routers/calendar.py delete_event   40% 10 6 0   25% 4 1   36%
open_webui/routers/calendar.py rsvp_event   38% 8 5 0   25% 4 1   33%
open_webui/routers/calendar.py get_calendar_by_id   100% 3 0 0   100% 0 0   100%
open_webui/routers/calendar.py update_calendar   82% 11 2 0   67% 6 2   76%
open_webui/routers/calendar.py delete_calendar   77% 13 3 0   62% 8 3   71%
open_webui/routers/calendar.py set_default_calendar   100% 6 0 0   100% 2 0   100%
open_webui/routers/calendar.py (no function)   100% 46 0 0   100% 0 0   100%
open_webui/routers/channels.py channel_has_access   0% 5 5 0   0% 4 0   0%
open_webui/routers/channels.py get_channel_users_with_access   0% 1 1 0   100% 0 0   0%
open_webui/routers/channels.py get_channel_permitted_group_and_user_ids   0% 12 12 0   0% 10 0   0%
open_webui/routers/channels.py get_channel_member_user_ids   0% 9 9 0   0% 6 0   0%
open_webui/routers/channels.py check_channels_access   40% 5 3 0   17% 6 1   27%
open_webui/routers/channels.py get_channels   6% 16 15 0   0% 4 0   5%
open_webui/routers/channels.py get_all_channels   25% 4 3 0   0% 2 0   17%
open_webui/routers/channels.py get_dm_channel_by_user_id   5% 19 18 0   0% 4 0   4%
open_webui/routers/channels.py create_new_channel   4% 25 24 0   0% 8 0   3%
open_webui/routers/channels.py get_channel_by_id   4% 27 26 0   0% 10 0   3%
open_webui/routers/channels.py serialize_channel_member   0% 1 1 0   100% 0 0   0%
open_webui/routers/channels.py get_channel_members_by_id   3% 30 29 0   0% 16 0   2%
open_webui/routers/channels.py update_is_active_member_by_id_and_user_id   11% 9 8 0   0% 4 0   8%
open_webui/routers/channels.py add_members_by_id   8% 13 12 0   0% 4 0   6%
open_webui/routers/channels.py remove_members_by_id   8% 13 12 0   0% 4 0   6%
open_webui/routers/channels.py update_channel_by_id   7% 14 13 0   0% 4 0   6%
open_webui/routers/channels.py delete_channel_by_id   8% 13 12 0   0% 4 0   6%
open_webui/routers/channels.py MessageUserResponse.convert_data_to_bool   0% 3 3 0   0% 2 0   0%
open_webui/routers/channels.py get_channel_messages   4% 26 25 0   0% 14 0   2%
open_webui/routers/channels.py get_pinned_channel_messages   3% 29 28 0   0% 16 0   2%
open_webui/routers/channels.py send_notification   0% 10 10 0   0% 6 0   0%
open_webui/routers/channels.py model_response_handler   0% 56 56 0   0% 30 0   0%
open_webui/routers/channels.py new_message_handler   0% 33 33 0   0% 26 0   0%
open_webui/routers/channels.py post_new_message   5% 19 18 0   0% 4 0   4%
open_webui/routers/channels.py post_new_message.background_handler   0% 2 2 0   100% 0 0   0%
open_webui/routers/channels.py get_channel_message   6% 16 15 0   0% 12 0   4%
open_webui/routers/channels.py get_channel_message_data   7% 15 14 0   0% 12 0   4%
open_webui/routers/channels.py pin_channel_message   4% 25 24 0   0% 12 0   3%
open_webui/routers/channels.py get_channel_thread_messages   4% 23 22 0   0% 14 0   3%
open_webui/routers/channels.py update_message_by_id   4% 28 27 0   0% 18 0   2%
open_webui/routers/channels.py add_reaction_to_message   4% 23 22 0   0% 12 0   3%
open_webui/routers/channels.py remove_reaction_by_id_and_user_id_and_name   4% 23 22 0   0% 12 0   3%
open_webui/routers/channels.py delete_message_by_id   3% 30 29 0   0% 20 0   2%
open_webui/routers/channels.py get_webhook_profile_image   4% 26 25 0   0% 18 0   2%
open_webui/routers/channels.py get_channel_webhooks   14% 7 6 0   0% 4 0   9%
open_webui/routers/channels.py create_channel_webhook   9% 11 10 0   0% 6 0   6%
open_webui/routers/channels.py update_channel_webhook   7% 14 13 0   0% 8 0   5%
open_webui/routers/channels.py delete_channel_webhook   31% 13 9 0   12% 8 3   24%
open_webui/routers/channels.py post_webhook_message   6% 16 15 0   0% 6 0   5%
open_webui/routers/channels.py (no function)   100% 135 0 0   100% 0 0   100%
open_webui/routers/chats.py overlay_response_streams   10% 20 18 0   7% 14 1   9%
open_webui/routers/chats.py get_optional_verified_user   86% 7 1 0   50% 2 1   78%
open_webui/routers/chats.py is_open_shared_chat   100% 1 0 0   100% 0 0   100%
open_webui/routers/chats.py can_read_shared_chat   43% 7 4 0   33% 6 2   38%
open_webui/routers/chats.py add_active_state_to_chat_list   83% 6 1 0   75% 4 1   80%
open_webui/routers/chats.py get_folder_unread_counts   46% 13 7 0   17% 6 1   37%
open_webui/routers/chats.py chat_search_content_text   100% 1 0 0   100% 0 0   100%
open_webui/routers/chats.py chat_search_snippet   81% 27 5 0   78% 18 4   80%
open_webui/routers/chats.py get_chat_config_values   67% 9 3 0   50% 6 3   60%
open_webui/routers/chats.py chat_config_updates   100% 1 0 0   100% 0 0   100%
open_webui/routers/chats.py require_chat_import_permission   50% 2 1 0   50% 2 1   50%
open_webui/routers/chats.py get_session_user_chat_list   100% 10 0 0   100% 2 0   100%
open_webui/routers/chats.py mark_chats_read_by_user_id   100% 1 0 0   100% 0 0   100%
open_webui/routers/chats.py get_session_user_chat_usage_stats   78% 54 12 0   62% 26 6   72%
open_webui/routers/chats.py _process_chat_for_export   68% 57 18 0   50% 24 6   63%
open_webui/routers/chats.py _process_chat_for_export.get_message_content_length   50% 6 3 0   25% 4 1   40%
open_webui/routers/chats.py calculate_chat_stats   89% 9 1 0   67% 6 2   80%
open_webui/routers/chats.py generate_chat_stats_jsonl_generator   86% 14 2 0   83% 6 1   85%
open_webui/routers/chats.py export_chat_stats   93% 15 1 0   83% 6 1   90%
open_webui/routers/chats.py export_single_chat_stats   65% 17 6 0   62% 8 3   64%
open_webui/routers/chats.py delete_all_user_chats   83% 6 1 0   50% 4 2   70%
open_webui/routers/chats.py get_user_chat_list_by_user_id   93% 14 1 0   88% 8 1   91%
open_webui/routers/chats.py create_new_chat   67% 9 3 0   100% 2 0   73%
open_webui/routers/chats.py import_chats   100% 8 0 0   100% 0 0   100%
open_webui/routers/chats.py get_chat_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/chats.py set_chat_config   100% 5 0 0   100% 0 0   100%
open_webui/routers/chats.py search_user_chats   69% 16 5 0   50% 10 1   62%
open_webui/routers/chats.py get_chats_by_folder_id   80% 5 1 0   50% 2 1   71%
open_webui/routers/chats.py get_chat_list_by_folder_id   100% 8 0 0   100% 0 0   100%
open_webui/routers/chats.py get_user_pinned_chats   100% 2 0 0   100% 0 0   100%
open_webui/routers/chats.py generate_chat_export_ndjson   77% 13 3 0   83% 6 1   79%
open_webui/routers/chats.py get_user_chats   100% 1 0 0   100% 0 0   100%
open_webui/routers/chats.py get_user_archived_chats   100% 1 0 0   100% 0 0   100%
open_webui/routers/chats.py get_all_user_tags   67% 6 2 0   100% 0 0   67%
open_webui/routers/chats.py get_all_user_chats_in_db   67% 3 1 0   50% 2 1   60%
open_webui/routers/chats.py get_archived_session_user_chat_list   100% 13 0 0   100% 8 0   100%
open_webui/routers/chats.py get_archived_session_user_chat_count   100% 1 0 0   100% 0 0   100%
open_webui/routers/chats.py archive_all_chats   100% 4 0 0   50% 2 1   83%
open_webui/routers/chats.py unarchive_all_chats   100% 4 0 0   50% 2 1   83%
open_webui/routers/chats.py unshare_all_chats   78% 9 2 0   50% 4 2   69%
open_webui/routers/chats.py get_shared_session_user_chat_list   100% 12 0 0   100% 8 0   100%
open_webui/routers/chats.py get_shared_chat_by_id   92% 13 1 0   80% 10 2   87%
open_webui/routers/chats.py get_user_chat_list_by_tag_name   100% 4 0 0   100% 2 0   100%
open_webui/routers/chats.py compact_chat_by_id   91% 22 2 0   75% 12 3   85%
open_webui/routers/chats.py get_chat_by_id   100% 7 0 0   100% 2 0   100%
open_webui/routers/chats.py update_chat_by_id   100% 12 0 0   100% 6 0   100%
open_webui/routers/chats.py update_chat_message_by_id   100% 11 0 0   67% 6 2   88%
open_webui/routers/chats.py delete_chat_message_by_id   80% 10 2 0   67% 6 2   75%
open_webui/routers/chats.py send_chat_message_event_by_id   71% 14 4 0   67% 6 2   70%
open_webui/routers/chats.py delete_chat_by_id   67% 18 6 0   50% 12 4   60%
open_webui/routers/chats.py get_pinned_status_by_id   100% 4 0 0   100% 2 0   100%
open_webui/routers/chats.py pin_chat_by_id   100% 6 0 0   100% 2 0   100%
open_webui/routers/chats.py fork_chat_by_id   79% 39 8 0   65% 20 5   75%
open_webui/routers/chats.py clone_chat_by_id   91% 11 1 0   75% 4 1   87%
open_webui/routers/chats.py clone_shared_chat_by_id   76% 17 4 0   50% 10 3   67%
open_webui/routers/chats.py archive_chat_by_id   100% 11 0 0   100% 4 0   100%
open_webui/routers/chats.py share_chat_by_id   84% 19 3 0   67% 12 4   77%
open_webui/routers/chats.py delete_shared_chat_by_id   100% 9 0 0   100% 4 0   100%
open_webui/routers/chats.py update_shared_chat_access_by_id   88% 8 1 0   75% 4 1   83%
open_webui/routers/chats.py get_shared_chat_access_by_id   86% 7 1 0   75% 4 1   82%
open_webui/routers/chats.py mark_chat_unread_by_id   100% 5 0 0   100% 2 0   100%
open_webui/routers/chats.py update_chat_folder_id_by_id   100% 8 0 0   100% 4 0   100%
open_webui/routers/chats.py get_chat_tags_by_id   100% 5 0 0   100% 2 0   100%
open_webui/routers/chats.py add_tag_by_id_and_tag_name   92% 13 1 0   83% 6 1   89%
open_webui/routers/chats.py delete_tag_by_id_and_tag_name   100% 10 0 0   100% 4 0   100%
open_webui/routers/chats.py (no function)   100% 180 0 0   100% 0 0   100%
open_webui/routers/configs.py get_config_values   100% 2 0 0   100% 0 0   100%
open_webui/routers/configs.py config_updates   100% 1 0 0   100% 0 0   100%
open_webui/routers/configs.py import_config   0% 3 3 0   100% 0 0   0%
open_webui/routers/configs.py export_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/configs.py get_config_namespace   100% 1 0 0   100% 0 0   100%
open_webui/routers/configs.py get_connections_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/configs.py set_connections_config   100% 4 0 0   100% 0 0   100%
open_webui/routers/configs.py register_oauth_client   92% 12 1 0   100% 4 0   94%
open_webui/routers/configs.py get_tool_servers_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/configs.py set_tool_servers_config   43% 30 17 0   60% 10 2   48%
open_webui/routers/configs.py get_terminal_servers_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/configs.py set_terminal_servers_config   100% 5 0 0   100% 0 0   100%
open_webui/routers/configs.py verify_terminal_server_connection   74% 23 6 0   50% 8 0   68%
open_webui/routers/configs.py put_terminal_server_policy   74% 19 5 0   67% 6 0   72%
open_webui/routers/configs.py put_terminal_server_lifecycle   74% 19 5 0   67% 6 0   72%
open_webui/routers/configs.py refresh_terminal_server_terminals   79% 24 5 0   80% 10 0   79%
open_webui/routers/configs.py verify_tool_servers_config   25% 77 58 0   20% 40 6   23%
open_webui/routers/configs.py get_code_execution_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/configs.py set_code_execution_config   100% 4 0 0   100% 0 0   100%
open_webui/routers/configs.py get_models_defaults   100% 1 0 0   100% 0 0   100%
open_webui/routers/configs.py get_models_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/configs.py set_models_config   100% 4 0 0   100% 0 0   100%
open_webui/routers/configs.py get_subagents_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/configs.py set_subagents_config   100% 4 0 0   100% 0 0   100%
open_webui/routers/configs.py set_default_suggestions   100% 6 0 0   100% 0 0   100%
open_webui/routers/configs.py set_banners   100% 5 0 0   100% 0 0   100%
open_webui/routers/configs.py get_banners   100% 1 0 0   100% 0 0   100%
open_webui/routers/configs.py (no function)   100% 174 0 0   100% 0 0   100%
open_webui/routers/evaluations.py get_config_values   100% 2 0 0   100% 0 0   100%
open_webui/routers/evaluations.py _get_embedding_model   67% 9 3 0   75% 4 1   69%
open_webui/routers/evaluations.py _calculate_elo   43% 23 13 0   38% 8 1   42%
open_webui/routers/evaluations.py _calculate_elo.get_or_create_stats   0% 3 3 0   0% 2 0   0%
open_webui/routers/evaluations.py _get_top_tags   89% 9 1 0   83% 6 1   87%
open_webui/routers/evaluations.py _compute_similarities   32% 19 13 0   50% 4 2   35%
open_webui/routers/evaluations.py get_leaderboard   64% 14 5 0   75% 4 1   67%
open_webui/routers/evaluations.py get_model_history   100% 2 0 0   100% 0 0   100%
open_webui/routers/evaluations.py get_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/evaluations.py update_config   100% 9 0 0   100% 4 0   100%
open_webui/routers/evaluations.py get_feedback_model_ids   100% 1 0 0   100% 0 0   100%
open_webui/routers/evaluations.py get_all_feedback_ids   100% 1 0 0   100% 0 0   100%
open_webui/routers/evaluations.py delete_all_feedbacks   75% 4 1 0   50% 2 1   67%
open_webui/routers/evaluations.py export_all_feedbacks   100% 4 0 0   100% 2 0   100%
open_webui/routers/evaluations.py get_user_feedbacks   100% 4 0 0   100% 0 0   100%
open_webui/routers/evaluations.py delete_feedbacks   100% 4 0 0   100% 2 0   100%
open_webui/routers/evaluations.py get_feedbacks   100% 12 0 0   100% 6 0   100%
open_webui/routers/evaluations.py create_feedback   80% 5 1 0   50% 2 1   71%
open_webui/routers/evaluations.py get_feedback_by_id   83% 6 1 0   75% 4 1   80%
open_webui/routers/evaluations.py update_feedback_by_id   86% 7 1 0   75% 4 1   82%
open_webui/routers/evaluations.py delete_feedback_by_id   86% 7 1 0   75% 4 1   82%
open_webui/routers/evaluations.py (no function)   100% 70 0 0   100% 0 0   100%
open_webui/routers/files.py _is_text_file   0% 15 15 0   0% 4 0   0%
open_webui/routers/files.py _cleanup_local_cache   20% 10 8 0   25% 4 1   21%
open_webui/routers/files.py _matches_configured_mime_type   0% 6 6 0   0% 4 0   0%
open_webui/routers/files.py _media_supported_for_extraction   0% 3 3 0   0% 2 0   0%
open_webui/routers/files.py process_uploaded_file   86% 7 1 0   50% 2 1   78%
open_webui/routers/files.py process_uploaded_file._process_handler   40% 45 27 0   18% 22 6   33%
open_webui/routers/files.py upload_file   100% 11 0 0   100% 2 0   100%
open_webui/routers/files.py upload_file_handler   72% 58 16 0   60% 20 4   69%
open_webui/routers/files.py list_files   100% 8 0 0   100% 6 0   100%
open_webui/routers/files.py search_files   100% 9 0 0   100% 8 0   100%
open_webui/routers/files.py count_files   100% 2 0 0   100% 0 0   100%
open_webui/routers/files.py delete_all_files   58% 12 5 0   50% 2 1   57%
open_webui/routers/files.py get_file_by_id   83% 6 1 0   75% 4 1   80%
open_webui/routers/files.py get_file_process_status   90% 10 1 0   83% 6 1   88%
open_webui/routers/files.py get_file_process_status.event_stream   75% 16 4 0   50% 10 5   65%
open_webui/routers/files.py get_file_data_content_by_id   83% 6 1 0   25% 4 1   60%
open_webui/routers/files.py update_file_data_content_by_id   62% 26 10 0   60% 10 2   61%
open_webui/routers/files.py get_file_content_by_id   10% 30 27 0   8% 12 1   10%
open_webui/routers/files.py get_html_file_content_by_id   14% 21 18 0   12% 8 1   14%
open_webui/routers/files.py get_file_content_by_id   65% 20 7 0   62% 8 3   64%
open_webui/routers/files.py rename_file_by_id   80% 10 2 0   67% 6 2   75%
open_webui/routers/files.py delete_file_by_id   42% 26 15 0   20% 10 2   36%
open_webui/routers/files.py (no function)   100% 74 0 0   100% 0 0   100%
open_webui/routers/folders.py get_folder_unread_counts   46% 13 7 0   17% 6 1   37%
open_webui/routers/folders.py check_folders_permission   60% 5 2 0   50% 4 2   56%
open_webui/routers/folders.py get_folders   75% 20 5 0   60% 10 2   70%
open_webui/routers/folders.py get_folders.is_in_parent_cycle   0% 6 6 0   0% 2 0   0%
open_webui/routers/folders.py create_folder   38% 32 20 0   38% 16 2   38%
open_webui/routers/folders.py get_shared_folders   71% 17 5 0   17% 6 1   57%
open_webui/routers/folders.py get_folder_by_id   80% 10 2 0   75% 4 1   79%
open_webui/routers/folders.py update_folder_name_by_id   80% 25 5 0   56% 16 3   71%
open_webui/routers/folders.py update_folder_parent_id_by_id   71% 17 5 0   83% 6 1   74%
open_webui/routers/folders.py update_folder_is_expanded_by_id   67% 15 5 0   83% 6 1   71%
open_webui/routers/folders.py update_folder_access_by_id   83% 12 2 0   50% 6 1   72%
open_webui/routers/folders.py get_shared_folder_chats   63% 30 11 0   43% 14 2   57%
open_webui/routers/folders.py mark_folder_chats_read_by_id   91% 11 1 0   75% 4 1   87%
open_webui/routers/folders.py delete_folder_by_id   17% 36 30 0   11% 18 2   15%
open_webui/routers/folders.py (no function)   100% 64 0 0   100% 0 0   100%
open_webui/routers/functions.py get_functions   67% 3 1 0   50% 2 1   60%
open_webui/routers/functions.py get_function_list   67% 3 1 0   50% 2 1   60%
open_webui/routers/functions.py get_functions   67% 3 1 0   50% 2 1   60%
open_webui/routers/functions.py github_url_to_raw_url   56% 9 4 0   50% 4 2   54%
open_webui/routers/functions.py load_function_from_url   85% 20 3 0   50% 6 3   77%
open_webui/routers/functions.py sync_functions   53% 15 7 0   50% 4 0   53%
open_webui/routers/functions.py create_new_function   46% 26 14 0   38% 8 1   44%
open_webui/routers/functions.py get_function_by_id   75% 4 1 0   50% 2 1   67%
open_webui/routers/functions.py toggle_function_by_id   27% 11 8 0   25% 4 1   27%
open_webui/routers/functions.py toggle_global_by_id   38% 8 5 0   25% 4 1   33%
open_webui/routers/functions.py update_function_by_id   32% 19 13 0   0% 4 0   26%
open_webui/routers/functions.py delete_function_by_id   100% 8 0 0   50% 2 1   90%
open_webui/routers/functions.py get_function_valves_by_id   38% 8 5 0   50% 2 1   40%
open_webui/routers/functions.py get_function_valves_spec_by_id   30% 10 7 0   25% 4 1   29%
open_webui/routers/functions.py update_function_valves_by_id   18% 17 14 0   25% 4 1   19%
open_webui/routers/functions.py get_function_user_valves_by_id   38% 8 5 0   50% 2 1   40%
open_webui/routers/functions.py get_function_user_valves_spec_by_id   25% 12 9 0   17% 6 1   22%
open_webui/routers/functions.py update_function_user_valves_by_id   16% 19 16 0   17% 6 1   16%
open_webui/routers/functions.py (no function)   100% 59 0 0   100% 0 0   100%
open_webui/routers/groups.py get_groups   57% 7 3 0   25% 4 1   45%
open_webui/routers/groups.py create_new_group   45% 11 6 0   50% 2 1   46%
open_webui/routers/groups.py get_group_by_id   100% 4 0 0   100% 2 0   100%
open_webui/routers/groups.py get_group_info_by_id   100% 4 0 0   100% 2 0   100%
open_webui/routers/groups.py export_group_by_id   100% 4 0 0   100% 2 0   100%
open_webui/routers/groups.py get_users_in_group   50% 6 3 0   100% 0 0   50%
open_webui/routers/groups.py update_group_by_id   73% 11 3 0   100% 2 0   77%
open_webui/routers/groups.py add_user_to_group   77% 13 3 0   100% 4 0   82%
open_webui/routers/groups.py remove_users_from_group   73% 11 3 0   100% 2 0   77%
open_webui/routers/groups.py delete_group_by_id   45% 11 6 0   50% 2 1   46%
open_webui/routers/groups.py preview_group_access   100% 12 0 0   100% 2 0   100%
open_webui/routers/groups.py (no function)   100% 44 0 0   100% 0 0   100%
open_webui/routers/images.py get_config_values   100% 2 0 0   100% 0 0   100%
open_webui/routers/images.py get_image_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/images.py config_updates   100% 1 0 0   100% 0 0   100%
open_webui/routers/images.py normalize_openai_edit_image_data_url   4% 24 23 0   0% 8 0   3%
open_webui/routers/images.py get_image_file_item   40% 5 3 0   100% 0 0   40%
open_webui/routers/images.py set_image_model   38% 16 10 0   25% 4 1   35%
open_webui/routers/images.py get_image_model   44% 16 9 0   62% 8 3   50%
open_webui/routers/images.py get_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/images.py update_config   93% 15 1 0   83% 6 1   90%
open_webui/routers/images.py get_automatic1111_api_auth   0% 6 6 0   0% 2 0   0%
open_webui/routers/images.py verify_connection   28% 18 13 0   25% 8 2   27%
open_webui/routers/images.py get_models   19% 36 29 0   23% 22 3   21%
open_webui/routers/images.py _is_same_origin   0% 4 4 0   100% 0 0   0%
open_webui/routers/images.py _is_same_origin._default_port   0% 1 1 0   100% 0 0   0%
open_webui/routers/images.py get_image_data   4% 23 22 0   0% 8 0   3%
open_webui/routers/images.py upload_image   8% 12 11 0   0% 6 2   6%
open_webui/routers/images.py generate_images   88% 8 1 0   75% 4 1   83%
open_webui/routers/images.py image_generations   26% 100 74 0   20% 56 7   24%
open_webui/routers/images.py edit_images   88% 8 1 0   75% 4 1   83%
open_webui/routers/images.py image_edits   22% 118 92 0   14% 64 7   19%
open_webui/routers/images.py image_edits.load_url_image   24% 25 19 0   30% 10 3   26%
open_webui/routers/images.py (no function)   100% 119 0 0   100% 0 0   100%
open_webui/routers/knowledge.py delete_file_resource   0% 14 14 0   0% 4 0   0%
open_webui/routers/knowledge.py embed_knowledge_base_metadata   100% 8 0 0   100% 0 0   100%
open_webui/routers/knowledge.py remove_knowledge_base_metadata_embedding   0% 6 6 0   100% 0 0   0%
open_webui/routers/knowledge.py is_external_knowledge   0% 1 1 0   100% 0 0   0%
open_webui/routers/knowledge.py external_knowledge_error   0% 1 1 0   100% 0 0   0%
open_webui/routers/knowledge.py _verify_directory_in_knowledge   0% 5 5 0   0% 4 0   0%
open_webui/routers/knowledge.py get_knowledge_bases   79% 14 3 0   25% 4 1   67%
open_webui/routers/knowledge.py search_knowledge_bases   75% 24 6 0   57% 14 4   68%
open_webui/routers/knowledge.py search_knowledge_files   92% 13 1 0   83% 6 1   89%
open_webui/routers/knowledge.py create_new_knowledge   78% 9 2 0   50% 4 2   69%
open_webui/routers/knowledge.py reindex_knowledge_files   39% 44 27 0   38% 16 4   38%
open_webui/routers/knowledge.py reindex_knowledge_base_metadata_embeddings   100% 12 0 0   100% 4 0   100%
open_webui/routers/knowledge.py _get_external_connection_provider_and_config   25% 12 9 0   12% 8 1   20%
open_webui/routers/knowledge.py _get_external_auth_config   0% 3 3 0   0% 2 0   0%
open_webui/routers/knowledge.py _get_normalized_external_source   0% 19 19 0   0% 12 0   0%
open_webui/routers/knowledge.py _get_sanitized_external_connection   0% 4 4 0   100% 0 0   0%
open_webui/routers/knowledge.py _get_external_connections   100% 1 0 0   100% 0 0   100%
open_webui/routers/knowledge.py _set_external_connections   0% 1 1 0   100% 0 0   0%
open_webui/routers/knowledge.py _get_external_connection_from_form   33% 3 2 0   100% 0 0   33%
open_webui/routers/knowledge.py _get_external_connection_update_from_form   0% 2 2 0   100% 0 0   0%
open_webui/routers/knowledge.py _get_external_connection_by_id   100% 2 0 0   100% 0 0   100%
open_webui/routers/knowledge.py _get_knowledge_base_count_for_external_connection   0% 5 5 0   0% 4 0   0%
open_webui/routers/knowledge.py get_external_knowledge_connections   100% 2 0 0   100% 0 0   100%
open_webui/routers/knowledge.py create_external_knowledge_connection   29% 7 5 0   100% 0 0   29%
open_webui/routers/knowledge.py get_external_knowledge_connection   75% 4 1 0   50% 2 1   67%
open_webui/routers/knowledge.py update_external_knowledge_connection   40% 10 6 0   50% 2 1   42%
open_webui/routers/knowledge.py delete_external_knowledge_connection   33% 9 6 0   25% 4 1   31%
open_webui/routers/knowledge.py test_external_knowledge_connection   25% 12 9 0   17% 6 1   22%
open_webui/routers/knowledge.py _get_external_source_test_result   0% 6 6 0   0% 2 0   0%
open_webui/routers/knowledge.py test_external_knowledge_source   71% 7 2 0   75% 4 1   73%
open_webui/routers/knowledge.py test_external_knowledge_retrieval   60% 5 2 0   50% 2 1   57%
open_webui/routers/knowledge.py create_external_knowledge   21% 14 11 0   17% 6 1   20%
open_webui/routers/knowledge.py create_external_knowledge_source   20% 20 16 0   33% 6 0   23%
open_webui/routers/knowledge.py update_external_knowledge_source   19% 32 26 0   8% 12 1   16%
open_webui/routers/knowledge.py get_knowledge_by_id   50% 6 3 0   25% 4 1   40%
open_webui/routers/knowledge.py update_knowledge_by_id   23% 13 10 0   17% 6 1   21%
open_webui/routers/knowledge.py update_knowledge_access_by_id   40% 10 6 0   25% 4 1   36%
open_webui/routers/knowledge.py get_pending_knowledge_files   33% 9 6 0   17% 6 1   27%
open_webui/routers/knowledge.py get_pending_knowledge_files.event_stream   0% 8 8 0   0% 4 0   0%
open_webui/routers/knowledge.py get_knowledge_files_by_id   12% 24 21 0   6% 18 1   10%
open_webui/routers/knowledge.py add_file_to_knowledge_by_id   11% 27 24 0   6% 16 1   9%
open_webui/routers/knowledge.py update_file_from_knowledge_by_id   14% 22 19 0   8% 12 1   12%
open_webui/routers/knowledge.py remove_file_from_knowledge_by_id   18% 28 23 0   6% 16 3   14%
open_webui/routers/knowledge.py delete_knowledge_by_id   9% 32 29 0   6% 16 1   8%
open_webui/routers/knowledge.py reset_knowledge_by_id   15% 20 17 0   8% 12 1   12%
open_webui/routers/knowledge.py sync_knowledge_diff   2% 48 47 0   0% 24 0   1%
open_webui/routers/knowledge.py sync_knowledge_cleanup   4% 23 22 0   0% 14 0   3%
open_webui/routers/knowledge.py add_files_to_knowledge_batch   7% 41 38 0   4% 26 1   6%
open_webui/routers/knowledge.py export_knowledge_by_id   16% 19 16 0   10% 10 1   14%
open_webui/routers/knowledge.py _verify_knowledge_write_access   38% 8 5 0   17% 6 1   29%
open_webui/routers/knowledge.py create_knowledge_directory   14% 7 6 0   0% 2 0   11%
open_webui/routers/knowledge.py update_knowledge_directory   11% 9 8 0   0% 4 0   8%
open_webui/routers/knowledge.py delete_knowledge_directory   6% 18 17 0   0% 8 0   4%
open_webui/routers/knowledge.py move_file_in_knowledge   11% 9 8 0   0% 4 0   8%
open_webui/routers/knowledge.py (no function)   100% 206 0 0   100% 0 0   100%
open_webui/routers/memories.py check_memories_permission   60% 5 2 0   50% 4 2   56%
open_webui/routers/memories.py get_memories   100% 2 0 0   100% 0 0   100%
open_webui/routers/memories.py _memory_metadata   0% 1 1 0   100% 0 0   0%
open_webui/routers/memories.py reindex_memory_vectors_for_user   83% 12 2 0   100% 2 0   86%
open_webui/routers/memories.py upsert_memory_vectors_or_reindex   0% 8 8 0   0% 2 0   0%
open_webui/routers/memories.py add_memory   62% 8 3 0   100% 0 0   62%
open_webui/routers/memories.py update_memories   81% 42 8 0   71% 24 7   77%
open_webui/routers/memories.py query_memory   21% 24 19 0   14% 14 0   18%
open_webui/routers/memories.py search_memories   100% 3 0 0   100% 0 0   100%
open_webui/routers/memories.py list_memory_paths   100% 3 0 0   100% 0 0   100%
open_webui/routers/memories.py read_memory_path   100% 4 0 0   100% 0 0   100%
open_webui/routers/memories.py reindex_memories_from_vector_db   83% 12 2 0   75% 4 1   81%
open_webui/routers/memories.py reset_memory_from_vector_db   100% 4 0 0   100% 0 0   100%
open_webui/routers/memories.py delete_memory_by_user_id   90% 10 1 0   50% 2 1   83%
open_webui/routers/memories.py update_memory_by_id   92% 13 1 0   100% 6 0   95%
open_webui/routers/memories.py delete_memory_by_id   100% 7 0 0   100% 2 0   100%
open_webui/routers/memories.py (no function)   100% 83 0 0   100% 0 0   100%
open_webui/routers/models.py add_chat_variables_schema   86% 7 1 0   50% 4 2   73%
open_webui/routers/models.py _safe_static_redirect_path   0% 22 22 0   0% 18 0   0%
open_webui/routers/models.py is_valid_model_id   100% 1 0 0   100% 0 0   100%
open_webui/routers/models.py _verify_background_image   12% 16 14 0   12% 8 1   12%
open_webui/routers/models.py _verify_knowledge_file_access   18% 11 9 0   10% 10 1   14%
open_webui/routers/models.py get_models   88% 33 4 0   75% 20 3   83%
open_webui/routers/models.py get_all_model_records   100% 1 0 0   100% 0 0   100%
open_webui/routers/models.py get_base_model_tags   100% 2 0 0   100% 0 0   100%
open_webui/routers/models.py get_base_models   100% 1 0 0   100% 0 0   100%
open_webui/routers/models.py get_model_tags   100% 2 0 0   100% 0 0   100%
open_webui/routers/models.py create_new_model   50% 28 14 0   32% 22 5   42%
open_webui/routers/models.py export_models   50% 28 14 0   57% 14 4   52%
open_webui/routers/models.py import_models   16% 100 84 0   13% 46 4   15%
open_webui/routers/models.py sync_models   100% 9 0 0   100% 4 0   100%
open_webui/routers/models.py get_model_by_id   27% 11 8 0   17% 6 1   24%
open_webui/routers/models.py get_model_profile_image   38% 39 24 0   31% 26 4   35%
open_webui/routers/models.py toggle_model_by_id   30% 10 7 0   17% 6 1   25%
open_webui/routers/models.py update_model_by_id   89% 27 3 0   78% 18 4   84%
open_webui/routers/models.py update_model_access_by_id   80% 15 3 0   62% 8 3   74%
open_webui/routers/models.py delete_model_by_id   89% 9 1 0   67% 6 2   80%
open_webui/routers/models.py delete_all_models   100% 4 0 0   50% 2 1   83%
open_webui/routers/models.py (no function)   100% 81 0 0   100% 0 0   100%
open_webui/routers/notes.py _truncate_note_data   100% 4 0 0   100% 2 0   100%
open_webui/routers/notes.py get_notes   93% 14 1 0   83% 6 1   90%
open_webui/routers/notes.py get_pinned_notes   88% 8 1 0   75% 4 1   83%
open_webui/routers/notes.py search_notes   83% 29 5 0   75% 20 3   80%
open_webui/routers/notes.py create_new_note   60% 10 4 0   50% 2 1   58%
open_webui/routers/notes.py get_note_by_id   80% 10 2 0   67% 6 2   75%
open_webui/routers/notes.py get_note_chat_by_id   66% 32 11 0   56% 18 6   62%
open_webui/routers/notes.py get_note_chats_by_id   70% 23 7 0   64% 14 5   68%
open_webui/routers/notes.py create_note_chat_by_id   71% 14 4 0   62% 8 3   68%
open_webui/routers/notes.py update_note_by_id   77% 22 5 0   80% 10 2   78%
open_webui/routers/notes.py update_note_access_by_id   86% 14 2 0   67% 6 2   80%
open_webui/routers/notes.py pin_note_by_id   83% 12 2 0   67% 6 2   78%
open_webui/routers/notes.py delete_note_by_id   64% 14 5 0   67% 6 2   65%
open_webui/routers/notes.py (no function)   100% 58 0 0   100% 0 0   100%
open_webui/routers/notifications.py _check_notifications_access   50% 4 2 0   25% 4 1   38%
open_webui/routers/notifications.py get_notification_events   50% 2 1 0   100% 0 0   50%
open_webui/routers/notifications.py get_notification_targets   50% 2 1 0   100% 0 0   50%
open_webui/routers/notifications.py create_notification_target   20% 5 4 0   100% 0 0   20%
open_webui/routers/notifications.py update_notification_target   20% 5 4 0   100% 0 0   20%
open_webui/routers/notifications.py delete_notification_target   25% 4 3 0   0% 2 0   17%
open_webui/routers/notifications.py set_default_notification_target   20% 5 4 0   100% 0 0   20%
open_webui/routers/notifications.py test_notification_target   17% 6 5 0   100% 0 0   17%
open_webui/routers/notifications.py (no function)   100% 32 0 0   100% 0 0   100%
open_webui/routers/ollama.py _clean_proxy_headers   0% 1 1 0   100% 0 0   0%
open_webui/routers/ollama.py send_get_request   75% 12 3 0   50% 4 2   69%
open_webui/routers/ollama.py send_request   39% 41 25 0   14% 14 2   33%
open_webui/routers/ollama.py get_api_key   100% 3 0 0   100% 0 0   100%
open_webui/routers/ollama.py get_ollama_config_values   100% 2 0 0   100% 0 0   100%
open_webui/routers/ollama.py get_ollama_runtime_config   0% 2 2 0   100% 0 0   0%
open_webui/routers/ollama.py get_ollama_connection   0% 3 3 0   100% 0 0   0%
open_webui/routers/ollama.py get_status   100% 1 0 0   100% 0 0   100%
open_webui/routers/ollama.py verify_connection   52% 21 10 0   38% 8 1   48%
open_webui/routers/ollama.py get_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/ollama.py update_config   87% 15 2 0   50% 4 2   79%
open_webui/routers/ollama.py merge_models_lists   38% 13 8 0   30% 10 1   35%
open_webui/routers/ollama.py resolve_api_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/ollama.py get_ollama_connection_config   100% 2 0 0   100% 0 0   100%
open_webui/routers/ollama.py get_all_models   50% 50 25 0   32% 28 3   44%
open_webui/routers/ollama.py get_filtered_models   0% 5 5 0   100% 0 0   0%
open_webui/routers/ollama.py get_ollama_tags   25% 12 9 0   25% 8 2   25%
open_webui/routers/ollama.py get_ollama_loaded_models   56% 25 11 0   44% 18 2   51%
open_webui/routers/ollama.py get_ollama_versions   78% 18 4 0   75% 12 3   77%
open_webui/routers/ollama.py unload_model   29% 28 20 0   30% 10 1   29%
open_webui/routers/ollama.py pull_model   71% 7 2 0   100% 2 0   78%
open_webui/routers/ollama.py push_model   64% 11 4 0   67% 6 2   65%
open_webui/routers/ollama.py create_model   100% 5 0 0   100% 2 0   100%
open_webui/routers/ollama.py copy_model   77% 13 3 0   83% 6 1   79%
open_webui/routers/ollama.py delete_model   69% 16 5 0   83% 6 1   73%
open_webui/routers/ollama.py show_model_info   71% 14 4 0   75% 4 1   72%
open_webui/routers/ollama.py embed   71% 21 6 0   75% 8 2   72%
open_webui/routers/ollama.py embeddings   71% 21 6 0   75% 8 2   72%
open_webui/routers/ollama.py generate_completion   59% 17 7 0   67% 6 2   61%
open_webui/routers/ollama.py ChatMessage.check_at_least_one_field   0% 3 3 0   0% 2 0   0%
open_webui/routers/ollama.py validate_ollama_backend_idx   25% 8 6 0   17% 6 1   21%
open_webui/routers/ollama.py get_ollama_url   25% 12 9 0   17% 6 1   22%
open_webui/routers/ollama.py generate_chat_completion   31% 35 24 0   21% 14 1   29%
open_webui/routers/ollama.py generate_openai_completion   30% 23 16 0   0% 6 0   24%
open_webui/routers/ollama.py generate_openai_embeddings   9% 22 20 0   17% 6 1   11%
open_webui/routers/ollama.py generate_openai_chat_completion   24% 25 19 0   0% 6 0   19%
open_webui/routers/ollama.py generate_anthropic_messages   25% 16 12 0   17% 6 1   23%
open_webui/routers/ollama.py generate_responses   50% 16 8 0   50% 6 1   50%
open_webui/routers/ollama.py get_openai_models   59% 17 7 0   67% 6 2   61%
open_webui/routers/ollama.py parse_huggingface_url   0% 4 4 0   100% 0 0   0%
open_webui/routers/ollama.py download_file_stream   0% 22 22 0   0% 6 0   0%
open_webui/routers/ollama.py download_file_stream.blob_chunks   0% 3 3 0   0% 2 0   0%
open_webui/routers/ollama.py download_model   33% 9 6 0   25% 4 1   31%
open_webui/routers/ollama.py upload_model   100% 10 0 0   100% 2 0   100%
open_webui/routers/ollama.py upload_model.file_process_stream   55% 33 15 0   33% 6 0   51%
open_webui/routers/ollama.py upload_model.file_process_stream.blob_chunks   0% 3 3 0   0% 2 0   0%
open_webui/routers/ollama.py (no function)   100% 222 0 0   100% 0 0   100%
open_webui/routers/openai.py _clean_proxy_headers   0% 1 1 0   100% 0 0   0%
open_webui/routers/openai.py send_get_request   77% 13 3 0   50% 4 2   71%
open_webui/routers/openai.py get_models_request   67% 3 1 0   50% 2 1   60%
open_webui/routers/openai.py openai_reasoning_model_handler   33% 9 6 0   0% 6 2   20%
open_webui/routers/openai.py get_headers_and_cookies   42% 31 18 0   27% 22 4   36%
open_webui/routers/openai.py get_microsoft_entra_id_access_token   0% 6 6 0   100% 0 0   0%
open_webui/routers/openai.py get_model_management_root_url   17% 6 5 0   0% 6 0   8%
open_webui/routers/openai.py get_provider_model_loaded_state   0% 21 21 0   0% 18 0   0%
open_webui/routers/openai.py get_openai_config   100% 2 0 0   100% 0 0   100%
open_webui/routers/openai.py get_openai_runtime_config   100% 2 0 0   100% 0 0   100%
open_webui/routers/openai.py normalize_openai_api_keys   0% 6 6 0   0% 4 0   0%
open_webui/routers/openai.py get_openai_connection   100% 5 0 0   100% 0 0   100%
open_webui/routers/openai.py clear_openai_model_cache   80% 10 2 0   50% 4 2   71%
open_webui/routers/openai.py get_model_management_connection   60% 10 4 0   50% 4 0   57%
open_webui/routers/openai.py get_model_management_path   0% 5 5 0   100% 0 0   0%
open_webui/routers/openai.py get_model_management_payload   0% 3 3 0   0% 2 0   0%
open_webui/routers/openai.py send_model_management_request   4% 28 27 0   0% 4 0   3%
open_webui/routers/openai.py get_anthropic_request_target   11% 27 24 0   8% 12 1   10%
open_webui/routers/openai.py count_anthropic_tokens   9% 23 21 0   0% 4 0   7%
open_webui/routers/openai.py get_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/openai.py update_config   100% 11 0 0   100% 4 0   100%
open_webui/routers/openai.py speech   75% 40 10 0   30% 10 3   66%
open_webui/routers/openai.py get_all_models_responses   32% 47 32 0   28% 32 3   30%
open_webui/routers/openai.py get_filtered_models   0% 11 11 0   0% 6 0   0%
open_webui/routers/openai.py get_all_models   100% 13 0 0   100% 2 0   100%
open_webui/routers/openai.py get_all_models.extract_data   60% 5 2 0   50% 4 2   56%
open_webui/routers/openai.py get_all_models.is_supported_openai_models   0% 1 1 0   100% 0 0   0%
open_webui/routers/openai.py get_all_models.get_merged_models   26% 19 14 0   25% 12 1   26%
open_webui/routers/openai.py get_models   21% 42 33 0   30% 20 2   24%
open_webui/routers/openai.py get_provider_model_catalog   100% 1 0 0   100% 0 0   100%
open_webui/routers/openai.py download_provider_model   14% 7 6 0   100% 0 0   14%
open_webui/routers/openai.py get_provider_model_download_status   100% 1 0 0   100% 0 0   100%
open_webui/routers/openai.py load_provider_model   17% 6 5 0   100% 0 0   17%
open_webui/routers/openai.py unload_provider_model   17% 6 5 0   100% 0 0   17%
open_webui/routers/openai.py stream_provider_model_events   100% 1 0 0   100% 0 0   100%
open_webui/routers/openai.py delete_provider_model   17% 6 5 0   100% 0 0   17%
open_webui/routers/openai.py verify_connection   25% 48 36 0   10% 20 2   21%
open_webui/routers/openai.py get_azure_allowed_params   0% 7 7 0   0% 2 0   0%
open_webui/routers/openai.py is_openai_new_model   0% 7 7 0   0% 4 0   0%
open_webui/routers/openai.py _sanitize_model_for_url   0% 3 3 0   0% 2 0   0%
open_webui/routers/openai.py convert_to_azure_payload   0% 13 13 0   0% 6 0   0%
open_webui/routers/openai.py _normalize_stored_item   0% 5 5 0   0% 2 0   0%
open_webui/routers/openai.py convert_to_responses_payload   5% 84 80 0   0% 62 0   3%
open_webui/routers/openai.py convert_responses_result   0% 14 14 0   0% 12 0   0%
open_webui/routers/openai.py generate_chat_completion   17% 121 100 0   10% 62 4   15%
open_webui/routers/openai.py embeddings   0% 47 47 0   0% 16 0   0%
open_webui/routers/openai.py responses   55% 53 24 0   28% 18 3   48%
open_webui/routers/openai.py proxy   3% 62 60 0   5% 22 1   4%
open_webui/routers/openai.py (no function)   100% 136 0 0   100% 0 0   100%
open_webui/routers/pipelines.py get_sorted_filters   0% 3 3 0   100% 0 0   0%
open_webui/routers/pipelines.py get_openai_connection   100% 3 0 0   100% 0 0   100%
open_webui/routers/pipelines.py process_pipeline_inlet_filter   0% 39 39 0   0% 10 0   0%
open_webui/routers/pipelines.py process_pipeline_outlet_filter   0% 39 39 0   0% 10 0   0%
open_webui/routers/pipelines.py get_pipelines_list   100% 5 0 0   100% 0 0   100%
open_webui/routers/pipelines.py upload_pipeline   11% 38 34 0   12% 8 1   11%
open_webui/routers/pipelines.py upload_pipeline.pipeline_chunks   0% 3 3 0   0% 2 0   0%
open_webui/routers/pipelines.py add_pipeline   76% 21 5 0   50% 4 0   72%
open_webui/routers/pipelines.py delete_pipeline   52% 21 10 0   25% 4 1   48%
open_webui/routers/pipelines.py get_pipelines   42% 19 11 0   25% 4 1   39%
open_webui/routers/pipelines.py get_pipeline_valves   40% 20 12 0   25% 4 1   38%
open_webui/routers/pipelines.py get_pipeline_valves_spec   42% 19 11 0   25% 4 1   39%
open_webui/routers/pipelines.py update_pipeline_valves   42% 19 11 0   25% 4 1   39%
open_webui/routers/pipelines.py (no function)   100% 44 0 0   100% 0 0   100%
open_webui/routers/prompts.py get_prompts   75% 4 1 0   50% 2 1   67%
open_webui/routers/prompts.py get_prompt_tags   67% 3 1 0   50% 2 1   60%
open_webui/routers/prompts.py get_prompt_list   88% 24 3 0   79% 14 1   84%
open_webui/routers/prompts.py create_new_prompt   82% 11 2 0   67% 6 2   76%
open_webui/routers/prompts.py get_prompt_by_id   100% 5 0 0   75% 4 1   89%
open_webui/routers/prompts.py update_prompt_by_id   87% 15 2 0   80% 10 2   84%
open_webui/routers/prompts.py update_prompt_metadata   86% 14 2 0   80% 10 2   83%
open_webui/routers/prompts.py set_prompt_version   90% 10 1 0   83% 6 1   88%
open_webui/routers/prompts.py update_prompt_access_by_id   90% 10 1 0   75% 4 1   86%
open_webui/routers/prompts.py toggle_prompt_active   80% 10 2 0   67% 6 2   75%
open_webui/routers/prompts.py delete_prompt_by_id   89% 9 1 0   67% 6 2   80%
open_webui/routers/prompts.py get_prompt_history   88% 8 1 0   75% 4 1   83%
open_webui/routers/prompts.py get_prompt_history_entry   78% 9 2 0   67% 6 2   73%
open_webui/routers/prompts.py delete_prompt_history_entry   73% 11 3 0   62% 8 3   68%
open_webui/routers/prompts.py get_prompt_diff   0% 9 9 0   0% 6 0   0%
open_webui/routers/prompts.py (no function)   100% 56 0 0   100% 0 0   100%
open_webui/routers/retrieval.py get_ef   100% 8 0 0   100% 2 0   100%
open_webui/routers/retrieval.py get_rf   6% 35 33 0   0% 14 0   4%
open_webui/routers/retrieval.py RetrievalConfig.__init__   100% 2 0 0   100% 0 0   100%
open_webui/routers/retrieval.py RetrievalConfig.__setattr__   67% 6 2 0   50% 4 2   60%
open_webui/routers/retrieval.py RetrievalConfig.save   100% 3 0 0   100% 2 0   100%
open_webui/routers/retrieval.py get_config_values   100% 2 0 0   100% 0 0   100%
open_webui/routers/retrieval.py get_retrieval_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/retrieval.py get_embedding_config   100% 2 0 0   100% 0 0   100%
open_webui/routers/retrieval.py unload_embedding_model   70% 10 3 0   33% 6 2   56%
open_webui/routers/retrieval.py update_embedding_config   71% 28 8 0   50% 8 4   67%
open_webui/routers/retrieval.py get_rag_config   100% 3 0 0   100% 0 0   100%
open_webui/routers/retrieval.py update_rag_config   91% 185 17 0   59% 32 3   86%
open_webui/routers/retrieval.py can_merge_chunks   0% 7 7 0   0% 4 0   0%
open_webui/routers/retrieval.py merge_docs_to_target_size   68% 25 8 0   60% 10 2   66%
open_webui/routers/retrieval.py merge_docs_to_target_size._merge_backward   20% 10 8 0   17% 6 1   19%
open_webui/routers/retrieval.py merge_docs_to_target_size._emit   75% 4 1 0   50% 2 1   67%
open_webui/routers/retrieval.py get_transformers_tokenizer   10% 20 18 0   0% 10 0   7%
open_webui/routers/retrieval.py get_splitter_length_function   43% 7 4 0   50% 4 2   45%
open_webui/routers/retrieval.py filter_file_metadata   100% 5 0 0   50% 2 1   86%
open_webui/routers/retrieval.py save_docs_to_vector_db   56% 63 28 0   53% 32 5   55%
open_webui/routers/retrieval.py save_docs_to_vector_db._get_docs_info   100% 11 0 0   100% 8 0   100%
open_webui/routers/retrieval.py has_vector_results   0% 1 1 0   100% 0 0   0%
open_webui/routers/retrieval.py process_file   68% 74 24 0   46% 24 7   62%
open_webui/routers/retrieval.py process_text   69% 13 4 0   50% 4 0   65%
open_webui/routers/retrieval.py _fetch_url   1% 68 67 0   0% 32 0   1%
open_webui/routers/retrieval.py process_url   32% 25 17 0   12% 8 1   27%
open_webui/routers/retrieval.py process_web   29% 28 20 0   0% 6 0   24%
open_webui/routers/retrieval.py search_web   4% 113 109 0   1% 110 5   2%
open_webui/routers/retrieval.py process_web_search   6% 53 50 0   5% 20 1   5%
open_webui/routers/retrieval.py process_web_search.search_query_with_semaphore   0% 2 2 0   100% 0 0   0%
open_webui/routers/retrieval.py _validate_collection_access   100% 5 0 0   100% 2 0   100%
open_webui/routers/retrieval.py query_doc_handler   75% 12 3 0   50% 2 1   71%
open_webui/routers/retrieval.py query_collection_handler   82% 11 2 0   50% 2 1   77%
open_webui/routers/retrieval.py delete_entries_from_collection   18% 17 14 0   17% 6 1   17%
open_webui/routers/retrieval.py reset_vector_db   100% 3 0 0   100% 0 0   100%
open_webui/routers/retrieval.py reset_upload_dir   59% 17 7 0   50% 8 2   56%
open_webui/routers/retrieval.py get_embeddings   100% 1 0 0   100% 0 0   100%
open_webui/routers/retrieval.py process_files_batch   46% 39 21 0   43% 14 2   45%
open_webui/routers/retrieval.py (no function)   100% 349 0 0   50% 2 1   99%
open_webui/routers/scim.py scim_error   0% 10 10 0   0% 8 0   0%
open_webui/routers/scim.py get_scim_auth   0% 25 25 0   0% 10 0   0%
open_webui/routers/scim.py get_external_id   0% 6 6 0   0% 6 0   0%
open_webui/routers/scim.py get_scim_provider   0% 3 3 0   0% 2 0   0%
open_webui/routers/scim.py find_user_by_external_id   0% 5 5 0   0% 2 0   0%
open_webui/routers/scim.py user_to_scim   0% 6 6 0   100% 0 0   0%
open_webui/routers/scim.py group_to_scim   0% 4 4 0   100% 0 0   0%
open_webui/routers/scim.py get_service_provider_config   0% 1 1 0   100% 0 0   0%
open_webui/routers/scim.py get_resource_types   0% 1 1 0   100% 0 0   0%
open_webui/routers/scim.py get_schemas   0% 1 1 0   100% 0 0   0%
open_webui/routers/scim.py get_users   0% 23 23 0   0% 6 0   0%
open_webui/routers/scim.py get_user   0% 4 4 0   0% 2 0   0%
open_webui/routers/scim.py create_user   0% 31 31 0   0% 22 0   0%
open_webui/routers/scim.py update_user   0% 34 34 0   0% 26 0   0%
open_webui/routers/scim.py patch_user   0% 53 53 0   0% 40 0   0%
open_webui/routers/scim.py delete_user   0% 8 8 0   0% 4 0   0%
open_webui/routers/scim.py get_groups   0% 15 15 0   0% 4 0   0%
open_webui/routers/scim.py get_group   0% 4 4 0   0% 2 0   0%
open_webui/routers/scim.py create_group   0% 22 22 0   0% 12 0   0%
open_webui/routers/scim.py update_group   0% 23 23 0   0% 10 0   0%
open_webui/routers/scim.py patch_group   0% 42 42 0   0% 30 0   0%
open_webui/routers/scim.py delete_group   0% 8 8 0   0% 4 0   0%
open_webui/routers/scim.py (no function)   100% 161 0 0   100% 0 0   100%
open_webui/routers/skills.py get_skills   86% 7 1 0   75% 4 1   82%
open_webui/routers/skills.py get_skill_list   90% 20 2 0   90% 10 1   90%
open_webui/routers/skills.py export_skills   60% 5 2 0   50% 4 2   56%
open_webui/routers/skills.py create_new_skill   80% 20 4 0   88% 8 1   82%
open_webui/routers/skills.py get_skill_by_id   83% 6 1 0   75% 4 1   80%
open_webui/routers/skills.py update_skill_by_id   82% 17 3 0   83% 6 1   83%
open_webui/routers/skills.py update_skill_access_by_id   90% 10 1 0   75% 4 1   86%
open_webui/routers/skills.py toggle_skill_by_id   80% 10 2 0   67% 6 2   75%
open_webui/routers/skills.py delete_skill_by_id   89% 9 1 0   67% 6 2   80%
open_webui/routers/skills.py (no function)   100% 39 0 0   100% 0 0   100%
open_webui/routers/tasks.py get_config_values   100% 2 0 0   100% 0 0   100%
open_webui/routers/tasks.py config_updates   100% 1 0 0   100% 0 0   100%
open_webui/routers/tasks.py apply_task_model_params   0% 4 4 0   0% 2 0   0%
open_webui/routers/tasks.py get_task_model_generation_config   0% 5 5 0   0% 2 0   0%
open_webui/routers/tasks.py get_task_config   100% 1 0 0   100% 0 0   100%
open_webui/routers/tasks.py update_task_config   100% 2 0 0   100% 0 0   100%
open_webui/routers/tasks.py generate_title   17% 29 24 0   30% 10 1   21%
open_webui/routers/tasks.py generate_follow_ups   19% 26 21 0   38% 8 1   24%
open_webui/routers/tasks.py generate_chat_tags   19% 26 21 0   38% 8 1   24%
open_webui/routers/tasks.py generate_image_prompt   12% 24 21 0   17% 6 1   13%
open_webui/routers/tasks.py generate_queries   21% 33 26 0   25% 16 4   22%
open_webui/routers/tasks.py generate_autocompletion   30% 33 23 0   33% 12 2   31%
open_webui/routers/tasks.py generate_emoji   15% 20 17 0   25% 4 1   17%
open_webui/routers/tasks.py generate_moa_response   18% 17 14 0   25% 4 1   19%
open_webui/routers/tasks.py (no function)   100% 61 0 0   100% 0 0   100%
open_webui/routers/terminals.py _sanitize_proxy_path   0% 18 18 0   0% 12 0   0%
open_webui/routers/terminals.py list_terminal_servers   100% 3 0 0   100% 0 0   100%
open_webui/routers/terminals.py proxy_terminal   5% 78 74 0   3% 38 1   4%
open_webui/routers/terminals.py proxy_terminal.cleanup   0% 2 2 0   100% 0 0   0%
open_webui/routers/terminals.py _resolve_authenticated_connection   0% 19 19 0   0% 4 0   0%
open_webui/routers/terminals.py _resolve_terminal_access   0% 23 23 0   0% 10 0   0%
open_webui/routers/terminals.py ws_terminal   0% 57 57 0   0% 18 0   0%
open_webui/routers/terminals.py ws_terminal._client_to_upstream   0% 11 11 0   0% 6 0   0%
open_webui/routers/terminals.py ws_terminal._upstream_to_client   0% 10 10 0   0% 8 0   0%
open_webui/routers/terminals.py ws_terminal._watch_access   0% 7 7 0   0% 2 0   0%
open_webui/routers/terminals.py (no function)   100% 35 0 0   100% 0 0   100%
open_webui/routers/tools.py get_tool_module   0% 2 2 0   100% 0 0   0%
open_webui/routers/tools.py get_tools   38% 39 24 0   50% 18 5   42%
open_webui/routers/tools.py get_tool_list   70% 10 3 0   50% 4 2   64%
open_webui/routers/tools.py github_url_to_raw_url   56% 9 4 0   50% 4 2   54%
open_webui/routers/tools.py load_tool_from_url   85% 20 3 0   50% 6 3   77%
open_webui/routers/tools.py export_tools   75% 4 1 0   50% 2 1   67%
open_webui/routers/tools.py create_new_tools   48% 29 15 0   50% 8 2   49%
open_webui/routers/tools.py get_tools_by_id   30% 10 7 0   17% 6 1   25%
open_webui/routers/tools.py update_tools_by_id   11% 28 25 0   10% 10 1   11%
open_webui/routers/tools.py update_tool_access_by_id   30% 10 7 0   25% 4 1   29%
open_webui/routers/tools.py delete_tools_by_id   23% 13 10 0   17% 6 1   21%
open_webui/routers/tools.py get_tools_valves_by_id   30% 10 7 0   25% 4 1   29%
open_webui/routers/tools.py get_tools_valves_spec_by_id   25% 12 9 0   17% 6 1   22%
open_webui/routers/tools.py update_tools_valves_by_id   16% 19 16 0   17% 6 1   16%
open_webui/routers/tools.py get_tools_user_valves_by_id   30% 10 7 0   25% 4 1   29%
open_webui/routers/tools.py get_tools_user_valves_spec_by_id   25% 12 9 0   17% 6 1   22%
open_webui/routers/tools.py update_tools_user_valves_by_id   16% 19 16 0   17% 6 1   16%
open_webui/routers/tools.py (no function)   100% 62 0 0   100% 0 0   100%
open_webui/routers/users.py merge_user_ui_settings   0% 7 7 0   0% 4 0   0%
open_webui/routers/users.py get_users   100% 12 0 0   100% 2 0   100%
open_webui/routers/users.py get_all_users   100% 1 0 0   100% 0 0   100%
open_webui/routers/users.py search_users   100% 7 0 0   100% 2 0   100%
open_webui/routers/users.py get_user_groups   100% 1 0 0   100% 0 0   100%
open_webui/routers/users.py get_user_permissisions   100% 2 0 0   100% 0 0   100%
open_webui/routers/users.py _week_start   100% 1 0 0   100% 0 0   100%
open_webui/routers/users.py _build_weekly_heatmap   100% 9 0 0   100% 2 0   100%
open_webui/routers/users.py _build_cumulative_heatmap   100% 10 0 0   100% 2 0   100%
open_webui/routers/users.py _calculate_streaks   100% 13 0 0   100% 8 0   100%
open_webui/routers/users.py get_default_user_permissions   100% 2 0 0   100% 0 0   100%
open_webui/routers/users.py update_default_user_permissions   100% 4 0 0   100% 0 0   100%
open_webui/routers/users.py get_default_user_permissions_defaults   100% 2 0 0   100% 0 0   100%
open_webui/routers/users.py get_user_settings_by_session_user   56% 9 4 0   75% 4 1   62%
open_webui/routers/users.py update_user_settings_by_session_user   59% 22 9 0   44% 18 6   52%
open_webui/routers/users.py get_user_status_by_session_user   67% 3 1 0   50% 2 1   60%
open_webui/routers/users.py update_user_status_by_session_user   71% 7 2 0   50% 4 2   64%
open_webui/routers/users.py get_user_info_by_session_user   100% 1 0 0   100% 0 0   100%
open_webui/routers/users.py get_user_variables_by_session_user   100% 1 0 0   100% 0 0   100%
open_webui/routers/users.py update_user_variables_by_session_user   88% 8 1 0   50% 2 1   80%
open_webui/routers/users.py update_user_info_by_session_user   80% 5 1 0   50% 2 1   71%
open_webui/routers/users.py get_user_usage_by_session_user   100% 22 0 0   100% 4 0   100%
open_webui/routers/users.py get_user_by_id   100% 5 0 0   100% 2 0   100%
open_webui/routers/users.py get_user_info_by_id   100% 5 0 0   100% 2 0   100%
open_webui/routers/users.py get_user_oauth_sessions_by_id   75% 4 1 0   50% 2 1   67%
open_webui/routers/users.py get_user_profile_image_by_id   37% 19 12 0   42% 12 3   39%
open_webui/routers/users.py get_user_active_status_by_id   100% 1 0 0   100% 0 0   100%
open_webui/routers/users.py update_user_by_id   6% 52 49 0   0% 36 2   3%
open_webui/routers/users.py delete_user_by_id   50% 16 8 0   50% 6 3   50%
open_webui/routers/users.py get_user_groups_by_id   100% 1 0 0   100% 0 0   100%
open_webui/routers/users.py get_user_preview   100% 19 0 0   100% 2 0   100%
open_webui/routers/users.py (no function)   100% 227 0 0   100% 0 0   100%
open_webui/routers/utils.py get_gravatar   100% 1 0 0   100% 0 0   100%
open_webui/routers/utils.py format_code   86% 7 1 0   100% 0 0   86%
open_webui/routers/utils.py execute_code   67% 6 2 0   75% 4 1   70%
open_webui/routers/utils.py download_db   67% 6 2 0   50% 4 2   60%
open_webui/routers/utils.py (no function)   100% 24 0 0   100% 0 0   100%
open_webui/socket/main.py get_room_sid_map   100% 1 0 0   100% 0 0   100%
open_webui/socket/main.py JSONOnlyPacket.reconstruct_binary   0% 1 1 0   100% 0 0   0%
open_webui/socket/main.py get_session_pool_batches   67% 3 1 0   50% 2 1   60%
open_webui/socket/main.py periodic_session_pool_cleanup   60% 40 16 0   50% 18 5   57%
open_webui/socket/main.py periodic_usage_pool_cleanup   39% 31 19 0   25% 12 3   35%
open_webui/socket/main.py get_models_in_use   100% 2 0 0   100% 0 0   100%
open_webui/socket/main.py get_user_id_from_session_pool   0% 4 4 0   0% 2 0   0%
open_webui/socket/main.py get_socket_session_user   0% 4 4 0   100% 0 0   0%
open_webui/socket/main.py get_session_ids_from_room   100% 2 0 0   100% 0 0   100%
open_webui/socket/main.py get_session_ids_by_user_id   100% 3 0 0   100% 0 0   100%
open_webui/socket/main.py get_user_ids_from_room   0% 2 2 0   100% 0 0   0%
open_webui/socket/main.py emit_to_users   0% 5 5 0   0% 2 0   0%
open_webui/socket/main.py enter_room_for_users   0% 7 7 0   0% 4 0   0%
open_webui/socket/main.py disconnect_user_sessions   38% 8 5 0   50% 4 2   42%
open_webui/socket/main.py usage   0% 4 4 0   0% 2 0   0%
open_webui/socket/main.py connect   0% 11 11 0   0% 4 0   0%
open_webui/socket/main.py user_join   0% 20 20 0   0% 8 0   0%
open_webui/socket/main.py heartbeat   0% 4 4 0   0% 2 0   0%
open_webui/socket/main.py join_channel   0% 15 15 0   0% 8 0   0%
open_webui/socket/main.py join_note   0% 19 19 0   0% 8 0   0%
open_webui/socket/main.py channel_events   0% 12 12 0   0% 8 0   0%
open_webui/socket/main.py get_folder_unread_counts   0% 13 13 0   0% 6 0   0%
open_webui/socket/main.py chat_events   0% 19 19 0   0% 8 0   0%
open_webui/socket/main.py normalize_document_id   0% 3 3 0   0% 2 0   0%
open_webui/socket/main.py ydoc_document_join   0% 32 32 0   0% 10 0   0%
open_webui/socket/main.py document_save_handler   0% 11 11 0   0% 6 0   0%
open_webui/socket/main.py yjs_document_state   0% 19 19 0   0% 6 0   0%
open_webui/socket/main.py yjs_document_update   0% 34 34 0   0% 14 0   0%
open_webui/socket/main.py yjs_document_update.debounced_save   0% 2 2 0   100% 0 0   0%
open_webui/socket/main.py yjs_document_leave   0% 14 14 0   0% 4 0   0%
open_webui/socket/main.py yjs_awareness_update   0% 12 12 0   0% 4 0   0%
open_webui/socket/main.py disconnect   0% 10 10 0   0% 8 0   0%
open_webui/socket/main.py redis_event_listener   0% 25 25 0   0% 8 0   0%
open_webui/socket/main.py socket_event_handler   0% 14 14 0   0% 8 0   0%
open_webui/socket/main.py _make_channel_emitter   0% 7 7 0   100% 0 0   0%
open_webui/socket/main.py _make_channel_emitter._emit_channel_update   0% 13 13 0   0% 6 0   0%
open_webui/socket/main.py _make_channel_emitter.__channel_emitter__   0% 44 44 0   0% 26 0   0%
open_webui/socket/main.py get_event_emitter   67% 6 2 0   50% 4 2   60%
open_webui/socket/main.py get_event_emitter.__event_emitter__   36% 45 29 0   33% 30 8   35%
open_webui/socket/main.py get_event_call   0% 4 4 0   0% 2 0   0%
open_webui/socket/main.py get_event_call.__event_caller__   0% 10 10 0   0% 2 0   0%
open_webui/socket/main.py (no function)   85% 121 18 0   50% 4 2   84%
open_webui/socket/utils.py RedisLock.__init__   0% 5 5 0   100% 0 0   0%
open_webui/socket/utils.py RedisLock.aquire_lock   0% 2 2 0   100% 0 0   0%
open_webui/socket/utils.py RedisLock.renew_lock   0% 1 1 0   100% 0 0   0%
open_webui/socket/utils.py RedisLock.release_lock   0% 4 4 0   100% 0 0   0%
open_webui/socket/utils.py RedisDict.__init__   0% 3 3 0   100% 0 0   0%
open_webui/socket/utils.py RedisDict.__setitem__   0% 4 4 0   0% 2 0   0%
open_webui/socket/utils.py RedisDict.__getitem__   0% 4 4 0   0% 2 0   0%
open_webui/socket/utils.py RedisDict.__delitem__   0% 5 5 0   0% 4 0   0%
open_webui/socket/utils.py RedisDict.__contains__   0% 1 1 0   100% 0 0   0%
open_webui/socket/utils.py RedisDict.__len__   0% 1 1 0   100% 0 0   0%
open_webui/socket/utils.py RedisDict.keys   0% 1 1 0   100% 0 0   0%
open_webui/socket/utils.py RedisDict.values   0% 1 1 0   100% 0 0   0%
open_webui/socket/utils.py RedisDict.items   0% 1 1 0   100% 0 0   0%
open_webui/socket/utils.py RedisDict.scan_batches   0% 7 7 0   0% 4 0   0%
open_webui/socket/utils.py RedisDict.delete_many   0% 4 4 0   0% 4 0   0%
open_webui/socket/utils.py RedisDict.set   0% 24 24 0   0% 12 0   0%
open_webui/socket/utils.py RedisDict.get   0% 4 4 0   100% 0 0   0%
open_webui/socket/utils.py RedisDict.clear   0% 4 4 0   0% 2 0   0%
open_webui/socket/utils.py RedisDict.update   0% 5 5 0   0% 6 0   0%
open_webui/socket/utils.py RedisDict.setdefault   0% 3 3 0   0% 2 0   0%
open_webui/socket/utils.py CachedRedisDict.__init__   0% 3 3 0   100% 0 0   0%
open_webui/socket/utils.py CachedRedisDict._refresh_cache   0% 5 5 0   0% 2 0   0%
open_webui/socket/utils.py CachedRedisDict.__getitem__   0% 4 4 0   0% 2 0   0%
open_webui/socket/utils.py CachedRedisDict.__contains__   0% 1 1 0   100% 0 0   0%
open_webui/socket/utils.py CachedRedisDict.__len__   0% 1 1 0   100% 0 0   0%
open_webui/socket/utils.py CachedRedisDict.keys   0% 1 1 0   100% 0 0   0%
open_webui/socket/utils.py CachedRedisDict.values   0% 1 1 0   100% 0 0   0%
open_webui/socket/utils.py CachedRedisDict.items   0% 1 1 0   100% 0 0   0%
open_webui/socket/utils.py YdocManager.__init__   100% 4 0 0   100% 0 0   100%
open_webui/socket/utils.py YdocManager.append_to_updates   0% 12 12 0   0% 8 0   0%
open_webui/socket/utils.py YdocManager._compact_updates_redis   0% 13 13 0   0% 4 0   0%
open_webui/socket/utils.py YdocManager._compact_updates_memory   0% 8 8 0   0% 4 0   0%
open_webui/socket/utils.py YdocManager.get_updates   0% 6 6 0   0% 2 0   0%
open_webui/socket/utils.py YdocManager.document_exists   0% 5 5 0   0% 2 0   0%
open_webui/socket/utils.py YdocManager.get_users   0% 6 6 0   0% 2 0   0%
open_webui/socket/utils.py YdocManager.add_user   0% 9 9 0   0% 4 0   0%
open_webui/socket/utils.py YdocManager.remove_user   0% 8 8 0   0% 4 0   0%
open_webui/socket/utils.py YdocManager.remove_user_from_all_documents   0% 15 15 0   0% 12 0   0%
open_webui/socket/utils.py YdocManager.clear_document   0% 10 10 0   0% 6 0   0%
open_webui/socket/utils.py (no function)   100% 58 0 0   100% 0 0   100%
open_webui/storage/provider.py StorageProvider.get_file   0% 1 1 0   100% 0 0   0%
open_webui/storage/provider.py StorageProvider.upload_file   0% 1 1 0   100% 0 0   0%
open_webui/storage/provider.py StorageProvider.delete_all_files   0% 1 1 0   100% 0 0   0%
open_webui/storage/provider.py StorageProvider.delete_file   0% 1 1 0   100% 0 0   0%
open_webui/storage/provider.py LocalStorageProvider.upload_file   100% 7 0 0   100% 2 0   100%
open_webui/storage/provider.py LocalStorageProvider.get_file   100% 1 0 0   100% 0 0   100%
open_webui/storage/provider.py LocalStorageProvider.delete_file   80% 5 1 0   50% 2 1   71%
open_webui/storage/provider.py LocalStorageProvider.delete_all_files   55% 11 5 0   50% 8 2   53%
open_webui/storage/provider.py S3StorageProvider.__init__   0% 6 6 0   0% 2 0   0%
open_webui/storage/provider.py S3StorageProvider.sanitize_tag_value   0% 1 1 0   100% 0 0   0%
open_webui/storage/provider.py S3StorageProvider.upload_file   0% 11 11 0   0% 2 0   0%
open_webui/storage/provider.py S3StorageProvider.get_file   0% 7 7 0   100% 0 0   0%
open_webui/storage/provider.py S3StorageProvider.delete_file   0% 6 6 0   100% 0 0   0%
open_webui/storage/provider.py S3StorageProvider.delete_all_files   0% 10 10 0   0% 6 0   0%
open_webui/storage/provider.py S3StorageProvider._extract_s3_key   0% 1 1 0   100% 0 0   0%
open_webui/storage/provider.py S3StorageProvider._get_local_file_path   0% 1 1 0   100% 0 0   0%
open_webui/storage/provider.py GCSStorageProvider.__init__   0% 5 5 0   0% 2 0   0%
open_webui/storage/provider.py GCSStorageProvider.upload_file   0% 7 7 0   100% 0 0   0%
open_webui/storage/provider.py GCSStorageProvider.get_file   0% 8 8 0   100% 0 0   0%
open_webui/storage/provider.py GCSStorageProvider.delete_file   0% 7 7 0   100% 0 0   0%
open_webui/storage/provider.py GCSStorageProvider.delete_all_files   0% 7 7 0   0% 2 0   0%
open_webui/storage/provider.py AzureStorageProvider.__init__   0% 7 7 0   0% 2 0   0%
open_webui/storage/provider.py AzureStorageProvider.upload_file   0% 7 7 0   100% 0 0   0%
open_webui/storage/provider.py AzureStorageProvider.get_file   0% 9 9 0   100% 0 0   0%
open_webui/storage/provider.py AzureStorageProvider.delete_file   0% 7 7 0   100% 0 0   0%
open_webui/storage/provider.py AzureStorageProvider.delete_all_files   0% 7 7 0   0% 2 0   0%
open_webui/storage/provider.py get_storage_provider   33% 12 8 0   20% 10 2   27%
open_webui/storage/provider.py (no function)   100% 62 0 0   50% 2 1   98%
open_webui/tasks.py redis_task_command_listener   0% 31 31 0   0% 10 0   0%
open_webui/tasks.py redis_task_heartbeat   0% 10 10 0   0% 2 0   0%
open_webui/tasks.py redis_save_task   0% 6 6 0   0% 2 0   0%
open_webui/tasks.py redis_cleanup_task   0% 7 7 0   0% 2 0   0%
open_webui/tasks.py redis_list_tasks   0% 13 13 0   0% 8 0   0%
open_webui/tasks.py redis_send_command   0% 4 4 0   0% 2 0   0%
open_webui/tasks.py cleanup_task   0% 8 8 0   0% 6 0   0%
open_webui/tasks.py create_task   0% 11 11 0   0% 6 0   0%
open_webui/tasks.py list_tasks   67% 3 1 0   50% 2 1   60%
open_webui/tasks.py list_task_ids_by_item_id   67% 3 1 0   50% 2 1   60%
open_webui/tasks.py save_response_stream   0% 9 9 0   0% 6 0   0%
open_webui/tasks.py get_response_streams_by_chat_id   18% 17 14 0   10% 10 1   15%
open_webui/tasks.py clear_response_stream   0% 5 5 0   0% 4 0   0%
open_webui/tasks.py stop_task   25% 16 12 0   33% 6 2   27%
open_webui/tasks.py stop_item_tasks   50% 6 3 0   25% 4 1   40%
open_webui/tasks.py has_active_tasks   100% 2 0 0   100% 0 0   100%
open_webui/tasks.py (no function)   100% 33 0 0   100% 0 0   100%
open_webui/tools/__init__.py (no function)   100% 0 0 0   100% 0 0   100%
open_webui/tools/builtin.py _has_write_access_to_note   0% 5 5 0   0% 2 0   0%
open_webui/tools/builtin.py _emit_note_updated   0% 2 2 0   100% 0 0   0%
open_webui/tools/builtin.py _has_read_access_to_file   0% 8 8 0   0% 4 0   0%
open_webui/tools/builtin.py notify   0% 10 10 0   0% 2 0   0%
open_webui/tools/builtin.py get_current_timestamp   0% 18 18 0   0% 2 0   0%
open_webui/tools/builtin.py calculate_timestamp   0% 44 44 0   0% 6 0   0%
open_webui/tools/builtin.py search_web   0% 14 14 0   0% 2 0   0%
open_webui/tools/builtin.py fetch_url   0% 13 13 0   0% 6 0   0%
open_webui/tools/builtin.py generate_image   0% 17 17 0   0% 8 0   0%
open_webui/tools/builtin.py edit_image   0% 17 17 0   0% 8 0   0%
open_webui/tools/builtin.py ask_user   0% 45 45 0   0% 30 0   0%
open_webui/tools/builtin.py execute_code   0% 59 59 0   0% 32 0   0%
open_webui/tools/builtin.py list_memory_paths   0% 7 7 0   100% 0 0   0%
open_webui/tools/builtin.py read_memory_path   0% 7 7 0   100% 0 0   0%
open_webui/tools/builtin.py search_memories   0% 11 11 0   0% 4 0   0%
open_webui/tools/builtin.py add_memory   0% 9 9 0   0% 2 0   0%
open_webui/tools/builtin.py update_memory   0% 9 9 0   0% 2 0   0%
open_webui/tools/builtin.py replace_memory_content   0% 9 9 0   0% 2 0   0%
open_webui/tools/builtin.py delete_memory   0% 12 12 0   0% 4 0   0%
open_webui/tools/builtin.py list_memories   0% 12 12 0   0% 4 0   0%
open_webui/tools/builtin.py search_notes   0% 41 41 0   0% 20 0   0%
open_webui/tools/builtin.py view_note   0% 20 20 0   0% 10 0   0%
open_webui/tools/builtin.py write_note   0% 15 15 0   0% 6 0   0%
open_webui/tools/builtin.py replace_note_content   0% 74 74 0   0% 46 0   0%
open_webui/tools/builtin.py search_chats   0% 44 44 0   0% 28 0   0%
open_webui/tools/builtin.py view_chat   0% 25 25 0   0% 10 0   0%
open_webui/tools/builtin.py delegate_task   0% 6 6 0   0% 4 0   0%
open_webui/tools/builtin.py timer   0% 6 6 0   0% 4 0   0%
open_webui/tools/builtin.py search_channels   0% 20 20 0   0% 10 0   0%
open_webui/tools/builtin.py search_channel_messages   0% 30 30 0   0% 10 0   0%
open_webui/tools/builtin.py view_channel_message   0% 23 23 0   0% 12 0   0%
open_webui/tools/builtin.py view_channel_thread   0% 25 25 0   0% 12 0   0%
open_webui/tools/builtin.py list_knowledge_bases   0% 18 18 0   0% 6 0   0%
open_webui/tools/builtin.py search_knowledge_bases   0% 18 18 0   0% 6 0   0%
open_webui/tools/builtin.py search_knowledge_files   0% 60 60 0   0% 38 0   0%
open_webui/tools/builtin.py _get_accessible_chat_files   0% 17 17 0   0% 10 0   0%
open_webui/tools/builtin.py _grep_file_models   0% 33 33 0   0% 24 0   0%
open_webui/tools/builtin.py list_chat_files   0% 19 19 0   0% 10 0   0%
open_webui/tools/builtin.py grep_chat_files   0% 27 27 0   0% 20 0   0%
open_webui/tools/builtin.py query_chat_files   0% 55 55 0   0% 30 0   0%
open_webui/tools/builtin.py grep_knowledge_files   0% 61 61 0   0% 44 0   0%
open_webui/tools/builtin.py view_file   0% 58 58 0   0% 24 0   0%
open_webui/tools/builtin.py view_knowledge_file   0% 78 78 0   0% 34 0   0%
open_webui/tools/builtin.py list_knowledge   0% 60 60 0   0% 30 0   0%
open_webui/tools/builtin.py query_knowledge_files   0% 93 93 0   0% 56 0   0%
open_webui/tools/builtin.py query_knowledge_bases   0% 52 52 0   0% 26 0   0%
open_webui/tools/builtin.py view_skill   0% 28 28 0   0% 14 0   0%
open_webui/tools/builtin.py _task_summary   0% 5 5 0   100% 0 0   0%
open_webui/tools/builtin.py _emit_tasks   0% 2 2 0   0% 2 0   0%
open_webui/tools/builtin.py create_tasks   0% 24 24 0   0% 12 0   0%
open_webui/tools/builtin.py update_task   0% 21 21 0   0% 10 0   0%
open_webui/tools/builtin.py _validate_owned_automation_folder   0% 7 7 0   0% 4 0   0%
open_webui/tools/builtin.py create_automation   0% 36 36 0   0% 8 0   0%
open_webui/tools/builtin.py update_automation   0% 46 46 0   0% 16 0   0%
open_webui/tools/builtin.py list_automations   0% 26 26 0   0% 8 0   0%
open_webui/tools/builtin.py toggle_automation   0% 21 21 0   0% 8 0   0%
open_webui/tools/builtin.py delete_automation   0% 19 19 0   0% 8 0   0%
open_webui/tools/builtin.py _get_user_tz   0% 10 10 0   0% 4 0   0%
open_webui/tools/builtin.py _dt_to_ns   0% 5 5 0   0% 2 0   0%
open_webui/tools/builtin.py _ns_to_dt   0% 4 4 0   100% 0 0   0%
open_webui/tools/builtin.py _event_to_dict   0% 4 4 0   0% 2 0   0%
open_webui/tools/builtin.py search_calendar_events   0% 34 34 0   0% 10 0   0%
open_webui/tools/builtin.py create_calendar_event   0% 56 56 0   0% 28 0   0%
open_webui/tools/builtin.py update_calendar_event   0% 54 54 0   0% 28 0   0%
open_webui/tools/builtin.py delete_calendar_event   0% 27 27 0   0% 14 0   0%
open_webui/tools/builtin.py (no function)   100% 109 0 0   100% 0 0   100%
open_webui/tools/knowledge_fs.py MatchBudget.__init__   0% 1 1 0   100% 0 0   0%
open_webui/tools/knowledge_fs.py match_budget   0% 4 4 0   100% 0 0   0%
open_webui/tools/knowledge_fs.py is_regex_pattern   0% 1 1 0   100% 0 0   0%
open_webui/tools/knowledge_fs.py normalize_regex   0% 1 1 0   100% 0 0   0%
open_webui/tools/knowledge_fs.py build_matcher   0% 19 19 0   0% 6 0   0%
open_webui/tools/knowledge_fs.py build_matcher.matches   0% 11 11 0   0% 4 0   0%
open_webui/tools/knowledge_fs.py _parse_pipeline   0% 30 30 0   0% 16 0   0%
open_webui/tools/knowledge_fs.py _extract_flags   0% 8 8 0   0% 6 0   0%
open_webui/tools/knowledge_fs.py _extract_numeric_flag   0% 7 7 0   0% 4 0   0%
open_webui/tools/knowledge_fs.py _build_directory_tree   0% 18 18 0   0% 8 0   0%
open_webui/tools/knowledge_fs.py _build_directory_tree._get_dir_path   0% 11 11 0   0% 6 0   0%
open_webui/tools/knowledge_fs.py _resolve_path   0% 2 2 0   100% 0 0   0%
open_webui/tools/knowledge_fs.py _get_files_in_dir   0% 1 1 0   100% 0 0   0%
open_webui/tools/knowledge_fs.py _get_subdirs   0% 1 1 0   100% 0 0   0%
open_webui/tools/knowledge_fs.py _get_files_under_dir   0% 9 9 0   0% 6 0   0%
open_webui/tools/knowledge_fs.py _get_accessible_kb_ids   0% 29 29 0   0% 20 0   0%
open_webui/tools/knowledge_fs.py _get_accessible_kb_ids._has_access   0% 1 1 0   100% 0 0   0%
open_webui/tools/knowledge_fs.py _get_accessible_files   0% 18 18 0   0% 14 0   0%
open_webui/tools/knowledge_fs.py _resolve_dir_path   0% 10 10 0   0% 4 0   0%
open_webui/tools/knowledge_fs.py _get_descendant_dir_ids   0% 11 11 0   0% 6 0   0%
open_webui/tools/knowledge_fs.py _resolve_file   0% 29 29 0   0% 20 0   0%
open_webui/tools/knowledge_fs.py _get_file_content   0% 5 5 0   0% 2 0   0%
open_webui/tools/knowledge_fs.py _kb_ls   0% 54 54 0   0% 34 0   0%
open_webui/tools/knowledge_fs.py _sort_files   0% 6 6 0   0% 4 0   0%
open_webui/tools/knowledge_fs.py _fmt_size   0% 1 1 0   100% 0 0   0%
open_webui/tools/knowledge_fs.py _fmt_date   0% 5 5 0   0% 2 0   0%
open_webui/tools/knowledge_fs.py _kb_cat   0% 12 12 0   0% 8 0   0%
open_webui/tools/knowledge_fs.py _kb_head   0% 19 19 0   0% 12 0   0%
open_webui/tools/knowledge_fs.py _kb_tail   0% 19 19 0   0% 12 0   0%
open_webui/tools/knowledge_fs.py _match_lines   0% 1 1 0   100% 0 0   0%
open_webui/tools/knowledge_fs.py _kb_grep   0% 97 97 0   0% 68 0   0%
open_webui/tools/knowledge_fs.py _kb_find   0% 27 27 0   0% 14 0   0%
open_webui/tools/knowledge_fs.py _kb_wc   0% 21 21 0   0% 12 0   0%
open_webui/tools/knowledge_fs.py _kb_stat   0% 26 26 0   0% 12 0   0%
open_webui/tools/knowledge_fs.py _kb_sed   0% 34 34 0   0% 18 0   0%
open_webui/tools/knowledge_fs.py _kb_tree   0% 34 34 0   0% 14 0   0%
open_webui/tools/knowledge_fs.py _kb_tree._render_tree   0% 13 13 0   0% 4 0   0%
open_webui/tools/knowledge_fs.py _execute_pipeline   0% 12 12 0   0% 6 0   0%
open_webui/tools/knowledge_fs.py kb_exec   0% 16 16 0   0% 8 0   0%
open_webui/tools/knowledge_fs.py (no function)   100% 57 0 0   100% 0 0   100%
open_webui/utils/access_control/__init__.py fill_missing_permissions   83% 6 1 0   83% 6 1   83%
open_webui/utils/access_control/__init__.py get_permissions   86% 7 1 0   50% 2 1   78%
open_webui/utils/access_control/__init__.py get_permissions.combine_permissions   0% 9 9 0   0% 8 0   0%
open_webui/utils/access_control/__init__.py has_permission   0% 8 8 0   0% 4 0   0%
open_webui/utils/access_control/__init__.py has_permission.get_permission   0% 5 5 0   0% 4 0   0%
open_webui/utils/access_control/__init__.py has_access   0% 17 17 0   0% 14 0   0%
open_webui/utils/access_control/__init__.py has_connection_access   33% 9 6 0   17% 6 1   27%
open_webui/utils/access_control/__init__.py migrate_access_control   0% 17 17 0   0% 14 0   0%
open_webui/utils/access_control/__init__.py filter_allowed_access_grants   38% 13 8 0   33% 12 2   36%
open_webui/utils/access_control/__init__.py has_base_model_access   0% 16 16 0   0% 8 0   0%
open_webui/utils/access_control/__init__.py check_model_access   27% 15 11 0   25% 12 3   26%
open_webui/utils/access_control/__init__.py (no function)   100% 18 0 0   100% 0 0   100%
open_webui/utils/access_control/files.py has_access_to_file   0% 26 26 0   0% 20 0   0%
open_webui/utils/access_control/files.py get_accessible_folder_files   0% 23 23 0   0% 20 0   0%
open_webui/utils/access_control/files.py can_read_all_folder_files   0% 7 7 0   0% 6 0   0%
open_webui/utils/access_control/files.py get_owner_accessible_folder_files   0% 7 7 0   0% 4 0   0%
open_webui/utils/access_control/files.py (no function)   100% 17 0 0   100% 0 0   100%
open_webui/utils/access_control/folders.py has_folder_access   0% 9 9 0   0% 6 0   0%
open_webui/utils/access_control/folders.py has_folder_write_access   75% 4 1 0   50% 2 1   67%
open_webui/utils/access_control/folders.py (no function)   100% 5 0 0   100% 0 0   100%
open_webui/utils/actions.py chat_action   12% 58 51 0   12% 34 2   12%
open_webui/utils/actions.py (no function)   100% 15 0 0   100% 0 0   100%
open_webui/utils/anthropic.py is_anthropic_url   100% 1 0 0   100% 0 0   100%
open_webui/utils/anthropic.py get_anthropic_models   0% 32 32 0   0% 12 0   0%
open_webui/utils/anthropic.py _copy_cache_control   0% 3 3 0   0% 2 0   0%
open_webui/utils/anthropic.py _has_cache_control   0% 1 1 0   100% 0 0   0%
open_webui/utils/anthropic.py _finalize_openai_content   0% 5 5 0   0% 4 0   0%
open_webui/utils/anthropic.py is_anthropic_messages_passthrough   0% 3 3 0   100% 0 0   0%
open_webui/utils/anthropic.py convert_anthropic_to_openai_payload   14% 160 138 0   11% 132 12   12%
open_webui/utils/anthropic.py convert_openai_to_anthropic_response   0% 71 71 0   0% 40 0   0%
open_webui/utils/anthropic.py openai_stream_to_anthropic_stream   0% 191 191 0   0% 110 0   0%
open_webui/utils/anthropic.py (no function)   100% 18 0 0   100% 0 0   100%
open_webui/utils/asgi_middleware.py AppHTTPMiddleware.__init__   100% 2 0 0   100% 0 0   100%
open_webui/utils/asgi_middleware.py AppHTTPMiddleware.__call__   90% 20 2 0   75% 8 2   86%
open_webui/utils/asgi_middleware.py AppHTTPMiddleware._set_token   67% 6 2 0   50% 4 2   60%
open_webui/utils/asgi_middleware.py AppHTTPMiddleware._send_with_headers   100% 2 0 0   100% 0 0   100%
open_webui/utils/asgi_middleware.py AppHTTPMiddleware._send_with_headers.send_with_headers   100% 6 0 0   100% 4 0   100%
open_webui/utils/asgi_middleware.py AppHTTPMiddleware._reject_invalid_websocket   36% 14 9 0   17% 6 3   30%
open_webui/utils/asgi_middleware.py AppHTTPMiddleware._redirect_legacy_url   33% 27 18 0   19% 16 5   28%
open_webui/utils/asgi_middleware.py AppHTTPMiddleware._rollback_session   29% 7 5 0   50% 2 1   33%
open_webui/utils/asgi_middleware.py AppHTTPMiddleware._commit_session   17% 12 10 0   50% 2 1   21%
open_webui/utils/asgi_middleware.py _scope_headers   0% 8 8 0   0% 4 0   0%
open_webui/utils/asgi_middleware.py (no function)   100% 25 0 0   100% 0 0   100%
open_webui/utils/ask_user.py get_ask_user_tool_calls   0% 8 8 0   0% 6 0   0%
open_webui/utils/ask_user.py normalize_ask_user_request   0% 35 35 0   0% 22 0   0%
open_webui/utils/ask_user.py stage_ask_user_tool_calls   0% 23 23 0   0% 12 0   0%
open_webui/utils/ask_user.py (no function)   100% 6 0 0   100% 0 0   100%
open_webui/utils/audit.py AuditLogger.__init__   0% 1 1 0   100% 0 0   0%
open_webui/utils/audit.py AuditLogger.write   0% 4 4 0   0% 2 0   0%
open_webui/utils/audit.py AuditContext.__init__   0% 4 4 0   100% 0 0   0%
open_webui/utils/audit.py AuditContext.add_request_chunk   0% 2 2 0   0% 2 0   0%
open_webui/utils/audit.py AuditContext.add_response_chunk   0% 2 2 0   0% 2 0   0%
open_webui/utils/audit.py AuditLoggingMiddleware.__init__   0% 14 14 0   0% 4 0   0%
open_webui/utils/audit.py AuditLoggingMiddleware.__init__.normalize_paths   0% 1 1 0   100% 0 0   0%
open_webui/utils/audit.py AuditLoggingMiddleware.__call__   0% 10 10 0   0% 4 0   0%
open_webui/utils/audit.py AuditLoggingMiddleware.__call__.send_wrapper   0% 3 3 0   0% 2 0   0%
open_webui/utils/audit.py AuditLoggingMiddleware.__call__.receive_wrapper   0% 4 4 0   0% 2 0   0%
open_webui/utils/audit.py AuditLoggingMiddleware._audit_context   0% 4 4 0   100% 0 0   0%
open_webui/utils/audit.py AuditLoggingMiddleware._get_authenticated_user   0% 10 10 0   0% 2 0   0%
open_webui/utils/audit.py AuditLoggingMiddleware._should_skip_auditing   0% 15 15 0   0% 14 0   0%
open_webui/utils/audit.py AuditLoggingMiddleware._capture_request   0% 3 3 0   0% 2 0   0%
open_webui/utils/audit.py AuditLoggingMiddleware._capture_response   0% 5 5 0   0% 4 0   0%
open_webui/utils/audit.py AuditLoggingMiddleware._log_audit_entry   0% 11 11 0   0% 2 0   0%
open_webui/utils/audit.py (no function)   98% 51 1 0   50% 2 1   96%
open_webui/utils/auth.py verify_signature   0% 5 5 0   100% 0 0   0%
open_webui/utils/auth.py override_static   0% 7 7 0   0% 2 0   0%
open_webui/utils/auth.py get_license_data   0% 35 35 0   0% 14 0   0%
open_webui/utils/auth.py get_license_data.data_handler   0% 10 10 0   0% 12 0   0%
open_webui/utils/auth.py get_license_data.handler   0% 10 10 0   0% 2 0   0%
open_webui/utils/auth.py get_license_data.nt   0% 1 1 0   100% 0 0   0%
open_webui/utils/auth.py get_password_hash   50% 6 3 0   50% 4 2   50%
open_webui/utils/auth.py validate_password   50% 6 3 0   33% 6 2   42%
open_webui/utils/auth.py verify_password   36% 14 9 0   50% 4 2   39%
open_webui/utils/auth.py create_token   100% 8 0 0   50% 2 1   90%
open_webui/utils/auth.py decode_token   100% 5 0 0   100% 0 0   100%
open_webui/utils/auth.py RateLimitFilter.__init__   100% 4 0 0   100% 0 0   100%
open_webui/utils/auth.py RateLimitFilter.filter   0% 6 6 0   0% 2 0   0%
open_webui/utils/auth.py is_valid_token   9% 22 20 0   8% 12 1   9%
open_webui/utils/auth.py invalidate_token   0% 16 16 0   0% 12 0   0%
open_webui/utils/auth.py revoke_user_tokens   0% 8 8 0   0% 2 0   0%
open_webui/utils/auth.py extract_token_from_auth_header   0% 1 1 0   100% 0 0   0%
open_webui/utils/auth.py create_api_key   0% 2 2 0   100% 0 0   0%
open_webui/utils/auth.py get_http_authorization_cred   100% 7 0 0   100% 2 0   100%
open_webui/utils/auth.py get_current_user   48% 58 30 0   50% 34 9   49%
open_webui/utils/auth.py get_current_user_by_api_key   7% 27 25 0   0% 16 0   5%
open_webui/utils/auth.py get_verified_user   67% 3 1 0   50% 2 1   60%
open_webui/utils/auth.py get_verified_user_by_token   0% 7 7 0   0% 4 0   0%
open_webui/utils/auth.py get_verified_user_by_id   0% 6 6 0   0% 4 0   0%
open_webui/utils/auth.py get_optional_verified_user_from_request   0% 17 17 0   0% 10 0   0%
open_webui/utils/auth.py get_admin_user   67% 3 1 0   50% 2 1   60%
open_webui/utils/auth.py create_admin_user   0% 17 17 0   0% 6 0   0%
open_webui/utils/auth.py (no function)   100% 64 0 0   100% 0 0   100%
open_webui/utils/automations.py automation_worker_loop   0% 1 1 0   100% 0 0   0%
open_webui/utils/automations.py scheduler_worker_loop   70% 33 10 0   58% 12 5   67%
open_webui/utils/automations.py _build_request   20% 5 4 0   100% 0 0   20%
open_webui/utils/automations.py _resolve_model_defaults   39% 18 11 0   0% 10 2   25%
open_webui/utils/automations.py _set_terminal_cwd   0% 28 28 0   0% 12 0   0%
open_webui/utils/automations.py _execute_channel_automation   41% 17 10 0   0% 2 0   37%
open_webui/utils/automations.py execute_automation   2% 50 49 0   0% 10 0   2%
open_webui/utils/automations.py _check_calendar_alerts   46% 24 13 0   33% 6 2   43%
open_webui/utils/automations.py _record_run   0% 2 2 0   100% 0 0   0%
open_webui/utils/automations.py (no function)   100% 38 0 0   100% 0 0   100%
open_webui/utils/calendar.py expand_recurring_event   0% 32 32 0   0% 10 0   0%
open_webui/utils/calendar.py expand_recurring_event.to_local_datetime   0% 1 1 0   100% 0 0   0%
open_webui/utils/calendar.py ns_from_date   0% 4 4 0   0% 2 0   0%
open_webui/utils/calendar.py (no function)   100% 8 0 0   100% 0 0   100%
open_webui/utils/channels.py extract_mentions   0% 4 4 0   100% 0 0   0%
open_webui/utils/channels.py replace_mentions   0% 4 4 0   100% 0 0   0%
open_webui/utils/channels.py replace_mentions.replacer   0% 2 2 0   100% 0 0   0%
open_webui/utils/channels.py (no function)   100% 3 0 0   100% 0 0   100%
open_webui/utils/chat.py generate_direct_chat_completion   0% 30 30 0   0% 8 0   0%
open_webui/utils/chat.py generate_direct_chat_completion.event_generator   0% 15 15 0   0% 8 0   0%
open_webui/utils/chat.py generate_direct_chat_completion.background   0% 1 1 0   100% 0 0   0%
open_webui/utils/chat.py generate_chat_completion   0% 66 66 0   0% 42 0   0%
open_webui/utils/chat.py chat_completed   25% 28 21 0   30% 10 3   26%
open_webui/utils/chat.py (no function)   100% 29 0 0   100% 0 0   100%
open_webui/utils/chat_fork.py build_fork_history   93% 28 2 0   83% 12 2   90%
open_webui/utils/chat_fork.py (no function)   100% 2 0 0   100% 0 0   100%
open_webui/utils/chat_id.py is_saved_chat_id   100% 1 0 0   100% 0 0   100%
open_webui/utils/chat_id.py is_temporary_chat_id   0% 1 1 0   100% 0 0   0%
open_webui/utils/chat_id.py get_temporary_chat_session_id   75% 4 1 0   75% 4 1   75%
open_webui/utils/chat_id.py (no function)   100% 9 0 0   100% 0 0   100%
open_webui/utils/chat_variables.py split_properties   0% 31 31 0   0% 18 0   0%
open_webui/utils/chat_variables.py parse_json_value   0% 8 8 0   0% 4 0   0%
open_webui/utils/chat_variables.py parse_variable_definition   0% 18 18 0   0% 8 0   0%
open_webui/utils/chat_variables.py _safe_field   0% 10 10 0   0% 6 0   0%
open_webui/utils/chat_variables.py get_chat_variables_schema   22% 9 7 0   25% 4 1   23%
open_webui/utils/chat_variables.py collect_chat_variable_fields   0% 21 21 0   0% 12 0   0%
open_webui/utils/chat_variables.py normalize_chat_variables   0% 3 3 0   0% 2 0   0%
open_webui/utils/chat_variables.py normalize_user_variables   67% 3 1 0   50% 2 1   60%
open_webui/utils/chat_variables.py validate_user_variables   56% 18 8 0   58% 12 3   57%
open_webui/utils/chat_variables.py validate_chat_variables   0% 31 31 0   0% 18 0   0%
open_webui/utils/chat_variables.py render_chat_variables   0% 8 8 0   0% 2 0   0%
open_webui/utils/chat_variables.py render_chat_variables.replace   0% 3 3 0   100% 0 0   0%
open_webui/utils/chat_variables.py render_user_variables   0% 5 5 0   0% 2 0   0%
open_webui/utils/chat_variables.py render_user_variables.replace   0% 4 4 0   0% 2 0   0%
open_webui/utils/chat_variables.py (no function)   100% 23 0 0   100% 0 0   100%
open_webui/utils/code_interpreter.py JupyterCodeExecuter.__init__   0% 11 11 0   0% 2 0   0%
open_webui/utils/code_interpreter.py JupyterCodeExecuter.__aenter__   0% 1 1 0   100% 0 0   0%
open_webui/utils/code_interpreter.py JupyterCodeExecuter.__aexit__   0% 7 7 0   0% 2 0   0%
open_webui/utils/code_interpreter.py JupyterCodeExecuter.run   0% 8 8 0   100% 0 0   0%
open_webui/utils/code_interpreter.py JupyterCodeExecuter.sign_in   0% 13 13 0   0% 6 0   0%
open_webui/utils/code_interpreter.py JupyterCodeExecuter.init_kernel   0% 4 4 0   100% 0 0   0%
open_webui/utils/code_interpreter.py JupyterCodeExecuter.init_ws   0% 7 7 0   0% 2 0   0%
open_webui/utils/code_interpreter.py JupyterCodeExecuter.execute_code   0% 3 3 0   100% 0 0   0%
open_webui/utils/code_interpreter.py JupyterCodeExecuter.execute_in_jupyter   0% 33 33 0   0% 20 0   0%
open_webui/utils/code_interpreter.py execute_code_jupyter   0% 3 3 0   100% 0 0   0%
open_webui/utils/code_interpreter.py (no function)   100% 25 0 0   100% 0 0   100%
open_webui/utils/context_compaction.py compact_messages_for_request   0% 34 34 0   0% 16 0   0%
open_webui/utils/context_compaction.py compact_chat_branch   13% 23 20 0   8% 12 1   11%
open_webui/utils/context_compaction.py _load_config   100% 3 0 0   100% 0 0   100%
open_webui/utils/context_compaction.py _parse_positive_int   60% 5 2 0   100% 0 0   60%
open_webui/utils/context_compaction.py _clamp_retention_percentage   60% 5 2 0   100% 0 0   60%
open_webui/utils/context_compaction.py _resolve_token_threshold   0% 2 2 0   100% 0 0   0%
open_webui/utils/context_compaction.py _usage_token_count   0% 7 7 0   0% 4 0   0%
open_webui/utils/context_compaction.py get_chat_context_usage   50% 28 14 0   44% 16 3   48%
open_webui/utils/context_compaction.py _build_context_usage   0% 1 1 0   100% 0 0   0%
open_webui/utils/context_compaction.py _apply_latest_summary_checkpoint   0% 10 10 0   0% 6 0   0%
open_webui/utils/context_compaction.py _exceeds_token_threshold   0% 8 8 0   0% 6 0   0%
open_webui/utils/context_compaction.py _find_compaction_boundary   0% 5 5 0   100% 0 0   0%
open_webui/utils/context_compaction.py _generate_summary   0% 31 31 0   0% 10 0   0%
open_webui/utils/context_compaction.py _response_text   0% 19 19 0   0% 14 0   0%
open_webui/utils/context_compaction.py _estimate_messages_tokens   0% 16 16 0   0% 10 0   0%
open_webui/utils/context_compaction.py _estimate_tokens   0% 10 10 0   0% 6 0   0%
open_webui/utils/context_compaction.py (no function)   100% 29 0 0   100% 0 0   100%
open_webui/utils/embeddings.py generate_embeddings   33% 21 14 0   25% 16 4   30%
open_webui/utils/embeddings.py (no function)   100% 16 0 0   100% 0 0   100%
open_webui/utils/files.py get_image_base64_from_url   0% 31 31 0   0% 10 0   0%
open_webui/utils/files.py get_image_url_from_base64   0% 8 8 0   0% 4 0   0%
open_webui/utils/files.py convert_markdown_base64_images   0% 15 15 0   0% 6 0   0%
open_webui/utils/files.py load_b64_audio_data   0% 11 11 0   0% 2 0   0%
open_webui/utils/files.py upload_audio   0% 5 5 0   100% 0 0   0%
open_webui/utils/files.py get_audio_url_from_base64   0% 7 7 0   0% 4 0   0%
open_webui/utils/files.py get_file_url_from_base64   0% 5 5 0   0% 4 0   0%
open_webui/utils/files.py get_image_base64_from_file_id   0% 22 22 0   0% 12 0   0%
open_webui/utils/files.py (no function)   100% 29 0 0   100% 0 0   100%
open_webui/utils/filter.py FilterContext.__init__   0% 4 4 0   100% 0 0   0%
open_webui/utils/filter.py FilterContext.get_active_filters   0% 3 3 0   0% 2 0   0%
open_webui/utils/filter.py FilterContext.get_function_valves   0% 6 6 0   0% 4 0   0%
open_webui/utils/filter.py FilterContext.get_user_valves   0% 4 4 0   0% 2 0   0%
open_webui/utils/filter.py get_filter_context   0% 3 3 0   0% 2 0   0%
open_webui/utils/filter.py get_user_valves   0% 2 2 0   100% 0 0   0%
open_webui/utils/filter.py get_function_module   0% 2 2 0   100% 0 0   0%
open_webui/utils/filter.py get_model_filter_ids   0% 6 6 0   0% 2 0   0%
open_webui/utils/filter.py resolve_filter_pipeline   0% 15 15 0   0% 4 0   0%
open_webui/utils/filter.py resolve_filter_pipeline.get_active_status   0% 4 4 0   0% 2 0   0%
open_webui/utils/filter.py resolve_filter_pipeline.get_priority   0% 9 9 0   0% 2 0   0%
open_webui/utils/filter.py get_sorted_filter_ids   0% 2 2 0   100% 0 0   0%
open_webui/utils/filter.py get_filter_functions   0% 2 2 0   100% 0 0   0%
open_webui/utils/filter.py apply_filter_valves   0% 10 10 0   0% 6 0   0%
open_webui/utils/filter.py get_filter_params   0% 2 2 0   100% 0 0   0%
open_webui/utils/filter.py apply_user_valves   0% 7 7 0   0% 4 0   0%
open_webui/utils/filter.py run_filter_handler   0% 3 3 0   0% 2 0   0%
open_webui/utils/filter.py process_filter_function   0% 22 22 0   0% 6 0   0%
open_webui/utils/filter.py process_filter_functions   0% 16 16 0   0% 12 0   0%
open_webui/utils/filter.py (no function)   100% 24 0 0   100% 0 0   100%
open_webui/utils/groups.py apply_default_group_assignment   20% 5 4 0   50% 2 1   29%
open_webui/utils/groups.py (no function)   100% 4 0 0   100% 0 0   100%
open_webui/utils/headers.py normalize_bearer_token   100% 1 0 0   100% 0 0   100%
open_webui/utils/headers.py bearer_auth_header   100% 2 0 0   100% 0 0   100%
open_webui/utils/headers.py get_json_bearer_headers   0% 1 1 0   100% 0 0   0%
open_webui/utils/headers.py _mint_forward_user_jwt   0% 3 3 0   100% 0 0   0%
open_webui/utils/headers.py include_user_info_headers   0% 12 12 0   0% 6 0   0%
open_webui/utils/headers.py custom_headers_require_user_groups   67% 3 1 0   50% 2 1   60%
open_webui/utils/headers.py get_user_groups_for_custom_headers   29% 7 5 0   50% 2 1   33%
open_webui/utils/headers.py get_custom_headers   100% 2 0 0   100% 0 0   100%
open_webui/utils/headers.py parse_custom_headers   78% 23 5 0   75% 12 3   77%
open_webui/utils/headers.py (no function)   100% 19 0 0   100% 0 0   100%
open_webui/utils/images/comfyui.py queue_prompt   0% 11 11 0   100% 0 0   0%
open_webui/utils/images/comfyui.py get_image   0% 7 7 0   100% 0 0   0%
open_webui/utils/images/comfyui.py get_image_url   0% 4 4 0   100% 0 0   0%
open_webui/utils/images/comfyui.py get_history   0% 5 5 0   100% 0 0   0%
open_webui/utils/images/comfyui.py _ws_get_images   0% 21 21 0   0% 18 0   0%
open_webui/utils/images/comfyui.py comfyui_upload_image   0% 12 12 0   0% 2 0   0%
open_webui/utils/images/comfyui.py _apply_workflow_nodes   0% 36 36 0   0% 48 0   0%
open_webui/utils/images/comfyui.py comfyui_create_image   0% 18 18 0   100% 0 0   0%
open_webui/utils/images/comfyui.py comfyui_edit_image   0% 18 18 0   100% 0 0   0%
open_webui/utils/images/comfyui.py (no function)   100% 46 0 0   100% 0 0   100%
open_webui/utils/json_codec.py ORJSONCodec.dumps   0% 9 9 0   0% 4 0   0%
open_webui/utils/json_codec.py ORJSONCodec.loads   0% 6 6 0   0% 2 0   0%
open_webui/utils/json_codec.py dumps_bytes   0% 4 4 0   100% 0 0   0%
open_webui/utils/json_codec.py (no function)   40% 20 12 0   50% 2 1   41%
open_webui/utils/json_response.py apply_orjson_http_json   29% 7 5 0   50% 2 1   33%
open_webui/utils/json_response.py apply_orjson_http_json.render   0% 4 4 0   100% 0 0   0%
open_webui/utils/json_response.py apply_orjson_http_json.request_json   0% 7 7 0   0% 2 0   0%
open_webui/utils/json_response.py (no function)   100% 7 0 0   100% 0 0   100%
open_webui/utils/logger.py stdout_format   60% 5 2 0   50% 2 1   57%
open_webui/utils/logger.py _json_sink   0% 18 18 0   0% 4 0   0%
open_webui/utils/logger.py InterceptHandler.emit   60% 15 6 0   50% 6 1   57%
open_webui/utils/logger.py InterceptHandler._get_extras   22% 9 7 0   25% 4 1   23%
open_webui/utils/logger.py file_format   0% 3 3 0   100% 0 0   0%
open_webui/utils/logger.py start_logger   75% 20 5 0   75% 8 2   75%
open_webui/utils/logger.py (no function)   94% 17 1 0   50% 2 1   89%
open_webui/utils/mcp/client.py _build_httpx_client   0% 10 10 0   0% 8 0   0%
open_webui/utils/mcp/client.py create_httpx_client   0% 3 3 0   100% 0 0   0%
open_webui/utils/mcp/client.py create_insecure_httpx_client   0% 1 1 0   100% 0 0   0%
open_webui/utils/mcp/client.py MCPClient.__init__   0% 2 2 0   100% 0 0   0%
open_webui/utils/mcp/client.py MCPClient.connect   0% 13 13 0   100% 0 0   0%
open_webui/utils/mcp/client.py MCPClient.list_tool_specs   0% 18 18 0   0% 6 0   0%
open_webui/utils/mcp/client.py MCPClient.call_tool   0% 10 10 0   0% 6 0   0%
open_webui/utils/mcp/client.py MCPClient.list_resources   0% 8 8 0   0% 4 0   0%
open_webui/utils/mcp/client.py MCPClient.read_resource   0% 7 7 0   0% 4 0   0%
open_webui/utils/mcp/client.py MCPClient.disconnect   0% 16 16 0   0% 4 0   0%
open_webui/utils/mcp/client.py MCPClient.__aenter__   0% 2 2 0   100% 0 0   0%
open_webui/utils/mcp/client.py MCPClient.__aexit__   0% 2 2 0   100% 0 0   0%
open_webui/utils/mcp/client.py (no function)   100% 25 0 0   100% 0 0   100%
open_webui/utils/memory.py clean_memory_content   100% 4 0 0   100% 2 0   100%
open_webui/utils/memory.py clean_memory_path   100% 7 0 0   100% 4 0   100%
open_webui/utils/memory.py memory_vector_text   100% 2 0 0   100% 0 0   100%
open_webui/utils/memory.py memory_label   0% 1 1 0   100% 0 0   0%
open_webui/utils/memory.py _path_parts   100% 1 0 0   100% 0 0   100%
open_webui/utils/memory.py _parent_path   100% 2 0 0   100% 0 0   100%
open_webui/utils/memory.py _path_rank   73% 22 6 0   62% 16 6   68%
open_webui/utils/memory.py _memory_matches_query   100% 4 0 0   100% 2 0   100%
open_webui/utils/memory.py search_memory_rows   93% 15 1 0   88% 8 1   91%
open_webui/utils/memory.py search_memory_rows.related   100% 5 0 0   100% 2 0   100%
open_webui/utils/memory.py search_memory_rows.sort_key   100% 2 0 0   100% 0 0   100%
open_webui/utils/memory.py list_memory_path_groups   83% 24 4 0   75% 12 1   81%
open_webui/utils/memory.py read_memory_path_rows   100% 11 0 0   100% 2 0   100%
open_webui/utils/memory.py read_memory_path_rows.selected   80% 5 1 0   75% 4 1   78%
open_webui/utils/memory.py read_memory_path_rows.sort_key   40% 5 3 0   25% 4 1   33%
open_webui/utils/memory.py memory_path_hints   0% 17 17 0   0% 12 0   0%
open_webui/utils/memory.py validate_memory_operations   96% 27 1 0   90% 20 2   94%
open_webui/utils/memory.py model_allows_memory   0% 1 1 0   100% 0 0   0%
open_webui/utils/memory.py add_memory_context   0% 83 83 0   0% 50 0   0%
open_webui/utils/memory.py review_memory_after_turn   0% 23 23 0   0% 12 0   0%
open_webui/utils/memory.py review_memory_after_turn.log_failure   0% 4 4 0   100% 0 0   0%
open_webui/utils/memory.py _review_memory   0% 27 27 0   0% 16 0   0%
open_webui/utils/memory.py _generate_memory_operations   0% 17 17 0   0% 4 0   0%
open_webui/utils/memory.py (no function)   100% 32 0 0   100% 0 0   100%
open_webui/utils/middleware.py _is_tool_result_error   0% 25 25 0   0% 16 0   0%
open_webui/utils/middleware.py normalize_messages_for_model   0% 3 3 0   100% 0 0   0%
open_webui/utils/middleware.py publish_chat_finished_event   0% 10 10 0   0% 4 0   0%
open_webui/utils/middleware.py _start_tag_pattern   0% 3 3 0   0% 2 0   0%
open_webui/utils/middleware.py output_id   0% 1 1 0   100% 0 0   0%
open_webui/utils/middleware.py build_terminal_file_tool_result   0% 17 17 0   0% 8 0   0%
open_webui/utils/middleware.py tool_result_content   0% 5 5 0   0% 4 0   0%
open_webui/utils/middleware.py append_to_text_field   0% 7 7 0   0% 2 0   0%
open_webui/utils/middleware.py merge_streamed_reasoning_details   0% 13 13 0   0% 10 0   0%
open_webui/utils/middleware.py _split_tool_calls   0% 17 17 0   0% 8 0   0%
open_webui/utils/middleware.py _split_tool_calls.split_json_objects   0% 17 17 0   0% 8 0   0%
open_webui/utils/middleware.py get_citation_source_from_tool_result   0% 43 43 0   0% 18 0   0%
open_webui/utils/middleware.py deep_merge   0% 10 10 0   0% 8 0   0%
open_webui/utils/middleware.py get_response_completion_event_data   0% 5 5 0   0% 2 0   0%
open_webui/utils/middleware.py handle_responses_streaming_event   0% 200 200 0   0% 122 0   0%
open_webui/utils/middleware.py get_source_context   0% 19 19 0   0% 12 0   0%
open_webui/utils/middleware.py apply_source_context_to_messages   0% 9 9 0   0% 6 0   0%
open_webui/utils/middleware.py extract_base64_images   0% 12 12 0   0% 10 0   0%
open_webui/utils/middleware.py store_tool_result_image   0% 9 9 0   0% 2 0   0%
open_webui/utils/middleware.py process_tool_result   0% 103 103 0   0% 72 0   0%
open_webui/utils/middleware.py parse_terminal_tool_result   0% 5 5 0   100% 0 0   0%
open_webui/utils/middleware.py terminal_event_handler   0% 21 21 0   0% 16 0   0%
open_webui/utils/middleware.py chat_completion_tools_handler   0% 44 44 0   0% 12 0   0%
open_webui/utils/middleware.py chat_completion_tools_handler.get_content_from_response   0% 9 9 0   0% 6 0   0%
open_webui/utils/middleware.py chat_completion_tools_handler.get_tools_function_calling_payload   0% 7 7 0   0% 2 0   0%
open_webui/utils/middleware.py chat_completion_tools_handler.tool_call_handler   0% 39 39 0   0% 18 0   0%
open_webui/utils/middleware.py chat_web_search_handler   0% 54 54 0   0% 18 0   0%
open_webui/utils/middleware.py get_images_from_messages   0% 11 11 0   0% 10 0   0%
open_webui/utils/middleware.py get_image_urls   0% 13 13 0   0% 10 0   0%
open_webui/utils/middleware.py add_file_context   0% 21 21 0   0% 10 0   0%
open_webui/utils/middleware.py add_file_context.format_file_tag   0% 8 8 0   0% 6 0   0%
open_webui/utils/middleware.py chat_image_generation_handler   0% 87 87 0   0% 34 0   0%
open_webui/utils/middleware.py chat_completion_files_handler   0% 45 45 0   0% 14 0   0%
open_webui/utils/middleware.py convert_url_images_to_base64   0% 34 34 0   0% 20 0   0%
open_webui/utils/middleware.py load_messages_from_db   0% 7 7 0   0% 4 0   0%
open_webui/utils/middleware.py get_reasoning_format   0% 6 6 0   0% 4 0   0%
open_webui/utils/middleware.py strip_reasoning_details   0% 1 1 0   100% 0 0   0%
open_webui/utils/middleware.py process_messages_with_output   0% 14 14 0   0% 10 0   0%
open_webui/utils/middleware.py sanitize_tool_pairs   0% 16 16 0   0% 10 0   0%
open_webui/utils/middleware.py connect_mcp_server   0% 21 21 0   0% 12 0   0%
open_webui/utils/middleware.py process_chat_payload   0% 376 376 0   0% 226 0   0%
open_webui/utils/middleware.py process_chat_payload.make_tool_function   0% 2 2 0   100% 0 0   0%
open_webui/utils/middleware.py process_chat_payload.make_tool_function.tool_function   0% 1 1 0   100% 0 0   0%
open_webui/utils/middleware.py get_event_emitter_and_caller   0% 7 7 0   0% 4 0   0%
open_webui/utils/middleware.py build_chat_response_context   0% 8 8 0   0% 6 0   0%
open_webui/utils/middleware.py execute_tool_call_for_output   0% 39 39 0   0% 12 0   0%
open_webui/utils/middleware.py drain_approved_tool_calls   0% 73 73 0   0% 42 0   0%
open_webui/utils/middleware.py pause_for_tool_approval   0% 12 12 0   0% 10 0   0%
open_webui/utils/middleware.py get_response_data   0% 13 13 0   0% 8 0   0%
open_webui/utils/middleware.py merge_events_into_response   0% 8 8 0   0% 6 0   0%
open_webui/utils/middleware.py build_response_object   0% 5 5 0   0% 4 0   0%
open_webui/utils/middleware.py update_assistant_message_from_stream   0% 47 47 0   0% 32 0   0%
open_webui/utils/middleware.py update_assistant_message_from_stream.append_output_text   0% 4 4 0   0% 2 0   0%
open_webui/utils/middleware.py get_system_oauth_token   0% 15 15 0   0% 6 0   0%
open_webui/utils/middleware.py background_tasks_handler   0% 88 88 0   0% 52 0   0%
open_webui/utils/middleware.py outlet_filter_handler   0% 63 63 0   0% 32 0   0%
open_webui/utils/middleware.py non_streaming_chat_response_handler   0% 82 82 0   0% 40 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler   0% 60 60 0   0% 24 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler   0% 318 318 0   0% 156 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.tag_output_handler   0% 94 94 0   0% 42 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.tag_output_handler.extract_attributes   0% 7 7 0   0% 4 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.tag_output_handler.get_last_text   0% 5 5 0   0% 4 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.tag_output_handler.set_last_text   0% 4 4 0   0% 4 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.tag_output_handler.get_scanned_length   0% 5 5 0   0% 2 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.tag_output_handler.save_scanned_length   0% 3 3 0   0% 2 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.tag_output_handler.clear_scanned_length   0% 4 4 0   0% 2 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.tag_output_handler.get_tag_boundaries   0% 13 13 0   0% 8 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.full_output   0% 3 3 0   0% 2 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.get_message_error_content   0% 6 6 0   0% 4 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.emit_message_error   0% 3 3 0   0% 2 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.stream_body_handler   0% 318 318 0   0% 196 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.stream_body_handler.save_current_response_stream   0% 7 7 0   0% 4 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.stream_body_handler.get_response_delta_key   0% 4 4 0   0% 2 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.stream_body_handler.get_response_data_with_full_output_index   0% 5 5 0   0% 4 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.stream_body_handler.flush_pending_delta_data   0% 7 7 0   0% 2 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.stream_body_handler.queue_pending_delta_data   0% 13 13 0   0% 6 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.stream_body_handler.emit_response_completion_event   0% 7 7 0   0% 2 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.emit_output   0% 11 11 0   0% 8 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.parse_tool_params   0% 15 15 0   0% 4 0   0%
open_webui/utils/middleware.py streaming_chat_response_handler.response_handler.execute_tool_call   0% 23 23 0   0% 6 0   0%
open_webui/utils/middleware.py process_chat_response   0% 5 5 0   0% 4 0   0%
open_webui/utils/middleware.py (no function)   100% 122 0 0   100% 0 0   100%
open_webui/utils/misc.py deep_update   0% 5 5 0   0% 4 0   0%
open_webui/utils/misc.py merge_model_params   0% 6 6 0   0% 2 0   0%
open_webui/utils/misc.py get_response_error_detail   0% 19 19 0   0% 10 0   0%
open_webui/utils/misc.py _strip_filter_entry   0% 1 1 0   100% 0 0   0%
open_webui/utils/misc.py get_allow_block_lists   0% 13 13 0   0% 8 0   0%
open_webui/utils/misc.py is_string_allowed   0% 10 10 0   0% 8 0   0%
open_webui/utils/misc.py as_network   0% 4 4 0   100% 0 0   0%
open_webui/utils/misc.py _host_matches_pattern   0% 11 11 0   0% 4 0   0%
open_webui/utils/misc.py is_host_allowed   0% 8 8 0   0% 6 0   0%
open_webui/utils/misc.py is_host_blocked   0% 3 3 0   100% 0 0   0%
open_webui/utils/misc.py get_message_list   93% 14 1 0   83% 6 1   90%
open_webui/utils/misc.py get_messages_content   0% 1 1 0   100% 0 0   0%
open_webui/utils/misc.py get_last_user_message_item   0% 4 4 0   0% 4 0   0%
open_webui/utils/misc.py get_content_from_message   0% 9 9 0   0% 8 0   0%
open_webui/utils/misc.py get_output_text   15% 13 11 0   10% 10 1   13%
open_webui/utils/misc.py reconcile_tool_pairs   0% 19 19 0   0% 10 0   0%
open_webui/utils/misc.py get_reasoning_details   0% 5 5 0   0% 2 0   0%
open_webui/utils/misc.py convert_output_to_messages   0% 81 81 0   0% 56 0   0%
open_webui/utils/misc.py convert_output_to_messages.flush_pending   0% 14 14 0   0% 8 0   0%
open_webui/utils/misc.py convert_output_to_messages.flush_tool_images   0% 4 4 0   0% 2 0   0%
open_webui/utils/misc.py convert_output_to_messages.flush_tool_outputs   0% 22 22 0   0% 16 0   0%
open_webui/utils/misc.py get_last_user_message   0% 4 4 0   0% 2 0   0%
open_webui/utils/misc.py set_last_user_message_content   0% 10 10 0   0% 10 0   0%
open_webui/utils/misc.py get_last_assistant_message_item   0% 4 4 0   0% 4 0   0%
open_webui/utils/misc.py get_last_assistant_message   0% 4 4 0   0% 4 0   0%
open_webui/utils/misc.py get_system_message   0% 4 4 0   0% 4 0   0%
open_webui/utils/misc.py remove_system_message   0% 1 1 0   100% 0 0   0%
open_webui/utils/misc.py pop_system_message   0% 1 1 0   100% 0 0   0%
open_webui/utils/misc.py merge_system_messages   0% 12 12 0   0% 8 0   0%
open_webui/utils/misc.py update_message_content   0% 10 10 0   0% 10 0   0%
open_webui/utils/misc.py replace_system_message_content   0% 5 5 0   0% 4 0   0%
open_webui/utils/misc.py add_or_update_system_message   0% 4 4 0   0% 2 0   0%
open_webui/utils/misc.py add_or_update_user_message   0% 4 4 0   0% 2 0   0%
open_webui/utils/misc.py prepend_to_first_user_message_content   0% 5 5 0   0% 4 0   0%
open_webui/utils/misc.py append_or_update_assistant_message   0% 4 4 0   0% 2 0   0%
open_webui/utils/misc.py strip_empty_content_blocks   0% 7 7 0   0% 6 0   0%
open_webui/utils/misc.py openai_chat_message_template   0% 1 1 0   100% 0 0   0%
open_webui/utils/misc.py openai_chat_chunk_message_template   0% 15 15 0   0% 10 0   0%
open_webui/utils/misc.py openai_chat_completion_message_template   0% 8 8 0   0% 4 0   0%
open_webui/utils/misc.py get_gravatar_url   100% 4 0 0   100% 0 0   100%
open_webui/utils/misc.py calculate_sha256   100% 5 0 0   100% 2 0   100%
open_webui/utils/misc.py calculate_sha256_string   100% 4 0 0   100% 0 0   100%
open_webui/utils/misc.py validate_email_format   67% 3 1 0   50% 2 1   60%
open_webui/utils/misc.py sanitize_filename   0% 4 4 0   100% 0 0   0%
open_webui/utils/misc.py json_text_variants   100% 3 0 0   100% 0 0   100%
open_webui/utils/misc.py sanitize_text_for_db   80% 5 1 0   75% 4 1   78%
open_webui/utils/misc.py _strip_null_bytes_deep   100% 10 0 0   100% 8 0   100%
open_webui/utils/misc.py sanitize_data_for_db   80% 10 2 0   100% 4 0   86%
open_webui/utils/misc.py sanitize_metadata   80% 5 1 0   50% 2 1   71%
open_webui/utils/misc.py sanitize_metadata._sanitize   46% 13 7 0   62% 8 1   52%
open_webui/utils/misc.py sanitize_metadata._is_serializable   29% 7 5 0   50% 2 1   33%
open_webui/utils/misc.py extract_folders_after_data_docs   0% 12 12 0   0% 2 0   0%
open_webui/utils/misc.py parse_duration   68% 22 7 0   56% 18 8   62%
open_webui/utils/misc.py parse_ollama_modelfile   0% 42 42 0   0% 26 0   0%
open_webui/utils/misc.py convert_logit_bias_input_to_json   0% 13 13 0   0% 6 0   0%
open_webui/utils/misc.py freeze   40% 5 3 0   25% 4 1   33%
open_webui/utils/misc.py throttle   100% 2 0 0   100% 0 0   100%
open_webui/utils/misc.py throttle.decorator   83% 6 1 0   50% 2 1   75%
open_webui/utils/misc.py throttle.decorator.wrapper   89% 9 1 0   75% 4 1   85%
open_webui/utils/misc.py strict_match_mime_type   50% 18 9 0   30% 10 1   43%
open_webui/utils/misc.py is_raster_image_content_type   0% 2 2 0   100% 0 0   0%
open_webui/utils/misc.py extract_urls   0% 2 2 0   100% 0 0   0%
open_webui/utils/misc.py cleanup_response   0% 10 10 0   0% 12 0   0%
open_webui/utils/misc.py stream_wrapper   0% 5 5 0   0% 2 0   0%
open_webui/utils/misc.py stream_chunks_handler   0% 5 5 0   0% 2 0   0%
open_webui/utils/misc.py stream_chunks_handler.yield_safe_stream_chunks   0% 22 22 0   0% 18 0   0%
open_webui/utils/misc.py (no function)   100% 78 0 0   100% 0 0   100%
open_webui/utils/model_ids.py strip_provider_model_prefix   67% 3 1 0   50% 2 1   60%
open_webui/utils/model_ids.py (no function)   100% 1 0 0   100% 0 0   100%
open_webui/utils/models.py fetch_ollama_models   100% 2 0 0   100% 0 0   100%
open_webui/utils/models.py fetch_openai_models   100% 2 0 0   100% 0 0   100%
open_webui/utils/models.py get_all_base_models   100% 6 0 0   100% 0 0   100%
open_webui/utils/models.py get_all_models   10% 205 184 0   7% 112 6   9%
open_webui/utils/models.py get_all_models.get_action_items_from_module   0% 5 5 0   0% 2 0   0%
open_webui/utils/models.py get_all_models.get_filter_items_from_module   100% 1 0 0   100% 0 0   100%
open_webui/utils/models.py get_all_models.get_action_priority   0% 13 13 0   0% 4 0   0%
open_webui/utils/models.py check_model_access   0% 19 19 0   0% 14 0   0%
open_webui/utils/models.py get_filtered_models   8% 26 24 0   5% 20 1   7%
open_webui/utils/models.py (no function)   100% 29 0 0   100% 0 0   100%
open_webui/utils/notifications.py _normalize_target   0% 34 34 0   0% 20 0   0%
open_webui/utils/notifications.py _public_target   0% 11 11 0   0% 4 0   0%
open_webui/utils/notifications.py _load_notifications   12% 25 22 0   0% 14 2   8%
open_webui/utils/notifications.py list_targets   0% 3 3 0   100% 0 0   0%
open_webui/utils/notifications.py create_target   12% 17 15 0   0% 6 0   9%
open_webui/utils/notifications.py update_target   0% 14 14 0   0% 8 0   0%
open_webui/utils/notifications.py delete_target   0% 10 10 0   0% 4 0   0%
open_webui/utils/notifications.py set_default_target   0% 7 7 0   0% 4 0   0%
open_webui/utils/notifications.py get_notification_event_catalog   0% 1 1 0   100% 0 0   0%
open_webui/utils/notifications.py _find_target   0% 9 9 0   0% 6 0   0%
open_webui/utils/notifications.py _send_webhook   0% 8 8 0   0% 6 0   0%
open_webui/utils/notifications.py _notification_webhook_content   12% 34 30 0   0% 12 0   9%
open_webui/utils/notifications.py test_target   0% 6 6 0   0% 2 0   0%
open_webui/utils/notifications.py notify_target   0% 8 8 0   0% 4 0   0%
open_webui/utils/notifications.py dispatch_notification_event   11% 19 17 0   8% 12 1   10%
open_webui/utils/notifications.py (no function)   100% 36 0 0   100% 0 0   100%
open_webui/utils/oauth.py _default_value   100% 1 0 0   100% 0 0   100%
open_webui/utils/oauth.py _get_roles_claim   0% 6 6 0   0% 4 0   0%
open_webui/utils/oauth.py get_oauth_runtime_config   100% 4 0 0   100% 0 0   100%
open_webui/utils/oauth.py _normalize_token_expiry   0% 12 12 0   0% 6 0   0%
open_webui/utils/oauth.py encrypt_data   0% 7 7 0   100% 0 0   0%
open_webui/utils/oauth.py decrypt_data   0% 2 2 0   100% 0 0   0%
open_webui/utils/oauth.py _build_oauth_callback_error_message   0% 20 20 0   0% 14 0   0%
open_webui/utils/oauth.py is_in_blocked_groups   0% 17 17 0   0% 16 0   0%
open_webui/utils/oauth.py _parse_blocked_groups   0% 9 9 0   0% 4 0   0%
open_webui/utils/oauth.py get_parsed_and_base_url   100% 3 0 0   100% 0 0   100%
open_webui/utils/oauth.py ProtectedResourceMetadata.get_discovery_urls   80% 5 1 0   50% 2 1   71%
open_webui/utils/oauth.py get_protected_resource_metadata   23% 39 30 0   0% 14 0   17%
open_webui/utils/oauth.py _build_well_known_urls   100% 7 0 0   100% 2 0   100%
open_webui/utils/oauth.py get_discovery_urls   0% 2 2 0   100% 0 0   0%
open_webui/utils/oauth.py get_oauth_client_info_with_dynamic_client_registration   32% 59 40 0   25% 16 2   31%
open_webui/utils/oauth.py get_oauth_client_info_with_static_credentials   50% 30 15 0   17% 6 1   44%
open_webui/utils/oauth.py resolve_oauth_client_info   0% 7 7 0   0% 4 0   0%
open_webui/utils/oauth.py normalize_oauth_resource_parameter   0% 3 3 0   0% 2 0   0%
open_webui/utils/oauth.py get_connection_oauth_resource_parameter   0% 3 3 0   100% 0 0   0%
open_webui/utils/oauth.py apply_connection_oauth_options   0% 8 8 0   0% 2 0   0%
open_webui/utils/oauth.py scope_has_resource_indicator   0% 3 3 0   0% 2 0   0%
open_webui/utils/oauth.py should_send_oauth_resource   0% 8 8 0   0% 6 0   0%
open_webui/utils/oauth.py build_oauth_request_params   0% 8 8 0   0% 6 0   0%
open_webui/utils/oauth.py recover_static_oauth_client_metadata   0% 19 19 0   0% 10 0   0%
open_webui/utils/oauth.py OAuthClientManager.__init__   100% 3 0 0   100% 0 0   100%
open_webui/utils/oauth.py OAuthClientManager.add_client   0% 12 12 0   0% 8 0   0%
open_webui/utils/oauth.py OAuthClientManager.ensure_client_from_config   22% 32 25 0   29% 14 2   24%
open_webui/utils/oauth.py OAuthClientManager.remove_client   0% 10 10 0   0% 10 0   0%
open_webui/utils/oauth.py OAuthClientManager._preflight_authorization_url   0% 38 38 0   0% 12 0   0%
open_webui/utils/oauth.py OAuthClientManager.get_client   100% 4 0 0   50% 2 1   83%
open_webui/utils/oauth.py OAuthClientManager.get_client_info   100% 4 0 0   50% 2 1   83%
open_webui/utils/oauth.py OAuthClientManager.get_server_metadata_url   0% 4 4 0   0% 2 0   0%
open_webui/utils/oauth.py OAuthClientManager.get_oauth_token   0% 17 17 0   0% 6 0   0%
open_webui/utils/oauth.py OAuthClientManager._refresh_token   0% 11 11 0   0% 2 0   0%
open_webui/utils/oauth.py OAuthClientManager._perform_token_refresh   0% 44 44 0   0% 18 0   0%
open_webui/utils/oauth.py OAuthClientManager.handle_authorize   0% 21 21 0   0% 8 0   0%
open_webui/utils/oauth.py OAuthClientManager.handle_callback   6% 54 51 0   4% 24 1   5%
open_webui/utils/oauth.py OAuthManager.__init__   44% 9 5 0   25% 4 1   38%
open_webui/utils/oauth.py OAuthManager.get_client   0% 3 3 0   0% 2 0   0%
open_webui/utils/oauth.py OAuthManager.get_server_metadata_url   0% 4 4 0   0% 2 0   0%
open_webui/utils/oauth.py OAuthManager.get_oauth_token   0% 29 29 0   0% 12 0   0%
open_webui/utils/oauth.py OAuthManager._refresh_token   0% 11 11 0   0% 2 0   0%
open_webui/utils/oauth.py OAuthManager._perform_token_refresh   0% 42 42 0   0% 16 0   0%
open_webui/utils/oauth.py OAuthManager.get_user_role   0% 59 59 0   0% 34 0   0%
open_webui/utils/oauth.py OAuthManager.update_user_role_from_oauth   0% 8 8 0   0% 2 0   0%
open_webui/utils/oauth.py OAuthManager.update_user_groups   2% 65 64 0   0% 36 2   1%
open_webui/utils/oauth.py OAuthManager._process_picture_url   0% 23 23 0   0% 6 0   0%
open_webui/utils/oauth.py OAuthManager.handle_login   33% 15 10 0   30% 10 1   32%
open_webui/utils/oauth.py OAuthManager.handle_callback   5% 185 176 0   3% 102 1   4%
open_webui/utils/oauth.py OAuthManager.handle_backchannel_logout   0% 90 90 0   0% 38 0   0%
open_webui/utils/oauth.py (no function)   97% 129 4 0   50% 2 1   96%
open_webui/utils/payload.py resolve_system_prompt   0% 11 11 0   0% 8 0   0%
open_webui/utils/payload.py apply_system_prompt_to_body   0% 7 7 0   0% 4 0   0%
open_webui/utils/payload.py apply_model_params_to_body   0% 10 10 0   0% 10 0   0%
open_webui/utils/payload.py apply_params_to_form_data   0% 29 29 0   0% 22 0   0%
open_webui/utils/payload.py remove_open_webui_params   0% 5 5 0   0% 4 0   0%
open_webui/utils/payload.py apply_model_params_to_body_openai   0% 12 12 0   0% 6 0   0%
open_webui/utils/payload.py apply_model_params_to_body_ollama   0% 24 24 0   0% 14 0   0%
open_webui/utils/payload.py apply_model_params_to_body_ollama.parse_json   0% 4 4 0   100% 0 0   0%
open_webui/utils/payload.py convert_messages_openai_to_ollama   0% 38 38 0   0% 28 0   0%
open_webui/utils/payload.py convert_payload_openai_to_ollama   0% 43 43 0   0% 24 0   0%
open_webui/utils/payload.py convert_payload_openai_to_ollama.parse_json   0% 4 4 0   100% 0 0   0%
open_webui/utils/payload.py convert_embedding_payload_openai_to_ollama   0% 11 11 0   0% 6 0   0%
open_webui/utils/payload.py convert_embed_payload_openai_to_ollama   0% 7 7 0   0% 4 0   0%
open_webui/utils/payload.py (no function)   100% 18 0 0   100% 0 0   100%
open_webui/utils/plugin.py resolve_valves_schema_options   0% 50 50 0   0% 28 0   0%
open_webui/utils/plugin.py extract_frontmatter   35% 23 15 0   8% 12 1   26%
open_webui/utils/plugin.py replace_imports   100% 4 0 0   100% 2 0   100%
open_webui/utils/plugin.py load_tool_module_by_id   73% 33 9 0   40% 10 4   65%
open_webui/utils/plugin.py load_function_module_by_id   70% 40 12 0   44% 16 7   62%
open_webui/utils/plugin.py _state_cache   100% 3 0 0   100% 2 0   100%
open_webui/utils/plugin.py get_tools_cache   100% 1 0 0   100% 0 0   100%
open_webui/utils/plugin.py get_tool_contents_cache   0% 1 1 0   100% 0 0   0%
open_webui/utils/plugin.py get_functions_cache   100% 1 0 0   100% 0 0   100%
open_webui/utils/plugin.py get_function_contents_cache   100% 1 0 0   100% 0 0   100%
open_webui/utils/plugin.py get_tool_module_from_cache   0% 22 22 0   0% 12 0   0%
open_webui/utils/plugin.py get_function_module_from_cache   0% 23 23 0   0% 14 0   0%
open_webui/utils/plugin.py install_frontmatter_requirements   21% 19 15 0   25% 8 2   22%
open_webui/utils/plugin.py install_tool_and_function_dependencies   42% 19 11 0   25% 12 3   35%
open_webui/utils/plugin.py (no function)   100% 30 0 0   100% 0 0   100%
open_webui/utils/rate_limit.py RateLimiter.__init__   100% 6 0 0   100% 0 0   100%
open_webui/utils/rate_limit.py RateLimiter._bucket_key   0% 1 1 0   100% 0 0   0%
open_webui/utils/rate_limit.py RateLimiter._current_bucket   100% 1 0 0   100% 0 0   100%
open_webui/utils/rate_limit.py RateLimiter._prune_memory_store   100% 4 0 0   100% 2 0   100%
open_webui/utils/rate_limit.py RateLimiter.is_limited   38% 8 5 0   50% 4 2   42%
open_webui/utils/rate_limit.py RateLimiter.get_count   0% 8 8 0   0% 4 0   0%
open_webui/utils/rate_limit.py RateLimiter.remaining   0% 2 2 0   100% 0 0   0%
open_webui/utils/rate_limit.py RateLimiter._is_limited_redis   0% 9 9 0   0% 2 0   0%
open_webui/utils/rate_limit.py RateLimiter._get_count_redis   0% 4 4 0   100% 0 0   0%
open_webui/utils/rate_limit.py RateLimiter._is_limited_memory   100% 6 0 0   100% 0 0   100%
open_webui/utils/rate_limit.py RateLimiter._get_count_memory   0% 3 3 0   100% 0 0   0%
open_webui/utils/rate_limit.py (no function)   100% 16 0 0   100% 0 0   100%
open_webui/utils/recurrence.py _resolve_tz   29% 7 5 0   50% 2 1   33%
open_webui/utils/recurrence.py _parse_rule   0% 32 32 0   0% 18 0   0%
open_webui/utils/recurrence.py _next_occurrences   0% 8 8 0   0% 4 0   0%
open_webui/utils/recurrence.py _get_next_occurrences   80% 5 1 0   100% 0 0   80%
open_webui/utils/recurrence.py validate_rrule   69% 13 4 0   25% 4 1   59%
open_webui/utils/recurrence.py next_run_ns   0% 10 10 0   0% 4 0   0%
open_webui/utils/recurrence.py next_n_runs_ns   0% 9 9 0   0% 4 0   0%
open_webui/utils/recurrence.py rrule_interval_seconds   0% 6 6 0   0% 2 0   0%
open_webui/utils/recurrence.py (no function)   100% 18 0 0   100% 0 0   100%
open_webui/utils/redis.py parse_redis_url   0% 4 4 0   0% 2 0   0%
open_webui/utils/redis.py get_sentinels_from_env   50% 4 2 0   50% 2 1   50%
open_webui/utils/redis.py build_sentinel_url   0% 6 6 0   0% 2 0   0%
open_webui/utils/redis.py get_redis_client   38% 8 5 0   50% 2 1   40%
open_webui/utils/redis.py SentinelRedisProxy.__init__   0% 4 4 0   100% 0 0   0%
open_webui/utils/redis.py SentinelRedisProxy.__getattr__   0% 7 7 0   0% 4 0   0%
open_webui/utils/redis.py SentinelRedisProxy._resolve_master   0% 3 3 0   0% 2 0   0%
open_webui/utils/redis.py SentinelRedisProxy._clear_master   0% 1 1 0   100% 0 0   0%
open_webui/utils/redis.py SentinelRedisProxy._should_retry   0% 1 1 0   100% 0 0   0%
open_webui/utils/redis.py SentinelRedisProxy._log_retry   0% 1 1 0   100% 0 0   0%
open_webui/utils/redis.py SentinelRedisProxy._log_exhausted   0% 1 1 0   100% 0 0   0%
open_webui/utils/redis.py SentinelRedisProxy._wrap_async   0% 3 3 0   0% 2 0   0%
open_webui/utils/redis.py SentinelRedisProxy._wrap_async_gen   0% 3 3 0   100% 0 0   0%
open_webui/utils/redis.py SentinelRedisProxy._wrap_async_gen.wrapper   0% 2 2 0   100% 0 0   0%
open_webui/utils/redis.py SentinelRedisProxy._wrap_async_gen.wrapper._inner   0% 15 15 0   0% 8 0   0%
open_webui/utils/redis.py SentinelRedisProxy._wrap_async_call   0% 3 3 0   100% 0 0   0%
open_webui/utils/redis.py SentinelRedisProxy._wrap_async_call.wrapper   0% 16 16 0   0% 8 0   0%
open_webui/utils/redis.py SentinelRedisProxy._wrap_sync   0% 3 3 0   100% 0 0   0%
open_webui/utils/redis.py SentinelRedisProxy._wrap_sync.wrapper   0% 13 13 0   0% 6 0   0%
open_webui/utils/redis.py _socket_options   0% 10 10 0   0% 8 0   0%
open_webui/utils/redis.py _build_sentinel   0% 3 3 0   100% 0 0   0%
open_webui/utils/redis.py get_redis_connection   0% 19 19 0   0% 12 0   0%
open_webui/utils/redis.py (no function)   100% 34 0 0   100% 0 0   100%
open_webui/utils/response.py normalize_usage   0% 12 12 0   0% 4 0   0%
open_webui/utils/response.py _is_numeric_usage_value   0% 1 1 0   100% 0 0   0%
open_webui/utils/response.py _merge_numeric_usage_map   0% 11 11 0   0% 6 0   0%
open_webui/utils/response.py merge_usage   0% 19 19 0   0% 14 0   0%
open_webui/utils/response.py convert_ollama_tool_call_to_openai   0% 6 6 0   0% 2 0   0%
open_webui/utils/response.py convert_ollama_usage_to_openai   0% 4 4 0   100% 0 0   0%
open_webui/utils/response.py convert_response_ollama_to_openai   0% 11 11 0   0% 2 0   0%
open_webui/utils/response.py convert_streaming_response_ollama_to_openai   0% 27 27 0   0% 10 0   0%
open_webui/utils/response.py convert_embedding_response_ollama_to_openai   0% 13 13 0   0% 12 0   0%
open_webui/utils/response.py (no function)   100% 17 0 0   100% 0 0   100%
open_webui/utils/sanitize.py strip_ansi_codes   0% 1 1 0   100% 0 0   0%
open_webui/utils/sanitize.py strip_markdown_code_fences   0% 4 4 0   100% 0 0   0%
open_webui/utils/sanitize.py sanitize_code   0% 3 3 0   100% 0 0   0%
open_webui/utils/sanitize.py (no function)   100% 5 0 0   100% 0 0   100%
open_webui/utils/security_headers.py set_security_headers   67% 9 3 0   50% 6 1   60%
open_webui/utils/security_headers.py set_hsts   0% 5 5 0   0% 2 0   0%
open_webui/utils/security_headers.py set_xframe   0% 5 5 0   0% 2 0   0%
open_webui/utils/security_headers.py set_permissions_policy   0% 5 5 0   0% 2 0   0%
open_webui/utils/security_headers.py set_referrer   0% 5 5 0   0% 2 0   0%
open_webui/utils/security_headers.py set_cache_control   0% 5 5 0   0% 2 0   0%
open_webui/utils/security_headers.py set_xdownload_options   0% 3 3 0   0% 2 0   0%
open_webui/utils/security_headers.py set_xcontent_type   0% 3 3 0   0% 2 0   0%
open_webui/utils/security_headers.py set_xpermitted_cross_domain_policies   0% 5 5 0   0% 2 0   0%
open_webui/utils/security_headers.py set_content_security_policy   0% 1 1 0   100% 0 0   0%
open_webui/utils/security_headers.py set_content_security_policy_report_only   0% 1 1 0   100% 0 0   0%
open_webui/utils/security_headers.py set_cross_origin_embedder_policy   0% 5 5 0   0% 2 0   0%
open_webui/utils/security_headers.py set_cross_origin_opener_policy   0% 5 5 0   0% 2 0   0%
open_webui/utils/security_headers.py set_cross_origin_resource_policy   0% 5 5 0   0% 2 0   0%
open_webui/utils/security_headers.py set_reporting_endpoints   0% 1 1 0   100% 0 0   0%
open_webui/utils/security_headers.py (no function)   100% 18 0 0   100% 0 0   100%
open_webui/utils/session_pool.py get_client_timeout   100% 1 0 0   100% 0 0   100%
open_webui/utils/session_pool.py get_session   85% 13 2 0   67% 6 2   79%
open_webui/utils/session_pool.py close_session   100% 4 0 0   50% 2 1   83%
open_webui/utils/session_pool.py cleanup_response   20% 10 8 0   17% 12 2   18%
open_webui/utils/session_pool.py stream_wrapper   0% 7 7 0   0% 4 0   0%
open_webui/utils/session_pool.py (no function)   100% 14 0 0   100% 0 0   100%
open_webui/utils/skills.py _get_text_parts   0% 6 6 0   0% 4 0   0%
open_webui/utils/skills.py extract_skill_ids_from_messages   0% 5 5 0   0% 4 0   0%
open_webui/utils/skills.py _build_skill_create_prompt   0% 4 4 0   0% 2 0   0%
open_webui/utils/skills.py _message_has_real_content   0% 2 2 0   100% 0 0   0%
open_webui/utils/skills.py has_prior_real_chat_content   0% 2 2 0   100% 0 0   0%
open_webui/utils/skills.py _build_skill_create_gate_prompt   0% 3 3 0   0% 2 0   0%
open_webui/utils/skills.py apply_skills_create_prompt   0% 10 10 0   0% 6 0   0%
open_webui/utils/skills.py strip_skill_mentions   0% 11 11 0   0% 12 0   0%
open_webui/utils/skills.py strip_skill_mentions.label   0% 3 3 0   0% 2 0   0%
open_webui/utils/skills.py (no function)   100% 15 0 0   100% 0 0   100%
open_webui/utils/task.py get_task_model_id   0% 7 7 0   0% 6 0   0%
open_webui/utils/task.py prompt_variables_template   0% 3 3 0   0% 2 0   0%
open_webui/utils/task.py prompt_template   0% 44 44 0   0% 14 0   0%
open_webui/utils/task.py replace_prompt_variable   0% 4 4 0   100% 0 0   0%
open_webui/utils/task.py replace_prompt_variable.replacement_function   0% 18 18 0   0% 10 0   0%
open_webui/utils/task.py truncate_content   0% 10 10 0   0% 8 0   0%
open_webui/utils/task.py apply_content_filter   0% 26 26 0   0% 14 0   0%
open_webui/utils/task.py replace_messages_variable   0% 4 4 0   100% 0 0   0%
open_webui/utils/task.py replace_messages_variable.replacement_function   0% 29 29 0   0% 12 0   0%
open_webui/utils/task.py rag_template   0% 23 23 0   0% 12 0   0%
open_webui/utils/task.py title_generation_template   0% 5 5 0   100% 0 0   0%
open_webui/utils/task.py follow_up_generation_template   0% 5 5 0   100% 0 0   0%
open_webui/utils/task.py tags_generation_template   0% 5 5 0   100% 0 0   0%
open_webui/utils/task.py image_prompt_generation_template   0% 5 5 0   100% 0 0   0%
open_webui/utils/task.py emoji_generation_template   0% 3 3 0   100% 0 0   0%
open_webui/utils/task.py autocomplete_generation_template   0% 5 5 0   100% 0 0   0%
open_webui/utils/task.py query_generation_template   0% 5 5 0   100% 0 0   0%
open_webui/utils/task.py moa_response_generation_template   0% 6 6 0   100% 0 0   0%
open_webui/utils/task.py moa_response_generation_template.replacement_function   0% 18 18 0   0% 10 0   0%
open_webui/utils/task.py tools_function_calling_generation_template   0% 2 2 0   100% 0 0   0%
open_webui/utils/task.py (no function)   100% 26 0 0   100% 0 0   100%
open_webui/utils/terminals.py is_terminal_orchestrator   100% 1 0 0   100% 0 0   100%
open_webui/utils/terminals.py get_terminal_server_url   100% 5 0 0   100% 2 0   100%
open_webui/utils/terminals.py terminal_context_config   0% 9 9 0   0% 6 0   0%
open_webui/utils/terminals.py terminal_context_available   0% 3 3 0   0% 2 0   0%
open_webui/utils/terminals.py terminal_context_id   0% 16 16 0   0% 10 0   0%
open_webui/utils/terminals.py terminal_contexts   29% 17 12 0   21% 14 1   26%
open_webui/utils/terminals.py terminal_chat_uploads   100% 2 0 0   100% 0 0   100%
open_webui/utils/terminals.py get_terminal_request_info   0% 41 41 0   0% 18 0   0%
open_webui/utils/terminals.py get_terminal_agents_md   0% 33 33 0   0% 14 0   0%
open_webui/utils/terminals.py add_terminal_agents_md   0% 4 4 0   0% 4 0   0%
open_webui/utils/terminals.py get_terminal_skill   0% 17 17 0   0% 4 0   0%
open_webui/utils/terminals.py format_terminal_skill_context   0% 10 10 0   0% 4 0   0%
open_webui/utils/terminals.py format_terminal_skill_manifest_entry   0% 3 3 0   100% 0 0   0%
open_webui/utils/terminals.py (no function)   100% 25 0 0   100% 0 0   100%
open_webui/utils/timers.py parse_timer_at   0% 20 20 0   0% 10 0   0%
open_webui/utils/timers.py create_timer   7% 27 25 0   0% 12 0   5%
open_webui/utils/timers.py claim_due_timers   64% 14 5 0   50% 4 2   61%
open_webui/utils/timers.py cancel_timers_for_chat   9% 11 10 0   0% 4 0   7%
open_webui/utils/timers.py execute_due_timer   10% 98 88 0   0% 34 2   8%
open_webui/utils/timers.py _set_timer_state   0% 7 7 0   0% 2 0   0%
open_webui/utils/timers.py (no function)   100% 31 0 0   100% 0 0   100%
open_webui/utils/tool_approval.py resolve_tool_call_output   29% 38 27 0   27% 22 2   28%
open_webui/utils/tool_approval.py build_tool_approval_resume_payload   0% 26 26 0   0% 14 0   0%
open_webui/utils/tool_approval.py (no function)   100% 15 0 0   100% 0 0   100%
open_webui/utils/tools.py build_tool_server_headers   0% 33 33 0   0% 20 0   0%
open_webui/utils/tools.py get_async_tool_function_and_apply_extra_params   0% 25 25 0   0% 8 0   0%
open_webui/utils/tools.py get_async_tool_function_and_apply_extra_params.coerce_kwargs   0% 10 10 0   0% 8 0   0%
open_webui/utils/tools.py get_async_tool_function_and_apply_extra_params.new_function   0% 1 1 0   100% 0 0   0%
open_webui/utils/tools.py get_updated_tool_function   0% 5 5 0   0% 2 0   0%
open_webui/utils/tools.py get_tools   0% 98 98 0   0% 56 0   0%
open_webui/utils/tools.py get_attached_knowledge   0% 23 23 0   0% 16 0   0%
open_webui/utils/tools.py get_builtin_tools   0% 81 81 0   0% 58 0   0%
open_webui/utils/tools.py get_builtin_tools.get_model_capability   0% 1 1 0   100% 0 0   0%
open_webui/utils/tools.py get_builtin_tools.is_builtin_tool_enabled   0% 2 2 0   100% 0 0   0%
open_webui/utils/tools.py get_builtin_tools.has_user_permission   0% 3 3 0   0% 2 0   0%
open_webui/utils/tools.py get_builtin_tools.has_user_chat_permission   0% 3 3 0   0% 2 0   0%
open_webui/utils/tools.py parse_description   0% 9 9 0   0% 6 0   0%
open_webui/utils/tools.py parse_docstring   0% 20 20 0   0% 12 0   0%
open_webui/utils/tools.py convert_function_to_pydantic_model   0% 19 19 0   0% 6 0   0%
open_webui/utils/tools.py clean_properties   0% 17 17 0   0% 16 0   0%
open_webui/utils/tools.py clean_openai_tool_schema   0% 4 4 0   0% 2 0   0%
open_webui/utils/tools.py add_terminal_display_file_inline_param   0% 10 10 0   0% 2 0   0%
open_webui/utils/tools.py get_builtin_function_introspection   0% 5 5 0   100% 0 0   0%
open_webui/utils/tools.py build_builtin_tool_spec_json   0% 3 3 0   100% 0 0   0%
open_webui/utils/tools.py get_builtin_tool_spec   0% 1 1 0   100% 0 0   0%
open_webui/utils/tools.py get_functions_from_tool   0% 1 1 0   100% 0 0   0%
open_webui/utils/tools.py get_tool_specs   0% 3 3 0   100% 0 0   0%
open_webui/utils/tools.py resolve_schema   0% 24 24 0   0% 20 0   0%
open_webui/utils/tools.py convert_openapi_to_tool_payload   0% 55 55 0   0% 46 0   0%
open_webui/utils/tools.py set_tool_servers   73% 11 3 0   50% 2 1   69%
open_webui/utils/tools.py get_tool_servers   38% 16 10 0   33% 6 2   36%
open_webui/utils/tools.py get_terminal_cwd   0% 10 10 0   0% 2 0   0%
open_webui/utils/tools.py get_terminal_system_prompt   0% 16 16 0   0% 6 0   0%
open_webui/utils/tools.py set_terminal_servers   93% 15 1 0   83% 6 1   90%
open_webui/utils/tools.py set_terminal_servers._fetch_system_prompt   0% 11 11 0   0% 8 0   0%
open_webui/utils/tools.py get_terminal_servers   0% 15 15 0   0% 8 0   0%
open_webui/utils/tools.py get_terminal_tools   0% 54 54 0   0% 32 0   0%
open_webui/utils/tools.py get_terminal_tools.make_tool_function   0% 2 2 0   100% 0 0   0%
open_webui/utils/tools.py get_terminal_tools.make_tool_function.tool_function   0% 4 4 0   0% 2 0   0%
open_webui/utils/tools.py get_tool_server_data   47% 30 16 0   38% 8 1   45%
open_webui/utils/tools.py get_tool_servers_data   59% 51 21 0   47% 30 4   54%
open_webui/utils/tools.py execute_tool_server   0% 113 113 0   0% 66 0   0%
open_webui/utils/tools.py get_tool_server_url   86% 7 1 0   83% 6 1   85%
open_webui/utils/tools.py (no function)   100% 66 0 0   100% 0 0   100%
open_webui/utils/validate.py validate_image_url   61% 18 7 0   56% 16 3   59%
open_webui/utils/validate.py validate_background_image   0% 15 15 0   0% 6 0   0%
open_webui/utils/validate.py (no function)   100% 14 0 0   100% 0 0   100%
open_webui/utils/valves.py _fernet   0% 4 4 0   0% 2 0   0%
open_webui/utils/valves.py encrypt_valves   0% 3 3 0   0% 2 0   0%
open_webui/utils/valves.py decrypt_valves   0% 12 12 0   0% 6 0   0%
open_webui/utils/valves.py (no function)   100% 12 0 0   100% 0 0   100%
open_webui/utils/webhook.py _event_text   0% 7 7 0   0% 4 0   0%
open_webui/utils/webhook.py post_webhook   0% 36 36 0   0% 12 0   0%
open_webui/utils/webhook.py (no function)   100% 9 0 0   100% 0 0   100%
Total     40% 46559 27792 0   17% 16046 1356   34%

No items found using the specified filter.