v0.0.10 — 전면 dialog suppress + suppress_errors() + RegisterModule
🤫 v0.0.10 — Dialog 전면 suppression
사용자 요청: "확인하는 메시지를 정지시키는 그런 기능을 추가할 수 있을까? 에러메시지 미표시던가?"
이전 `silenced()` 는 단일 dialog 카테고리만 처리. 이제 HWP 의 6개 dialog 카테고리 전부를 한 번에 suppress 가능.
향상된 `silenced()`
```python
String preset (권장)
with app.silenced(): # = "yes"
with app.silenced("yes"): # 모든 dialog → 첫 버튼 (OK/Yes/Abort/...)
with app.silenced("no"): # 모든 dialog → 둘째 버튼 (No/Cancel/...)
with app.silenced("reset"): # 자동 응답 해제
직접 bitfield
with app.silenced(0x020001): # 예/아니오→NO + 확인→OK
```
새 클래스 상수:
| 상수 | 값 | 동작 |
|---|---|---|
| `App.SILENCE_ALL_YES` | `0x111111` | 모든 dialog 첫 버튼 |
| `App.SILENCE_ALL_NO` | `0x222222` | 모든 dialog 둘째 버튼 |
| `App.SILENCE_RESET` | `0xFFFFFF` | 자동 응답 해제 |
| `App.SILENCE_SAVE_NO` | `0x00020000` | 저장 dialog → NO |
| `App.SILENCE_OK_AUTO` | `0x00000001` | 확인 dialog → OK |
🆕 `suppress_errors()` — Python 예외 + dialog 동시
대량 처리에서 일부 파일 실패해도 루프 계속:
```python
for path in many_paths:
with app.suppress_errors():
app.open(path) # 깨진 파일이어도 silently 무시
app.save(path + ".out")
```
블록 내부 Python Exception 은 `logger.warning` 으로 기록만 하고 진행. dialog 도 자동 abort.
🆕 `register_security_module()` — hwp-mcp 식 명시 helper
App.init 에서 자동 호출되긴 하지만 명시적 (재)등록 가능:
```python
app.register_security_module() # 기본 DLL
app.register_security_module( # 커스텀
module_name="MyChecker",
dll_path=r"C:\my\custom.dll",
)
```
📊 6개 Dialog 카테고리 비트 레이아웃
| Bits | Dialog Type | 첫/둘째/셋째 버튼 |
|---|---|---|
| 0xF | 확인 | 1=OK |
| 0xF0 | 확인/취소 | 1=OK, 2=Cancel |
| 0xF00 | 종료/재시도/무시 | 1=Abort, 2=Retry, 4=Ignore |
| 0xF000 | 예/아니오/취소 | 1=Yes, 2=No, 4=Cancel |
| 0xF0000 | 예/아니오 | 1=Yes, 2=No |
| 0xF00000 | 재시도/취소 | 1=Retry, 2=Cancel |
호환성
100% backward compatible. 1,059 unit tests 통과.
Full changelog: v0.0.9...v0.0.10