CI uv setup 실패 (#6 후속): - 원인: astral-sh/setup-uv@v3 의 enable-cache:true 가 **/uv.lock 미발견 시 fail. 7개 push 모두 ::error::No file ... matched to [**/uv.lock] → 10-20초 만에 abort. - 해결: uv.lock 생성 (438KB, 89 packages 해결) + cache-dependency-glob 명시. 연쇄 수정 (uv.lock 생성 과정에서 노출): - pyproject.toml: scipy/pyproj/numpy 핀을 hard-pin == 에서 range > = 로 완화 (base vs [py313] extras 충돌 해소). requires-python ">=3.9" → ">=3.11" (pyproj>=3.7 wheel 가용 환경과 일치). [tool.uv] no-progress = false 제거 (deprecated). - .gitea/workflows/ci.yml: 별도 Setup Python step 제거 (uv venv가 자동 fetch), install step 단순화 (matrix 분기 EXTRAS 변수), 모든 run: 에 shell: bash 명시. UI 진행률 인디케이터 (#4 부분): - self.progress_bar (CTkProgressBar mode=indeterminate, MC overlap orange #FF5F00) status_bar 우측에 hidden 배치. start_progress(label)/stop_progress() 메서드 추가. - self.textbox height 120 → 80 (인라인 로그 비중 축소, 백엔드 파일이 주 기록처). ruff cleanup (harness/perf.py): - Optional[Callable[...]] → Callable[...] | None (UP045). - try/except/pass → contextlib.suppress (SIM105). - 미사용 # noqa: BLE001 제거 (RUF100). 검증: uv lock 성공, ruff check All checks passed, py_compile + AST OK. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,13 +19,13 @@ CPU 이용률이 대폭 증가하는 프로세스를 ms 단위로 추적해서
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import contextlib
|
||||
import logging
|
||||
import time
|
||||
from collections.abc import Callable
|
||||
from contextlib import contextmanager
|
||||
from typing import Optional
|
||||
|
||||
_log_callable: Optional[Callable[[str], None]] = None
|
||||
_log_callable: Callable[[str], None] | None = None
|
||||
_logger = logging.getLogger("scanvas.perf")
|
||||
|
||||
|
||||
@@ -38,10 +38,9 @@ def set_perf_log(fn: Callable[[str], None] | None) -> None:
|
||||
def _emit(line: str) -> None:
|
||||
_logger.info(line)
|
||||
if _log_callable is not None:
|
||||
try:
|
||||
# 로그 sink 실패가 측정 흐름을 끊으면 안 됨 — 폭넓게 suppress.
|
||||
with contextlib.suppress(Exception):
|
||||
_log_callable(line)
|
||||
except Exception: # noqa: BLE001 (로그 sink 실패가 측정 흐름을 끊으면 안 됨)
|
||||
pass
|
||||
|
||||
|
||||
@contextmanager
|
||||
|
||||
Reference in New Issue
Block a user