Files
MoviePilot/tests/fixtures/architecture/complexity-baseline.json
DDSRem c4e1caeb3a fix(metainfo): align Python title recovery with Rust 0.3.13 (#7265)
* chore: bump moviepilot-rust to 0.3.13

* fix(metainfo): preserve anime titles in Python fallback

---------

Co-authored-by: jxxghp <51039935+jxxghp@users.noreply.github.com>
Co-authored-by: jxxghp <jxxghp@gmail.com>
2026-11-01 10:40:06 +08:00

167 lines
11 KiB
JSON

{
"metrics": {
"C901": {
"app/adapters/external/cookiecloud.py:CookieCloudHelper.download": 20,
"app/adapters/external/plugin/client.py:PluginMarketTransport.__normalize_plugin_index_entry": 18,
"app/adapters/external/plugin/client.py:PluginMarketTransport.get_local_plugin_candidate": 23,
"app/adapters/network/http.py:AsyncRequestUtils.get_stream": 20,
"app/adapters/network/http.py:RequestUtils.get_decoded_xml_content": 18,
"app/adapters/system/plugin/health.py:PluginRuntimeHealth.__async_install_packages_with_fallback": 20,
"app/adapters/system/plugin/health.py:PluginRuntimeHealth.install_packages_with_fallback": 26,
"app/agent/callback/__init__.py:StreamingHandler._classify_tool_call": 27,
"app/agent/lifecycle.py:AgentLifecycleOwner.close": 21,
"app/agent/llm/helper.py:_patch_gemini_thought_signature": 16,
"app/agent/llm/runtime.py:_ProviderRuntime.resolve_runtime": 17,
"app/agent/orchestrator.py:MoviePilotAgent._execute_agent": 18,
"app/agent/policy/mcp.py:build_api_mcp_input_schema": 17,
"app/agent/policy/sanitizer.py:sanitize_for_host": 45,
"app/agent/session.py:AgentSessionOwner._process_message_internal": 23,
"app/agent/session.py:AgentSessionOwner._session_worker": 22,
"app/agent/tools/base.py:MoviePilotTool._arun": 23,
"app/agent/tools/impl/agent_task.py:AgentTaskTool._update_task": 16,
"app/agent/tools/impl/apply_patch.py:parse_patch": 23,
"app/agent/tools/impl/browse_webpage.py:BrowseWebpageTool._do_action": 20,
"app/api/endpoints/media.py:_scrape_impl": 16,
"app/api/endpoints/transfer.py:_execute_manual_transfer": 28,
"app/api/protocol.py:extract_text_and_images": 19,
"app/application/classification/projection.py:_project_condition": 16,
"app/application/download/organization.py:organize_existing_source": 22,
"app/application/formatting.py:EpisodeFormatRuleHelper._auto_recommend": 25,
"app/application/messaging/skill.py:SkillInteractionHandler._handle_callback_interaction": 23,
"app/application/messaging/skill.py:SkillInteractionHandler._handle_text_interaction": 27,
"app/application/messaging/webagent/stream.py:_build_web_agent_event_generator": 16,
"app/application/plugin/admission.py:admit_plugin_install": 22,
"app/application/plugin/identity.py:PluginIdentity.__post_init__": 26,
"app/application/plugin/install.py:PluginInstallCommand.__execute_locked": 28,
"app/application/plugin/source.py:select_plugin_candidate": 19,
"app/application/rss.py:RssHelper._parse_impl": 37,
"app/application/security/cookie.py:CookieHelper._get_site_cookie_ua_impl": 45,
"app/application/security/cookie.py:CookieHelper._get_site_cookie_ua_impl.__page_handler": 43,
"app/application/torrent/download.py:TorrentHelper.download_torrent": 22,
"app/application/torrent/download.py:TorrentHelper.match_torrent": 16,
"app/application/transfer/models.py:TransferPlanCheckpoint.__post_init__": 18,
"app/chain/download/existence.py:DownloadExistenceOwner.get_no_exists_info": 23,
"app/chain/download/subtitle.py:DownloadSubtitleOwner._save_subtitle_response": 16,
"app/chain/media/album.py:_album_context_with_resource": 20,
"app/chain/message.py:MessageChain._download_attachments_to_data_urls": 18,
"app/chain/message.py:MessageChain._download_message_file_bytes": 19,
"app/chain/message.py:MessageChain._handle_ai_message": 19,
"app/chain/message.py:MessageChain._transcribe_audio_refs": 19,
"app/chain/scraping.py:ScrapingChain._get_target_fileitem_and_path": 16,
"app/chain/scraping.py:ScrapingChain.scrape_metadata_event": 17,
"app/chain/scraping.py:ScrapingChain.scrape_music_metadata": 17,
"app/chain/subscribe/completion.py:SubscribeCompletionOwner._SubscribeChain__get_subscribe_no_exits": 16,
"app/chain/subscribe/completion.py:SubscribeCompletionOwner._SubscribeChain__record_subscribe_download_facts": 19,
"app/chain/subscribe/match.py:SubscribeMatchOwner._execute_match": 46,
"app/chain/subscribe/query.py:SubscribeQueryOwner.follow": 19,
"app/chain/subscribe/query.py:SubscribeQueryOwner.subscribe_files_info": 24,
"app/chain/subscribe/refresh.py:SubscribeRefreshOwner.backfill_existing_episodes": 16,
"app/chain/subscribe/search.py:_SubscribeSearchQueueCoordinator._execute_inline_search": 16,
"app/chain/transfer/execution.py:TransferExecutionOwner._TransferChain__perform_transfer": 30,
"app/chain/transfer/filter.py:FileFilterMixin._restore_music_download_context": 24,
"app/chain/transfer/music.py:_release_groups": 16,
"app/chain/transfer/music.py:prepare_music_batch_context": 18,
"app/chain/transfer/queue.py:TransferQueueOwner._TransferChain__replay_pending": 26,
"app/chain/transfer/queue.py:TransferQueueOwner._TransferChain__start_transfer": 21,
"app/chain/transfer/queue.py:TransferQueueOwner.process": 16,
"app/chain/transfer/request.py:_TransferCandidatePlanner._plan_file_items": 24,
"app/chain/transfer/retry.py:FailedRetryMixin._re_transfer": 21,
"app/chain/transfer/settlement.py:TransferSettlementOwner._TransferChain__default_callback": 18,
"app/chain/transfer/workflow.py:TransferWorkflowOwner._build_transfer_tasks": 32,
"app/chain/transfer/workflow.py:TransferWorkflowOwner._collect_transfer_candidates": 16,
"app/chain/transfer/workflow.py:TransferWorkflowOwner._execute_transfer_tasks": 18,
"app/chain/workflow.py:WorkflowExecutor.evaluate_target_state": 16,
"app/domain/meta/metaanime.py:MetaAnime.__init__": 42,
"app/domain/meta/metaanime.py:MetaAnime.__prepare_title": 16,
"app/domain/meta/metabase.py:MetaBase.init_subtitle": 41,
"app/domain/meta/metamusic.py:MetaMusic._parse_music_scene_tokens": 19,
"app/domain/meta/metamusic.py:MetaMusic.parse_resource": 20,
"app/domain/meta/metavideo.py:MetaVideo.__init__": 18,
"app/domain/meta/metavideo.py:MetaVideo.__init_episode": 17,
"app/domain/meta/metavideo.py:MetaVideo.__init_name": 31,
"app/domain/metainfo.py:_find_metainfo_python": 29,
"app/domain/music.py:parse_music_cue": 21,
"app/domain/projection/anilist.py:project": 17,
"app/domain/projection/douban.py:project": 25,
"app/modules/discord/discord.py:Discord._build_embed": 26,
"app/modules/emby/emby.py:Emby.get_tv_episodes": 18,
"app/modules/emby/emby.py:Emby.get_webhook_message": 18,
"app/modules/filemanager/storages/alipan.py:AliPan.upload": 16,
"app/modules/filemanager/storages/u115.py:U115Pan.upload": 33,
"app/modules/filemanager/transhandler.py:TransHandler.__resolve_overwrite": 16,
"app/modules/filemanager/transhandler.py:TransHandler.__transfer_command": 19,
"app/modules/filemanager/transhandler.py:TransHandler.execute_transfer_plan": 19,
"app/modules/filter/__init__.py:FilterModule.__match_rule": 24,
"app/modules/imdb/__init__.py:ImdbModule._to_media_info": 17,
"app/modules/indexer/spider/__init__.py:SiteSpider.__get_search_url": 24,
"app/modules/jellyfin/jellyfin.py:Jellyfin.get_tv_episodes": 18,
"app/modules/qbittorrent/__init__.py:QbittorrentModule.download": 20,
"app/modules/qbittorrent/__init__.py:QbittorrentModule.list_torrents": 20,
"app/modules/qqbot/gateway.py:run_gateway": 42,
"app/modules/rtorrent/__init__.py:RtorrentModule.download": 16,
"app/modules/rtorrent/__init__.py:RtorrentModule.list_torrents": 20,
"app/modules/slack/__init__.py:SlackModule.message_parser": 16,
"app/modules/slack/slack.py:Slack.send_medias_msg": 18,
"app/modules/transmission/__init__.py:TransmissionModule.download": 18,
"app/modules/transmission/__init__.py:TransmissionModule.list_torrents": 22,
"app/modules/trimemedia/api.py:Api.request": 16,
"app/modules/ugreen/ugreen.py:Ugreen.get_tv_episodes": 21,
"app/modules/wechat/__init__.py:WechatModule.message_parser": 20,
"app/modules/wechatclawbot/wechatclawbot.py:ILinkClient._parse_incoming": 29,
"app/modules/zspace/zspace.py:ZSpace.get_items": 16,
"app/modules/zspace/zspace.py:ZSpace.get_tv_episodes": 18,
"app/modules/zspace/zspace.py:ZSpace.get_webhook_message": 17,
"app/monitor/monitor.py:Monitor.__initialize_monitors": 25,
"app/runtime/cache.py:cached": 34,
"app/runtime/cache.py:cached.decorator": 33,
"app/runtime/config.py:Settings.generic_type_converter": 26,
"app/runtime/extensions/plugin/monitor.py:PluginChangeMonitor._process_changes": 19,
"app/runtime/extensions/plugin/runtime.py:build_plugin_runtime": 19,
"app/runtime/tasks.py:TaskRegistry.submit_threadsafe": 25,
"app/scheduler/bridge.py:SchedulerBridgeOwner._submit_cross_thread": 16,
"app/scheduler/execution.py:SchedulerExecutionOwner.start": 21,
"app/startup/composition/outbox.py:build_outbox_handlers": 16,
"app/workflow/__init__.py:WorkflowManager._check_complex_condition": 16,
"app/workflow/actions/fetch_torrents.py:FetchTorrentsAction.execute": 16,
"app/workflow/actions/transfer_file.py:TransferFileAction.execute": 19
},
"PLR1702": {
"app/adapters/network/http.py:AsyncRequestUtils.get_stream": 6,
"app/adapters/network/http.py:get_caller": 6,
"app/adapters/system/host.py:SystemUtils.exits_files._search_files": 6,
"app/adapters/system/host.py:SystemUtils.list_files._scan_directory": 6,
"app/agent/llm/helper.py:_patch_gemini_thought_signature": 6,
"app/agent/policy/sanitizer.py:sanitize_for_host": 6,
"app/api/endpoints/transfer.py:_execute_manual_transfer": 6,
"app/application/rss.py:RssHelper._parse_impl": 7,
"app/chain/scraping.py:ScrapingChain.scrape_metadata_event": 6,
"app/chain/subscribe/match.py:SubscribeMatchOwner._execute_match": 7,
"app/chain/subscribe/query.py:SubscribeQueryOwner.subscribe_files_info": 6,
"app/chain/transfer/queue.py:TransferQueueOwner._TransferChain__start_transfer": 6,
"app/chain/transfer/workflow.py:TransferWorkflowOwner._build_transfer_tasks": 8,
"app/domain/meta/metaanime.py:MetaAnime.__init__": 7,
"app/modules/discord/discord.py:Discord._build_embed": 7,
"app/modules/emby/emby.py:Emby.get_movies": 6,
"app/modules/filemanager/storages/alipan.py:AliPan.download": 6,
"app/modules/indexer/spider/__init__.py:SiteSpider.__get_search_url": 7,
"app/modules/jellyfin/jellyfin.py:Jellyfin.get_movies": 6,
"app/modules/qbittorrent/__init__.py:QbittorrentModule.download": 7,
"app/modules/rtorrent/__init__.py:RtorrentModule.download": 6,
"app/modules/slack/__init__.py:SlackModule.send_direct_message": 6,
"app/modules/slack/slack.py:Slack.send_medias_msg": 6,
"app/modules/transmission/__init__.py:TransmissionModule.download": 7,
"app/modules/wechat/wechat.py:WeChat.__split_content": 6,
"app/modules/zspace/zspace.py:ZSpace.get_items": 6,
"app/modules/zspace/zspace.py:ZSpace.get_movies": 6,
"app/modules/zspace/zspace.py:ZSpace.get_user": 6,
"app/scheduler/reconcile.py:SchedulerReconcileOwner.remove_plugin_job": 6,
"app/workflow/actions/add_download.py:AddDownloadAction.execute": 7
}
},
"schema_version": 3,
"thresholds": {
"C901": 15,
"PLR1702": 5
}
}