| 1234567891011121314151617181920212223242526272829303132 |
- """统一定义各章节对模板结构的编辑权限。"""
- from __future__ import annotations
- from enum import Enum
- class ChapterEditMode(str, Enum):
- """章节相对模板的编辑模式。"""
- # 允许生成补充性子标题,但不授权删除或改写模板原文。当前仅用于
- # “需求理解”章,最终 DOCX 装配必须采用“保留并增补”策略。
- RESTRUCTURE = "restructure"
- PRESERVE_STRUCTURE = "preserve_structure"
- _RESTRUCTURE_KEYWORDS = ("需求理解",)
- def get_chapter_edit_mode(title: str) -> ChapterEditMode:
- """返回章节结构权限。
- 只有“需求理解”可以生成补充性章内子标题;其余所有章节均锁定模板结构。
- 此权限不代表可以删除模板原文。正文是否允许改写是另一项权限,不再
- 通过结构枚举表达。
- """
- normalized = "".join((title or "").split())
- if any(keyword in normalized for keyword in _RESTRUCTURE_KEYWORDS):
- return ChapterEditMode.RESTRUCTURE
- return ChapterEditMode.PRESERVE_STRUCTURE
- __all__ = ["ChapterEditMode", "get_chapter_edit_mode"]
|