Skip to content

Commit ed539c8

Browse files
CyberSecDefCopilot
andauthored
Update novelforge/config.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent ee16d1b commit ed539c8

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

novelforge/config.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,24 @@ def _parse_llm_providers() -> list[ProviderConfig]:
233233
# Chapter length enforcement (override via environment variables)
234234
# ---------------------------------------------------------------------------
235235

236+
237+
def _get_percentage_env(
238+
name: str, default: int, *, min_value: int = 0, max_value: int = 100
239+
) -> int:
240+
"""Return an integer percentage env var constrained to the given range."""
241+
value = get_env_int(name, default, min_value=min_value)
242+
if value > max_value:
243+
raise ValueError(
244+
f"{name} must be <= {max_value} (got {value})."
245+
)
246+
return value
247+
248+
236249
# Minimum acceptable chapter word count as a percentage of the per-chapter target.
237250
# Chapters below this threshold trigger an automatic expansion pass.
238-
CHAPTER_MIN_LENGTH_PCT = get_env_int("CHAPTER_MIN_LENGTH_PCT", 85, min_value=50)
251+
CHAPTER_MIN_LENGTH_PCT = _get_percentage_env(
252+
"CHAPTER_MIN_LENGTH_PCT", 85, min_value=50, max_value=100
253+
)
239254

240255
# Maximum number of expansion attempts per chapter before accepting as-is.
241256
MAX_EXPANSION_ATTEMPTS = get_env_int("MAX_EXPANSION_ATTEMPTS", 2, min_value=0)

0 commit comments

Comments
 (0)