Arham-Resume 1.0.0__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.
- arham_resume-1.0.0/Arham_Resume.egg-info/PKG-INFO +47 -0
- arham_resume-1.0.0/Arham_Resume.egg-info/SOURCES.txt +10 -0
- arham_resume-1.0.0/Arham_Resume.egg-info/dependency_links.txt +1 -0
- arham_resume-1.0.0/Arham_Resume.egg-info/entry_points.txt +2 -0
- arham_resume-1.0.0/Arham_Resume.egg-info/top_level.txt +1 -0
- arham_resume-1.0.0/PKG-INFO +47 -0
- arham_resume-1.0.0/README.md +32 -0
- arham_resume-1.0.0/arham_resume/__init__.py +6 -0
- arham_resume-1.0.0/arham_resume/py.typed +0 -0
- arham_resume-1.0.0/arham_resume/resume.py +257 -0
- arham_resume-1.0.0/pyproject.toml +30 -0
- arham_resume-1.0.0/setup.cfg +4 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: Arham-Resume
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: My resume, served as a pip package.
|
|
5
|
+
Author-email: Arham Shah <arhamswapnilshah@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/ArhamShah01
|
|
8
|
+
Keywords: resume,cv,arham,shah
|
|
9
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Requires-Python: >=3.7
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
|
|
16
|
+
# Arham-Resume
|
|
17
|
+
|
|
18
|
+
My resume, served as a pip package. 🎓
|
|
19
|
+
|
|
20
|
+
## Installation
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pip install Arham-Resume
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Usage
|
|
27
|
+
|
|
28
|
+
### As a CLI command
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
arham-resume
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### In Python
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
import arham_resume
|
|
38
|
+
arham_resume.display_resume()
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Why?
|
|
42
|
+
|
|
43
|
+
Because every developer needs a resume, and what better way to share it than through the Python package index?
|
|
44
|
+
|
|
45
|
+
## License
|
|
46
|
+
|
|
47
|
+
MIT
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
Arham_Resume.egg-info/PKG-INFO
|
|
4
|
+
Arham_Resume.egg-info/SOURCES.txt
|
|
5
|
+
Arham_Resume.egg-info/dependency_links.txt
|
|
6
|
+
Arham_Resume.egg-info/entry_points.txt
|
|
7
|
+
Arham_Resume.egg-info/top_level.txt
|
|
8
|
+
arham_resume/__init__.py
|
|
9
|
+
arham_resume/py.typed
|
|
10
|
+
arham_resume/resume.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
arham_resume
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: Arham-Resume
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: My resume, served as a pip package.
|
|
5
|
+
Author-email: Arham Shah <arhamswapnilshah@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/ArhamShah01
|
|
8
|
+
Keywords: resume,cv,arham,shah
|
|
9
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Requires-Python: >=3.7
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
|
|
16
|
+
# Arham-Resume
|
|
17
|
+
|
|
18
|
+
My resume, served as a pip package. 🎓
|
|
19
|
+
|
|
20
|
+
## Installation
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pip install Arham-Resume
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Usage
|
|
27
|
+
|
|
28
|
+
### As a CLI command
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
arham-resume
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### In Python
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
import arham_resume
|
|
38
|
+
arham_resume.display_resume()
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Why?
|
|
42
|
+
|
|
43
|
+
Because every developer needs a resume, and what better way to share it than through the Python package index?
|
|
44
|
+
|
|
45
|
+
## License
|
|
46
|
+
|
|
47
|
+
MIT
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Arham-Resume
|
|
2
|
+
|
|
3
|
+
My resume, served as a pip package. 🎓
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install Arham-Resume
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
### As a CLI command
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
arham-resume
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### In Python
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
import arham_resume
|
|
23
|
+
arham_resume.display_resume()
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Why?
|
|
27
|
+
|
|
28
|
+
Because every developer needs a resume, and what better way to share it than through the Python package index?
|
|
29
|
+
|
|
30
|
+
## License
|
|
31
|
+
|
|
32
|
+
MIT
|
|
File without changes
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"""
|
|
2
|
+
arham_resume/resume.py
|
|
3
|
+
Renders Arham Shah's resume in the terminal with ANSI styling.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import os
|
|
7
|
+
import sys
|
|
8
|
+
import textwrap
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# ── ANSI helpers ──────────────────────────────────────────────────────────────
|
|
12
|
+
|
|
13
|
+
BOLD = "\033[1m"
|
|
14
|
+
DIM = "\033[2m"
|
|
15
|
+
ITALIC = "\033[3m"
|
|
16
|
+
UNDERLINE = "\033[4m"
|
|
17
|
+
RESET = "\033[0m"
|
|
18
|
+
|
|
19
|
+
# Foreground colors
|
|
20
|
+
RED = "\033[31m"
|
|
21
|
+
GREEN = "\033[32m"
|
|
22
|
+
YELLOW = "\033[33m"
|
|
23
|
+
BLUE = "\033[34m"
|
|
24
|
+
MAGENTA = "\033[35m"
|
|
25
|
+
CYAN = "\033[36m"
|
|
26
|
+
WHITE = "\033[97m"
|
|
27
|
+
|
|
28
|
+
# Background colors
|
|
29
|
+
BG_BLUE = "\033[44m"
|
|
30
|
+
BG_MAGENTA = "\033[45m"
|
|
31
|
+
BG_CYAN = "\033[46m"
|
|
32
|
+
BG_WHITE = "\033[47m"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _line(char="─", width=78):
|
|
36
|
+
return f"{DIM}{char * width}{RESET}"
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _header(text, color=CYAN):
|
|
40
|
+
"""Section header with colored background bar."""
|
|
41
|
+
bar = f"{BG_BLUE}{BOLD}{WHITE} {text.upper()} {RESET}"
|
|
42
|
+
padding = "─" * (76 - len(text))
|
|
43
|
+
return f"{bar} {DIM}{padding}{RESET}"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _bullet(text, indent=4):
|
|
47
|
+
"""Styled bullet point."""
|
|
48
|
+
pad = " " * indent
|
|
49
|
+
return f"{pad}{GREEN}● {RESET}{text}"
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def _kv(key, value):
|
|
53
|
+
"""Key: Value pair with colored key."""
|
|
54
|
+
return f" {BOLD}{CYAN}{key}:{RESET} {value}"
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def _link(label, url):
|
|
58
|
+
return f"{UNDERLINE}{BLUE}{label}{RESET} {DIM}({url}){RESET}"
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
# ── Resume Data ───────────────────────────────────────────────────────────────
|
|
62
|
+
|
|
63
|
+
def _build_resume():
|
|
64
|
+
lines = []
|
|
65
|
+
w = 80 # terminal width
|
|
66
|
+
|
|
67
|
+
# ── Name & title ──────────────────────────────────────────────────────
|
|
68
|
+
lines.append("")
|
|
69
|
+
banner = [
|
|
70
|
+
r" █████╗ ██████╗ ██╗ ██╗ █████╗ ███╗ ███╗ ███████╗██╗ ██╗ █████╗ ██╗ ██╗",
|
|
71
|
+
r"██╔══██╗██╔══██╗██║ ██║██╔══██╗████╗ ████║ ██╔════╝██║ ██║██╔══██╗██║ ██║",
|
|
72
|
+
r"███████║██████╔╝███████║███████║██╔████╔██║ ███████╗███████║███████║███████║",
|
|
73
|
+
r"██╔══██║██╔══██╗██╔══██║██╔══██║██║╚██╔╝██║ ╚════██║██╔══██║██╔══██║██╔══██║",
|
|
74
|
+
r"██║ ██║██║ ██║██║ ██║██║ ██║██║ ╚═╝ ██║ ███████║██║ ██║██║ ██║██║ ██║",
|
|
75
|
+
r"╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝",
|
|
76
|
+
]
|
|
77
|
+
for row in banner:
|
|
78
|
+
lines.append(f"{BOLD}{RED}{row:^{w}}{RESET}")
|
|
79
|
+
subtitle = "CSE Sophomore • VIT Vellore • ML & Data Science Enthusiast"
|
|
80
|
+
lines.append(f"{DIM}{subtitle:^{w}}{RESET}")
|
|
81
|
+
lines.append("")
|
|
82
|
+
lines.append(_line("═"))
|
|
83
|
+
lines.append("")
|
|
84
|
+
|
|
85
|
+
# ── Contact ───────────────────────────────────────────────────────────
|
|
86
|
+
lines.append(_header("CONTACT"))
|
|
87
|
+
lines.append("")
|
|
88
|
+
lines.append(_bullet(f"📞 +91 8585823824"))
|
|
89
|
+
lines.append(_bullet(f"✉️ arhamswapnilshah@gmail.com"))
|
|
90
|
+
lines.append(_bullet(f"🐙 {_link('github.com/ArhamShah01', 'https://github.com/ArhamShah01')}"))
|
|
91
|
+
lines.append(_bullet(f"💼 {_link('linkedin.com/in/arhamshah01', 'https://linkedin.com/in/arhamshah01')}"))
|
|
92
|
+
lines.append(_bullet(f"📍 New Delhi, India 110059"))
|
|
93
|
+
lines.append("")
|
|
94
|
+
|
|
95
|
+
# ── About ─────────────────────────────────────────────────────────────
|
|
96
|
+
lines.append(_header("ABOUT ME"))
|
|
97
|
+
lines.append("")
|
|
98
|
+
about = (
|
|
99
|
+
"Computer Science undergraduate at VIT Vellore with a strong focus on "
|
|
100
|
+
"data science, machine learning, and AI systems. I build end-to-end ML "
|
|
101
|
+
"pipelines, from exploratory data analysis to feature engineering and "
|
|
102
|
+
"model evaluation, with hands-on experience in time series forecasting, "
|
|
103
|
+
"classification, and geospatial analysis. I actively explore generative "
|
|
104
|
+
"AI and large language models."
|
|
105
|
+
)
|
|
106
|
+
for wrapped in textwrap.wrap(about, width=70):
|
|
107
|
+
lines.append(f" {wrapped}")
|
|
108
|
+
lines.append("")
|
|
109
|
+
|
|
110
|
+
# ── Education ─────────────────────────────────────────────────────────
|
|
111
|
+
lines.append(_header("EDUCATION"))
|
|
112
|
+
lines.append("")
|
|
113
|
+
lines.append(f" {BOLD}Bachelor of Technology (2025–2029){RESET}")
|
|
114
|
+
lines.append(f" {ITALIC}Computer Science and Engineering{RESET}")
|
|
115
|
+
lines.append(f" Vellore Institute of Technology, Vellore, TN, India")
|
|
116
|
+
lines.append("")
|
|
117
|
+
lines.append(f" {BOLD}Class XII — 87.4% (2024–2025){RESET}")
|
|
118
|
+
lines.append(f" P.D. Model Sr. Sec. School, New Delhi, Delhi, India")
|
|
119
|
+
lines.append("")
|
|
120
|
+
lines.append(f" {BOLD}Class X — 92.8% (2022–2023){RESET}")
|
|
121
|
+
lines.append(f" Narayana E-Techno School, Gurugram, Haryana, India")
|
|
122
|
+
lines.append("")
|
|
123
|
+
|
|
124
|
+
# ── Skills ────────────────────────────────────────────────────────────
|
|
125
|
+
lines.append(_header("SKILLS"))
|
|
126
|
+
lines.append("")
|
|
127
|
+
skills = {
|
|
128
|
+
"Languages": "Python, C/C++, Java, SQL, R",
|
|
129
|
+
"Data Science": "EDA, NumPy, Pandas/GeoPandas, Matplotlib/Seaborn",
|
|
130
|
+
"Machine Learning": "Scikit-learn, Logistic Regression, Random Forest, LSTM",
|
|
131
|
+
"AI": "Generative AI, Prompt Engineering",
|
|
132
|
+
"Dev Tools": "Linux, Git/GitHub, Claude Code/Codex",
|
|
133
|
+
"Web Dev": "React, Supabase, Netlify",
|
|
134
|
+
}
|
|
135
|
+
for cat, items in skills.items():
|
|
136
|
+
lines.append(f" {BOLD}{YELLOW}{cat}:{RESET} {items}")
|
|
137
|
+
lines.append("")
|
|
138
|
+
|
|
139
|
+
# ── Projects ──────────────────────────────────────────────────────────
|
|
140
|
+
lines.append(_header("PROJECTS"))
|
|
141
|
+
lines.append("")
|
|
142
|
+
|
|
143
|
+
projects = [
|
|
144
|
+
{
|
|
145
|
+
"name": "MedhaVIT — AI Quiz Platform",
|
|
146
|
+
"url": "https://medhavit.netlify.app",
|
|
147
|
+
"repo": "https://github.com/ArhamShah01/MedhaVIT",
|
|
148
|
+
"desc": (
|
|
149
|
+
"Full-stack AI-powered quiz platform (React, Supabase, Groq AI, Netlify) "
|
|
150
|
+
"with role-based dashboards for teachers and students. Teachers generate "
|
|
151
|
+
"quizzes via Bloom's taxonomy-aware AI; students take them in a cheat-proof "
|
|
152
|
+
"environment with multi-layer anti-cheat. Includes live/scheduled quiz "
|
|
153
|
+
"management, analytics, and a gamified badge system."
|
|
154
|
+
),
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "Offline Reverse Geocoding for India",
|
|
158
|
+
"repo": "https://github.com/ArhamShah01/Offline-Reverse-Geocoding-for-India",
|
|
159
|
+
"desc": (
|
|
160
|
+
"Fully offline reverse geocoding pipeline using Python, pandas, GeoPandas, "
|
|
161
|
+
"and Shapely with 6+ GIS datasets to map coordinates into 6 fields including "
|
|
162
|
+
"State, District, PIN Code, and Capitals. 100% offline, zero API dependency."
|
|
163
|
+
),
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"name": "TEDED — Text Editor in C",
|
|
167
|
+
"repo": "https://github.com/ArhamShah01/Teded",
|
|
168
|
+
"desc": (
|
|
169
|
+
"Terminal text editor in C for Linux using raw terminal mode and ANSI escape "
|
|
170
|
+
"sequences. Multi-line editing, scrolling, file I/O, and status rendering "
|
|
171
|
+
"across 6 modular source files with zero external libraries."
|
|
172
|
+
),
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"name": "Telecom Churn Prediction",
|
|
176
|
+
"repo": "https://github.com/ArhamShah01/ML-churn-prediction",
|
|
177
|
+
"desc": (
|
|
178
|
+
"Customer churn prediction on 7,043 telecom records using Logistic Regression "
|
|
179
|
+
"and Random Forest. Achieved 79.9% accuracy and 0.8378 ROC-AUC across 20 "
|
|
180
|
+
"features to identify key churn drivers."
|
|
181
|
+
),
|
|
182
|
+
},
|
|
183
|
+
]
|
|
184
|
+
|
|
185
|
+
for p in projects:
|
|
186
|
+
lines.append(f" {BOLD}{MAGENTA}{p['name']}{RESET}")
|
|
187
|
+
link_parts = []
|
|
188
|
+
if "url" in p:
|
|
189
|
+
link_parts.append(f"🌐 {_link('Live', p['url'])}")
|
|
190
|
+
link_parts.append(f"📂 {_link('GitHub', p['repo'])}")
|
|
191
|
+
lines.append(f" {' '.join(link_parts)}")
|
|
192
|
+
for wrapped in textwrap.wrap(p["desc"], width=70, initial_indent=" ", subsequent_indent=" "):
|
|
193
|
+
lines.append(f" {DIM}{wrapped.strip()}{RESET}")
|
|
194
|
+
lines.append("")
|
|
195
|
+
|
|
196
|
+
# ── Achievements ──────────────────────────────────────────────────────
|
|
197
|
+
lines.append(_header("ACHIEVEMENTS"))
|
|
198
|
+
lines.append("")
|
|
199
|
+
lines.append(_bullet(
|
|
200
|
+
f"{BOLD}Gold Certificate — WorldQuant IQC 2026{RESET}\n"
|
|
201
|
+
" Ranked among top global participants in quantitative research & alpha generation."
|
|
202
|
+
))
|
|
203
|
+
lines.append(_bullet(
|
|
204
|
+
f"{BOLD}LIMIT (2026 & 2025){RESET}\n"
|
|
205
|
+
" AIR 11 (2026) & AIR 32 (2025), Indian Statistical Institute Bangalore."
|
|
206
|
+
))
|
|
207
|
+
lines.append("")
|
|
208
|
+
|
|
209
|
+
# ── Certificates ──────────────────────────────────────────────────────
|
|
210
|
+
lines.append(_header("CERTIFICATES"))
|
|
211
|
+
lines.append("")
|
|
212
|
+
certs = [
|
|
213
|
+
"Google — AI Essentials Specialization",
|
|
214
|
+
"IBM — Machine Learning with Python",
|
|
215
|
+
"NPTEL — Python with Data Science",
|
|
216
|
+
"IBM — Introduction to Data Analytics",
|
|
217
|
+
"Google — Generative AI Leader",
|
|
218
|
+
"Anthropic — Claude Code in Action",
|
|
219
|
+
"Microsoft — Boost Productivity with GitHub Copilot",
|
|
220
|
+
"Google Cloud — Intro to Generative AI",
|
|
221
|
+
"Google — Crash Course on Python",
|
|
222
|
+
]
|
|
223
|
+
for c in certs:
|
|
224
|
+
lines.append(_bullet(c))
|
|
225
|
+
lines.append("")
|
|
226
|
+
lines.append(_line("═"))
|
|
227
|
+
lines.append("")
|
|
228
|
+
|
|
229
|
+
return "\n".join(lines)
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
# ── Public API ────────────────────────────────────────────────────────────────
|
|
233
|
+
|
|
234
|
+
def display_resume():
|
|
235
|
+
"""Print the resume to stdout."""
|
|
236
|
+
print(_build_resume())
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
def main():
|
|
240
|
+
"""CLI entry point for `arham-resume`."""
|
|
241
|
+
import shutil
|
|
242
|
+
output = _build_resume()
|
|
243
|
+
# If output is taller than the terminal, use a pager
|
|
244
|
+
term_height = shutil.get_terminal_size().lines
|
|
245
|
+
if output.count("\n") + 1 > term_height:
|
|
246
|
+
import subprocess
|
|
247
|
+
pager = subprocess.Popen(
|
|
248
|
+
["less", "-R"],
|
|
249
|
+
stdin=subprocess.PIPE,
|
|
250
|
+
)
|
|
251
|
+
pager.communicate(input=output.encode())
|
|
252
|
+
else:
|
|
253
|
+
print(output)
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
if __name__ == "__main__":
|
|
257
|
+
main()
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "Arham-Resume"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "My resume, served as a pip package."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
requires-python = ">=3.7"
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Arham Shah", email = "arhamswapnilshah@gmail.com"},
|
|
14
|
+
]
|
|
15
|
+
keywords = ["resume", "cv", "arham", "shah"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 5 - Production/Stable",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
[project.scripts]
|
|
24
|
+
arham-resume = "arham_resume.resume:main"
|
|
25
|
+
|
|
26
|
+
[tool.setuptools.packages.find]
|
|
27
|
+
include = ["arham_resume*"]
|
|
28
|
+
|
|
29
|
+
[project.urls]
|
|
30
|
+
Homepage = "https://github.com/ArhamShah01"
|