Skip to content

Commit 6ca1f99

Browse files
v0.4.0: GUI funcional, suporte a icones e automação de build
1 parent 3095cc0 commit 6ca1f99

6 files changed

Lines changed: 79 additions & 80 deletions

File tree

.gitignore

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,51 +12,69 @@ build/
1212
*.so
1313
*.dylib
1414

15+
# Ignorar o script de build se você não quiser que outros o vejam
16+
# Caso queira manter no GitHub, remova a linha abaixo:
17+
# build_canivete.bat
18+
1519
# ====================================
1620
# 2. CACHE E AMBIENTE PYTHON
1721
# ====================================
1822
# Cache de bytecode (criado ao rodar o Python):
1923
__pycache__/
20-
*.pyc
24+
*.py[cod]
25+
*$py.class
2126

2227
# Ambientes virtuais (muito grandes e não devem ser versionados):
2328
venv/
2429
.venv/
2530
env/
31+
ENV/
32+
33+
# Bibliotecas instaladas via pip no modo editável
34+
*.egg-info/
35+
.installed.cfg
36+
*.egg
37+
MANIFEST
2638

2739
# ====================================
2840
# 3. METADADOS, LOGS E SENHAS (Dados Sensíveis)
2941
# ====================================
30-
# Logs de testes, diagnóstico ou erro (podem conter caminhos do sistema ou dados):
42+
# Logs de testes, diagnóstico ou erro:
3143
*.log
3244
*.err
3345
*.out
3446
logs/
35-
*.egg-info/
36-
dist/
37-
build/
3847

39-
40-
# Arquivos de configuração/variáveis de ambiente que contêm chaves ou senhas:
48+
# Arquivos de configuração/variáveis de ambiente (CHAVES E SENHAS):
4149
.env
4250
.flaskenv
4351
config.local.py
4452
settings_local.py
4553
secrets.py
4654
keys.json
55+
credentials*
4756

4857
# Arquivos de dados temporários e de teste:
49-
# Se seus testes criam arquivos de saída, inclua-os aqui:
5058
test_output/
5159
*.tmp
5260
*.temp
5361
test_results.json
5462

5563
# ====================================
56-
# 4. CONFIGURAÇÕES DE EDITOR (VS Code e Outros)
64+
# 4. CONFIGURAÇÕES DE EDITOR E SISTEMA
5765
# ====================================
58-
# Configurações específicas do usuário/ambiente do VS Code:
66+
# Configurações específicas do VS Code:
5967
.vscode/
68+
!.vscode/settings.json
69+
!.vscode/tasks.json
70+
!.vscode/launch.json
71+
!.vscode/extensions.json
72+
73+
# Arquivos do sistema (Windows/Mac)
74+
Thumbs.db
75+
desktop.ini
76+
.DS_Store
6077

6178
# Configurações do Sublime Text:
6279
*.sublime-workspace
80+
*.sublime-project

PToolKit Canivete Suico.spec

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,50 @@
11
# -*- mode: python ; coding: utf-8 -*-
22

3+
block_cipher = None
4+
5+
# Configuração de inclusão de arquivos estáticos (Imagens/Ícones)
6+
# O PyInstaller precisa saber onde estão os assets da sua v0.4.0
7+
added_files = [
8+
('src/canivete/docs/*', 'canivete/docs'), # Inclui imagens da interface
9+
]
310

411
a = Analysis(
5-
['src\\canivete.py'],
12+
['src/canivete/gui.py'], # Novo ponto de entrada (Interface Gráfica)
613
pathex=[],
714
binaries=[],
8-
datas=[],
9-
hiddenimports=[],
15+
datas=added_files, # Adiciona os assets configurados acima
16+
hiddenimports=['customtkinter'], # Garante a inclusão do framework visual
1017
hookspath=[],
1118
hooksconfig={},
1219
runtime_hooks=[],
1320
excludes=[],
21+
win_no_prefer_redirects=False,
22+
win_private_assemblies=False,
23+
cipher=block_cipher,
1424
noarchive=False,
15-
optimize=0,
1625
)
17-
pyz = PYZ(a.pure)
26+
27+
pyz = PYZ(a.pure, a.cipher)
1828

1929
exe = EXE(
2030
pyz,
2131
a.scripts,
2232
a.binaries,
33+
a.zipfiles,
2334
a.datas,
2435
[],
25-
name='PToolKit Canivete Suico',
36+
name='Canivete Suico Toolkit', # Nome final do seu .exe
2637
debug=False,
2738
bootloader_ignore_signals=False,
2839
strip=False,
29-
upx=True,
40+
upx=True, # Comprime o executável
3041
upx_exclude=[],
3142
runtime_tmpdir=None,
32-
console=False,
43+
console=False, # Define como FALSE para não abrir o CMD
3344
disable_windowed_traceback=False,
3445
argv_emulation=False,
3546
target_arch=None,
3647
codesign_identity=None,
3748
entitlements_file=None,
38-
)
49+
icon='src/canivete/docs/icon.ico' # Caminho opcional para o ícone do .exe
50+
)

README.md

Lines changed: 10 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ O **Canivete Suíço** é uma solução modular de alto desempenho projetada par
3434
<a href="src/docs/main_gui.png">
3535
<img src="src/docs/main_gui.png" width="400px" alt="Source Architecture" style="border-radius: 8px;"/>
3636
</a>
37-
<br><sub><b>Enterprise Project Architecture (src-layout)</b></sub>
37+
<br><sub><b>Interface v0.4.0 Dashboard</b></sub>
3838
</td>
3939
</tr>
4040
</table>
@@ -56,68 +56,13 @@ O **Canivete Suíço** é uma solução modular de alto desempenho projetada par
5656
* **Maintenance Suite:** Implementação de triggers para integridade de sistema (SFC, DISM).
5757
* **Print Services:** Módulo especializado para gestão de Spooler e patches de registro.
5858
* **CI/CD Ready:** Integração com GitHub Actions para validação automatizada de pacotes.
59-
6059
---
61-
## 📂 Release Notes - v0.4.0 (GUI Milestone)
62-
A estrutura segue rigorosos padrões de engenharia de software para facilitar a manutenção e escalabilidade:
63-
---
64-
65-
# 🔪 Canivete Suíço - Network Toolkit (v0.4.0)
66-
67-
<p align="center">
68-
<img src="https://img.shields.io/badge/Status-Stable-32CD32?style=for-the-badge">
69-
<img src="https://img.shields.io/badge/Release-v0.4.0-blue?style=for-the-badge">
70-
<img src="https://img.shields.io/badge/Python-3.9+-yellow?style=for-the-badge&logo=python">
71-
<img src="https://img.shields.io/badge/Platform-Windows%20%7C%20Linux-lightgrey?style=for-the-badge">
72-
<img src="https://img.shields.io/badge/License-MIT-purple?style=for-the-badge">
73-
</p>
74-
75-
O **Canivete Suíço** é uma solução modular de alto desempenho projetada para engenheiros de sistemas e administradores de rede. Esta suíte centraliza utilitários críticos de diagnóstico, manutenção de infraestrutura e automação de rotinas operacionais em uma interface unificada de última geração.
76-
77-
---
78-
79-
## 📸 Enterprise Dashboard Preview
80-
81-
<p align="center">
82-
<a href="https://github.com/joaopedrosvr97-hub/Canivete-Sui-o-Python-Toolkit">
83-
<img src="src/docs/interface.png" alt="Main Interface" width="850" style="border-radius: 10px; border: 1px solid #30363d;">
84-
</a>
85-
<br>
86-
<i><b>System Core:</b> Interface moderna baseada em CustomTkinter com suporte a temas dinâmicos.</i>
87-
</p>
88-
89-
<table align="center" style="border: none;">
90-
<tr>
91-
<td align="center" style="border: none;">
92-
<a href="src/docs/config.png">
93-
<img src="src/docs/config.png" width="400px" alt="OS Management" style="border-radius: 8px;"/>
94-
</a>
95-
<br><sub><b>OS Management & Maintenance</b></sub>
96-
</td>
97-
<td align="center" style="border: none;">
98-
<a href="src/docs/main_gui.png">
99-
<img src="src/docs/main_gui.png" width="400px" alt="Source Architecture" style="border-radius: 8px;"/>
100-
</a>
101-
<br><sub><b>Interface v0.4.0 Dashboard</b></sub>
102-
</td>
103-
</tr>
104-
</table>
105-
106-
---
107-
108-
## 🚀 Deployment & Quick Start
109-
110-
### Requisitos de Ambiente
111-
* Terminal com **Privilégios Elevados** (Run as Administrator / Sudo).
112-
* Interpretador Python 3.9 ou superior instalado.
113-
11460
### Procedimento de Instalação (Windows/Linux)
11561

116-
```bash
117-
# 1. Clonagem do Repositório
62+
#1. Clonagem do Repositório
11863
git clone https://github.com/joaopedrosvr97-hub/Python-Toolkit.git
119-
# 2. Navegação para o Diretório de Build
120-
# Nota: O caminho deve ser seguido rigorosamente para localizar o pyproject.toml
64+
2. Navegação para o Diretório de Build
65+
Nota: O caminho deve ser seguido rigorosamente para localizar o pyproject.toml
12166
cd Canivete-Suico-Network-Toolkit/Python-Toolkit/Python-Toolkit
12267

12368
# 3. Instalação do Pacote em Modo Editável (Developer Mode)
@@ -126,9 +71,13 @@ pip install -e .
12671
# 4. Inicialização do Binário
12772
canivete-gui
12873

129-
📂 Arquitetura do Sistema (Project Blueprint)
74+
---
75+
76+
## 📂 Arquitetura do Sistema (Project Blueprint)
77+
78+
A estrutura segue rigorosos padrões de engenharia de software para facilitar a manutenção e escalabilidade, garantindo isolamento entre o core da aplicação e os scripts de distribuição.
79+
13080

131-
A estrutura segue o padrão **src-layout**, garantindo isolamento entre o core da aplicação e os scripts de distribuição.
13281

13382
```text
13483
📦 Python-Toolkit

build_canivete.bat

Whitespace-only changes.

src/canivete/gui.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
from canivete.core.system import system_info, is_admin
99
import subprocess
1010
import re
11+
import os
12+
import sys
1113

1214
# Configurações visuais
1315
ctk.set_appearance_mode("Dark")
@@ -20,6 +22,24 @@ def __init__(self):
2022
self.title("Canivete Suíço Network Toolkit - v0.4.0")
2123
self.geometry("1100x700")
2224

25+
# --- CONFIGURAÇÃO DE ÍCONE (SUPORTE A SCRIPT E .EXE) ---
26+
if getattr(sys, 'frozen', False):
27+
# Se rodando como executável
28+
base_path = sys._MEIPASS
29+
else:
30+
# Se rodando como script .py
31+
# Caminho baseado na estrutura: src/canivete/gui.py -> ícone em src/docs/icon.ico
32+
base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
33+
34+
icon_path = os.path.join(base_path, "docs", "icon.ico")
35+
36+
if os.path.exists(icon_path):
37+
try:
38+
self.iconbitmap(icon_path)
39+
except Exception:
40+
pass # Evita que o programa feche se o ícone falhar
41+
# -----------------------------------------------------
42+
2343
# Configuração de Grid
2444
self.grid_columnconfigure(1, weight=1)
2545
self.grid_rowconfigure(0, weight=1)

src/docs/icon.ico

22.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)