simple-resume 0.1.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. simple_resume/__init__.py +132 -0
  2. simple_resume/core/__init__.py +47 -0
  3. simple_resume/core/colors.py +215 -0
  4. simple_resume/core/config.py +672 -0
  5. simple_resume/core/constants/__init__.py +207 -0
  6. simple_resume/core/constants/colors.py +98 -0
  7. simple_resume/core/constants/files.py +28 -0
  8. simple_resume/core/constants/layout.py +58 -0
  9. simple_resume/core/dependencies.py +258 -0
  10. simple_resume/core/effects.py +154 -0
  11. simple_resume/core/exceptions.py +261 -0
  12. simple_resume/core/file_operations.py +68 -0
  13. simple_resume/core/generate/__init__.py +21 -0
  14. simple_resume/core/generate/exceptions.py +69 -0
  15. simple_resume/core/generate/html.py +233 -0
  16. simple_resume/core/generate/pdf.py +659 -0
  17. simple_resume/core/generate/plan.py +131 -0
  18. simple_resume/core/hydration.py +55 -0
  19. simple_resume/core/importers/__init__.py +3 -0
  20. simple_resume/core/importers/json_resume.py +284 -0
  21. simple_resume/core/latex/__init__.py +60 -0
  22. simple_resume/core/latex/context.py +56 -0
  23. simple_resume/core/latex/conversion.py +227 -0
  24. simple_resume/core/latex/escaping.py +68 -0
  25. simple_resume/core/latex/fonts.py +93 -0
  26. simple_resume/core/latex/formatting.py +81 -0
  27. simple_resume/core/latex/sections.py +218 -0
  28. simple_resume/core/latex/types.py +84 -0
  29. simple_resume/core/markdown.py +127 -0
  30. simple_resume/core/models.py +102 -0
  31. simple_resume/core/palettes/__init__.py +38 -0
  32. simple_resume/core/palettes/common.py +73 -0
  33. simple_resume/core/palettes/data/default_palettes.json +58 -0
  34. simple_resume/core/palettes/exceptions.py +33 -0
  35. simple_resume/core/palettes/fetch_types.py +52 -0
  36. simple_resume/core/palettes/generators.py +137 -0
  37. simple_resume/core/palettes/registry.py +76 -0
  38. simple_resume/core/palettes/resolution.py +123 -0
  39. simple_resume/core/palettes/sources.py +162 -0
  40. simple_resume/core/paths.py +21 -0
  41. simple_resume/core/protocols.py +134 -0
  42. simple_resume/core/py.typed +0 -0
  43. simple_resume/core/render/__init__.py +37 -0
  44. simple_resume/core/render/manage.py +199 -0
  45. simple_resume/core/render/plan.py +405 -0
  46. simple_resume/core/result.py +226 -0
  47. simple_resume/core/resume.py +609 -0
  48. simple_resume/core/skills.py +60 -0
  49. simple_resume/core/validation.py +321 -0
  50. simple_resume/py.typed +0 -0
  51. simple_resume/shell/__init__.py +3 -0
  52. simple_resume/shell/assets/static/css/README.md +213 -0
  53. simple_resume/shell/assets/static/css/common.css +641 -0
  54. simple_resume/shell/assets/static/css/fonts.css +42 -0
  55. simple_resume/shell/assets/static/css/preview.css +82 -0
  56. simple_resume/shell/assets/static/css/print.css +99 -0
  57. simple_resume/shell/assets/static/fonts/AvenirLTStd-Book.otf +0 -0
  58. simple_resume/shell/assets/static/fonts/AvenirLTStd-Light.otf +0 -0
  59. simple_resume/shell/assets/static/fonts/AvenirLTStd-Medium.otf +0 -0
  60. simple_resume/shell/assets/static/fonts/AvenirLTStd-Oblique.otf +0 -0
  61. simple_resume/shell/assets/static/fonts/AvenirLTStd-Roman.otf +0 -0
  62. simple_resume/shell/assets/static/fonts/fontawesome/Font Awesome 6 Brands-Regular-400.otf +0 -0
  63. simple_resume/shell/assets/static/fonts/fontawesome/Font Awesome 6 Free-Solid-900.otf +0 -0
  64. simple_resume/shell/assets/static/images/default_profile_1.jpg +0 -0
  65. simple_resume/shell/assets/static/images/default_profile_2.png +0 -0
  66. simple_resume/shell/assets/static/schema.json +236 -0
  67. simple_resume/shell/assets/static/themes/README.md +208 -0
  68. simple_resume/shell/assets/static/themes/bold.yaml +64 -0
  69. simple_resume/shell/assets/static/themes/classic.yaml +64 -0
  70. simple_resume/shell/assets/static/themes/executive.yaml +64 -0
  71. simple_resume/shell/assets/static/themes/minimal.yaml +64 -0
  72. simple_resume/shell/assets/static/themes/modern.yaml +64 -0
  73. simple_resume/shell/assets/templates/html/cover.html +129 -0
  74. simple_resume/shell/assets/templates/html/demo.html +13 -0
  75. simple_resume/shell/assets/templates/html/resume_base.html +453 -0
  76. simple_resume/shell/assets/templates/html/resume_no_bars.html +316 -0
  77. simple_resume/shell/assets/templates/html/resume_with_bars.html +362 -0
  78. simple_resume/shell/cli/__init__.py +35 -0
  79. simple_resume/shell/cli/main.py +975 -0
  80. simple_resume/shell/cli/palette.py +75 -0
  81. simple_resume/shell/cli/random_palette_demo.py +407 -0
  82. simple_resume/shell/config.py +96 -0
  83. simple_resume/shell/effect_executor.py +211 -0
  84. simple_resume/shell/file_opener.py +308 -0
  85. simple_resume/shell/generate/__init__.py +37 -0
  86. simple_resume/shell/generate/core.py +650 -0
  87. simple_resume/shell/generate/lazy.py +284 -0
  88. simple_resume/shell/io_utils.py +199 -0
  89. simple_resume/shell/palettes/__init__.py +1 -0
  90. simple_resume/shell/palettes/fetch.py +63 -0
  91. simple_resume/shell/palettes/loader.py +321 -0
  92. simple_resume/shell/palettes/remote.py +179 -0
  93. simple_resume/shell/pdf_executor.py +52 -0
  94. simple_resume/shell/py.typed +0 -0
  95. simple_resume/shell/render/__init__.py +1 -0
  96. simple_resume/shell/render/latex.py +308 -0
  97. simple_resume/shell/render/operations.py +240 -0
  98. simple_resume/shell/resume_extensions.py +737 -0
  99. simple_resume/shell/runtime/__init__.py +7 -0
  100. simple_resume/shell/runtime/content.py +190 -0
  101. simple_resume/shell/runtime/generate.py +497 -0
  102. simple_resume/shell/runtime/lazy.py +138 -0
  103. simple_resume/shell/runtime/lazy_import.py +173 -0
  104. simple_resume/shell/service_locator.py +80 -0
  105. simple_resume/shell/services.py +256 -0
  106. simple_resume/shell/session/__init__.py +6 -0
  107. simple_resume/shell/session/config.py +35 -0
  108. simple_resume/shell/session/manage.py +386 -0
  109. simple_resume/shell/strategies.py +181 -0
  110. simple_resume/shell/themes/__init__.py +35 -0
  111. simple_resume/shell/themes/loader.py +230 -0
  112. simple_resume-0.1.9.dist-info/METADATA +201 -0
  113. simple_resume-0.1.9.dist-info/RECORD +116 -0
  114. simple_resume-0.1.9.dist-info/WHEEL +4 -0
  115. simple_resume-0.1.9.dist-info/entry_points.txt +5 -0
  116. simple_resume-0.1.9.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,64 @@
1
+ # Bold Theme for Simple Resume
2
+ # A high-contrast, vibrant design that makes a strong visual impact
3
+ #
4
+ # Usage:
5
+ # 1. Copy this file to your project and customize
6
+ # 2. Or include these settings in your resume YAML under 'config:'
7
+ #
8
+ # Colors: Deep dark sidebar with vibrant accent colors
9
+
10
+ config:
11
+ # Color palette - dark with vibrant accents
12
+ palette:
13
+ source: generator
14
+ type: hcl
15
+ size: 6
16
+ seed: 2023
17
+ hue_range: [180, 260] # Teal to purple range
18
+ luminance_range: [0.12, 0.55] # Dark tones for sidebar
19
+ chroma: 0.28 # High saturation
20
+
21
+ # Page dimensions (A4)
22
+ page_width: 210
23
+ page_height: 297
24
+ padding: 10
25
+
26
+ # Sidebar styling - bold dark sidebar
27
+ sidebar_width: 62
28
+ sidebar_padding_top: 5
29
+ sidebar_padding_bottom: 5
30
+ sidebar_padding_left: 5
31
+ sidebar_padding_right: 5
32
+
33
+ # Profile image
34
+ profile_width: 50
35
+ profile_image_padding_bottom: 5
36
+
37
+ # Main content area - tighter spacing
38
+ pitch_padding_top: 6
39
+ pitch_padding_bottom: 4
40
+ pitch_padding_left: 4
41
+ h2_padding_left: 4
42
+ h2_width: 138
43
+
44
+ # Experience entries - compact but readable
45
+ h3_padding_top: 4
46
+ date_container_width: 13
47
+ date_container_padding_left: 6
48
+ description_container_padding_left: 2
49
+ skill_container_padding_top: 2
50
+
51
+ # Frame (for preview)
52
+ frame_padding: 10
53
+ frame_color: "#1a1a2e" # Dark frame
54
+ bold_color: "#16213e"
55
+
56
+ # Section heading icons - prominent
57
+ section_icon_circle_size: "8.5mm"
58
+ section_icon_circle_x_offset: "-0.5mm"
59
+ section_icon_design_size: "4.5mm"
60
+ section_icon_design_x_offset: "-0.1mm"
61
+ section_icon_design_y_offset: "-0.2mm"
62
+ section_heading_text_margin: "-6mm"
63
+ section_heading_marker_margin_left: "-11mm"
64
+ section_heading_marker_line_height: "15mm"
@@ -0,0 +1,64 @@
1
+ # Classic Theme for Simple Resume
2
+ # A traditional, professional design inspired by academic and corporate resumes
3
+ #
4
+ # Usage:
5
+ # 1. Copy this file to your project and customize
6
+ # 2. Or include these settings in your resume YAML under 'config:'
7
+ #
8
+ # Colors: Navy blue and burgundy - timeless professional palette
9
+
10
+ config:
11
+ # Color palette - classic navy/burgundy
12
+ palette:
13
+ source: generator
14
+ type: hcl
15
+ size: 5
16
+ seed: 1985
17
+ hue_range: [220, 280] # Navy to purple range
18
+ luminance_range: [0.25, 0.65]
19
+ chroma: 0.15 # Rich but not flashy
20
+
21
+ # Page dimensions (A4)
22
+ page_width: 210
23
+ page_height: 297
24
+ padding: 12
25
+
26
+ # Sidebar styling - wider for traditional look
27
+ sidebar_width: 65
28
+ sidebar_padding_top: 6
29
+ sidebar_padding_bottom: 6
30
+ sidebar_padding_left: 6
31
+ sidebar_padding_right: 6
32
+
33
+ # Profile image
34
+ profile_width: 52
35
+ profile_image_padding_bottom: 8
36
+
37
+ # Main content area
38
+ pitch_padding_top: 10
39
+ pitch_padding_bottom: 8
40
+ pitch_padding_left: 6
41
+ h2_padding_left: 6
42
+ h2_width: 135
43
+
44
+ # Experience entries - more generous spacing
45
+ h3_padding_top: 5
46
+ date_container_width: 15
47
+ date_container_padding_left: 8
48
+ description_container_padding_left: 4
49
+ skill_container_padding_top: 3
50
+
51
+ # Frame (for preview)
52
+ frame_padding: 15
53
+ frame_color: "#f5f5f0" # Warm off-white
54
+ bold_color: "#2c3e50"
55
+
56
+ # Section heading icons - larger, more prominent
57
+ section_icon_circle_size: "9mm"
58
+ section_icon_circle_x_offset: "0mm"
59
+ section_icon_design_size: "5mm"
60
+ section_icon_design_x_offset: "0mm"
61
+ section_icon_design_y_offset: "0mm"
62
+ section_heading_text_margin: "-6mm"
63
+ section_heading_marker_margin_left: "-12mm"
64
+ section_heading_marker_line_height: "16mm"
@@ -0,0 +1,64 @@
1
+ # Executive Theme for Simple Resume
2
+ # A sophisticated, premium design for senior professionals
3
+ #
4
+ # Usage:
5
+ # 1. Copy this file to your project and customize
6
+ # 2. Or include these settings in your resume YAML under 'config:'
7
+ #
8
+ # Colors: Deep charcoal with gold accents - executive presence
9
+
10
+ config:
11
+ # Color palette - sophisticated dark with gold
12
+ palette:
13
+ source: generator
14
+ type: hcl
15
+ size: 5
16
+ seed: 1999
17
+ hue_range: [35, 55] # Gold/amber range
18
+ luminance_range: [0.15, 0.60]
19
+ chroma: 0.20 # Rich but refined
20
+
21
+ # Page dimensions (A4)
22
+ page_width: 210
23
+ page_height: 297
24
+ padding: 12
25
+
26
+ # Sidebar styling - refined proportions
27
+ sidebar_width: 58
28
+ sidebar_padding_top: 8
29
+ sidebar_padding_bottom: 8
30
+ sidebar_padding_left: 6
31
+ sidebar_padding_right: 6
32
+
33
+ # Profile image
34
+ profile_width: 46
35
+ profile_image_padding_bottom: 7
36
+
37
+ # Main content area
38
+ pitch_padding_top: 10
39
+ pitch_padding_bottom: 6
40
+ pitch_padding_left: 6
41
+ h2_padding_left: 6
42
+ h2_width: 140
43
+
44
+ # Experience entries
45
+ h3_padding_top: 5
46
+ date_container_width: 14
47
+ date_container_padding_left: 7
48
+ description_container_padding_left: 4
49
+ skill_container_padding_top: 2
50
+
51
+ # Frame (for preview)
52
+ frame_padding: 14
53
+ frame_color: "#2d2d2d" # Dark charcoal
54
+ bold_color: "#1a1a1a"
55
+
56
+ # Section heading icons
57
+ section_icon_circle_size: "8mm"
58
+ section_icon_circle_x_offset: "0mm"
59
+ section_icon_design_size: "4.2mm"
60
+ section_icon_design_x_offset: "0mm"
61
+ section_icon_design_y_offset: "0mm"
62
+ section_heading_text_margin: "-5mm"
63
+ section_heading_marker_margin_left: "-10mm"
64
+ section_heading_marker_line_height: "15mm"
@@ -0,0 +1,64 @@
1
+ # Minimal Theme for Simple Resume
2
+ # A clean, light design with maximum whitespace and subtle styling
3
+ #
4
+ # Usage:
5
+ # 1. Copy this file to your project and customize
6
+ # 2. Or include these settings in your resume YAML under 'config:'
7
+ #
8
+ # Colors: Light grays with a subtle accent - lets content shine
9
+
10
+ config:
11
+ # Color palette - light and airy
12
+ palette:
13
+ source: generator
14
+ type: hcl
15
+ size: 5
16
+ seed: 2025
17
+ hue_range: [0, 30] # Warm neutrals
18
+ luminance_range: [0.65, 0.92] # Light tones
19
+ chroma: 0.06 # Very subtle color
20
+
21
+ # Page dimensions (A4)
22
+ page_width: 210
23
+ page_height: 297
24
+ padding: 15 # More breathing room
25
+
26
+ # Sidebar styling - narrow and light
27
+ sidebar_width: 50
28
+ sidebar_padding_top: 10
29
+ sidebar_padding_bottom: 10
30
+ sidebar_padding_left: 6
31
+ sidebar_padding_right: 6
32
+
33
+ # Profile image
34
+ profile_width: 40
35
+ profile_image_padding_bottom: 8
36
+
37
+ # Main content area - generous spacing
38
+ pitch_padding_top: 12
39
+ pitch_padding_bottom: 8
40
+ pitch_padding_left: 8
41
+ h2_padding_left: 8
42
+ h2_width: 145
43
+
44
+ # Experience entries - spacious
45
+ h3_padding_top: 6
46
+ date_container_width: 16
47
+ date_container_padding_left: 10
48
+ description_container_padding_left: 5
49
+ skill_container_padding_top: 3
50
+
51
+ # Frame (for preview)
52
+ frame_padding: 20
53
+ frame_color: "#ffffff" # Pure white
54
+ bold_color: "#6c757d"
55
+
56
+ # Section heading icons - understated
57
+ section_icon_circle_size: "7mm"
58
+ section_icon_circle_x_offset: "0mm"
59
+ section_icon_design_size: "3.5mm"
60
+ section_icon_design_x_offset: "0mm"
61
+ section_icon_design_y_offset: "0mm"
62
+ section_heading_text_margin: "-4mm"
63
+ section_heading_marker_margin_left: "-9mm"
64
+ section_heading_marker_line_height: "14mm"
@@ -0,0 +1,64 @@
1
+ # Modern Theme for Simple Resume
2
+ # A clean, contemporary design with subtle colors and elegant spacing
3
+ #
4
+ # Usage:
5
+ # 1. Copy this file to your project and customize
6
+ # 2. Or include these settings in your resume YAML under 'config:'
7
+ #
8
+ # Colors: Soft blue-gray palette with professional accent colors
9
+
10
+ config:
11
+ # Color palette - soft blue-gray tones
12
+ palette:
13
+ source: generator
14
+ type: hcl
15
+ size: 5
16
+ seed: 2024
17
+ hue_range: [200, 220] # Blue range
18
+ luminance_range: [0.35, 0.75]
19
+ chroma: 0.12 # Subtle saturation
20
+
21
+ # Page dimensions (A4)
22
+ page_width: 210
23
+ page_height: 297
24
+ padding: 10
25
+
26
+ # Sidebar styling
27
+ sidebar_width: 55
28
+ sidebar_padding_top: 8
29
+ sidebar_padding_bottom: 8
30
+ sidebar_padding_left: 5
31
+ sidebar_padding_right: 5
32
+
33
+ # Profile image
34
+ profile_width: 45
35
+ profile_image_padding_bottom: 6
36
+
37
+ # Main content area
38
+ pitch_padding_top: 8
39
+ pitch_padding_bottom: 6
40
+ pitch_padding_left: 5
41
+ h2_padding_left: 5
42
+ h2_width: 140
43
+
44
+ # Experience entries
45
+ h3_padding_top: 4
46
+ date_container_width: 14
47
+ date_container_padding_left: 6
48
+ description_container_padding_left: 3
49
+ skill_container_padding_top: 2
50
+
51
+ # Frame (for preview)
52
+ frame_padding: 12
53
+ frame_color: "#f8f9fa"
54
+ bold_color: "#495057"
55
+
56
+ # Section heading icons
57
+ section_icon_circle_size: "8mm"
58
+ section_icon_circle_x_offset: "0mm"
59
+ section_icon_design_size: "4.5mm"
60
+ section_icon_design_x_offset: "0mm"
61
+ section_icon_design_y_offset: "0mm"
62
+ section_heading_text_margin: "-5mm"
63
+ section_heading_marker_margin_left: "-10mm"
64
+ section_heading_marker_line_height: "15mm"
@@ -0,0 +1,129 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <!-- External CSS files -->
6
+ <link rel="stylesheet" href="../static/css/fonts.css">
7
+ {% if preview %}
8
+ <link rel="stylesheet" href="../static/css/preview.css">
9
+ {% endif %}
10
+
11
+ <!-- Cover letter styles (cover-specific, uses resume_config values) -->
12
+ <style>
13
+ /* General style */
14
+ html, body, p, ul, li {
15
+ margin: 0;
16
+ padding: 0;
17
+ font-size: 10pt;
18
+ line-height: 1.8;
19
+ font-family: 'Avenir 35';
20
+ }
21
+
22
+ /* Titles */
23
+ h1, h2, h3, h4, h5, h6 {
24
+ font-weight: normal;
25
+ }
26
+ h1, h2, h3, h5 {
27
+ color: {{ resume_config.get("theme_color", "#0395DE") }};
28
+ }
29
+ h1 {
30
+ font-size: 30pt;
31
+ font-family: 'Avenir 35';
32
+ padding-top: 11mm;
33
+ padding-bottom: 8.5mm;
34
+ padding-right: {{ resume_config.get("padding", 12) }}mm;
35
+ text-align: center;
36
+ border-bottom: 3px solid {{ resume_config.get("sidebar_color", "#F6F6F6") }};
37
+ }
38
+ h2 {
39
+ font-size: 16pt;
40
+ font-family: 'Avenir 55';
41
+ margin-top: 4mm;
42
+ margin-bottom: 0mm;
43
+ }
44
+ h3 {
45
+ font-size: 14pt;
46
+ font-family: 'Avenir 45';
47
+ margin-top: 2mm;
48
+ margin-bottom: 0mm;
49
+ }
50
+ h4 {
51
+ font-size: 10pt;
52
+ font-family: 'Avenir 45';
53
+ }
54
+ .markdown-strong {
55
+ font-family: 'Avenir 65', 'Avenir 55', 'Avenir 45', 'Helvetica Neue', Arial, sans-serif !important;
56
+ font-weight: 700 !important;
57
+ }
58
+
59
+ /* List styles */
60
+ ul {
61
+ list-style-type: none;
62
+ }
63
+ li:before {
64
+ content: "- ";
65
+ }
66
+
67
+ /* Layout styles */
68
+ .frame {
69
+ padding-top: {{ resume_config.get("frame_padding", 15) }}mm;
70
+ padding-bottom: {{ resume_config.get("frame_padding", 15) }}mm;
71
+ padding-left: {{ resume_config.get("frame_padding", 15) }}mm;
72
+ padding-right: {{ resume_config.get("frame_padding", 15) }}mm;
73
+ background-color: {{ resume_config.get("frame_color", "#757575") }};
74
+ }
75
+ .page {
76
+ page-break-after: always;
77
+ width: {{ resume_config.get("page_width", 210) }}mm;
78
+ height: {{ resume_config.get("page_height", 297) }}mm;
79
+ background-color: white;
80
+ }
81
+ .body {
82
+ float: left;
83
+ width: {{ resume_config.get("page_width", 210) }}mm;
84
+ height: {{ resume_config.get("page_height", 297) }}mm;
85
+ }
86
+
87
+ /* Content styles */
88
+ .description {
89
+ padding-top: {{ resume_config.get("cover_padding_top", 15) }}mm;
90
+ padding-bottom: {{ resume_config.get("cover_padding_bottom", 15) }}mm;
91
+ padding-left: {{ resume_config.get("cover_padding_h", 20) }}mm;
92
+ padding-right: {{ resume_config.get("cover_padding_h", 20) }}mm;
93
+ }
94
+
95
+ code {
96
+ font-size: 85%;
97
+ margin: 0;
98
+ background-color: rgba(27,31,35,.05);
99
+ padding: .2em .4em;
100
+ }
101
+
102
+ </style>
103
+ </head>
104
+
105
+ <body>
106
+
107
+ <!-- This will add a nice frame when previewing but not when printing -->
108
+ {% if preview %}<div class="frame">{% endif %}
109
+
110
+ <div class="page">
111
+ <div class="body">
112
+ <h1>{{ full_name }}</h1>
113
+
114
+ {% if description %}
115
+ <div class="description">
116
+ {% autoescape false %}
117
+ {{ description }}
118
+ {% endautoescape %}
119
+ </div>
120
+ {% endif %}
121
+
122
+ </div>
123
+ </div>
124
+
125
+ <!-- And the closing of the frame -->
126
+ {% if preview %}</div>{% endif %}
127
+
128
+ </body>
129
+ </html>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>{{ resume_name or "Resume" }}</title>
5
+ </head>
6
+ <body>
7
+ {% if content %}
8
+ {{ content | safe }}
9
+ {% else %}
10
+ <p>Hello</p>
11
+ {% endif %}
12
+ </body>
13
+ </html>