Coverage for rendercv/themes/moderncv/__init__.py: 100%

87 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2025-01-26 00:25 +0000

1from typing import Literal, Optional 

2 

3import rendercv.themes.options as o 

4 

5o.header_name_bold_field_info.default = False 

6o.header_name_font_size_field_info = "25pt" 

7o.header_alignment_field_info.default = "left" 

8 

9 

10class Header(o.Header): 

11 name_font_size: o.TypstDimension = o.header_name_font_size_field_info 

12 name_bold: bool = o.header_name_bold_field_info 

13 alignment: o.Alignment = o.header_alignment_field_info 

14 

15 

16o.links_underline_field_info.default = True 

17o.links_use_external_link_icon_field_info.default = False 

18 

19 

20class Links(o.Links): 

21 underline: bool = o.links_underline_field_info 

22 use_external_link_icon: bool = o.links_use_external_link_icon_field_info 

23 

24 

25o.text_font_family_field_info.default = "XCharter" 

26o.text_leading_field_info.default = "0.6em" 

27 

28 

29class Text(o.Text): 

30 font_family: o.FontFamily = o.text_font_family_field_info 

31 leading: o.TypstDimension = o.text_leading_field_info 

32 

33 

34o.section_titles_type_field_info.default = "moderncv" 

35o.section_titles_bold_field_info.default = False 

36o.section_titles_vertical_space_above_field_info.default = "0.55cm" 

37o.section_titles_vertical_space_below_field_info.default = "0.3cm" 

38o.section_titles_font_size_field_info.default = "1.4em" 

39o.section_titles_line_thickness_field_info.default = "0.15cm" 

40 

41 

42class SectionTitles(o.SectionTitles): 

43 type: o.SectionTitleType = o.section_titles_type_field_info 

44 vertical_space_above: o.TypstDimension = ( 

45 o.section_titles_vertical_space_above_field_info 

46 ) 

47 vertical_space_below: o.TypstDimension = ( 

48 o.section_titles_vertical_space_below_field_info 

49 ) 

50 font_size: o.TypstDimension = o.section_titles_font_size_field_info 

51 bold: bool = o.section_titles_bold_field_info 

52 line_thickness: o.TypstDimension = o.section_titles_line_thickness_field_info 

53 

54 

55o.entries_vertical_space_between_entries_field_info.default = "0.4cm" 

56o.entries_left_and_right_margin_field_info.default = "0cm" 

57o.entries_horizontal_space_between_columns_field_info.default = "0.4cm" 

58 

59 

60class Entries(o.Entries): 

61 vertical_space_between_entries: o.TypstDimension = ( 

62 o.entries_vertical_space_between_entries_field_info 

63 ) 

64 left_and_right_margin: o.TypstDimension = o.entries_left_and_right_margin_field_info 

65 horizontal_space_between_columns: o.TypstDimension = ( 

66 o.entries_horizontal_space_between_columns_field_info 

67 ) 

68 

69 

70o.highlights_left_margin_field_info.default = "0cm" 

71o.highlights_top_margin_field_info.default = "0.25cm" 

72o.highlights_vertical_space_between_highlights_field_info.default = "0.19cm" 

73o.highlights_horizontal_space_between_bullet_and_highlight_field_info.default = "0.3em" 

74 

75 

76class Highlights(o.Highlights): 

77 left_margin: o.TypstDimension = o.highlights_left_margin_field_info 

78 top_margin: o.TypstDimension = o.highlights_top_margin_field_info 

79 horizontal_space_between_bullet_and_highlight: o.TypstDimension = ( 

80 o.highlights_horizontal_space_between_bullet_and_highlight_field_info 

81 ) 

82 vertical_space_between_highlights: o.TypstDimension = ( 

83 o.highlights_vertical_space_between_highlights_field_info 

84 ) 

85 

86 

87o.education_entry_main_column_first_row_template_field_info.default = ( 

88 "**INSTITUTION**, DEGREE in AREA -- LOCATION" 

89) 

90o.education_entry_degree_column_template_field_info.default = None 

91o.entry_base_with_date_date_and_location_column_template_field_info.default = "DATE" 

92 

93 

94class EducationEntry(o.EducationEntry): 

95 main_column_first_row_template: str = ( 

96 o.education_entry_main_column_first_row_template_field_info 

97 ) 

98 degree_column_template: Optional[str] = ( 

99 o.education_entry_degree_column_template_field_info 

100 ) 

101 date_and_location_column_template: str = ( 

102 o.entry_base_with_date_date_and_location_column_template_field_info 

103 ) 

104 

105 

106o.normal_entry_main_column_first_row_template_field_info.default = ( 

107 "**NAME** -- **LOCATION**" 

108) 

109 

110 

111class NormalEntry(o.NormalEntry): 

112 main_column_first_row_template: str = ( 

113 o.normal_entry_main_column_first_row_template_field_info 

114 ) 

115 date_and_location_column_template: str = ( 

116 o.entry_base_with_date_date_and_location_column_template_field_info 

117 ) 

118 

119 

120o.experience_entry_main_column_first_row_template_field_info.default = ( 

121 "**POSITION**, COMPANY -- LOCATION" 

122) 

123 

124 

125class ExperienceEntry(o.ExperienceEntry): 

126 main_column_first_row_template: str = ( 

127 o.experience_entry_main_column_first_row_template_field_info 

128 ) 

129 date_and_location_column_template: str = ( 

130 o.entry_base_with_date_date_and_location_column_template_field_info 

131 ) 

132 

133 

134o.entry_types_education_entry_field_info.default = EducationEntry() 

135o.entry_types_normal_entry_field_info.default = NormalEntry() 

136o.entry_types_experience_entry_field_info.default = ExperienceEntry() 

137 

138 

139class EntryTypes(o.EntryTypes): 

140 education_entry: EducationEntry = o.entry_types_education_entry_field_info 

141 normal_entry: NormalEntry = o.entry_types_normal_entry_field_info 

142 experience_entry: ExperienceEntry = o.entry_types_experience_entry_field_info 

143 

144 

145o.theme_options_theme_field_info.default = "moderncv" 

146o.theme_options_header_field_info.default = Header() 

147o.theme_options_text_field_info.default = Text() 

148o.theme_options_entry_types_field_info.default = EntryTypes() 

149o.theme_options_section_titles_field_info.default = SectionTitles() 

150o.theme_options_highlights_field_info.default = Highlights() 

151o.theme_options_links_field_info.default = Links() 

152o.theme_options_entries_field_info.default = Entries() 

153 

154 

155class ModerncvThemeOptions(o.ThemeOptions): 

156 theme: Literal["moderncv"] = o.theme_options_theme_field_info 

157 header: Header = o.theme_options_header_field_info 

158 highlights: Highlights = o.theme_options_highlights_field_info 

159 text: Text = o.theme_options_text_field_info 

160 links: Links = o.theme_options_links_field_info 

161 entries: Entries = o.theme_options_entries_field_info 

162 entry_types: EntryTypes = o.theme_options_entry_types_field_info 

163 section_titles: SectionTitles = o.theme_options_section_titles_field_info