Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/prompt_toolkit/layout/__init__.py: 100%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

10 statements  

1""" 

2Command line layout definitions 

3------------------------------- 

4 

5The layout of a command line interface is defined by a Container instance. 

6There are two main groups of classes here. Containers and controls: 

7 

8- A container can contain other containers or controls, it can have multiple 

9 children and it decides about the dimensions. 

10- A control is responsible for rendering the actual content to a screen. 

11 A control can propose some dimensions, but it's the container who decides 

12 about the dimensions -- or when the control consumes more space -- which part 

13 of the control will be visible. 

14 

15 

16Container classes:: 

17 

18 - Container (Abstract base class) 

19 |- HSplit (Horizontal split) 

20 |- VSplit (Vertical split) 

21 |- FloatContainer (Container which can also contain menus and other floats) 

22 `- Window (Container which contains one actual control 

23 

24Control classes:: 

25 

26 - UIControl (Abstract base class) 

27 |- FormattedTextControl (Renders formatted text, or a simple list of text fragments) 

28 `- BufferControl (Renders an input buffer.) 

29 

30 

31Usually, you end up wrapping every control inside a `Window` object, because 

32that's the only way to render it in a layout. 

33 

34There are some prepared toolbars which are ready to use:: 

35 

36- SystemToolbar (Shows the 'system' input buffer, for entering system commands.) 

37- ArgToolbar (Shows the input 'arg', for repetition of input commands.) 

38- SearchToolbar (Shows the 'search' input buffer, for incremental search.) 

39- CompletionsToolbar (Shows the completions of the current buffer.) 

40- ValidationToolbar (Shows validation errors of the current buffer.) 

41 

42And one prepared menu: 

43 

44- CompletionsMenu 

45 

46""" 

47 

48from __future__ import annotations 

49 

50from .containers import ( 

51 AnyContainer, 

52 ColorColumn, 

53 ConditionalContainer, 

54 Container, 

55 DynamicContainer, 

56 Float, 

57 FloatContainer, 

58 HorizontalAlign, 

59 HSplit, 

60 ScrollOffsets, 

61 VerticalAlign, 

62 VSplit, 

63 Window, 

64 WindowAlign, 

65 WindowRenderInfo, 

66 is_container, 

67 to_container, 

68 to_window, 

69) 

70from .controls import ( 

71 BufferControl, 

72 DummyControl, 

73 FormattedTextControl, 

74 SearchBufferControl, 

75 UIContent, 

76 UIControl, 

77) 

78from .dimension import ( 

79 AnyDimension, 

80 D, 

81 Dimension, 

82 is_dimension, 

83 max_layout_dimensions, 

84 sum_layout_dimensions, 

85 to_dimension, 

86) 

87from .layout import InvalidLayoutError, Layout, walk 

88from .margins import ( 

89 ConditionalMargin, 

90 Margin, 

91 NumberedMargin, 

92 PromptMargin, 

93 ScrollbarMargin, 

94) 

95from .menus import CompletionsMenu, MultiColumnCompletionsMenu 

96from .scrollable_pane import ScrollablePane 

97 

98__all__ = [ 

99 # Layout. 

100 "Layout", 

101 "InvalidLayoutError", 

102 "walk", 

103 # Dimensions. 

104 "AnyDimension", 

105 "Dimension", 

106 "D", 

107 "sum_layout_dimensions", 

108 "max_layout_dimensions", 

109 "to_dimension", 

110 "is_dimension", 

111 # Containers. 

112 "AnyContainer", 

113 "Container", 

114 "HorizontalAlign", 

115 "VerticalAlign", 

116 "HSplit", 

117 "VSplit", 

118 "FloatContainer", 

119 "Float", 

120 "WindowAlign", 

121 "Window", 

122 "WindowRenderInfo", 

123 "ConditionalContainer", 

124 "ScrollOffsets", 

125 "ColorColumn", 

126 "to_container", 

127 "to_window", 

128 "is_container", 

129 "DynamicContainer", 

130 "ScrollablePane", 

131 # Controls. 

132 "BufferControl", 

133 "SearchBufferControl", 

134 "DummyControl", 

135 "FormattedTextControl", 

136 "UIControl", 

137 "UIContent", 

138 # Margins. 

139 "Margin", 

140 "NumberedMargin", 

141 "ScrollbarMargin", 

142 "ConditionalMargin", 

143 "PromptMargin", 

144 # Menus. 

145 "CompletionsMenu", 

146 "MultiColumnCompletionsMenu", 

147]