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
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-26 00:25 +0000
1from typing import Literal, Optional
3import rendercv.themes.options as o
5o.header_name_bold_field_info.default = False
6o.header_name_font_size_field_info = "25pt"
7o.header_alignment_field_info.default = "left"
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
16o.links_underline_field_info.default = True
17o.links_use_external_link_icon_field_info.default = False
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
25o.text_font_family_field_info.default = "XCharter"
26o.text_leading_field_info.default = "0.6em"
29class Text(o.Text):
30 font_family: o.FontFamily = o.text_font_family_field_info
31 leading: o.TypstDimension = o.text_leading_field_info
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"
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
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"
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 )
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"
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 )
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"
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 )
106o.normal_entry_main_column_first_row_template_field_info.default = (
107 "**NAME** -- **LOCATION**"
108)
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 )
120o.experience_entry_main_column_first_row_template_field_info.default = (
121 "**POSITION**, COMPANY -- LOCATION"
122)
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 )
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()
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
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()
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