Skip to content

Commit 5dc95df

Browse files
committed
Update Engines Standalone Module documentation and code
1 parent 33b8019 commit 5dc95df

3 files changed

Lines changed: 204 additions & 31 deletions

File tree

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
# 🏭 Engines Standalone Module
2+
3+
> Module autonome pour gérer et exécuter les moteurs de compilation PyCompiler ARK++ sans lancer l'application principale.
4+
5+
## 📋 Description
6+
7+
Ce module permet d'exécuter les moteurs de compilation (PyInstaller, Nuitka, cx_Freeze) de manière autonome, avec une interface graphique complète ou un mode CLI.
8+
9+
## 🚀 Utilisation
10+
11+
### Interface Graphique (GUI)
12+
13+
```bash
14+
# Lancer l'interface GUI
15+
python -m Core.engines_loader.engines_only_mod
16+
17+
# Avec un workspace spécifique
18+
python -m Core.engines_loader.engines_only_mod /path/to/workspace
19+
20+
# Avec un thème spécifique
21+
python -m Core.engines_loader.engines_only_mod --theme light
22+
python -m Core.engines_loader.engines_only_mod --theme dark
23+
24+
# Avec une langue spécifique
25+
python -m Core.engines_loader.engines_only_mod --language fr
26+
python -m Core.engines_loader.engines_only_mod --language en
27+
```
28+
29+
### Mode CLI
30+
31+
```bash
32+
# Lister les moteurs disponibles
33+
python -m Core.engines_loader.engines_only_mod --list-engines
34+
35+
# Vérifier la compatibilité d'un moteur
36+
python -m Core.engines_loader.engines_only_mod --check-compat nuitka
37+
python -m Core.engines_loader.engines_only_mod --check-compat pyinstaller
38+
python -m Core.engines_loader.engines_only_mod --check-compat cx_freeze
39+
40+
# Mode dry-run (afficher la commande sans exécuter)
41+
python -m Core.engines_loader.engines_only_mod --engine nuitka -f script.py --dry-run
42+
43+
# Compiler un fichier
44+
python -m Core.engines_loader.engines_only_mod --engine nuitka -f script.py
45+
```
46+
47+
### Via pycompiler_ark.py
48+
49+
```bash
50+
# Lancer l'interface GUI
51+
python -m pycompiler_ark engines
52+
53+
# Lister les moteurs
54+
python -m pycompiler_ark engines --dry-run
55+
56+
# Avec un workspace
57+
python -m pycompiler_ark engines /path/to/workspace
58+
```
59+
60+
## 📁 Structure des Fichiers
61+
62+
```
63+
engines_only_mod/
64+
├── __init__.py # Point d'entrée du module
65+
├── __main__.py # Point d'entrée CLI/GUI
66+
├── app.py # Logique métier (EnginesStandaloneApp)
67+
├── gui.py # Interface graphique (EnginesStandaloneGui)
68+
└── README.md # Cette documentation
69+
```
70+
71+
## 🔧 Fonctionnalités
72+
73+
### Interface Graphique
74+
75+
- **Sélection du moteur** : Liste déroulante avec tous les moteurs disponibles
76+
- **Sélection de fichier** : Navigateur pour choisir le fichier Python à compiler
77+
- **Workspace** : Configuration du workspace du projet
78+
- **Vérification de compatibilité** : Teste si le moteur est compatible avec le système
79+
- **Compilation** : Exécution de la compilation avec sortie en temps réel
80+
- **Logs** : Affichage des logs de compilation
81+
- **Thèmes** : Support des thèmes clair et sombre
82+
- **Langues** : Support de l'anglais et du français
83+
84+
### Mode CLI
85+
86+
- Liste des moteurs disponibles avec leur statut de compatibilité
87+
- Vérification de compatibilité d'un moteur spécifique
88+
- Mode dry-run pour tester les commandes
89+
90+
## 📦 Moteurs Disponibles
91+
92+
| Moteur | Description | Statut |
93+
|--------|-------------|--------|
94+
| `pyinstaller` | Compilation standard Python | ✅ Compatible |
95+
| `nuitka` | Compilation haute performance | ✅ Compatible |
96+
| `cx_freeze` | Support multi-plateforme | ✅ Compatible |
97+
98+
## 💻 Utilisation Programmatiquement
99+
100+
```python
101+
# Import du module
102+
from Core.engines_loader.engines_only_mod import EnginesStandaloneApp
103+
104+
# Création de l'application
105+
app = EnginesStandaloneApp(
106+
engine_id="nuitka",
107+
file_path="/path/to/script.py",
108+
workspace_dir="/path/to/workspace",
109+
language="fr",
110+
theme="dark"
111+
)
112+
113+
# Chargement des moteurs
114+
engines = app.load_engines()
115+
print(f"Moteurs disponibles : {len(engines)}")
116+
117+
# Vérification de compatibilité
118+
result = app.check_engine_compatibility("nuitka")
119+
print(f"Compatible : {result['compatible']}")
120+
121+
# Exécution de la compilation
122+
result = app.run_compilation("nuitka", "/path/to/script.py")
123+
print(f"Succès : {result['success']}")
124+
```
125+
126+
## 🎨 Personnalisation
127+
128+
### Thèmes
129+
130+
Le module supporte deux thèmes :
131+
132+
- **dark** (défaut) : Thème sombre pour une utilisation confortable
133+
- **light** : Thème clair pour les environnements lumineux
134+
135+
### Langues
136+
137+
Le module supporte deux langues :
138+
139+
- **en** (défaut) : Anglais
140+
- **fr** : Français
141+
142+
## ⚠️ Notes
143+
144+
- Le module nécessite PySide6 pour l'interface graphique
145+
- Les moteurs doivent être installés séparément (PyInstaller, Nuitka, cx_Freeze)
146+
- La compatibilité des moteurs dépend de leur installation sur le système
147+
148+
## 📄 Licence
149+
150+
Ce projet est sous licence Apache 2.0.
151+
152+
---
153+
154+
PyCompiler ARK++ - Comprehensive Python compilation toolkit
155+

Core/engines_loader/engines_only_mod/__init__.py

Lines changed: 48 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,28 +14,62 @@
1414
# limitations under the License.
1515

1616
"""
17-
Engines Standalone Module
17+
Engines Standalone Module — Module de Gestion des Moteurs de Compilation
1818
19-
Application autonome permettant d'exécuter les moteurs de compilation
20-
individuellement sans lancer l'application complète PyCompiler ARK.
19+
Module autonome permettant d'exécuter les moteurs de compilation PyCompiler ARK++
20+
sans lancer l'application principale.
2121
22-
Ce module réutilise les fonctions de Core/engines_loader pour:
23-
- Découverte et enregistrement des moteurs
24-
- Compilation avec un moteur spécifique
25-
- Affichage des résultats et logs
22+
Fonctionnalités:
23+
- Interface graphique complète pour gérer les moteurs de compilation
24+
- Mode CLI pour lister les moteurs et vérifier la compatibilité
25+
- Support de plusieurs moteurs : PyInstaller, Nuitka, cx_Freeze
26+
- Thèmes clair/sombre et langues anglais/français
2627
27-
Usage:
28-
python -m Core.engines_loader.engines_only_mod [options]
28+
Utilisation:
29+
# Interface GUI
30+
python -m Core.engines_loader.engines_only_mod
31+
32+
# Mode CLI - lister les moteurs
33+
python -m Core.engines_loader.engines_only_mod --list-engines
34+
35+
# Mode CLI - vérifier compatibilité
36+
python -m Core.engines_loader.engines_only_mod --check-compat nuitka
2937
30-
Ou programmatiquement:
31-
from bcasl.only_mod.engines_only_mod import EnginesStandaloneApp
32-
app = EnginesStandaloneApp()
38+
Documentation complète : voir README.md
3339
"""
3440

3541
from __future__ import annotations
3642

37-
from .app import EnginesStandaloneApp, main
43+
# Exports publics - import différé pour éviter les circular imports
44+
from .app import EnginesStandaloneApp # Classe principale pour usage programmatique
45+
from .gui import EnginesStandaloneGui # Interface graphique
46+
47+
def launch_engines_gui(workspace_dir: str = None, language: str = "en", theme: str = "dark") -> int:
48+
"""Lance l'application Engines Standalone GUI.
49+
50+
Args:
51+
workspace_dir: Chemin du workspace (optionnel)
52+
language: Code de langue ('en' ou 'fr')
53+
theme: Nom du thème ('light' ou 'dark')
54+
55+
Returns:
56+
Code de retour de l'application
57+
"""
58+
from .gui import launch_engines_gui as _launch
59+
return _launch(workspace_dir, language, theme)
60+
61+
62+
def main():
63+
"""Point d'entrée principal du module."""
64+
from . import __main__ as _main_module
65+
return _main_module.main()
66+
3867

3968
__version__ = "1.0.0"
40-
__all__ = ["EnginesStandaloneApp", "main"]
69+
__all__ = [
70+
"EnginesStandaloneApp",
71+
"EnginesStandaloneGui",
72+
"launch_engines_gui",
73+
"main",
74+
]
4175

README.md

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -167,23 +167,7 @@ See [SUPPORTED_MATRIX.md](SUPPORTED_MATRIX.md) for detailed compatibility inform
167167
- [BCASL CLI Guide](bcasl/only_mod/CLI_GUIDE.md) - Command-line interface usage
168168

169169
### Engines Standalone Module
170-
- Launch standalone compilation engine manager with GUI or CLI
171-
- Manage PyInstaller, Nuitka, and cx_Freeze engines
172-
- Check engine compatibility and run compilations
173-
174-
#### Engines Standalone Module
175-
176-
```bash
177-
# Launch Engines GUI directly
178-
python -m Core.engines_loader.engines_only_mod
179-
180-
# List available engines (CLI mode)
181-
python -m Core.engines_loader.engines_only_mod --list-engines
182-
183-
# Check engine compatibility
184-
python -m Core.engines_loader.engines_only_mod --check-compat nuitka
185-
```
186-
170+
- [Engines Standalone README](Core/engines_loader/engines_only_mod/README.md) - Complete Engines standalone documentation
187171

188172
### Developer Documentation
189173
- [Contributing](CONTRIBUTING.md) - How to contribute to the project

0 commit comments

Comments
 (0)