Skip to content

chore(deps-dev): update ruff requirement from >=0.15.15 to >=0.15.20#123

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/ruff-gte-0.15.20
Open

chore(deps-dev): update ruff requirement from >=0.15.15 to >=0.15.20#123
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/ruff-gte-0.15.20

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 1, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on ruff to permit the latest version.

Release notes

Sourced from ruff's releases.

0.15.20

Release Notes

Released on 2026-06-25.

Preview features

  • Allow human-readable names in rule selectors (#25887)
  • Emit a warning instead of an error for unknown rule selectors (#26113)
  • Match noqa shebang handling in ruff:ignore comments (#26286)
  • [ruff] Remove pytest-fixture-autouse (RUF076) (#26240, #26371)

Documentation

  • Add versioning sections to custom crate READMEs (#26317)
  • Update ruff_python_parser README for crates.io (#26315)
  • [perflint] Clarify that PERF402 applies to any iterable (#26242)

Contributors

Install ruff 0.15.20

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.15.20/ruff-installer.ps1 | iex"

Download ruff 0.15.20

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum

... (truncated)

Changelog

Sourced from ruff's changelog.

0.15.20

Released on 2026-06-25.

Preview features

  • Allow human-readable names in rule selectors (#25887)
  • Emit a warning instead of an error for unknown rule selectors (#26113)
  • Match noqa shebang handling in ruff:ignore comments (#26286)
  • [ruff] Remove pytest-fixture-autouse (RUF076) (#26240, #26371)

Documentation

  • Add versioning sections to custom crate READMEs (#26317)
  • Update ruff_python_parser README for crates.io (#26315)
  • [perflint] Clarify that PERF402 applies to any iterable (#26242)

Contributors

0.15.19

Released on 2026-06-23.

Preview features

  • Support human-readable names when hovering suppression comments and in code actions (#26114)

Bug fixes

  • Fall back to default settings when editor-only settings are invalid (#26244)
  • Fix panic when inserting text at a notebook cell boundary (#26111)

Rule changes

  • [pylint] Update fix suggestions for __floor__, __trunc__, __length_hint__, and __matmul__ variants (PLC2801) (#26239)

Performance

  • Avoid allocating when parsing single string literals (#26200)
  • Avoid reallocating singleton call arguments (#26223)
  • Lazily create source files for lint diagnostics (#26226)
  • Optimize formatter text width and indentation (#26236)
  • Reserve capacity for builtin bindings (#26229)
  • Skip repeated-key checks for singleton dictionaries (#26228)
  • Use ArrayVec for qualified name segments (#26224)

... (truncated)

Commits
  • f82a36b Bump 0.15.20 (#26376)
  • af32943 Improve the summarise-ecosystem-results skill (#26378)
  • 485ebab Remove RUF076 name from schema (#26371)
  • ef81835 [ty] Implement rust-analyzer's "Click for full compiler diagnostic" feature (...
  • 572b31e [ruff] Remove pytest-fixture-autouse (RUF076) (#26240)
  • f703f21 Allow human-readable names in rule selectors (#25887)
  • 0d726b2 [ty] Reuse equality semantics for membership compatibility (#25955)
  • dbe6e98 [ty] Infer definite equality comparison results (#26337)
  • e700ea3 [ty] Prove TypedDict structural patterns exhaustive (#26285)
  • 6a0d2ec [ty] Widen inferred class-valued instance attributes (#26338)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.

Updates the requirements on [ruff](https://github.com/astral-sh/ruff) to permit the latest version.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.15...0.15.20)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.15.20
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot @github

dependabot Bot commented on behalf of github Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Labels

The following labels could not be found: dependencies, python. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@YiWang24

YiWang24 commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

代码审查报告

风险等级: 低 | 审查置信度: 高 | 结论: 可直接合入

变更摘要

  • 文件: pyproject.toml (第 122 行)
  • 变更: ruff 版本从 >=0.15.15 → >=0.15.20
  • 类型: 依赖更新 (Dev dependency)

风险评估

无影响变更: 仅更新开发工具 ruff 的版本要求,不影响生产代码

  • ruff 是 Python linter/format 工具,仅用于开发和 CI 检查
  • 版本范围从 0.15.15 到 0.15.20 是小版本更新,主要包含 bug 修复和性能优化
  • 根据 release notes,0.15.20 主要改进了预览功能和文档,无破坏性变更

完成度分析

✅ 变更完整:版本约束已正确更新

建议

可直接合入 - 这是一个标准的 Dependabot 依赖更新,风险极低


审查依据:github-code-review skill v2.0

@YiWang24

YiWang24 commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

代码审查报告

风险等级: 低 | 审查置信度: 高 | 结论: 可直接合入

变更摘要

  • 文件: pyproject.toml
  • 变更: ruff 版本从 >=0.15.15 升级到 >=0.15.20
  • 变更类型: 依赖升级 (依赖机器人自动发起)

审查分析

无影响变更 - 单一依赖小版本升级

# 位置 变更内容 风险评估
1 pyproject.toml:122 ruff >=0.15.15 → >=0.15.20 低风险 - patch 版本升级

版本差异分析

ruff 0.15.20 (2026-06-25 发布) 对比 0.15.15 的主要变更:

  • 预览功能: 规则选择器支持人名、未知选择器降级为警告、修复 noqa 处理
  • 文档更新: 不涉及功能变更
  • 无破坏性变更

完成度分析

  • 变更类型: 依赖维护
  • 完成度: 完整 - 仅需修改版本号,dependabot 已正确处理

建议

可直接合入 - 标准依赖维护,无回归风险


此 PR 为 dependabot 自动创建,符合项目依赖升级规范

@YiWang24

YiWang24 commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

代码审查报告

风险等级: 低 | 审查置信度: 高 | 结论: ✅ 可直接合入

变更摘要

  • 文件: pyproject.toml (1 行变更)
  • 内容: ruff 版本要求 >=0.15.15>=0.15.20
  • 类型: Dependabot 自动创建的开发依赖更新

风险评估

维度 结论
安全 ✅ 无风险
架构 ✅ 无影响
质量 ✅ 无影响
性能 ✅ 无影响
测试 ✅ 无影响

审查意见

  • 无问题发现 — 纯依赖版本更新,不涉及业务逻辑
  • 🟢 建议直接合并 — ruff 是开发工具,小版本更新(0.15.15→0.15.20)兼容性风险极低

审查完成于 2026-07-01

@YiWang24

YiWang24 commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

代码审查报告

风险等级: 低 | 审查置信度: 高 | 结论: 可直接合入

变更摘要

  • 文件: pyproject.toml
  • 变更: 更新 ruff 开发依赖从 >=0.15.15>=0.15.20
  • 类型: 依赖版本升级 (dev 依赖)

审查结论

无风险变更

  • 仅 1 行修改,变更范围极小
  • ruff 是开发工具 (linter),不影响运行时行为
  • 0.15.20 是 2026-06-25 发布的稳定版本,主要改进预览功能和性能优化
  • 无破坏性变更,向后兼容

建议

  • ✅ 可直接合入
  • 依赖更新后建议运行 ruff check 确认无新增 lint 问题 (尤其是预览功能规则变更)

@sonarqubecloud

sonarqubecloud Bot commented Jul 1, 2026

Copy link
Copy Markdown

@YiWang24

YiWang24 commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

代码审查报告

风险等级: 低 | 审查置信度: 高 | 结论: 可直接合入

变更摘要

  • 变更类型: 依赖版本更新 (dev dependency)
  • 涉及文件: pyproject.toml
  • 变更内容: ruff 从 >=0.15.15 更新到 >=0.15.20

审查分析

✅ 无影响变更

# 位置 变更内容 风险评估
1 pyproject.toml:122 ruff >=0.15.15 → >=0.15.20 低风险,仅 dev 依赖

版本更新验证

根据 ruff 0.15.20 发布说明:

  • 发布日期: 2026-06-25
  • 主要变更: 预览功能改进(规则选择器支持人类可读名称、noqa 处理改进)、文档更新
  • 无破坏性变更: 版本号为 minor 更新,遵循语义化版本规范

影响分析

  • 对 CI 的影响: 无,ruff 为 lint 工具,版本更新不影响运行时
  • 对代码的影响: 无,仅修改依赖约束
  • 建议验证: Secret Scan 工作流通过后即可合入

审查结论

可直接合入 —— 依赖版本更新,无侵入性变更,无回归风险

@YiWang24

YiWang24 commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

代码审查报告

风险等级: 低 | 审查置信度: 高 | 结论: 可直接合入

摘要

这是一次标准的 Dependabot 依赖更新 PR,仅将 从 升级到 。变更单一、清晰,符合常规依赖维护实践。

变更分析

文件 变更内容 影响范围
ruff 版本 → 开发工具链(lint/format)

风险评估

无破坏性变更 - ruff 0.15.15 → 0.15.20 是 minor 版本升级,主要包含 bug 修复和性能优化
不影响运行时 - ruff 是开发依赖,不影响生产代码
自动合并友好 - Dependabot 承诺自动解决冲突

建议验证项(可选)

  • 本地运行 F401 [*] typing.Literal imported but unused
    --> AiDIY/kb/agent.py:11:42
    |
    9 | import time
    10 | import asyncio
    11 | from typing import TypedDict, Annotated, Literal
    | ^^^^^^^
    12 |
    13 | from langchain_core.messages import BaseMessage
    |
    help: Remove unused import: typing.Literal

E402 Module level import not at top of file
--> AiDIY/kb/api/routes/stream.py:270:1
|
270 | from pathlib import Path
| ^^^^^^^^^^^^^^^^^^^^^^^^
|

F541 [*] f-string without any placeholders
--> EvolveCI/scripts/build-triage-input.py:130:30
|
128 | patterns.append(json.loads(m.group(1)))
129 | except json.JSONDecodeError:
130 | sys.stderr.write(f"WARN: pattern issue body has invalid JSON; skipping\n")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
131 | return patterns
|
help: Remove extraneous f prefix

E402 Module level import not at top of file
--> EvolveCI/scripts/collect-weekly.py:52:1
|
50 | # Reuse daily helpers via direct import (avoid duplication).
51 | sys.path.insert(0, str(REPO_ROOT / "scripts"))
52 | import importlib.util
| ^^^^^^^^^^^^^^^^^^^^^
53 | _spec = importlib.util.spec_from_file_location(
54 | "_collect_daily", REPO_ROOT / "scripts" / "collect-daily.py"
|

E702 Multiple statements on one line (semicolon)
--> EvolveCI/scripts/collect-weekly.py:146:31
|
144 | mttr_hours: list[float] = []
145 | for t in closed_triage:
146 | c = t.get("createdAt"); cl = t.get("closedAt")
| ^
147 | if not c or not cl:
148 | continue
|

F401 [*] struct imported but unused
--> gsd-2/src/resources/extensions/voice/speech-recognizer.py:26:8
|
24 | import signal
25 | import subprocess
26 | import struct
| ^^^^^^
27 | import sys
28 | import time
|
help: Remove unused import: struct

E401 [*] Multiple imports on one line
--> scripts/ai-breaking-news.py:6:1
|
4 | Only outputs if something truly significant is found.
5 | """
6 | import json, sys, re, hashlib
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
7 | from datetime import datetime
|
help: Split imports

F401 [*] sys imported but unused
--> scripts/ai-breaking-news.py:6:14
|
4 | Only outputs if something truly significant is found.
5 | """
6 | import json, sys, re, hashlib
| ^^^
7 | from datetime import datetime
|
help: Remove unused import

F401 [*] re imported but unused
--> scripts/ai-breaking-news.py:6:19
|
4 | Only outputs if something truly significant is found.
5 | """
6 | import json, sys, re, hashlib
| ^^
7 | from datetime import datetime
|
help: Remove unused import

F401 [*] hashlib imported but unused
--> scripts/ai-breaking-news.py:6:23
|
4 | Only outputs if something truly significant is found.
5 | """
6 | import json, sys, re, hashlib
| ^^^^^^^
7 | from datetime import datetime
|
help: Remove unused import

E722 Do not use bare except
--> scripts/ai-breaking-news.py:16:1
|
14 | with open(STATE_FILE) as f:
15 | seen = set(json.load(f).get("hashes", []))
16 | except:
| ^^^^^^
17 | seen = set()
|

E401 [*] Multiple imports on one line
--> scripts/mrvl-monitor.py:6:1
|
4 | Alerts if 5-min move exceeds 2%.
5 | """
6 | import json, urllib.request, time, sys
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
7 | from datetime import datetime
|
help: Split imports

F401 [*] time imported but unused
--> scripts/mrvl-monitor.py:6:30
|
4 | Alerts if 5-min move exceeds 2%.
5 | """
6 | import json, urllib.request, time, sys
| ^^^^
7 | from datetime import datetime
|
help: Remove unused import: time

E722 Do not use bare except
--> scripts/mrvl-monitor.py:39:5
|
37 | with open(STATE_FILE) as f:
38 | state = json.load(f)
39 | except:
| ^^^^^^
40 | state = {"last_price": price, "last_time": now, "last_alert_time": None}
|

F841 Local variable last_time is assigned to but never used
--> scripts/mrvl-monitor.py:43:5
|
42 | last_price = state.get("last_price", price)
43 | last_time = state.get("last_time", now)
| ^^^^^^^^^
44 |
45 | # Calculate 5-min change
|
help: Remove assignment to unused variable last_time

E401 [*] Multiple imports on one line
--> scripts/stock-prices.py:3:1
|
1 | #!/usr/bin/env python3
2 | """Fetch real-time stock prices from Yahoo Finance v8 API with TradingView links"""
3 | import urllib.request, json, sys, time
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 |
5 | def get_prices(symbols):
|
help: Split imports

E401 [*] Multiple imports on one line
--> scripts/stock-scanner.py:3:1
|
1 | #!/usr/bin/env python3
2 | """AI产业链股票异动扫描器 - 短线交易用"""
3 | import urllib.request, json, time, os
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 |
5 | # 分板块监控
|
help: Split imports

F841 Local variable timestamps is assigned to but never used
--> scripts/stock-scanner.py:72:9
|
70 | closes = quotes.get("close", [])
71 | volumes = quotes.get("volume", [])
72 | timestamps = result.get("timestamp", [])
| ^^^^^^^^^^
73 |
74 | # 从后往前找最后一个有效价格
|
help: Remove assignment to unused variable timestamps

E722 Do not use bare except
--> scripts/x-guest-scraper.py:55:5
|
53 | if time.time() - data.get("created", 0) < 10800:
54 | return data["token"]
55 | except:
| ^^^^^^
56 | pass
57 | return None
|

E722 Do not use bare except
--> scripts/x-guest-scraper.py:237:9
|
235 | state = json.load(f)
236 | last_id = state.get("last_tweet_id")
237 | except:
| ^^^^^^
238 | pass
|

E722 Do not use bare except
--> scripts/x_guest_scraper.py:55:5
|
53 | if time.time() - data.get("created", 0) < 10800:
54 | return data["token"]
55 | except:
| ^^^^^^
56 | pass
57 | return None
|

E722 Do not use bare except
--> scripts/x_guest_scraper.py:237:9
|
235 | state = json.load(f)
236 | last_id = state.get("last_tweet_id")
237 | except:
| ^^^^^^
238 | pass
|

F401 [*] sys imported but unused
--> select_problems.py:3:8
|
1 | import json
2 | import random
3 | import sys
| ^^^
4 |
5 | # Load data
|
help: Remove unused import: sys

F841 [*] Local variable e is assigned to but never used
--> skills/ai-ppt-generator/scripts/ppt_theme_list.py:39:25
|
37 | results = ppt_theme_list(api_key)
38 | print(json.dumps(results, ensure_ascii=False, indent=2))
39 | except Exception as e:
| ^
40 | exc_type, exc_value, exc_traceback = sys.exc_info()
41 | print(f"error type:{exc_type}")
|
help: Remove assignment to unused variable e

F401 [*] hashlib imported but unused
--> skills/github-issue-auto-triage/scripts/triage.py:17:8
|
15 | from datetime import datetime
16 | from typing import Dict, List, Optional
17 | import hashlib
| ^^^^^^^
18 |
19 | # 配置
|
help: Remove unused import: hashlib

F541 [*] f-string without any placeholders
--> skills/github-issue-auto-triage/scripts/triage.py:308:19
|
306 | faq_answer = self.check_faq(issue)
307 | if faq_answer:
308 | print(f"✅ 匹配到 FAQ 答案")
| ^^^^^^^^^^^^^^^^^^^^^
309 | result['faq_answer'] = faq_answer
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> skills/github-issue-auto-triage/scripts/triage.py:323:23
|
321 | # 添加 FAQ 评论
322 | if faq_answer:
323 | print(f"\n💬 添加 FAQ 回复...")
| ^^^^^^^^^^^^^^^^^^^^^^^^
324 | if self.add_comment(issue_number, faq_answer):
325 | result['actions'].append('Added FAQ comment')
|
help: Remove extraneous f prefix

F401 [*] json imported but unused
--> skills/github-issue-auto-triage/tests/test_triage.py:7:8
|
6 | import unittest
7 | import json
| ^^^^
8 | from unittest.mock import Mock, patch, MagicMock
9 | import sys
|
help: Remove unused import: json

F401 [*] unittest.mock.Mock imported but unused
--> skills/github-issue-auto-triage/tests/test_triage.py:8:27
|
6 | import unittest
7 | import json
8 | from unittest.mock import Mock, patch, MagicMock
| ^^^^
9 | import sys
10 | import os
|
help: Remove unused import

F401 [*] unittest.mock.patch imported but unused
--> skills/github-issue-auto-triage/tests/test_triage.py:8:33
|
6 | import unittest
7 | import json
8 | from unittest.mock import Mock, patch, MagicMock
| ^^^^^
9 | import sys
10 | import os
|
help: Remove unused import

F401 [*] unittest.mock.MagicMock imported but unused
--> skills/github-issue-auto-triage/tests/test_triage.py:8:40
|
6 | import unittest
7 | import json
8 | from unittest.mock import Mock, patch, MagicMock
| ^^^^^^^^^
9 | import sys
10 | import os
|
help: Remove unused import

F841 Local variable triage is assigned to but never used
--> skills/github-issue-auto-triage/tests/test_triage.py:33:9
|
31 | from triage import GitHubIssueTriage
32 |
33 | triage = GitHubIssueTriage()
| ^^^^^^
34 | title = 'Bug: App crashes'
35 | body = 'Error when starting'
|
help: Remove assignment to unused variable triage

E402 Module level import not at top of file
--> skills/last30days-official/scripts/briefing.py:23:1
|
21 | sys.path.insert(0, str(SCRIPT_DIR))
22 |
23 | import store
| ^^^^^^^^^^^^
24 |
25 | BRIEFS_DIR = Path.home() / ".local" / "share" / "last30days" / "briefs"
|

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/bird_x.py:13:8
|
11 | import shutil
12 | import subprocess
13 | import sys
| ^^^
14 | from pathlib import Path
|
help: Remove unused import: sys

F401 [*] .http imported but unused
--> skills/last30days-official/scripts/lib/bird_x.py:16:15
|
14 | from pathlib import Path
15 |
16 | from . import http, log
| ^^^^
17 | from datetime import datetime
18 | from typing import Any, Dict, List, Optional, Tuple
|
help: Remove unused import: .http

F401 [*] re imported but unused
--> skills/last30days-official/scripts/lib/bluesky.py:8:8
|
7 | import math
8 | import re
| ^^
9 | import sys
10 | import time
|
help: Remove unused import: re

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/bluesky.py:9:8
|
7 | import math
8 | import re
9 | import sys
| ^^^
10 | import time
11 | from datetime import datetime, timezone
|
help: Remove unused import: sys

F401 [*] datetime.timezone imported but unused
--> skills/last30days-official/scripts/lib/bluesky.py:11:32
|
9 | import sys
10 | import time
11 | from datetime import datetime, timezone
| ^^^^^^^^
12 | from typing import Any, Dict, List, Optional
|
help: Remove unused import: datetime.timezone

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/github.py:13:8
|
11 | import re
12 | import subprocess
13 | import sys
| ^^^
14 | import urllib.error
15 | import urllib.parse
|
help: Remove unused import: sys

F541 [*] f-string without any placeholders
--> skills/last30days-official/scripts/lib/github.py:915:62
|
913 | c.metadata["github_stars"][match] = stars
914 | # Append to evidence if present
915 | if hasattr(c, "evidence") and c.evidence and f"(live:" not in c.evidence:
| ^^^^^^^^^
916 | c.evidence = c.evidence + f" (live: {stars_str} stars)"
917 | enriched_count += 1
|
help: Remove extraneous f prefix

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/hackernews.py:10:8
|
8 | import html
9 | import math
10 | import sys
| ^^^
11 | import time
12 | from concurrent.futures import ThreadPoolExecutor, as_completed
|
help: Remove unused import: sys

F401 [*] time imported but unused
--> skills/last30days-official/scripts/lib/hackernews.py:11:8
|
9 | import math
10 | import sys
11 | import time
| ^^^^
12 | from concurrent.futures import ThreadPoolExecutor, as_completed
13 | from typing import Any, Dict, List, Optional
|
help: Remove unused import: time

F401 [*] typing.Optional imported but unused
--> skills/last30days-official/scripts/lib/hackernews.py:13:37
|
11 | import time
12 | from concurrent.futures import ThreadPoolExecutor, as_completed
13 | from typing import Any, Dict, List, Optional
| ^^^^^^^^
14 |
15 | import re
|
help: Remove unused import: typing.Optional

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/http.py:5:8
|
3 | import json
4 | import re
5 | import sys
| ^^^
6 | import time
7 | import urllib.error
|
help: Remove unused import: sys

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/instagram.py:11:8
|
10 | import re
11 | import sys
| ^^^
12 | from datetime import datetime
13 | from typing import Any, Dict, List, Optional, Set
|
help: Remove unused import: sys

E402 Module level import not at top of file
--> skills/last30days-official/scripts/lib/instagram.py:34:1
|
32 | CAPTION_MAX_WORDS = 500
33 |
34 | from .relevance import token_overlap_relevance as _compute_relevance
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|

F401 [*] re imported but unused
--> skills/last30days-official/scripts/lib/pinterest.py:10:8
|
8 | """
9 |
10 | import re
| ^^
11 | import sys
12 | from typing import Any, Dict, List, Optional, Set
|
help: Remove unused import: re

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/pinterest.py:11:8
|
10 | import re
11 | import sys
| ^^^
12 | from typing import Any, Dict, List, Optional, Set
|
help: Remove unused import: sys

F401 [*] typing.Optional imported but unused
--> skills/last30days-official/scripts/lib/pinterest.py:12:37
|
10 | import re
11 | import sys
12 | from typing import Any, Dict, List, Optional, Set
| ^^^^^^^^
13 |
14 | try:
|
help: Remove unused import

F401 [*] typing.Set imported but unused
--> skills/last30days-official/scripts/lib/pinterest.py:12:47
|
10 | import re
11 | import sys
12 | from typing import Any, Dict, List, Optional, Set
| ^^^
13 |
14 | try:
|
help: Remove unused import

F401 [*] .dates imported but unused
--> skills/last30days-official/scripts/lib/pinterest.py:19:15
|
17 | _requests = None
18 |
19 | from . import dates, http, log
| ^^^^^
20 |
21 | SCRAPECREATORS_BASE = "https://api.scrapecreators.com/v1/pinterest"
|
help: Remove unused import: .dates

E402 Module level import not at top of file
--> skills/last30days-official/scripts/lib/pinterest.py:30:1
|
28 | }
29 |
30 | from .relevance import token_overlap_relevance as _compute_relevance
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/polymarket.py:10:8
|
8 | import math
9 | import re
10 | import sys
| ^^^
11 | from concurrent.futures import ThreadPoolExecutor, as_completed
12 | from typing import Any, Dict, List, Optional
|
help: Remove unused import: sys

F401 [*] urllib.parse.quote_plus imported but unused
--> skills/last30days-official/scripts/lib/polymarket.py:13:26
|
11 | from concurrent.futures import ThreadPoolExecutor, as_completed
12 | from typing import Any, Dict, List, Optional
13 | from urllib.parse import quote_plus, urlencode
| ^^^^^^^^^^
14 |
15 | from . import http, log
|
help: Remove unused import: urllib.parse.quote_plus

F401 [*] typing.Set imported but unused
--> skills/last30days-official/scripts/lib/query.py:5:47
|
4 | import re
5 | from typing import FrozenSet, List, Optional, Set
| ^^^
6 |
7 | # Common multi-word prefixes stripped from all queries (identical across modules)
|
help: Remove unused import: typing.Set

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/reddit.py:11:8
|
10 | import re
11 | import sys
| ^^^
12 | import time
13 | from collections import Counter
|
help: Remove unused import: sys

F401 [*] typing.Set imported but unused
--> skills/last30days-official/scripts/lib/reddit.py:15:47
|
13 | from collections import Counter
14 | from concurrent.futures import ThreadPoolExecutor, as_completed, wait as futures_wait
15 | from typing import Any, Dict, List, Optional, Set
| ^^^
16 |
17 | def _first_of(*values, default=None):
|
help: Remove unused import: typing.Set

E402 Module level import not at top of file
--> skills/last30days-official/scripts/lib/reddit.py:24:1
|
22 | return default
23 |
24 | from . import dates, http, log
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25 |
26 | SCRAPECREATORS_BASE = "https://api.scrapecreators.com/v1/reddit"
|

E402 Module level import not at top of file
--> skills/last30days-official/scripts/lib/reddit.py:50:1
|
48 | }
49 |
50 | from .query import extract_core_subject as _query_extract
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
51 | from .relevance import token_overlap_relevance
|

E402 Module level import not at top of file
--> skills/last30days-official/scripts/lib/reddit.py:51:1
|
50 | from .query import extract_core_subject as _query_extract
51 | from .relevance import token_overlap_relevance
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
52 |
53 | # Reddit-specific noise words (preserves original smaller set)
|

F841 Local variable subject is assigned to but never used
--> skills/last30days-official/scripts/lib/render.py:866:9
|
864 | m = re.match(r"^(.+?)\s+visit\s+(?:the\s+)?(.+)$", t, flags=re.IGNORECASE)
865 | if m:
866 | subject, place = m.group(1), m.group(2)
| ^^^^^^^
867 | t = f"{place} visit"
|
help: Remove assignment to unused variable subject

F401 [*] .query imported but unused
--> skills/last30days-official/scripts/lib/rerank.py:8:32
|
6 | import re
7 |
8 | from . import http, providers, query, schema
| ^^^^^
|
help: Remove unused import: .query

F401 [*] io imported but unused
--> skills/last30days-official/scripts/lib/safari_cookies.py:12:8
|
10 | from future import annotations
11 |
12 | import io
| ^^
13 | import struct
14 | import sys
|
help: Remove unused import: io

F401 [*] re imported but unused
--> skills/last30days-official/scripts/lib/threads.py:11:8
|
10 | import math
11 | import re
| ^^
12 | from typing import Any, Dict, List, Optional
|
help: Remove unused import: re

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/tiktok.py:11:8
|
10 | import re
11 | import sys
| ^^^
12 | from typing import Any, Dict, List, Optional, Set
|
help: Remove unused import: sys

E402 Module level import not at top of file
--> skills/last30days-official/scripts/lib/tiktok.py:33:1
|
31 | CAPTION_MAX_WORDS = 500
32 |
33 | from .relevance import token_overlap_relevance as _compute_relevance
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/truthsocial.py:9:8
|
7 | import math
8 | import re
9 | import sys
| ^^^
10 | from typing import Any, Dict, List, Optional
|
help: Remove unused import: sys

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/xai_x.py:5:8
|
3 | import json
4 | import re
5 | import sys
| ^^^
6 | from typing import Any, Dict, List, Optional
|
help: Remove unused import: sys

F401 [*] math imported but unused
--> skills/last30days-official/scripts/lib/youtube_yt.py:10:8
|
9 | import json
10 | import math
| ^^^^
11 | import os
12 | import re
|
help: Remove unused import: math

F401 [*] sys imported but unused
--> skills/last30days-official/scripts/lib/youtube_yt.py:16:8
|
14 | import shutil
15 | import subprocess
16 | import sys
| ^^^
17 | import tempfile
18 | import urllib.error
|
help: Remove unused import: sys

F401 [*] typing.Tuple imported but unused
--> skills/last30days-official/scripts/lib/youtube_yt.py:22:52
|
20 | from concurrent.futures import ThreadPoolExecutor, as_completed
21 | from pathlib import Path
22 | from typing import Any, Dict, List, Optional, Set, Tuple
| ^^^^^
23 |
24 | # Depth configurations: how many videos to search / transcribe
|
help: Remove unused import: typing.Tuple

E402 Module level import not at top of file
--> skills/last30days-official/scripts/lib/youtube_yt.py:40:1
|
38 | TRANSCRIPT_MAX_WORDS = 5000
39 |
40 | from . import http, log
| ^^^^^^^^^^^^^^^^^^^^^^^
41 | from .relevance import token_overlap_relevance as _compute_relevance
|

E402 Module level import not at top of file
--> skills/last30days-official/scripts/lib/youtube_yt.py:41:1
|
40 | from . import http, log
41 | from .relevance import token_overlap_relevance as _compute_relevance
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|

E402 Module level import not at top of file
--> skills/last30days-official/scripts/store.py:24:1
|
22 | sys.path.insert(0, str(SCRIPT_DIR))
23 |
24 | from lib import schema
| ^^^^^^^^^^^^^^^^^^^^^^
25 |
26 | DB_DIR = Path.home() / ".local" / "share" / "last30days"
|

E402 Module level import not at top of file
--> skills/last30days-official/scripts/watchlist.py:21:1
|
19 | sys.path.insert(0, str(SCRIPT_DIR))
20 |
21 | import store
| ^^^^^^^^^^^^
22 | from lib import schema
|

E402 Module level import not at top of file
--> skills/last30days-official/scripts/watchlist.py:22:1
|
21 | import store
22 | from lib import schema
| ^^^^^^^^^^^^^^^^^^^^^^
|

Found 76 errors.
[*] 51 fixable with the --fix option (4 hidden fixes can be enabled with the --unsafe-fixes option). 确认无新增 lint 问题

  • 本地运行 Would reformat: AiDIY/kb/agent.py
    Would reformat: AiDIY/kb/api/app.py
    Would reformat: AiDIY/kb/api/dependencies.py
    Would reformat: AiDIY/kb/api/ratelimit.py
    Would reformat: AiDIY/kb/api/routes/stream.py
    Would reformat: AiDIY/kb/cli.py
    Would reformat: AiDIY/kb/pipeline/chunk.py
    Would reformat: AiDIY/kb/pipeline/clean.py
    Would reformat: AiDIY/kb/pipeline/config.py
    Would reformat: AiDIY/kb/pipeline/index.py
    Would reformat: AiDIY/kb/pipeline/pipeline.py
    Would reformat: AiDIY/kb/storage/vectorstore.py
    Would reformat: EvolveCI/scripts/build-triage-input.py
    Would reformat: EvolveCI/scripts/collect-daily.py
    Would reformat: EvolveCI/scripts/collect-weekly.py
    Would reformat: OpenHands/openhands/init.py
    Would reformat: OpenHands/openhands/server/main.py
    Would reformat: OpenHands/openhands/server/app.py
    Would reformat: OpenHands/openhands/server/config/server_config.py
    Would reformat: OpenHands/openhands/server/listen.py
    Would reformat: OpenHands/openhands/server/middleware.py
    Would reformat: OpenHands/openhands/server/shared.py
    Would reformat: OpenHands/openhands/server/static.py
    Would reformat: OpenHands/openhands/server/types.py
    Would reformat: OpenHands/openhands/version.py
    Would reformat: gsd-2/src/resources/extensions/voice/speech-recognizer.py
    Would reformat: gsd-2/src/resources/skills/github-workflows/references/gh/scripts/experiment_cleanup.py
    Would reformat: gsd-2/src/resources/skills/github-workflows/references/gh/scripts/github_project_setup.py
    Would reformat: gsd-2/src/resources/skills/github-workflows/references/gh/tests/test_github_project_setup.py
    Would reformat: openharness/ohmo/main.py
    Would reformat: openharness/ohmo/cli.py
    Would reformat: openharness/ohmo/gateway/init.py
    Would reformat: openharness/ohmo/gateway/bridge.py
    Would reformat: openharness/ohmo/gateway/models.py
    Would reformat: openharness/ohmo/gateway/router.py
    Would reformat: openharness/ohmo/gateway/runtime.py
    Would reformat: openharness/ohmo/gateway/service.py
    Would reformat: openharness/ohmo/memory.py
    Would reformat: openharness/ohmo/runtime.py
    Would reformat: openharness/ohmo/session_storage.py
    Would reformat: openharness/scripts/e2e_smoke.py
    Would reformat: openharness/scripts/local_system_scenarios.py
    Would reformat: openharness/scripts/react_tui_e2e.py
    Would reformat: openharness/scripts/test_cli_flags.py
    Would reformat: openharness/scripts/test_harness_features.py
    Would reformat: openharness/scripts/test_headless_rendering.py
    Would reformat: openharness/scripts/test_react_tui_redesign.py
    Would reformat: openharness/scripts/test_real_skills_plugins.py
    Would reformat: openharness/scripts/test_tui_interactions.py
    Would reformat: openharness/src/openharness/api/client.py
    Would reformat: openharness/src/openharness/api/codex_client.py
    Would reformat: openharness/src/openharness/api/openai_client.py
    Would reformat: openharness/src/openharness/api/provider.py
    Would reformat: openharness/src/openharness/api/registry.py
    Would reformat: openharness/src/openharness/auth/external.py
    Would reformat: openharness/src/openharness/auth/flows.py
    Would reformat: openharness/src/openharness/auth/manager.py
    Would reformat: openharness/src/openharness/auth/storage.py
    Would reformat: openharness/src/openharness/bridge/manager.py
    Would reformat: openharness/src/openharness/channels/bus/events.py
    Would reformat: openharness/src/openharness/channels/impl/base.py
    Would reformat: openharness/src/openharness/channels/impl/dingtalk.py
    Would reformat: openharness/src/openharness/channels/impl/discord.py
    Would reformat: openharness/src/openharness/channels/impl/email.py
    Would reformat: openharness/src/openharness/channels/impl/feishu.py
    Would reformat: openharness/src/openharness/channels/impl/manager.py
    Would reformat: openharness/src/openharness/channels/impl/matrix.py
    Would reformat: openharness/src/openharness/channels/impl/mochat.py
    Would reformat: openharness/src/openharness/channels/impl/qq.py
    Would reformat: openharness/src/openharness/channels/impl/slack.py
    Would reformat: openharness/src/openharness/channels/impl/telegram.py
    Would reformat: openharness/src/openharness/channels/impl/whatsapp.py
    Would reformat: openharness/src/openharness/cli.py
    Would reformat: openharness/src/openharness/commands/registry.py
    Would reformat: openharness/src/openharness/config/schema.py
    Would reformat: openharness/src/openharness/config/settings.py
    Would reformat: openharness/src/openharness/coordinator/agent_definitions.py
    Would reformat: openharness/src/openharness/coordinator/coordinator_mode.py
    Would reformat: openharness/src/openharness/engine/messages.py
    Would reformat: openharness/src/openharness/engine/query.py
    Would reformat: openharness/src/openharness/hooks/executor.py
    Would reformat: openharness/src/openharness/hooks/loader.py
    Would reformat: openharness/src/openharness/hooks/schemas.py
    Would reformat: openharness/src/openharness/mcp/client.py
    Would reformat: openharness/src/openharness/memory/scan.py
    Would reformat: openharness/src/openharness/permissions/checker.py
    Would reformat: openharness/src/openharness/platforms.py
    Would reformat: openharness/src/openharness/plugins/init.py
    Would reformat: openharness/src/openharness/plugins/loader.py
    Would reformat: openharness/src/openharness/prompts/context.py
    Would reformat: openharness/src/openharness/prompts/environment.py
    Would reformat: openharness/src/openharness/sandbox/init.py
    Would reformat: openharness/src/openharness/services/compact/init.py
    Would reformat: openharness/src/openharness/services/cron_scheduler.py
    Would reformat: openharness/src/openharness/services/lsp/init.py
    Would reformat: openharness/src/openharness/services/session_backend.py
    Would reformat: openharness/src/openharness/services/session_storage.py
    Would reformat: openharness/src/openharness/swarm/in_process.py
    Would reformat: openharness/src/openharness/swarm/mailbox.py
    Would reformat: openharness/src/openharness/swarm/permission_sync.py
    Would reformat: openharness/src/openharness/swarm/registry.py
    Would reformat: openharness/src/openharness/swarm/team_lifecycle.py
    Would reformat: openharness/src/openharness/swarm/worktree.py
    Would reformat: openharness/src/openharness/tools/config_tool.py
    Would reformat: openharness/src/openharness/tools/enter_plan_mode_tool.py
    Would reformat: openharness/src/openharness/tools/exit_plan_mode_tool.py
    Would reformat: openharness/src/openharness/tools/file_read_tool.py
    Would reformat: openharness/src/openharness/tools/glob_tool.py
    Would reformat: openharness/src/openharness/tools/list_mcp_resources_tool.py
    Would reformat: openharness/src/openharness/tools/lsp_tool.py
    Would reformat: openharness/src/openharness/tools/mcp_auth_tool.py
    Would reformat: openharness/src/openharness/tools/mcp_tool.py
    Would reformat: openharness/src/openharness/tools/notebook_edit_tool.py
    Would reformat: openharness/src/openharness/tools/read_mcp_resource_tool.py
    Would reformat: openharness/src/openharness/tools/send_message_tool.py
    Would reformat: openharness/src/openharness/tools/skill_tool.py
    Would reformat: openharness/src/openharness/tools/task_create_tool.py
    Would reformat: openharness/src/openharness/tools/task_get_tool.py
    Would reformat: openharness/src/openharness/tools/task_list_tool.py
    Would reformat: openharness/src/openharness/tools/task_output_tool.py
    Would reformat: openharness/src/openharness/tools/task_stop_tool.py
    Would reformat: openharness/src/openharness/tools/team_create_tool.py
    Would reformat: openharness/src/openharness/tools/team_delete_tool.py
    Would reformat: openharness/src/openharness/tools/todo_write_tool.py
    Would reformat: openharness/src/openharness/tools/tool_search_tool.py
    Would reformat: openharness/src/openharness/tools/web_fetch_tool.py
    Would reformat: openharness/src/openharness/ui/app.py
    Would reformat: openharness/src/openharness/ui/backend_host.py
    Would reformat: openharness/src/openharness/ui/output.py
    Would reformat: openharness/src/openharness/ui/permission_dialog.py
    Would reformat: openharness/src/openharness/ui/react_launcher.py
    Would reformat: openharness/src/openharness/ui/runtime.py
    Would reformat: openharness/src/openharness/ui/textual_app.py
    Would reformat: openharness/src/openharness/voice/init.py
    Would reformat: openharness/src/openharness/voice/voice_mode.py
    Would reformat: openharness/tests/test_api/test_codex_client.py
    Would reformat: openharness/tests/test_api/test_openai_client.py
    Would reformat: openharness/tests/test_auth/test_external.py
    Would reformat: openharness/tests/test_bridge/test_core.py
    Would reformat: openharness/tests/test_bridge/test_session_flow.py
    Would reformat: openharness/tests/test_commands/test_cli.py
    Would reformat: openharness/tests/test_commands/test_registry.py
    Would reformat: openharness/tests/test_config/test_settings.py
    Would reformat: openharness/tests/test_engine/test_query_engine.py
    Would reformat: openharness/tests/test_hooks/test_executor.py
    Would reformat: openharness/tests/test_hooks_skills_plugins_real.py
    Would reformat: openharness/tests/test_mcp/test_integration.py
    Would reformat: openharness/tests/test_memory/test_memdir.py
    Would reformat: openharness/tests/test_merged_prs_on_autoagent.py
    Would reformat: openharness/tests/test_ohmo/test_cli.py
    Would reformat: openharness/tests/test_ohmo/test_gateway.py
    Would reformat: openharness/tests/test_ohmo/test_prompts.py
    Would reformat: openharness/tests/test_permissions/test_checker.py
    Would reformat: openharness/tests/test_plugins/test_loader.py
    Would reformat: openharness/tests/test_prompts/test_claudemd.py
    Would reformat: openharness/tests/test_real_large_tasks.py
    Would reformat: openharness/tests/test_sandbox/test_adapter.py
    Would reformat: openharness/tests/test_skills/test_loader.py
    Would reformat: openharness/tests/test_swarm/test_in_process.py
    Would reformat: openharness/tests/test_swarm/test_mailbox.py
    Would reformat: openharness/tests/test_swarm/test_permission_sync.py
    Would reformat: openharness/tests/test_swarm/test_registry.py
    Would reformat: openharness/tests/test_swarm/test_team_lifecycle.py
    Would reformat: openharness/tests/test_swarm/test_types.py
    Would reformat: openharness/tests/test_tasks/test_manager.py
    Would reformat: openharness/tests/test_tools/test_task_tools.py
    Would reformat: openharness/tests/test_ui/test_react_backend.py
    Would reformat: openharness/tests/test_untested_features.py
    Would reformat: process_leetcode.py
    Would reformat: scripts/ai-breaking-news.py
    Would reformat: scripts/mrvl-monitor.py
    Would reformat: scripts/stock-prices.py
    Would reformat: scripts/stock-scanner.py
    Would reformat: scripts/x-guest-scraper.py
    Would reformat: scripts/x_guest_scraper.py
    Would reformat: select_problems.py
    Would reformat: skills/ai-ppt-generator/scripts/generate_ppt.py
    Would reformat: skills/ai-ppt-generator/scripts/ppt_theme_list.py
    Would reformat: skills/ai-ppt-generator/scripts/random_ppt_theme.py
    Would reformat: skills/baidu-search/scripts/search.py
    Would reformat: skills/github-issue-auto-triage/scripts/triage.py
    Would reformat: skills/github-issue-auto-triage/tests/test_triage.py
    Would reformat: skills/last30days-official/scripts/briefing.py
    Would reformat: skills/last30days-official/scripts/evaluate_search_quality.py
    Would reformat: skills/last30days-official/scripts/last30days.py
    Would reformat: skills/last30days-official/scripts/lib/bird_x.py
    Would reformat: skills/last30days-official/scripts/lib/bluesky.py
    Would reformat: skills/last30days-official/scripts/lib/chrome_cookies.py
    Would reformat: skills/last30days-official/scripts/lib/cluster.py
    Would reformat: skills/last30days-official/scripts/lib/competitors.py
    Would reformat: skills/last30days-official/scripts/lib/cookie_extract.py
    Would reformat: skills/last30days-official/scripts/lib/dates.py
    Would reformat: skills/last30days-official/scripts/lib/dedupe.py
    Would reformat: skills/last30days-official/scripts/lib/entity_extract.py
    Would reformat: skills/last30days-official/scripts/lib/env.py
    Would reformat: skills/last30days-official/scripts/lib/fanout.py
    Would reformat: skills/last30days-official/scripts/lib/fusion.py
    Would reformat: skills/last30days-official/scripts/lib/github.py
    Would reformat: skills/last30days-official/scripts/lib/grounding.py
    Would reformat: skills/last30days-official/scripts/lib/hackernews.py
    Would reformat: skills/last30days-official/scripts/lib/http.py
    Would reformat: skills/last30days-official/scripts/lib/instagram.py
    Would reformat: skills/last30days-official/scripts/lib/normalize.py
    Would reformat: skills/last30days-official/scripts/lib/perplexity.py
    Would reformat: skills/last30days-official/scripts/lib/pinterest.py
    Would reformat: skills/last30days-official/scripts/lib/pipeline.py
    Would reformat: skills/last30days-official/scripts/lib/planner.py
    Would reformat: skills/last30days-official/scripts/lib/polymarket.py
    Would reformat: skills/last30days-official/scripts/lib/preflight.py
    Would reformat: skills/last30days-official/scripts/lib/providers.py
    Would reformat: skills/last30days-official/scripts/lib/quality_nudge.py
    Would reformat: skills/last30days-official/scripts/lib/query.py
    Would reformat: skills/last30days-official/scripts/lib/reddit.py
    Would reformat: skills/last30days-official/scripts/lib/reddit_enrich.py
    Would reformat: skills/last30days-official/scripts/lib/reddit_public.py
    Would reformat: skills/last30days-official/scripts/lib/relevance.py
    Would reformat: skills/last30days-official/scripts/lib/render.py
    Would reformat: skills/last30days-official/scripts/lib/rerank.py
    Would reformat: skills/last30days-official/scripts/lib/resolve.py
    Would reformat: skills/last30days-official/scripts/lib/schema.py
    Would reformat: skills/last30days-official/scripts/lib/setup_wizard.py
    Would reformat: skills/last30days-official/scripts/lib/signals.py
    Would reformat: skills/last30days-official/scripts/lib/snippet.py
    Would reformat: skills/last30days-official/scripts/lib/threads.py
    Would reformat: skills/last30days-official/scripts/lib/tiktok.py
    Would reformat: skills/last30days-official/scripts/lib/truthsocial.py
    Would reformat: skills/last30days-official/scripts/lib/ui.py
    Would reformat: skills/last30days-official/scripts/lib/xai_x.py
    Would reformat: skills/last30days-official/scripts/lib/xiaohongshu_api.py
    Would reformat: skills/last30days-official/scripts/lib/xquik.py
    Would reformat: skills/last30days-official/scripts/lib/xurl_x.py
    Would reformat: skills/last30days-official/scripts/lib/youtube_yt.py
    Would reformat: skills/last30days-official/scripts/store.py
    Would reformat: skills/last30days-official/scripts/test_device_auth.py
    Would reformat: skills/last30days-official/scripts/verify_v3.py
    Would reformat: skills/last30days-official/scripts/watchlist.py
    Would reformat: skills/nano-banana-pro/scripts/generate_image.py
    Would reformat: skills/ontology/scripts/ontology.py
    238 files would be reformatted, 180 files already formatted 确认格式无变化

审查通过,可直接合入

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