# S-CANVAS ruff config — Python 3.13 # 의도적 코드베이스 컨벤션 보호 + Korean text 오탐 무력화. target-version = "py313" line-length = 120 exclude = [ "workspace", # agents-workspace clone (개발 메타툴) "jarvis", # jarvis 메모/세션 저장소 "_unused", # 보존된 레거시 코드 (분석 대상 아님) "venv313", "venv", ".git", "__pycache__", "*.bak", "*.bak_*", ] [lint] # 기본 select(E, F, W) 외에 modernization/bug 카테고리 추가. extend-select = [ "UP", # pyupgrade "B", # bugbear "SIM", # simplify "RUF", # ruff-specific "PERF", # performance "PLE", # pylint errors "PLW", # pylint warnings ] ignore = [ # 라인 길이는 저자 재량 (mixed Korean/English 코드 + 긴 f-string 다수). "E501", # 저자의 one-line 스타일 — 짧은 if/for/setattr 모음에서 의도적으로 사용. "E701", # multi-statement-on-one-line-colon "E702", # multi-statement-on-one-line-semicolon # 변수명 l, I, O 등 — 수학/배열 컨벤션에서 자연스러움. "E741", # regex 문자열의 \\d 등 — 일반적인 raw-ish 패턴. "W605", # Korean 코드 주석/문자열은 × − ° 등 unicode 기호를 자연스럽게 사용 — 오탐. "RUF001", "RUF002", "RUF003", # `for _ in range(N):` placeholder 패턴은 intentional. "B007", # 함수 길이/branches 경고는 informational (S-CANVAS는 도메인 로직이 본래 큼). "PLR0911", "PLR0912", "PLR0913", "PLR0915", "PLR0916", "PLR0917", "PLR0904", # too-many-public-methods "PLR2004", # magic-value-comparison (수치 도메인 코드에서 빈번) "PLR1702", # too-many-nested-blocks ]