codeurcv 0.3.0__tar.gz → 0.4.1__tar.gz
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.
- codeurcv-0.4.1/LICENSE +21 -0
- codeurcv-0.4.1/PKG-INFO +187 -0
- codeurcv-0.4.1/README.md +161 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/pyproject.toml +1 -1
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/cli.py +14 -7
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/core/constants.py +2 -1
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/core/renderer.py +8 -7
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/core/schema.py +0 -7
- codeurcv-0.3.0/PKG-INFO +0 -44
- codeurcv-0.3.0/README.md +0 -19
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/__init__.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/__main__.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/core/dependency_checker.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/core/logger.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/core/markdown_converter.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/core/plugin_loader.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/core/settings.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/core/template_loader.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/plugins/__init__.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/plugins/base.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/plugins/minimalist/__init__.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/plugins/minimalist/plugin.py +0 -0
- {codeurcv-0.3.0 → codeurcv-0.4.1}/src/codeurcv/plugins/minimalist/template.tex +0 -0
codeurcv-0.4.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 codeurcv contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
codeurcv-0.4.1/PKG-INFO
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: codeurcv
|
|
3
|
+
Version: 0.4.1
|
|
4
|
+
Summary: A Python library to generate LaTeX resumes from YAML configuration files using Jinja2 templates.
|
|
5
|
+
License: MIT
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Keywords: python,digipin,coordinates
|
|
8
|
+
Author: crackedngineer
|
|
9
|
+
Author-email: subhomoyrchoudhury@gmail.com
|
|
10
|
+
Requires-Python: >=3.12
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
16
|
+
Classifier: Topic :: Security
|
|
17
|
+
Requires-Dist: jinja2 (>=3.1.6)
|
|
18
|
+
Requires-Dist: pydantic (>=2.12.5)
|
|
19
|
+
Requires-Dist: pyyaml (>=6.0.3)
|
|
20
|
+
Requires-Dist: rich (>=14.3.3)
|
|
21
|
+
Requires-Dist: typer (>=0.24.1)
|
|
22
|
+
Project-URL: Documentation, https://github.com/crackedngineer/code-ur-cv/
|
|
23
|
+
Project-URL: Homepage, https://github.com/crackedngineer/code-ur-cv
|
|
24
|
+
Project-URL: Repository, https://github.com/crackedngineer/code-ur-cv
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
|
|
27
|
+
<div align="center">
|
|
28
|
+
|
|
29
|
+
# 📄 codeurcv
|
|
30
|
+
|
|
31
|
+
**Turn a simple YAML or JSON file into a professional resume — instantly.**
|
|
32
|
+
|
|
33
|
+
[](https://badge.fury.io/py/codeurcv)
|
|
34
|
+
[](https://pypi.org/project/codeurcv/)
|
|
35
|
+
[](LICENSE)
|
|
36
|
+
[](https://github.com/marketplace/actions/codeurcv)
|
|
37
|
+
|
|
38
|
+
Whether you're a student, working professional, or researcher — write your details once, get a polished PDF resume every time.
|
|
39
|
+
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## ✨ Features
|
|
45
|
+
|
|
46
|
+
- **Simple input format** — describe your resume in a human-readable `.yml` or `.json` file. No LaTeX knowledge required.
|
|
47
|
+
- **Premium templates for free** — choose from a curated set of professionally designed resume templates.
|
|
48
|
+
- **GitHub Action** — automate resume generation on every push. Always have an up-to-date PDF in your repo.
|
|
49
|
+
- **Supports all profiles** — students, working professionals, and researchers are all first-class citizens.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 🚀 Quickstart
|
|
54
|
+
|
|
55
|
+
```yaml
|
|
56
|
+
# config.yml
|
|
57
|
+
basic_details:
|
|
58
|
+
name: Jane Doe
|
|
59
|
+
email: jane@example.com
|
|
60
|
+
phone: "+1 555 000 0000"
|
|
61
|
+
location: San Francisco, CA
|
|
62
|
+
linkedin: linkedin.com/in/janedoe
|
|
63
|
+
github: github.com/janedoe
|
|
64
|
+
|
|
65
|
+
summary: >
|
|
66
|
+
Full-stack engineer with 5 years of experience building scalable web applications.
|
|
67
|
+
|
|
68
|
+
education:
|
|
69
|
+
- institution: University of California, Berkeley
|
|
70
|
+
degree: B.S. Computer Science
|
|
71
|
+
year: 2019
|
|
72
|
+
|
|
73
|
+
work:
|
|
74
|
+
- company: Acme Corp
|
|
75
|
+
role: Senior Engineer
|
|
76
|
+
start: Jan 2021
|
|
77
|
+
end: Present
|
|
78
|
+
highlights:
|
|
79
|
+
- Led migration to microservices, reducing latency by 40%
|
|
80
|
+
- Mentored a team of 4 junior engineers
|
|
81
|
+
|
|
82
|
+
skills:
|
|
83
|
+
- category: Languages
|
|
84
|
+
featured:
|
|
85
|
+
- Python
|
|
86
|
+
- TypeScript
|
|
87
|
+
- Go
|
|
88
|
+
- category: Tools
|
|
89
|
+
featured:
|
|
90
|
+
- Docker
|
|
91
|
+
- Kubernetes
|
|
92
|
+
- PostgreSQL
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
codeurcv generate example/config.yml
|
|
97
|
+
# → resume.pdf
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 📦 Installation
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
pip install codeurcv
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Dependencies
|
|
109
|
+
|
|
110
|
+
`codeurcv` requires two external tools to generate PDFs:
|
|
111
|
+
|
|
112
|
+
#### Pandoc
|
|
113
|
+
|
|
114
|
+
Pandoc is a universal document converter used to process templates.
|
|
115
|
+
|
|
116
|
+
| Platform | Command |
|
|
117
|
+
|----------|---------|
|
|
118
|
+
| Windows | `winget install --id JohnMacFarlane.Pandoc` or `choco install pandoc` |
|
|
119
|
+
| macOS | `brew install pandoc` |
|
|
120
|
+
| Debian/Ubuntu | `sudo apt install pandoc` |
|
|
121
|
+
| Fedora/RHEL | `sudo dnf install pandoc` |
|
|
122
|
+
| Arch/Manjaro | `sudo pacman -S pandoc` |
|
|
123
|
+
|
|
124
|
+
→ [Full Pandoc installation guide](https://pandoc.org/installing.html)
|
|
125
|
+
|
|
126
|
+
#### pdflatex (TeX Live / MiKTeX)
|
|
127
|
+
|
|
128
|
+
pdflatex is the LaTeX engine used to render the final PDF.
|
|
129
|
+
|
|
130
|
+
| Platform | Command |
|
|
131
|
+
|----------|---------|
|
|
132
|
+
| Windows | `winget install --id MiKTeX.MiKTeX` or `choco install miktex` |
|
|
133
|
+
| macOS | `brew install --cask mactex` |
|
|
134
|
+
| Debian/Ubuntu | `sudo apt install texlive-latex-base` |
|
|
135
|
+
| Fedora/RHEL | `sudo dnf install texlive-latex` |
|
|
136
|
+
| Arch/Manjaro | `sudo pacman -S texlive-basic` |
|
|
137
|
+
| openSUSE | `sudo zypper install texlive-latex` |
|
|
138
|
+
|
|
139
|
+
→ [TeX Live installation guide](https://www.tug.org/texlive/acquire.html) · [MiKTeX for Windows](https://miktex.org/download)
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 🖼️ Templates
|
|
144
|
+
|
|
145
|
+
| Name | Best For |
|
|
146
|
+
|------|----------|
|
|
147
|
+
| `classic` | All-purpose, clean single column |
|
|
148
|
+
| `modern` | Tech roles, sidebar layout |
|
|
149
|
+
| `academic` | Researchers, publications-focused |
|
|
150
|
+
| `minimalist` | Design roles, typography-forward |
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
codeurcv generate config.yml --template minimalist
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 📖 Local Setup
|
|
159
|
+
|
|
160
|
+
See [SETUP.md](SETUP.md) for full developer setup instructions.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## ⚡ GitHub Action
|
|
165
|
+
|
|
166
|
+
Automate resume generation on every push using the official GitHub Action.
|
|
167
|
+
|
|
168
|
+
```yaml
|
|
169
|
+
- uses: crackedngineer/codeurcv-action@v1
|
|
170
|
+
with:
|
|
171
|
+
file-name: config.yml
|
|
172
|
+
out-dir: output
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
→ [codeurcv-action on GitHub](https://github.com/crackedngineer/codeurcv-action) · [View on Marketplace](https://github.com/marketplace/actions/codeurcv-action)
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 🤝 Contributing
|
|
180
|
+
|
|
181
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) — contributions are welcome!
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 📜 License
|
|
186
|
+
|
|
187
|
+
[MIT](LICENSE) © codeurcv contributors
|
codeurcv-0.4.1/README.md
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# 📄 codeurcv
|
|
4
|
+
|
|
5
|
+
**Turn a simple YAML or JSON file into a professional resume — instantly.**
|
|
6
|
+
|
|
7
|
+
[](https://badge.fury.io/py/codeurcv)
|
|
8
|
+
[](https://pypi.org/project/codeurcv/)
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
[](https://github.com/marketplace/actions/codeurcv)
|
|
11
|
+
|
|
12
|
+
Whether you're a student, working professional, or researcher — write your details once, get a polished PDF resume every time.
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## ✨ Features
|
|
19
|
+
|
|
20
|
+
- **Simple input format** — describe your resume in a human-readable `.yml` or `.json` file. No LaTeX knowledge required.
|
|
21
|
+
- **Premium templates for free** — choose from a curated set of professionally designed resume templates.
|
|
22
|
+
- **GitHub Action** — automate resume generation on every push. Always have an up-to-date PDF in your repo.
|
|
23
|
+
- **Supports all profiles** — students, working professionals, and researchers are all first-class citizens.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 🚀 Quickstart
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
# config.yml
|
|
31
|
+
basic_details:
|
|
32
|
+
name: Jane Doe
|
|
33
|
+
email: jane@example.com
|
|
34
|
+
phone: "+1 555 000 0000"
|
|
35
|
+
location: San Francisco, CA
|
|
36
|
+
linkedin: linkedin.com/in/janedoe
|
|
37
|
+
github: github.com/janedoe
|
|
38
|
+
|
|
39
|
+
summary: >
|
|
40
|
+
Full-stack engineer with 5 years of experience building scalable web applications.
|
|
41
|
+
|
|
42
|
+
education:
|
|
43
|
+
- institution: University of California, Berkeley
|
|
44
|
+
degree: B.S. Computer Science
|
|
45
|
+
year: 2019
|
|
46
|
+
|
|
47
|
+
work:
|
|
48
|
+
- company: Acme Corp
|
|
49
|
+
role: Senior Engineer
|
|
50
|
+
start: Jan 2021
|
|
51
|
+
end: Present
|
|
52
|
+
highlights:
|
|
53
|
+
- Led migration to microservices, reducing latency by 40%
|
|
54
|
+
- Mentored a team of 4 junior engineers
|
|
55
|
+
|
|
56
|
+
skills:
|
|
57
|
+
- category: Languages
|
|
58
|
+
featured:
|
|
59
|
+
- Python
|
|
60
|
+
- TypeScript
|
|
61
|
+
- Go
|
|
62
|
+
- category: Tools
|
|
63
|
+
featured:
|
|
64
|
+
- Docker
|
|
65
|
+
- Kubernetes
|
|
66
|
+
- PostgreSQL
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
codeurcv generate example/config.yml
|
|
71
|
+
# → resume.pdf
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 📦 Installation
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
pip install codeurcv
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Dependencies
|
|
83
|
+
|
|
84
|
+
`codeurcv` requires two external tools to generate PDFs:
|
|
85
|
+
|
|
86
|
+
#### Pandoc
|
|
87
|
+
|
|
88
|
+
Pandoc is a universal document converter used to process templates.
|
|
89
|
+
|
|
90
|
+
| Platform | Command |
|
|
91
|
+
|----------|---------|
|
|
92
|
+
| Windows | `winget install --id JohnMacFarlane.Pandoc` or `choco install pandoc` |
|
|
93
|
+
| macOS | `brew install pandoc` |
|
|
94
|
+
| Debian/Ubuntu | `sudo apt install pandoc` |
|
|
95
|
+
| Fedora/RHEL | `sudo dnf install pandoc` |
|
|
96
|
+
| Arch/Manjaro | `sudo pacman -S pandoc` |
|
|
97
|
+
|
|
98
|
+
→ [Full Pandoc installation guide](https://pandoc.org/installing.html)
|
|
99
|
+
|
|
100
|
+
#### pdflatex (TeX Live / MiKTeX)
|
|
101
|
+
|
|
102
|
+
pdflatex is the LaTeX engine used to render the final PDF.
|
|
103
|
+
|
|
104
|
+
| Platform | Command |
|
|
105
|
+
|----------|---------|
|
|
106
|
+
| Windows | `winget install --id MiKTeX.MiKTeX` or `choco install miktex` |
|
|
107
|
+
| macOS | `brew install --cask mactex` |
|
|
108
|
+
| Debian/Ubuntu | `sudo apt install texlive-latex-base` |
|
|
109
|
+
| Fedora/RHEL | `sudo dnf install texlive-latex` |
|
|
110
|
+
| Arch/Manjaro | `sudo pacman -S texlive-basic` |
|
|
111
|
+
| openSUSE | `sudo zypper install texlive-latex` |
|
|
112
|
+
|
|
113
|
+
→ [TeX Live installation guide](https://www.tug.org/texlive/acquire.html) · [MiKTeX for Windows](https://miktex.org/download)
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 🖼️ Templates
|
|
118
|
+
|
|
119
|
+
| Name | Best For |
|
|
120
|
+
|------|----------|
|
|
121
|
+
| `classic` | All-purpose, clean single column |
|
|
122
|
+
| `modern` | Tech roles, sidebar layout |
|
|
123
|
+
| `academic` | Researchers, publications-focused |
|
|
124
|
+
| `minimalist` | Design roles, typography-forward |
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
codeurcv generate config.yml --template minimalist
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 📖 Local Setup
|
|
133
|
+
|
|
134
|
+
See [SETUP.md](SETUP.md) for full developer setup instructions.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## ⚡ GitHub Action
|
|
139
|
+
|
|
140
|
+
Automate resume generation on every push using the official GitHub Action.
|
|
141
|
+
|
|
142
|
+
```yaml
|
|
143
|
+
- uses: crackedngineer/codeurcv-action@v1
|
|
144
|
+
with:
|
|
145
|
+
file-name: config.yml
|
|
146
|
+
out-dir: output
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
→ [codeurcv-action on GitHub](https://github.com/crackedngineer/codeurcv-action) · [View on Marketplace](https://github.com/marketplace/actions/codeurcv-action)
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 🤝 Contributing
|
|
154
|
+
|
|
155
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) — contributions are welcome!
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 📜 License
|
|
160
|
+
|
|
161
|
+
[MIT](LICENSE) © codeurcv contributors
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "codeurcv"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.4.1"
|
|
4
4
|
description = "A Python library to generate LaTeX resumes from YAML configuration files using Jinja2 templates."
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "crackedngineer", email = "subhomoyrchoudhury@gmail.com" },
|
|
@@ -4,7 +4,7 @@ from rich.console import Console
|
|
|
4
4
|
from importlib.metadata import version
|
|
5
5
|
|
|
6
6
|
from .core.renderer import ResumeRenderer
|
|
7
|
-
from .core.constants import DEFAULT_CONFIG_FILE, DEFAULT_OUT_DIR
|
|
7
|
+
from .core.constants import DEFAULT_CONFIG_FILE, DEFAULT_OUT_DIR, DEFAULT_OUTPUT_FILENAME, DEFAULT_TEMPLATE
|
|
8
8
|
|
|
9
9
|
app = typer.Typer(help="Generate LaTeX resumes from YAML configs.")
|
|
10
10
|
console = Console()
|
|
@@ -39,19 +39,26 @@ def main(
|
|
|
39
39
|
|
|
40
40
|
@app.command()
|
|
41
41
|
def run(
|
|
42
|
-
|
|
43
|
-
DEFAULT_CONFIG_FILE,
|
|
42
|
+
input: Path = typer.Argument(
|
|
43
|
+
DEFAULT_CONFIG_FILE, help="Path to your resume YAML or JSON"
|
|
44
44
|
),
|
|
45
|
-
|
|
46
|
-
DEFAULT_OUT_DIR, "--out
|
|
45
|
+
output: Path = typer.Option(
|
|
46
|
+
DEFAULT_OUT_DIR, "--out", "-o", help="Output directory for the generated PDF"
|
|
47
|
+
),
|
|
48
|
+
# Overrides — only needed if user wants to deviate from config values
|
|
49
|
+
name: str = typer.Option(
|
|
50
|
+
DEFAULT_OUTPUT_FILENAME, "--name", "-n", help="Override the output filename"
|
|
51
|
+
),
|
|
52
|
+
template: str = typer.Option(
|
|
53
|
+
DEFAULT_TEMPLATE, "--template", "-t", help="Override the template defined in config"
|
|
47
54
|
),
|
|
48
55
|
):
|
|
49
|
-
"""Render resume."""
|
|
56
|
+
"""Render your resume from a YAML config."""
|
|
50
57
|
console.print("[bold cyan]Starting resume generation...[/bold cyan]")
|
|
51
58
|
|
|
52
59
|
renderer = ResumeRenderer()
|
|
53
60
|
|
|
54
|
-
renderer.render(
|
|
61
|
+
renderer.render(config_path=input, output_dir=output, out_filename=name, template=template)
|
|
55
62
|
|
|
56
63
|
console.print("[bold green]Done![/bold green]")
|
|
57
64
|
|
|
@@ -12,6 +12,7 @@ from codeurcv.core.plugin_loader import load_builtin_plugins
|
|
|
12
12
|
from codeurcv.core.schema import ResumeConfig
|
|
13
13
|
from codeurcv.core.settings import console
|
|
14
14
|
from codeurcv.core.dependency_checker import check_dependencies
|
|
15
|
+
from codeurcv.core.constants import DEFAULT_OUTPUT_FILENAME
|
|
15
16
|
|
|
16
17
|
class ResumeRenderer:
|
|
17
18
|
def __init__(self):
|
|
@@ -23,7 +24,7 @@ class ResumeRenderer:
|
|
|
23
24
|
self.log_file = log_dir / f"codeurcv_{timestamp}.log"
|
|
24
25
|
self.logger = setup_logger(debug=False, log_file=self.log_file)
|
|
25
26
|
|
|
26
|
-
def render(self, config_path: Path, output_dir: Path):
|
|
27
|
+
def render(self, config_path: Path, output_dir: Path, out_filename: str = DEFAULT_OUTPUT_FILENAME, template: str = None):
|
|
27
28
|
console.print("\n[bold green]🚀 Building your resume...[/bold green]\n")
|
|
28
29
|
|
|
29
30
|
try:
|
|
@@ -41,8 +42,8 @@ class ResumeRenderer:
|
|
|
41
42
|
|
|
42
43
|
# STEP 3
|
|
43
44
|
plugin = self._step(
|
|
44
|
-
f"Template applied: {
|
|
45
|
-
lambda: self._get_plugin(
|
|
45
|
+
f"Template applied: {template}",
|
|
46
|
+
lambda: self._get_plugin(template),
|
|
46
47
|
)
|
|
47
48
|
|
|
48
49
|
# STEP 4
|
|
@@ -62,19 +63,19 @@ class ResumeRenderer:
|
|
|
62
63
|
output_dir.mkdir(parents=True, exist_ok=True)
|
|
63
64
|
with tempfile.TemporaryDirectory() as tmpdir:
|
|
64
65
|
tmp_path = Path(tmpdir)
|
|
65
|
-
tex_file = tmp_path / f"{
|
|
66
|
+
tex_file = tmp_path / f"{out_filename}.tex"
|
|
66
67
|
tex_file.write_text(plugin.postprocess(rendered_tex))
|
|
67
68
|
|
|
68
69
|
self._generate_pdf(tex_file, tmp_path)
|
|
69
70
|
|
|
70
|
-
final_pdf = output_dir / f"{
|
|
71
|
-
shutil.copy(tmp_path / f"{
|
|
71
|
+
final_pdf = output_dir / f"{out_filename}.pdf"
|
|
72
|
+
shutil.copy(tmp_path / f"{out_filename}.pdf", final_pdf)
|
|
72
73
|
|
|
73
74
|
|
|
74
75
|
console.print("\n[bold green]✔ PDF generated[/bold green]\n")
|
|
75
76
|
console.print("[bold green]🎉 Done![/bold green]")
|
|
76
77
|
console.print(
|
|
77
|
-
f"[cyan]📁 {output_dir.resolve() / f'{
|
|
78
|
+
f"[cyan]📁 {output_dir.resolve() / f'{out_filename}.pdf'}[/cyan]\n"
|
|
78
79
|
)
|
|
79
80
|
|
|
80
81
|
except Exception:
|
|
@@ -43,16 +43,9 @@ class Skill(ResumeSection):
|
|
|
43
43
|
featured_skills: List[str] = Field(default_factory=list)
|
|
44
44
|
|
|
45
45
|
class ResumeConfig(BaseModel):
|
|
46
|
-
template: str = DEFAULT_TEMPLATE
|
|
47
|
-
filename: str = "resume"
|
|
48
46
|
basic_details: BasicDetails
|
|
49
47
|
summary: Optional[str] = None
|
|
50
48
|
education: List[Education] = Field(default_factory=list)
|
|
51
49
|
work: List[Job] = Field(default_factory=list)
|
|
52
50
|
projects: List[Project] = Field(default_factory=list)
|
|
53
51
|
skills: List[Skill] = Field(default_factory=list)
|
|
54
|
-
|
|
55
|
-
@field_validator("filename")
|
|
56
|
-
@classmethod
|
|
57
|
-
def strip_pdf_extension(cls, v: str) -> str:
|
|
58
|
-
return v.removesuffix(".pdf")
|
codeurcv-0.3.0/PKG-INFO
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: codeurcv
|
|
3
|
-
Version: 0.3.0
|
|
4
|
-
Summary: A Python library to generate LaTeX resumes from YAML configuration files using Jinja2 templates.
|
|
5
|
-
License: MIT
|
|
6
|
-
Keywords: python,digipin,coordinates
|
|
7
|
-
Author: crackedngineer
|
|
8
|
-
Author-email: subhomoyrchoudhury@gmail.com
|
|
9
|
-
Requires-Python: >=3.12
|
|
10
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
-
Classifier: Operating System :: OS Independent
|
|
13
|
-
Classifier: Intended Audience :: Developers
|
|
14
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
15
|
-
Classifier: Topic :: Security
|
|
16
|
-
Requires-Dist: jinja2 (>=3.1.6)
|
|
17
|
-
Requires-Dist: pydantic (>=2.12.5)
|
|
18
|
-
Requires-Dist: pyyaml (>=6.0.3)
|
|
19
|
-
Requires-Dist: rich (>=14.3.3)
|
|
20
|
-
Requires-Dist: typer (>=0.24.1)
|
|
21
|
-
Project-URL: Documentation, https://github.com/crackedngineer/code-ur-cv/
|
|
22
|
-
Project-URL: Homepage, https://github.com/crackedngineer/code-ur-cv
|
|
23
|
-
Project-URL: Repository, https://github.com/crackedngineer/code-ur-cv
|
|
24
|
-
Description-Content-Type: text/markdown
|
|
25
|
-
|
|
26
|
-
# Subhomoy Roy Choudhury Resume
|
|
27
|
-
|
|
28
|
-
## Local Setup
|
|
29
|
-
|
|
30
|
-
To build and compile the resume locally using Docker:
|
|
31
|
-
|
|
32
|
-
1. **Build the Docker image:**
|
|
33
|
-
```bash
|
|
34
|
-
make docker-build
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
2. **Compile the LaTeX resume inside the container:**
|
|
38
|
-
```bash
|
|
39
|
-
docker run --rm -v $(pwd):/workspace ghcr.io/youruser/latex-ci:latest make compile
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
> Ensure you have [Docker](https://www.docker.com/) and [Make](https://www.gnu.org/software/make/) installed on your system.
|
|
43
|
-
|
|
44
|
-
The compiled PDF will be available in your project directory.
|
codeurcv-0.3.0/README.md
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Subhomoy Roy Choudhury Resume
|
|
2
|
-
|
|
3
|
-
## Local Setup
|
|
4
|
-
|
|
5
|
-
To build and compile the resume locally using Docker:
|
|
6
|
-
|
|
7
|
-
1. **Build the Docker image:**
|
|
8
|
-
```bash
|
|
9
|
-
make docker-build
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
2. **Compile the LaTeX resume inside the container:**
|
|
13
|
-
```bash
|
|
14
|
-
docker run --rm -v $(pwd):/workspace ghcr.io/youruser/latex-ci:latest make compile
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
> Ensure you have [Docker](https://www.docker.com/) and [Make](https://www.gnu.org/software/make/) installed on your system.
|
|
18
|
-
|
|
19
|
-
The compiled PDF will be available in your project directory.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|