-
Notifications
You must be signed in to change notification settings - Fork 0
/
cv_en.qmd
208 lines (174 loc) · 6.78 KB
/
cv_en.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
---
format:
html:
self_contained: true
css: custom.css
---
# Marília Melo Favalesso
<p class="personal-infos">[\+55 45 99829-2469](https://wa.me/message/JUMS7WXLYPCUA1) | [marilia.melo.favalesso@gmail.com](marilia.melo.favalesso@gmail.com) | [linkedin.com/in/mariliafavalesso/](https://www.linkedin.com/in/mariliafavalesso/) | [github.com/mmfava](https://github.com/mmfava)</p>
<!---- Idioma ------>
```{python}
#| output: false
#| echo: false
idioma = 'EN'
```
<!---- Habilidades técnicas ------>
```{python}
#| output: asis
#| echo: false
# -------------------------------------------------
# Dicionário com as habilidades técnicas em diferentes idiomas
technical_skills = {
'PT': {
'title': '## Habilidades técnicas',
'languages': '<b>Linguagens</b>: Python, R, SQL <br>',
'libraries': '<b>Bibliotecas</b>: Matplotlib, NumPy, Pandas, Plotly, Scikit-learn, Seaborn, Tidymodels, Tidyverse <br>',
'tools': '<b>Outras ferramentas</b>: AWS, Azure DevOps, Docker, Git, GitHub, Google Cloud, Hadoop, Linux, MLFlow, Quarto <br>',
'keywords': '<b>Palavras-chave</b>: <i>Machine Learning</i>, Análises Estatísticas, Big Data, CI/CD, Versionamento, EDA, SIG'
},
'ES': {
'title': '## Habilidades técnicas',
'languages': '<b>Idiomas</b>: Python, R, SQL <br>',
'libraries': '<b>Bibliotecas</b>: Matplotlib, NumPy, Pandas, Plotly, Scikit-learn, Seaborn, Tidymodels, Tidyverse <br>',
'tools': '<b>Otras herramientas</b>: AWS, Azure DevOps, Docker, Git, GitHub, Google Cloud, Hadoop, Linux, MLFlow, Quarto <br>',
'keywords': '<b>Palabras clave</b>: <i>Machine Learning</i>, Estadística, Big Data, CI/CD, Control de versiones, EDA, SIG'
},
'EN': {
'title': '## Technical Skills',
'languages': '<b>Languages</b>: Python, R, SQL <br>',
'libraries': '<b>Libraries</b>: Matplotlib, NumPy, Pandas, Plotly, Scikit-learn, Seaborn, Tidymodels, Tidyverse <br>',
'tools': '<b>Other tools</b>: AWS, Azure DevOps, Docker, Git, GitHub, Google Cloud, Hadoop, Linux, MLFlow, Quarto <br>',
'keywords': '<b>Keywords</b>: <i>Machine Learning</i>, Statistical Analysis, Big Data, CI/CD, Versioning, Data Preparation and Visualization, GIS'
}
}
# Função para imprimir as habilidades técnicas no idioma especificado
def print_technical_skills(language):
if language in technical_skills:
skills = technical_skills[language]
output = f"{skills['title']}\n\n{skills['languages']}{skills['libraries']}{skills['tools']}{skills['keywords']}"
return print(output)
else:
return "Idioma não suportado."
# Resultados
print_technical_skills(idioma)
```
<!---- Experiências e educação ------>
```{python}
#| output: asis
#| echo: false
# -------------------------------------------------
# Template base para cada tipo de experiência
template_content = """
## {type}
{entries}
"""
# Template para cada entrada
entry_template_content = """
<div class="flex-container-1">
<p class="left-aligned"><b>{what} | {where_1}</b></p>
<p class="right-aligned">{region} ({country})</p>
</div>
<div class="flex-container-2">
<p class="left-aligned"><i>{where_2}</i></p>
<p class="right-aligned">{start} - {end}</p>
</div>
{details_1}
"""
# Função para gerar a lista de entradas formatadas para cada tipo
def generate_entries(entries):
formatted_entries = ""
for _, entry in entries.iterrows():
# Processar apenas se todos os detalhes estiverem presentes
# TODO: futuramente, possível adicionar as outras colunas
# referentes a detalhes - por isso details é lista.
details = [entry['details_1']]
details = [detail for detail in details if pd.notnull(detail)]
details_formatted = " <br>\n".join(details)
# Adicionar a entrada formatada
formatted_entries += entry_template_content.format(
what=entry['what'],
where_1=entry['where_1'],
region=entry['region'],
country=entry['country'],
where_2=entry['where_2'],
start=entry['start'],
end=entry['end'] if entry['end'] != 'current' else 'Atual',
details_1=details_formatted,
details_2='',
details_3=''
)
return formatted_entries.strip()
# Bibliotecas
import pandas as pd
# Importar a planilha com as informações do currículo,
# especificaente a folha "sections"
import pandas as pd
# Link para exportar a planilha como CSV
csv_url = 'https://docs.google.com/spreadsheets/d/1h-kFMxdNLBDoanj2kMOimbAMGKqmacwB8Kc_rAcP9Xo/export?format=csv'
# Ler a planilha diretamente no pandas
df = pd.read_csv(csv_url)
# Filtrar para o idioma que será trabalhado
df = df.query(f"lenguage == '{idioma}'")
# Order do mais antigo para o mais novo
# e na ordem que os tópicos devem aparecer no currículo
# (1 = Experiência; 2 = Educação)
df = df.sort_values('start', ascending=False).sort_values('order')
# Atualizar o agrupamento para manter a ordem da coluna 'order'
grouped = df.groupby(['type', 'order'], sort=False)
# Gerar a saída formatada para cada tipo, mantendo a ordem definida pela coluna 'order'
output = ""
for (type_group, _), entries in grouped:
output += template_content.format(
type=type_group,
entries=generate_entries(entries)
)
# Resultados
print(output)
```
<!---- Idiomas ------>
```{python}
#| output: asis
#| echo: false
# --------------------------------------------------
# Dicionário com a seção de idiomas em diferentes idiomas
language_skills = {
'PT': {
'title': '## Idiomas',
'languages': '<b>Português</b> (Nativo), <b>Espanhol</b> (Intermediário) e <b>Inglês</b> (Intermediário)'
},
'ES': {
'title': '## Idiomas',
'languages': '<b>Portugués</b> (Nativo), <b>Español</b> (Intermedio) y <b>Inglés</b> (Intermedio)'
},
'EN': {
'title': '## Languages',
'languages': '<b>Portuguese</b> (Native), <b>Spanish</b> (Intermediate) and <b>English</b> (Intermediate)'
}
}
# Função para imprimir a seção de idiomas no idioma especificado
def print_language_skills(language=idioma):
skills = language_skills.get(language, None)
if skills:
# Construir a saída formatada
output = f"{skills['title']}\n\n{skills['languages']}"
return print(output)
else:
return "Language not supported."
# Resultado
print_language_skills(idioma)
```
<!---- Date/hour ------>
```{python}
#| output: false
#| echo: false
from datetime import datetime
# Obter a data atual
data_atual = datetime.now()
# Formatar a data no estilo 'DD/MM/YYYY'
data_formatada = data_atual.strftime('%d/%m/%Y')
```
<div class="right-aligned"><small>
Made with Python and Quarto <br>
[github/mmfava/resume](https://github.com/mmfava/resume)
<br>
</small></div>