From 3854aef055a41af582ea3968ea6f27e2732597c8 Mon Sep 17 00:00:00 2001 From: Philippe Roy Date: Tue, 2 Jan 2024 15:13:14 +0100 Subject: [PATCH] Migrations : Qt5 -> Qt6 et Pylint v2 -> v3 --- README.md | 14 +- asset/icons/app/AUTHORS.md | 12 ++ asset/icons/app/la_forge-komit.svg | 179 ++++++++++++++++++ asset/icons/app/upbge.svg | 109 +++++++++++ portail_coulissant/porcou_cmd.py | 6 +- .../portail_coulissant-18.blend | Bin 54589988 -> 54589988 bytes twin.py | 43 +++-- twin_file_qt.py | 8 +- twin_plot_qt.py | 8 +- twin_pylint.py | 21 ++ 10 files changed, 370 insertions(+), 30 deletions(-) create mode 100644 asset/icons/app/la_forge-komit.svg create mode 100644 asset/icons/app/upbge.svg create mode 100644 twin_pylint.py diff --git a/README.md b/README.md index b1cabba..d0533e3 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ Les applications pédagogique se trouvent dans le [dépôt des ressouces pédago https://forge.aeif.fr/blender-edutech/jumeau-numerique .
 
L'environnement de développement est basé sur : la plateforme de modélisation et d'animation 3D [Blender](https://blender.org), le langage [Python](https://python.org) et le moteur de jeu 3D [UPBGE](https://upbge.org).
 
La version de Blender/UPBGE utilisée pour le développement est la version 0.36.1 (20 août - 2023). + 2023). Etant trop lente sous Windows, la version utilisée pour le déploiement (mise en production) est la version 0.30 (3 décembre 2021). @@ -64,15 +64,15 @@ Les bibliothèques suivantes ne sont pas incluses par défaut dans l'environneme Il faut donc les installer localement (dans UPBGE), les étapes sont : -- **GNU/Linux** : La configuration ici présente est UPBGE installé sur ~ avec Python 3.9 : - - Aller dans le répertoire local de Python de UPBGE: $ cd ~/UPBGE-0.30-linux-x86_64/3.0/python/bin +- **GNU/Linux** : La configuration ici présente est UPBGE installé sur ~ avec Python 3.10 : + - Aller dans le répertoire local de Python de UPBGE: $ cd ~/upbge-0.36.1-linux-x86_64/3.6/python/bin - Télécharger le script ['get-pip.py'](https://bootstrap.pypa.io/get-pip.py) pour installer le gestionnaire de paquet [**Pip**](https://pip.pypa.io) - - Installer le gestionnaire de paquet Pip : $ ./python3.9 get-pip.py + - Installer le gestionnaire de paquet Pip : $ ./python3.10 get-pip.py - Installer Pylint : $ ./pip install pylint - Installer pySerial : $ ./pip install pyserial - Installer pyFirmata : $ ./pip install pyfirmata - Installer Matplotlib : $ ./pip install matplotlib - - Installer PyQt5 : $ ./pip install PyQt5 + - Installer PyQt5 : $ ./pip install PyQt6 @@ -81,10 +81,10 @@ Il faut donc les installer localement (dans UPBGE), les étapes sont : - **Windows** : La configuration ici présente est UPBGE installé sur le bureau utilisateur (prenom.nom) : - Ouvrir un terminal Powershell (éventuellement en passant par Anaconda Navigator) - - Aller dans le répertoire local de Python de UPBGE: cd C:\Users\prenom.nom\Desktop\UPBGE-0.30-windows-x86_64\3.0\python\bin + - Aller dans le répertoire local de Python de UPBGE: cd C:\Users\prenom.nom\Desktop\upbge-0.36.1-windows-x86_64\3.6\python\bin - Télécharger le script ['get-pip.py'](https://bootstrap.pypa.io/get-pip.py) pour installer le gestionnaire de paquet [**Pip**](https://pip.pypa.io) - Installer le gestionnaire de paquet Pip : python.exe get-pip.py - - Aller dans le répertoire 'Scripts' : cd C:\Users\prenom.nom\Desktop\UPBGE-0.30-windows-x86_64\3.0\python\Scripts + - Aller dans le répertoire 'Scripts' : cd C:\Users\prenom.nom\Desktop\upbge-0.36.1-windows-x86_64\3.6\python\Scripts - Installer Pylint : pip.exe install pylint - Installer pySerial : pip.exe install pyserial - Installer pyFirmata : pip.exe install pyfirmata diff --git a/asset/icons/app/AUTHORS.md b/asset/icons/app/AUTHORS.md index 6b73bd9..c237beb 100644 --- a/asset/icons/app/AUTHORS.md +++ b/asset/icons/app/AUTHORS.md @@ -5,3 +5,15 @@ org.gnome.Builder.svg : - Website : https://gitlab.gnome.org/GNOME/gnome-builder - Authors : Jakub Steiner ( https://jimmac.eu/ ), Christian Hergert ( http://hergert.me/ ) - Licence : CC-BY-SA 3 + +la_forge-komit.svg : +- Remix by Philippe Roy ( https://forge.aeif.fr/phroy ) +- Initial file : avatar_Komit_face_transparent.png +- Source repository : https://forge.aeif.fr/framaka/visuel-forge +- Author : Juliette Taka ( https://juliettetaka.com/fr ) +- Licence : Creative Commons BY 4.0 + +upbge.svg : +- TM / ®UPBGE Project +- Website : https://upbge.org + diff --git a/asset/icons/app/la_forge-komit.svg b/asset/icons/app/la_forge-komit.svg new file mode 100644 index 0000000..272ad3a --- /dev/null +++ b/asset/icons/app/la_forge-komit.svg @@ -0,0 +1,179 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/asset/icons/app/upbge.svg b/asset/icons/app/upbge.svg new file mode 100644 index 0000000..ce2517e --- /dev/null +++ b/asset/icons/app/upbge.svg @@ -0,0 +1,109 @@ + + + UPBGE Logo + + + + + + image/svg+xml + + UPBGE Logo + https://upbge.org/ + + + + + + + + + + + + + + + + + + + + diff --git a/portail_coulissant/porcou_cmd.py b/portail_coulissant/porcou_cmd.py index ba86f36..5604855 100644 --- a/portail_coulissant/porcou_cmd.py +++ b/portail_coulissant/porcou_cmd.py @@ -62,15 +62,15 @@ def commandes(): print ("Version sans sécurité : sans réouverture") print ("Mise en place : Fermeture") while fdc_f() ==False : - gyr(True) + gyrr(True) mot_o(False) mot_f(True) mot_f(False) gyr(False) # Jumelage - jumeau(brochage) - jumeau_mode(True, True, True, True) + # jumeau(brochage) + # jumeau_mode(True, True, True, True) # Fonctionnement normal print ("Attente") diff --git a/portail_coulissant/portail_coulissant-18.blend b/portail_coulissant/portail_coulissant-18.blend index 3258253f7cc7751b224b7e7eb9e45a8a7b66c758..0b939fdd283e8bc3c6bc7d309e7933b21408c7bc 100644 GIT binary patch delta 11290935 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