Import S-CANVAS source + iter=1~7 lint cleanup

S-CANVAS (Saman Corp.) — DXF + DEM + AI 기반 3D 조감도 생성 엔진.
~24k LOC Python (scanvas_maker.py 7072 LOC GUI + 구조물 파서/빌더 다수).

이 커밋은 7-iter cleanup이 적용된 상태로 import:
- F821 8 + B023 6: 비동기 lambda + except/loop 변수 캡처 NameError
  (Py3.13에서 reproduce 확인된 진짜 버그)
- RUF012 4 + RUF013 1: ClassVar / implicit Optional 명시화
- F811/B905/B904/F401/F841/W293/F541/UP/SIM/RUF/PLR 700+ cleanup/modernization

신규 파일:
- ruff.toml: target=py313, Korean unicode/저자 스타일/도메인 복잡도 무력화
- requirements-py313.txt: pyproj>=3.7, scipy>=1.14, numpy>=2.0.2 (Py3.13 wheel)
- .gitignore: gcp-key.json, 캐시, 백업, 생성 이미지 제외

검증: ruff 0 errors, py_compile 0 errors, import 33/33 OK on Py3.13.13.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-08 10:29:08 +09:00
parent 53d8b53c2f
commit b9342f6726
92 changed files with 3413501 additions and 0 deletions

61
build.bat Normal file
View File

@@ -0,0 +1,61 @@
@echo off
REM ============================================================
REM S-CANVAS distribution build (PyInstaller onedir)
REM
REM Run: build.bat
REM
REM Output: dist\S-CANVAS\S-CANVAS.exe (zip the folder to ship)
REM ============================================================
setlocal enableextensions enabledelayedexpansion
chcp 65001 >nul
cd /d "%~dp0"
echo.
echo === [1/4] Check PyInstaller ===
python -m PyInstaller --version >nul 2>&1
if errorlevel 1 (
echo PyInstaller not installed -- installing now
python -m pip install --upgrade pip
python -m pip install pyinstaller
if errorlevel 1 (
echo [ERROR] Failed to install PyInstaller. Try: pip install pyinstaller
exit /b 1
)
)
python -m PyInstaller --version
echo.
echo === [2/4] Generate window icon (scanvas_S.ico) ===
python _build_icon.py
if errorlevel 1 (
echo [WARN] Icon generation failed -- continuing with default PyInstaller icon
)
echo.
echo === [3/4] Clean previous build artifacts ===
if exist build rmdir /s /q build
if exist "dist\S-CANVAS" rmdir /s /q "dist\S-CANVAS"
echo.
echo === [4/4] Run PyInstaller (10-15 min) ===
python -m PyInstaller --clean --noconfirm scanvas_maker.spec
if errorlevel 1 (
echo.
echo [ERROR] PyInstaller build failed. See logs above.
exit /b 1
)
echo.
echo === DONE ===
if exist "dist\S-CANVAS\S-CANVAS.exe" (
echo Entry point: dist\S-CANVAS\S-CANVAS.exe
echo Distribution: zip the dist\S-CANVAS\ folder
echo User data: %%LOCALAPPDATA%%\S-CANVAS\
echo db, logs, cache live here at runtime.
) else (
echo [WARN] dist\S-CANVAS\S-CANVAS.exe not found. Check build output.
)
echo.
endlocal