Coverage for src/jsoncrack_for_sphinx/config/config_main.py: 100%
14 statements
« prev ^ index » next coverage.py v7.10.0, created at 2025-07-24 22:26 +0000
« prev ^ index » next coverage.py v7.10.0, created at 2025-07-24 22:26 +0000
1"""
2Main configuration class.
3"""
5from typing import List, Optional
7from ..search.search_policy import SearchPolicy
8from ..utils.types import RenderMode, Theme
9from .config_classes import ContainerConfig, RenderConfig
12class JsonCrackConfig:
13 """Main JSONCrack configuration."""
15 def __init__(
16 self,
17 render: Optional[RenderConfig] = None,
18 container: Optional[ContainerConfig] = None,
19 theme: Theme = Theme.AUTO,
20 search_policy: Optional[SearchPolicy] = None,
21 disable_autodoc: bool = False,
22 autodoc_ignore: Optional[List[str]] = None,
23 ):
24 """
25 Args:
26 render: Render configuration
27 container: Container configuration
28 theme: Theme setting
29 search_policy: Schema file search policy
30 disable_autodoc: Disable automatic schema detection in autodoc
31 autodoc_ignore: List of full paths to ignore in autodoc
32 (uses "not starts with" logic)
33 """
34 self.render = render or RenderConfig(RenderMode.OnClick())
35 self.container = container or ContainerConfig()
36 self.theme = theme
37 self.search_policy = search_policy or SearchPolicy()
38 self.disable_autodoc = disable_autodoc
39 self.autodoc_ignore = autodoc_ignore or []
41 def __repr__(self) -> str:
42 return (
43 f"JsonCrackConfig(render={self.render}, "
44 f"container={self.container}, theme={self.theme}, "
45 f"search_policy={self.search_policy}, "
46 f"disable_autodoc={self.disable_autodoc}, "
47 f"autodoc_ignore={self.autodoc_ignore})"
48 )