-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpython_keywords.py
68 lines (57 loc) · 2.1 KB
/
python_keywords.py
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
import importlib.util
import os
def load_keywords_or_builtins(file_path):
"""
Carrega palavras-chave ou funções embutidas de um arquivo Python.
Args:
file_path (str): O caminho para o arquivo Python.
Returns:
dict: Um dicionário de palavras-chave ou funções embutidas.
"""
spec = importlib.util.spec_from_file_location("module", file_path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
if hasattr(module, 'KEYWORDS'):
return module.KEYWORDS
elif hasattr(module, 'BUILTINS'):
return module.BUILTINS
else:
raise AttributeError(f"O arquivo {file_path} não possui 'KEYWORDS' ou 'BUILTINS'.")
def generate_table(data, title):
"""
Gera uma tabela Markdown a partir de um dicionário.
Args:
data (dict): O dicionário contendo os dados para a tabela.
title (str): O título da tabela.
Returns:
str: A tabela em formato Markdown.
"""
table = f"## {title}\n"
table += "| Português | Inglês |\n"
table += "| ---------------- | ------------ |\n"
for pt, en in data.items():
table += f"| {pt:<16} | {en:<12} |\n"
return table
def main():
"""
Função principal que carrega os arquivos de palavras-chave e funções embutidas,
gera tabelas Markdown e salva no arquivo 'tabelas.md'.
"""
keywords_dir = 'pypython/keywords'
tables = []
# Ordenar os arquivos pelo nome
filenames = sorted([f for f in os.listdir(keywords_dir) if f.endswith('.py') and f != '__init__.py'])
for filename in filenames:
file_path = os.path.join(keywords_dir, filename)
try:
data = load_keywords_or_builtins(file_path)
title = filename.replace('_', ' ').replace('.py', '').title()
tables.append(generate_table(data, title))
except AttributeError as e:
print(f"Erro ao carregar {file_path}: {e}")
with open('tabelas_keywords.md', 'w') as f:
for table in tables:
f.write(table)
f.write("\n")
if __name__ == "__main__":
main()