Skip to content

chore(deps): upgrade ruff 0.15.0 and yt-dlp 2026.2.4#455

Merged
fllesser merged 3 commits intomasterfrom
deps/upgrade
Feb 6, 2026
Merged

chore(deps): upgrade ruff 0.15.0 and yt-dlp 2026.2.4#455
fllesser merged 3 commits intomasterfrom
deps/upgrade

Conversation

@fllesser
Copy link
Owner

@fllesser fllesser commented Feb 5, 2026

No description provided.

@codecov
Copy link

codecov bot commented Feb 5, 2026

❌ 2 Tests Failed:

Tests completed Failed Passed Skipped
42 2 40 2
View the top 1 failed test(s) by shortest run time
tests.parsers.test_douyin::test_note
Stack Traces | 17.2s run time
.venv/lib/python3.14.../httpx/_transports/default.py:101: in map_httpcore_exceptions
    yield
.venv/lib/python3.14.../httpx/_transports/default.py:394: in handle_async_request
    resp = await self._pool.handle_async_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.../httpcore/_async/connection_pool.py:256: in handle_async_request
    raise exc from None
.venv/lib/python3.14.../httpcore/_async/connection_pool.py:236: in handle_async_request
    response = await connection.handle_async_request(
.venv/lib/python3.14.../httpcore/_async/connection.py:101: in handle_async_request
    raise exc
.venv/lib/python3.14.../httpcore/_async/connection.py:78: in handle_async_request
    stream = await self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.../httpcore/_async/connection.py:156: in _connect
    stream = await stream.start_tls(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.../httpcore/_backends/anyio.py:67: in start_tls
    with map_exceptions(exc_map):
         ^^^^^^^^^^^^^^^^^^^^^^^
../.........../_temp/uv-python-dir/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/contextlib.py:162: in __exit__
    self.gen.throw(value)
.venv/lib/python3.14.../site-packages/httpcore/_exceptions.py:14: in map_exceptions
    raise to_exc(exc) from exc
E   httpcore.ConnectTimeout

The above exception was the direct cause of the following exception:
.../nonebot_plugin_parser/download/__init__.py:56: in streamd
    async with self.client.stream("GET", url, headers=headers, follow_redirects=True) as response:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../.........../_temp/uv-python-dir/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/contextlib.py:214: in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.............../site-packages/httpx/_client.py:1583: in stream
    response = await self.send(
.venv/lib/python3.14.............../site-packages/httpx/_client.py:1629: in send
    response = await self._send_handling_auth(
.venv/lib/python3.14.............../site-packages/httpx/_client.py:1657: in _send_handling_auth
    response = await self._send_handling_redirects(
.venv/lib/python3.14.............../site-packages/httpx/_client.py:1694: in _send_handling_redirects
    response = await self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.............../site-packages/httpx/_client.py:1730: in _send_single_request
    response = await transport.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.../httpx/_transports/default.py:393: in handle_async_request
    with map_httpcore_exceptions():
         ^^^^^^^^^^^^^^^^^^^^^^^^^
../.........../_temp/uv-python-dir/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/contextlib.py:162: in __exit__
    self.gen.throw(value)
.venv/lib/python3.14.../httpx/_transports/default.py:118: in map_httpcore_exceptions
    raise mapped_exc(message) from exc
E   httpx.ConnectTimeout

During handling of the above exception, another exception occurred:
tests/parsers/test_douyin.py:93: in test_note
    await test_parse(url)
tests/parsers/test_douyin.py:88: in test_parse
    path = await img_content.get_path()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../nonebot_plugin_parser/parsers/data.py:22: in get_path
    self.path_task = await self.path_task
                     ^^^^^^^^^^^^^^^^^^^^
.../nonebot_plugin_parser/download/__init__.py:175: in download_img
    return await self.streamd(url, file_name=img_name, ext_headers=ext_headers)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../nonebot_plugin_parser/download/__init__.py:78: in streamd
    raise DownloadException("媒体下载失败")
E   nonebot_plugin_parser.exception.DownloadException: 媒体下载失败
View the full list of 1 ❄️ flaky test(s)
tests.parsers.test_ytdlp::test_download_img

Flake rate in main: 29.77% (Passed 92 times, Failed 39 times)

Stack Traces | 0.83s run time
.venv/lib/python3.14.../yt_dlp/downloader/common.py:243: in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.../yt_dlp/downloader/common.py:268: in try_rename
    os.replace(old_filename, new_filename)
E   FileNotFoundError: [Errno 2] No such file or directory: '............/home/runner/.cache............/nonebot2/nonebot_plugin_parser/7010339c6caa3a7f.mp4.part' -> '............/home/runner/.cache....../nonebot2/nonebot_plugin_parser/7010339c6caa3a7f.mp4'

During handling of the above exception, another exception occurred:
tests/parsers/test_ytdlp.py:46: in test_download_img
    path = await content.get_path()
           ^^^^^^^^^^^^^^^^^^^^^^^^
.../nonebot_plugin_parser/parsers/data.py:22: in get_path
    self.path_task = await self.path_task
                     ^^^^^^^^^^^^^^^^^^^^
.../nonebot_plugin_parser/download/ytdlp.py:112: in download_video
    await asyncio.to_thread(ydl.download, [url])
../.........../_temp/uv-python-dir/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/asyncio/threads.py:25: in to_thread
    return await loop.run_in_executor(None, func_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../.........../_temp/uv-python-dir/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14....../concurrent/futures/thread.py:86: in run
    result = ctx.run(self.task)
             ^^^^^^^^^^^^^^^^^^
../.........../_temp/uv-python-dir/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14....../concurrent/futures/thread.py:73: in run
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:3670: in download
    self.__download_wrapper(self.extract_info)(
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:3643: in wrapper
    res = func(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:1687: in extract_info
    return self.__extract_info(url, self.get_info_extractor(key), download, extra_info, process)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:1698: in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:1854: in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:1913: in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:3096: in process_video_result
    self.process_info(new_info)
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:189: in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:3544: in process_info
    success, real_download = self.dl(temp_filename, info_dict)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:3285: in dl
    return fd.download(name, new_info, subtitle)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.../yt_dlp/downloader/common.py:480: in download
    ret = self.real_download(filename, info_dict)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.../yt_dlp/downloader/http.py:363: in real_download
    return download()
           ^^^^^^^^^^
.venv/lib/python3.14.../yt_dlp/downloader/http.py:343: in download
    self.try_rename(ctx.tmpfilename, ctx.filename)
.venv/lib/python3.14.../yt_dlp/downloader/common.py:248: in wrapper
    retry.error_callback(err, 1, 0)
.venv/lib/python3.14.../yt_dlp/downloader/common.py:234: in error_callback
    return RetryManager.report_retry(
.venv/lib/python3.14.../yt_dlp/utils/_utils.py:5278: in report_retry
    return error(f'{e}. Giving up after {count - 1} retries') if count > 1 else error(str(e))
                                                                                ^^^^^^^^^^^^^
.venv/lib/python3.14.../yt_dlp/downloader/common.py:237: in <lambda>
    error=None if fatal else lambda e: fd.report_error(f'Unable to {action} file: {e}'),
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:1154: in report_error
    self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs)
.venv/lib/python3.14..................................../site-packages/yt_dlp/YoutubeDL.py:1093: in trouble
    raise DownloadError(message, exc_info)
E   yt_dlp.utils.DownloadError: ERROR: Unable to rename file: [Errno 2] No such file or directory: '............/home/runner/.cache............/nonebot2/nonebot_plugin_parser/7010339c6caa3a7f.mp4.part' -> '............/home/runner/.cache....../nonebot2/nonebot_plugin_parser/7010339c6caa3a7f.mp4'

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@github-actions
Copy link

github-actions bot commented Feb 5, 2026

类型 PIL 耗时(秒) HTML 耗时(秒) 渲染所用图片总大小(MB) PIL 导出图片大小(MB) HTML 导出图片大小(MB)
微博视频2 0.01325 1.03398 0.00000 0.03694 0.17206
微博视频 0.01552 1.03153 0.01280 0.03591 0.17000
微博纯文2 0.03443 1.09663 0.00605 0.12128 0.28607
微博转发纯文 0.07297 1.20757 0.01382 0.24485 0.40196
微博转发(视频) 0.10305 1.37511 14.91427 0.37633 0.78030
微博转发(横图) 0.19381 1.49032 1.26621 0.48521 1.43761
微博图集(超过9张) 0.29726 1.32182 1.01493 0.31779 0.68601
微博转发(竖图) 0.29827 2.25149 1.33334 0.41716 2.48094
哔哩哔哩动态 0.30074 3.05064 0.01244 0.18446 0.43064
微博图集(2张) 0.32537 1.29313 4.88308 0.64674 1.68558
微博图集(3张) 0.32720 1.19131 2.73813 0.34429 0.93089
bilibili-read 0.35426 2.72642 0.47975 1.35622 2.58685
微博图集(4张) 0.41397 1.68022 2.34023 0.72903 1.69757
bilibili-opus 0.52585 2.85545 1.21296 1.35127 2.35157
微博图集(9张) 1.23292 1.91426 10.98936 0.98616 2.37885

@fllesser fllesser merged commit e7c8998 into master Feb 6, 2026
16 of 17 checks passed
@fllesser fllesser deleted the deps/upgrade branch February 6, 2026 10:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant