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

1""" 

2Main configuration class. 

3""" 

4 

5from typing import List, Optional 

6 

7from ..search.search_policy import SearchPolicy 

8from ..utils.types import RenderMode, Theme 

9from .config_classes import ContainerConfig, RenderConfig 

10 

11 

12class JsonCrackConfig: 

13 """Main JSONCrack configuration.""" 

14 

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 [] 

40 

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 )