From b376a2a1a29e9ea7cfca08aa72d83413a2672101 Mon Sep 17 00:00:00 2001 From: Charles PIGNEROL <> Date: Fri, 29 Nov 2024 15:14:31 +0100 Subject: [PATCH 1/2] Version 6.4.6. If the last instruction to be executed and executed is in a loop we point to the start of the loop (just after the test of the condition). Therefor any subsequent execution will start with this line - which is wrong - which is also indented => python indentation error. --- cmake/version.cmake | 4 ++-- src/QtPython3/QtPythonConsole.cpp | 35 +++++++++++++++++++++++++++---- versions.txt | 7 +++++++ 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/cmake/version.cmake b/cmake/version.cmake index b684db6..b7f098d 100644 --- a/cmake/version.cmake +++ b/cmake/version.cmake @@ -5,12 +5,12 @@ # Pour la bibliothèque QtPython : set (QT_PYTHON_MAJOR_VERSION "6") set (QT_PYTHON_MINOR_VERSION "4") -set (QT_PYTHON_RELEASE_VERSION "5") +set (QT_PYTHON_RELEASE_VERSION "6") set (QT_PYTHON_VERSION ${QT_PYTHON_MAJOR_VERSION}.${QT_PYTHON_MINOR_VERSION}.${QT_PYTHON_RELEASE_VERSION}) # Pour la bibliothèque QtPython3 : set (QT_PYTHON_3_MAJOR_VERSION "6") set (QT_PYTHON_3_MINOR_VERSION "4") -set (QT_PYTHON_3_RELEASE_VERSION "5") +set (QT_PYTHON_3_RELEASE_VERSION "6") set (QT_PYTHON_3_VERSION ${QT_PYTHON_3_MAJOR_VERSION}.${QT_PYTHON_3_MINOR_VERSION}.${QT_PYTHON_3_RELEASE_VERSION}) diff --git a/src/QtPython3/QtPythonConsole.cpp b/src/QtPython3/QtPythonConsole.cpp index c3289f9..362b5f9 100644 --- a/src/QtPython3/QtPythonConsole.cpp +++ b/src/QtPython3/QtPythonConsole.cpp @@ -943,7 +943,7 @@ void QtPythonConsole::drawLinesNumbers (const QRect& rect) if ((true == block.isVisible ( )) && (bottom >= rect.top ( ))) { // Rem : sous Qt 4.7.4 la surimpression (breakpoint, et par dessus ligne actuelle) ne fonctionne pas ... (pixmap ? autre ?) - // => on n'affiche pas le BP si ligne courrante. + // => on n'affiche pas le BP si ligne courante. if ((_breakpoints.end ( ) != _breakpoints.find (number)) && (currentInstruction ( ) != number)) { _breakPointIcon.paint (&painter, 3, top, width, height); @@ -1232,6 +1232,7 @@ void QtPythonConsole::validateCursorPosition ( ) // Attention : si on est en fin de document le numéro de ligne n'existe pas forcément. QTextBlock block; QTextCursor cursor = textCursor ( ); + if (_currentExecLine > document ( )->blockCount ( )) { // 2 possibilités : la dernière ligne est blanche et convient, sinon on en rajoute une. block = document ( )->findBlockByNumber (_currentExecLine - 2); @@ -1516,9 +1517,9 @@ string QtPythonConsole::getPythonScript ( ) const void QtPythonConsole::lineProcessedCallback (const string& fileName, size_t line, bool ok, const string& error) -{ // 0 == _currentScript.get ( ) : exécution d'une commande, à la ligne courrante +{ // 0 == _currentScript.get ( ) : exécution d'une commande, à la ligne courante const size_t consoleLine = (0 == _currentScript.get ( )) ? (_currentExecLine <= 1 ? 1 : _currentExecLine) : _currentScript->getConsoleLineNum (line); // CP v 5.0.5 - + try { if (true == ok) // ATTENTION : Retour éventuel en ligne de début de boucle pour évaluation de la condition d'arrêt => _currentExecLine se minorée et donc erronnée si fin de boucle atteinte @@ -2425,7 +2426,7 @@ void QtPythonConsole::execInstructions ( ) _halted = true; updateActions ( ); - // On mémorise le point courrant, pour actualisation finale IHM en une passe + // On mémorise le point courant, pour actualisation finale IHM en une passe const size_t startAt = _currentExecLine; vector instructions = getRunnableInstructions (_currentExecLine); @@ -2440,6 +2441,7 @@ void QtPythonConsole::execInstructions ( ) flags.cf_flags = 0; PyErr_Clear ( ); registerConsole (*this); + if (1 == instructions.size ( )) { // CP on pourrait évaluer la qualité de l'instruction (générée en python) à l'aide par exemple de // Py_CompileString (cf.QPyConsole::interpretCommand). En cas d'absence d'instruction (commentaire, ligne finissant @@ -2470,6 +2472,31 @@ void QtPythonConsole::execInstructions ( ) { } } // else if (1 == instructions.size ( )) + + // v 6.4.6 : si la dernière instruction à exécuter et exécutée est dans une boucle on pointe au début la boucle (juste après le test sur la condition) + // => toute exécution ultérieure débutera par cette ligne - ce qui est faux - qui est de surcroit indentée => erreur d'indentation python. + // On rectifie cette erreur de pointage : + if (_currentExecLine <= _maxExecLine) + { // v 6.4.6 + try + { // Par acquis de conscience ont vérifie que la ligne est effectivement indentée : + const string currentLine = _currentScript->getConsoleLine (_currentExecLine); + if ((currentLine [0] != ' ') && (currentLine [0] != '\t')) + { + UTF8String mess (charset); + mess << "Erreur possible dans QtPythonConsole::execInstructions : la ligne pointée est supposée indentée (dans une boucle) mais elle ne l'est pas :\n" + << "Ligne visée (" << _currentExecLine << ") : " << currentLine; + ConsoleOutput::cerr ( ) << mess << co_endl; + } // if ((currentLine [0] != '1') && (currentLine [0] != '\t')) + } + catch (...) + { + } + + _currentExecLine = _maxExecLine + 1; + _previousExecLine = _maxExecLine; + } // if (_currentExecLine <= _maxExecLine) + unregisterConsole (*this); if (NULL != result) diff --git a/versions.txt b/versions.txt index 90d3f20..baeb7ad 100644 --- a/versions.txt +++ b/versions.txt @@ -1,3 +1,10 @@ +Version 6.4.6 : 29/11/24 +=============== + +Correctif de bogue : si la dernière instruction à exécuter et exécutée est dans une boucle on pointe au début la boucle (juste après le test sur la condition) +=> toute exécution ultérieure débutera par cette ligne - ce qui est faux - qui est de surcroit indentée => erreur d'indentation python. + + Version 6.4.5 : 26/11/24 =============== From 7d9645ffe645c5a9a9a83ee4af0286a4d99c08f3 Mon Sep 17 00:00:00 2001 From: Charles PIGNEROL <> Date: Fri, 29 Nov 2024 15:16:45 +0100 Subject: [PATCH 2/2] Version 6.4.6. If the last instruction to be executed and executed is in a loop we point to the start of the loop (just after the test of the condition). Therefor any subsequent execution will start with this line - which is wrong - which is also indented => python indentation error. --- versions.txt | 386 +++++++++++++++++++++++++-------------------------- 1 file changed, 193 insertions(+), 193 deletions(-) diff --git a/versions.txt b/versions.txt index baeb7ad..10b9af3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,27 +1,27 @@ Version 6.4.6 : 29/11/24 =============== -Correctif de bogue : si la dernière instruction à exécuter et exécutée est dans une boucle on pointe au début la boucle (juste après le test sur la condition) -=> toute exécution ultérieure débutera par cette ligne - ce qui est faux - qui est de surcroit indentée => erreur d'indentation python. +Correctif de bogue : si la dernière instruction à exécuter et exécutée est dans une boucle on pointe au début la boucle (juste après le test sur la condition) +=> toute exécution ultérieure débutera par cette ligne - ce qui est faux - qui est de surcroit indentée => erreur d'indentation python. Version 6.4.5 : 26/11/24 =============== -Python 3 utilisé par défaut, sans demande explicite. +Python 3 utilisé par défaut, sans demande explicite. Version 6.4.4 : 20/11/24 =============== -QtPython::preInitialize lève une exception si appelée pour la première fois après Py_Initialize en vue d'éviter un fatal error de python 3. +QtPython::preInitialize lève une exception si appelée pour la première fois après Py_Initialize en vue d'éviter un fatal error de python 3. Version 6.4.3 : 04/10/24 =============== Correctif de l'emplacement du point d'insertion (de la prochaine instruction) lors de l'ajout dans la console d'une instruction avec commentaire -multi-lignes dans QtPythonConsole::addToHistoric. Dans un tel cas le commentaire était coupé en 2 par l'instruction suivante. +multi-lignes dans QtPythonConsole::addToHistoric. Dans un tel cas le commentaire était coupé en 2 par l'instruction suivante. Version 6.4.2 : 28/08/24 @@ -40,7 +40,7 @@ Divers correctifs console python 3 (environnement Qt 5). Version 6.4.0 : 13/12/23 =============== -Portage Qt 6/GUIToolkitsVariables v 1.4.0/QtUtil v 6.4.0 de la console python 3. La console python 2 est considérée obsolète. +Portage Qt 6/GUIToolkitsVariables v 1.4.0/QtUtil v 6.4.0 de la console python 3. La console python 2 est considérée obsolète. cmake_minimum_required (VERSION 3.15) # CMP0094 @@ -49,16 +49,16 @@ Version 6.3.3 : 27/10/23 =============== Correctifs console python 2 : -- gestion de l'historique avec les touches flèche haut/bas. -- gestion couleur des affichages (parfois en bleu à la place du noir). +- gestion de l'historique avec les touches flèche haut/bas. +- gestion couleur des affichages (parfois en bleu à la place du noir). Version 6.3.2 : 24/10/23 =============== Correctifs console python 3 : -- gestion de l'historique avec les touches flèche haut/bas. -- gestion couleur des affichages (parfois en bleu à la place du noir). +- gestion de l'historique avec les touches flèche haut/bas. +- gestion couleur des affichages (parfois en bleu à la place du noir). Version 6.3.0 : 21/06/23 @@ -66,21 +66,21 @@ Version 6.3.0 : 21/06/23 Sortie du projet GUIToolkits. -GUIToolkitsVariables v 1.3.0 : python_binding.cmake v 0.5.0 (répertoire d'installation des modules déterminé par python). +GUIToolkitsVariables v 1.3.0 : python_binding.cmake v 0.5.0 (répertoire d'installation des modules déterminé par python). Version 6.2.0 : 06/06/23 =============== -Correctif scrolling console en mode debug : la console défilait jusqu'à la fin, même en mode pas à pas ou lorsque l'exécution -s'arrêtait sur un breakpoint. +Correctif scrolling console en mode debug : la console défilait jusqu'à la fin, même en mode pas à pas ou lorsque l'exécution +s'arrêtait sur un breakpoint. Version 6.1.1 : 03/05/23 =============== -Correctif consoles python 2 et python 3 : numéro de ligne courante en sortie de QtPythonConsole::addToHistoric. Avait tendance -à restreindre l'accès à la fonctionnalité de chargement d'un script. +Correctif consoles python 2 et python 3 : numéro de ligne courante en sortie de QtPythonConsole::addToHistoric. Avait tendance +à restreindre l'accès à la fonctionnalité de chargement d'un script. Version 6.1.0 : 31/03/23 @@ -92,49 +92,49 @@ Portage GitHub environnement podman/spack/tests CI. Version 6.0.1 : 03/02/23 =============== -Retouches cmake : blindage pour cas non gérés (versions Python). +Retouches cmake : blindage pour cas non gérés (versions Python). Version 6.0.0 : 10/01/23 =============== -Intégration au projet GUIToolkits. +Intégration au projet GUIToolkits. Version 5.3.0 : 07/12/22 =============== -Retouches mécanismes de complétion en Python 2 et 3. Les consoles python acceptent maintenant de traiter des +Retouches mécanismes de complétion en Python 2 et 3. Les consoles python acceptent maintenant de traiter des expressions type = objet.methode Version 5.2.0 : 29/11/22 ================ -Suppression classe QtPythonPanel et dépendances QConsole. +Suppression classe QtPythonPanel et dépendances QConsole. Version 5.1.9 : 13/09/22 =============== -On autorise les Ctrl+C dans la console python et les et Ctrl+V/X en zone éditable. -A noter que très peu de méthodes de QPlainTextEdit sont virtuelles (copy, paste, cut, isReadOnly, ...) :( ce qui ne facilite +On autorise les Ctrl+C dans la console python et les et Ctrl+V/X en zone éditable. +A noter que très peu de méthodes de QPlainTextEdit sont virtuelles (copy, paste, cut, isReadOnly, ...) :( ce qui ne facilite pas la mise en place de retouches comportementales. Version 5.1.8 : 19/04/22 =============== -Option de compilation cmake BUILD_PY_CONSOLE:BOOL. En son absence (défaut) ne compile pas l'exécutable "console python". En de rares -circonstances la compilation échoue sur un fichier moc ... +Option de compilation cmake BUILD_PY_CONSOLE:BOOL. En son absence (défaut) ne compile pas l'exécutable "console python". En de rares +circonstances la compilation échoue sur un fichier moc ... Version 5.1.7 : 06/04/22 =============== Correctifs QtPythonConsole::insert : -- Eviter un rejet de conversion du fichier inséré si il contient des caractères accentués et ne contient pas d'infos sur son encodage. -- Support des instructions multilignes (_currentExecLine était incrémenté à tort). +- Eviter un rejet de conversion du fichier inséré si il contient des caractères accentués et ne contient pas d'infos sur son encodage. +- Support des instructions multilignes (_currentExecLine était incrémenté à tort). Version 5.1.6 : 25/03/22 @@ -147,7 +147,7 @@ Version 5.1.5 : 25/02/22 =============== QtPythonConsole::addInstruction : correctif pour le cas de l'insertion d'un commentaire multiligne. A noter qu'un bogue -subsiste et qu'on peut observer un décalage entre commentaires et instructions associées. +subsiste et qu'on peut observer un décalage entre commentaires et instructions associées. Version 5.1.4 : 22/02/22 @@ -165,7 +165,7 @@ Retouches cmake dans QConsole, QtPython et QtPython3 : find_dependency. Version 5.1.2 : 04/11/21 =============== -Retouches cmake pour interdire de chercher Qt dans les répertoires systèmes +Retouches cmake pour interdire de chercher Qt dans les répertoires systèmes (=> find_package (Qt5Widgets 5 REQUIRED NO_DEFAULT_PATH) ...) @@ -178,16 +178,16 @@ Divers nettoyage Version 5.1.0 : 06/09/21 =============== -Méthode QtPython::preInitialize, pour l'API Python 3. Objectif : initialiser les redirections de flux -sortants (stdout) vers la console avant que Py_Initialize ne soit appelé. -Corrige le bug où les sorties python (et donc bindings python) n'apparaissaient pas dans le panneau +Méthode QtPython::preInitialize, pour l'API Python 3. Objectif : initialiser les redirections de flux +sortants (stdout) vers la console avant que Py_Initialize ne soit appelé. +Corrige le bug où les sorties python (et donc bindings python) n'apparaissaient pas dans le panneau "sorties python" de la console. Version 5.0.5 : 27/08/21 =============== -Correctifs et ammélioration console Python 3. +Correctifs et ammélioration console Python 3. Version 5.0.4 : 24/08/21 @@ -202,71 +202,71 @@ Version 5.0.3 : 04/08/21 Retouche support binding Python 3. -Version 5.0.2 : 11/12/20 Révisions svn 399/400 +Version 5.0.2 : 11/12/20 Révisions svn 399/400 =============== Retouches mineures des CMakeLists.txt -Version 5.0.1 : 11/12/20 Révisions svn 397/398 +Version 5.0.1 : 11/12/20 Révisions svn 397/398 =============== -Retouches mineures des CMakeLists.txt relatives à l'utilisation de Qt. +Retouches mineures des CMakeLists.txt relatives à l'utilisation de Qt. -Version 5.0.0 : 10/09/20 Révisions svn 388/389 +Version 5.0.0 : 10/09/20 Révisions svn 388/389 =============== -Portage Python 3.0 avec maintient compatibilité Python 2. -Duplication/adaptation des scripts de etc dans des sous-répertoires python2 et python3 -=> requiert d'ajouter le bon répertoire aux variables PYTHONPATH et QT_PYTHON_SCRIPTS_DIR. -Le portage est effectué là où c'est utile pour cette bibliothèque => non complétement fait dans qpyconsole.cpp. -Requiert TkUtil v 5.6.0 ou ultérieur, PythonUtil 5.5.0 ou ultérieur. +Portage Python 3.0 avec maintient compatibilité Python 2. +Duplication/adaptation des scripts de etc dans des sous-répertoires python2 et python3 +=> requiert d'ajouter le bon répertoire aux variables PYTHONPATH et QT_PYTHON_SCRIPTS_DIR. +Le portage est effectué là où c'est utile pour cette bibliothèque => non complétement fait dans qpyconsole.cpp. +Requiert TkUtil v 5.6.0 ou ultérieur, PythonUtil 5.5.0 ou ultérieur. Correction de bogue dans QtPythonConsole::handleDownKeyPress et QtPythonConsole::handleUpKeyPress : en -cas de wrapping les lignes d'historiques insérées suite aux pression de touches up et down étaient -inconsistantes et ça partait en vrille. +cas de wrapping les lignes d'historiques insérées suite aux pression de touches up et down étaient +inconsistantes et ça partait en vrille. ATTENTION : -- les fichiers etc/*.py sont déployés, selon le cas, dans lib/python2.*/site-packages ou lib/python3.*//site-packages. +- les fichiers etc/*.py sont déployés, selon le cas, dans lib/python2.*/site-packages ou lib/python3.*//site-packages. - En python3 il est impossible de mettre des breakpoints dans des boucles. -Version 4.4.3 : 10/09/20 Révisions svn 386/387. Non déployée, non testée. +Version 4.4.3 : 10/09/20 Révisions svn 386/387. Non déployée, non testée. =============== -Branche issue de la version 4.4.2 et qui bénéficie à toutes fins utiles d'un correctif de la version +Branche issue de la version 4.4.2 et qui bénéficie à toutes fins utiles d'un correctif de la version 5.0.0 (portage python 2/python 3). Correction de bogue dans QtPythonConsole::handleDownKeyPress et QtPythonConsole::handleUpKeyPress : en -cas de wrapping les lignes d'historiques insérées suite aux pression de touches up et down étaient -inconsistantes et ça partait en vrille. +cas de wrapping les lignes d'historiques insérées suite aux pression de touches up et down étaient +inconsistantes et ça partait en vrille. -Version 4.4.2 : 23/07/20 Révisions svn 380/381 +Version 4.4.2 : 23/07/20 Révisions svn 380/381 =============== v 0.8.0 de cmake/workarounds.cmake (LC_ALL=C) Cible d'exportation -Version 4.4.1 : 21/07/20 Révisions 375/376 +Version 4.4.1 : 21/07/20 Révisions 375/376 =============== Retouches emplacement d'installation des fichiers NEC*.py (etc -> python2.7/site-packages) et droits sur ces fichiers. -Version 4.4.0 : 17/07/20 Révisions 373/374 +Version 4.4.0 : 17/07/20 Révisions 373/374 =============== -enum RUNNING_MODE { RM_CONTINUOUS, RM_DEBUG } devient enum RUNNING_MODE { RM_CONTINUOUS, RM_DEBUG } car -DDEBUG à la compilation +enum RUNNING_MODE { RM_CONTINUOUS, RM_DEBUG } devient enum RUNNING_MODE { RM_CONTINUOUS, RM_DEBUG } car -DDEBUG à la compilation pouvait interferer avec QtPythonConsole::DEBUG. Version 4.3.0 : 06/04/20 =============== -Déplacement des en-têtes dans le répertoire QtPython +Déplacement des en-têtes dans le répertoire QtPython TkUtil v 5.4.0 QtUtil v 5.3.0 PythonUtil v 5.3.0 @@ -280,68 +280,68 @@ Portage g++ v 7.5.0 auto_ptr -> unique_ptr sauf 2 (QtPythonConsole::_commandsFile et _commandsStream qui mettent en erreur g++ 7.5.0). -Version 4.1.0 : 18/02/20. Révisions svn 366 +Version 4.1.0 : 18/02/20. Révisions svn 366 =============== -- Retouches compatibilité (SameMinorVersion -> SameMajorVersion) +- Retouches compatibilité (SameMinorVersion -> SameMajorVersion) -Version 4.0.2 : 07/02/20. Révisions svn 364 +Version 4.0.2 : 07/02/20. Révisions svn 364 =============== -Retouches gestion des dépendances et déploiement des scripts nécessaires. +Retouches gestion des dépendances et déploiement des scripts nécessaires. Ajout arborescence cmake + recette spack sous svn. -Ajout cible de création d'une archive (create_tarball.sh). +Ajout cible de création d'une archive (create_tarball.sh). -Version 4.0.1 : 13/01/20. Révisions svn 363 +Version 4.0.1 : 13/01/20. Révisions svn 363 =============== -Portage CMake/Spack. Retouche python_binding.cmake et workarounds.cmake + dépendance à Python. +Portage CMake/Spack. Retouche python_binding.cmake et workarounds.cmake + dépendance à Python. -Version 4.0.0 : 19/12/19. C. PIGNEROL Révisions svn r361/r362 +Version 4.0.0 : 19/12/19. C. PIGNEROL Révisions svn r361/r362 --------------- -Portage CMake/Spack g++ 8.3/intel 18.0.3 (arrêt GSCC). +Portage CMake/Spack g++ 8.3/intel 18.0.3 (arrêt GSCC). -Version 3.8.0 : publiée le 26/09/19. C. PIGNEROL Révisions svn r358/r359 +Version 3.8.0 : publiée le 26/09/19. C. PIGNEROL Révisions svn r358/r359 --------------- - TK_variants v 4.10.0 (QtUtil v 4.8.0). -Version 3.7.0 : publiée le 05/09/19. C. PIGNEROL Révisions svn r347/r348 +Version 3.7.0 : publiée le 05/09/19. C. PIGNEROL Révisions svn r347/r348 --------------- - TK_variants v 4.7.0 (TkUtil v 4.6.0). -Version 3.6.1 : publiée le 29/01/19. C. PIGNEROL Révisions svn r342/r344 +Version 3.6.1 : publiée le 29/01/19. C. PIGNEROL Révisions svn r342/r344 --------------- -Redéployée le 12/03/19 : -- Le sélecteur de fichier dans QtPythonConsole::insertScriptCallback -n'utilise plus de sélecteur de fichier natif. +Redéployée le 12/03/19 : +- Le sélecteur de fichier dans QtPythonConsole::insertScriptCallback +n'utilise plus de sélecteur de fichier natif. - Tooltips de menu visibles en Qt 5. - TK_variants v 4.6.1 (PythonUtil v 4.5.1, correctif PythonLogOutputStream::toComment). -Version 3.6.0 : publiée le 28/11/18. C. PIGNEROL Révisions svn r334/r336 +Version 3.6.0 : publiée le 28/11/18. C. PIGNEROL Révisions svn r334/r336 --------------- - TK_variants v 4.6.0 (TkUtil v 4.5.0). -Version 3.5.0 : publiée le 16/11/18. C. PIGNEROL Révisions svn r331/r333 +Version 3.5.0 : publiée le 16/11/18. C. PIGNEROL Révisions svn r331/r333 --------------- - TK_variants v 4.5.0 (TkUtil v 4.4.0). -Version 3.4.0 : publiée le 14/09/18. C. PIGNEROL Révisions svn r327/r329 +Version 3.4.0 : publiée le 14/09/18. C. PIGNEROL Révisions svn r327/r329 --------------- - TK_variants v 4.4.0 (TkUtil v 4.3.0, ConsoleOutput::cout et cerr). @@ -349,67 +349,67 @@ Version 3.4.0 : publi Utilisation de ConsoleOutput::cout ( ) et cerr ( ) de TkUtil. -Version 3.3.0 : publiée le 07/09/18. C. PIGNEROL Révisions svn r321/r323 +Version 3.3.0 : publiée le 07/09/18. C. PIGNEROL Révisions svn r321/r323 --------------- - TK_variants v 4.3.0 (TkUtil v 4.2.0, QtUtil v 4.3.0). Module QtPython : -Retouches concernant les jeux de caractères utilisés. -- QtPythonConsole::consoleCharset, à initialiser par l'application dès que +Retouches concernant les jeux de caractères utilisés. +- QtPythonConsole::consoleCharset, à initialiser par l'application dès que possible. -Version 3.2.0 : publiée le 22/06/18. C. PIGNEROL Révisions svn r318/r320 +Version 3.2.0 : publiée le 22/06/18. C. PIGNEROL Révisions svn r318/r320 --------------- - TK_variants v 4.2.0 (TkUtil v 4.1.0, nouveaux services UTF8String). -Version 3.1.0 : publiée le 08/06/18. C. PIGNEROL +Version 3.1.0 : publiée le 08/06/18. C. PIGNEROL --------------- - TK_variants v 4.1.0 (Qt591, ECM_Variants v 1.22.0 => arret cible BullEL_6_AE__x86_64). -Utilisation du scenario de deploiement QT_LIBS. Déploiement uniquement des +Utilisation du scenario de deploiement QT_LIBS. Déploiement uniquement des versions statiques. -Version 3.0.0 : publiée le 12/04/18. C. PIGNEROL +Version 3.0.0 : publiée le 12/04/18. C. PIGNEROL --------------- - TK_variants v 4.0.0. TkUtil v 4.0.0, classe UTF8String. Support UTF-8 au niveau de l'encodage des fichiers sources. -Utilisation des nouveaux services de TkUtil/QtUtil dans l'auto-détection du jeu -de caractères utilisé pour encoder les fichiers sources. +Utilisation des nouveaux services de TkUtil/QtUtil dans l'auto-détection du jeu +de caractères utilisé pour encoder les fichiers sources. -Correctif QtPythonConsole::execFile : _running et _executingFile remis à false +Correctif QtPythonConsole::execFile : _running et _executingFile remis à false y compris en cas d'erreur. -Version 2.10.0 : publiée le 15/03/18. C. PIGNEROL +Version 2.10.0 : publiée le 15/03/18. C. PIGNEROL --------------- - TK_variants v 3.2.0 -QtPythonConsole : Correctif en mode exécution de fichier script (execFile), les -commandes exécutées sont ajoutées à l'historique. -Ajout de la méthode isExecutingFile à cet effet. +QtPythonConsole : Correctif en mode exécution de fichier script (execFile), les +commandes exécutées sont ajoutées à l'historique. +Ajout de la méthode isExecutingFile à cet effet. -Version 2.9.1 : publiée le 18/01/18. C. PIGNEROL +Version 2.9.1 : publiée le 18/01/18. C. PIGNEROL --------------- - TK_variants v 3.1.0 -- QtPythonConsole::isRunning retourne true durant l'exécution d'un fichier. -- QtPythonConsole::execFile attrappe les exceptions c++ levées durant -l'exécution du script. +- QtPythonConsole::isRunning retourne true durant l'exécution d'un fichier. +- QtPythonConsole::execFile attrappe les exceptions c++ levées durant +l'exécution du script. -Version 2.9.0 : publiée le 13/11/17. C. PIGNEROL +Version 2.9.0 : publiée le 13/11/17. C. PIGNEROL --------------- - TK_variants v 3.0.0 (ECM_Variants v 1.21.0 : portage RH 7, @@ -418,145 +418,145 @@ compilateurs gcc 6.2.0, icpc 17.0.4) - Suppression des QtCore/, QtGui/ et autres pour les includes Qt. -Version 2.8.0 : publiée le 19/10/17. C. PIGNEROL +Version 2.8.0 : publiée le 19/10/17. C. PIGNEROL --------------- - QtUtil v 3.5.0 -Version 2.7.0 : publiée le 16/10/17. C. PIGNEROL +Version 2.7.0 : publiée le 16/10/17. C. PIGNEROL --------------- - QtPythonConsole::addToHistoric : support commande multilignes (mais -non recommandé). +non recommandé). -Version 2.6.0 : publiée le 02/10/17. C. PIGNEROL +Version 2.6.0 : publiée le 02/10/17. C. PIGNEROL --------------- - QtPythonConsole::execInstructions : correctifs en cas d'erreur en mode normal (non debug). Tout le texte est en orange. -Support des exceptions c++ levées par l'API appelée, corrige le fait -que la main n'était pas rendue par la console. -- QtPythonConsole::addSwigCompletions : support d'un mécanisme optionnel -permettant de proposer une completion exacte pour les méthodes de signature -unique, et reposant sur le mot clé UnusedStructForSwigCompletion. +Support des exceptions c++ levées par l'API appelée, corrige le fait +que la main n'était pas rendue par la console. +- QtPythonConsole::addSwigCompletions : support d'un mécanisme optionnel +permettant de proposer une completion exacte pour les méthodes de signature +unique, et reposant sur le mot clé UnusedStructForSwigCompletion. -Version 2.5.0 : publiée le 08/09/17. C. PIGNEROL +Version 2.5.0 : publiée le 08/09/17. C. PIGNEROL --------------- TK_Variants v 2.16.0 (PythonUtil v 3.5.0) -Correctifs/ Améliorations : +Correctifs/ Améliorations : - QtPythonConsole::addToHistoric : en cas d'historique multilignes -(commentaire/sortie python), un # est ajouté en début de chaque ligne. -- QtPythonConsole::execInstructions : en cas d'exécution de ligne -sans code (commentaire uniquement) un message d'erreur personnalisé -est affiché. -- QtPythonConsole::lineProcessedCallback : annulation de la sélection. +(commentaire/sortie python), un # est ajouté en début de chaque ligne. +- QtPythonConsole::execInstructions : en cas d'exécution de ligne +sans code (commentaire uniquement) un message d'erreur personnalisé +est affiché. +- QtPythonConsole::lineProcessedCallback : annulation de la sélection. - QtPythonConsole::execFile appelle processPythonOutputs => flush dans les -différentes sorties des sorties python. -- QtPythonConsole::exec* : utilisation de la classe EndOfDocCursor créée pour -positionner, en fin de traitement, le curseur en position éditable en fin de +différentes sorties des sorties python. +- QtPythonConsole::exec* : utilisation de la classe EndOfDocCursor créée pour +positionner, en fin de traitement, le curseur en position éditable en fin de document. -Version 2.4.0 : publiée le 21/07/17. C. PIGNEROL +Version 2.4.0 : publiée le 21/07/17. C. PIGNEROL --------------- TK_Variants v 2.15.0 (TkUtil v 3.2.0) -Version 2.3.0 : publiée le 23/06/17. C. PIGNEROL +Version 2.3.0 : publiée le 23/06/17. C. PIGNEROL --------------- TK_Variants v 2.14.0 (QtUtil v 3.3.0) -Pré-portage Qt 5.8.x +Pré-portage Qt 5.8.x -Version 2.2.0 : publiée le 16/03/17. C. PIGNEROL +Version 2.2.0 : publiée le 16/03/17. C. PIGNEROL --------------- TK_Variants v 2.7.0 (QtUtil v 3.2.0) -Version 2.1.0 : publiée le 17/01/17. C. PIGNEROL +Version 2.1.0 : publiée le 17/01/17. C. PIGNEROL --------------- TK_Variants v 2.3.0 (QtUtil v 3.1.0) -Version 2.0.1 : publiée le 12/01/17. C. PIGNEROL +Version 2.0.1 : publiée le 12/01/17. C. PIGNEROL --------------- TK_Variants v 2.2.0 - QtPythonConsole::addToHistoric : correctif concernant la coloration du fond de -la console en cas d'erreur. Par défaut pour les lignes à venir la couleur +la console en cas d'erreur. Par défaut pour les lignes à venir la couleur restait rouge (erreur). -- QtPythonConsole::execInstructions : coorectif lors de la récupération des +- QtPythonConsole::execInstructions : coorectif lors de la récupération des messages d'erreur. -Version 2.0.0 : publiée le 12/12/16. C. PIGNEROL +Version 2.0.0 : publiée le 12/12/16. C. PIGNEROL --------------- TK_Variants v 2.0.0 TkUtil/QtUtil v 3.0.0 -Arrêt variant MT. +Arrêt variant MT. -Version 1.15.0 : publiée le 29/08/16. C. PIGNEROL +Version 1.15.0 : publiée le 29/08/16. C. PIGNEROL ---------------- TK_Variants v 1.73.0 -Version 1.14.0 : publiée le 30/06/16. C. PIGNEROL +Version 1.14.0 : publiée le 30/06/16. C. PIGNEROL ---------------- TK_Variants v 1.72.0 - QtPythonConsole : correctifs de bogue : - - les icônes pas suivant, continuer, exécuter sont fonctionnelles en mode - debug pendant l'exécution des lignes 2 et suivantes d'une session debug - (alors qu'elles sont bien insensibilisées lors de la première) => "status" + - les icônes pas suivant, continuer, exécuter sont fonctionnelles en mode + debug pendant l'exécution des lignes 2 et suivantes d'une session debug + (alors qu'elles sont bien insensibilisées lors de la première) => "status" waitingForRunning. - L'insertion de commandes applicatives (via addToHistoric (...) se faisait - mal, absence entre autres de saut à la ligne. + mal, absence entre autres de saut à la ligne. - NECPdb.py : dans postcmd (self, stop, line) correctif, -QtPythonCalls.lineProcessed n'est pas appelé si c'est une commande Pdb. +QtPythonCalls.lineProcessed n'est pas appelé si c'est une commande Pdb. -Version 1.13.2 : non publiée (29/06/16. C. PIGNEROL) +Version 1.13.2 : non publiée (29/06/16. C. PIGNEROL) ---------------- - QtPythonConsole : correctif de bogue : - - Une ligne était sautée lorsque l'on quittait le mode debug alors que - toutes les lignes n'étaient pas exécutées. + - Une ligne était sautée lorsque l'on quittait le mode debug alors que + toutes les lignes n'étaient pas exécutées. -Version 1.13.1 : publiée le 13/05/16. C. PIGNEROL +Version 1.13.1 : publiée le 13/05/16. C. PIGNEROL ---------------- TK_Variants v 1.69.0 Correctif QtPythonConsole : suppression utilisation -flags.cf_flags = CO_FUTURE_DIVISION car python ne substitue pas l'opérateur / +flags.cf_flags = CO_FUTURE_DIVISION car python ne substitue pas l'opérateur / par div dans les scripts => mauvais mapping avec swig 1.3. -Version 1.13.0 : publiée le 15/03/16. C. PIGNEROL +Version 1.13.0 : publiée le 15/03/16. C. PIGNEROL ---------------- TK_Variants v 1.66.0 -Version 1.12.0 : publiée le 21/01/16. C. PIGNEROL +Version 1.12.0 : publiée le 21/01/16. C. PIGNEROL ---------------- TK_Variants v 1.59.0 @@ -564,46 +564,46 @@ TK_Variants v 1.59.0 Correctif QtPythonConsole::addSwigCompletions (plantage icpc/release). -Version 1.11.0 : publiée le 05/01/16. C. PIGNEROL +Version 1.11.0 : publiée le 05/01/16. C. PIGNEROL ---------------- TK_Variants v 1.57.0 Correctif dans QtPythonConsole::addToHistoric : bon positionnement du curseur -si la commande reçue en argument est multilignes. +si la commande reçue en argument est multilignes. -Version 1.10.0 : publiée le 17/11/15. C. PIGNEROL +Version 1.10.0 : publiée le 17/11/15. C. PIGNEROL ---------------- -Redéployé le 20/11/15 : correctif Instruction::isMultiline. +Redéployé le 20/11/15 : correctif Instruction::isMultiline. TK_Variants v 1.56.0 -Développements QtPythonConsole : +Développements QtPythonConsole : - Affichage des sorties standard/erreur dans getLogDispatcher ( ) -=> possibilité de console Qt type QtLogsView spécialisée Log::PROCESS (cf. +=> possibilité de console Qt type QtLogsView spécialisée Log::PROCESS (cf. PyConsole). -- Affichage, quand cela est possible, des résultats d'instructions python +- Affichage, quand cela est possible, des résultats d'instructions python type 2+2 ou dir(sys). Cela requiert : - Mode normal - 1 seule instruction -- get_python_error : correctif permettant d'obtenir le détail de l'erreur -rencontrée (PyString_Check (errdata) -> PyString_Check (pystring)). -- QtPythonConsole::next : correctif visant à gérer une éventuelle exception -rencontrée lors de l'exécution de l'instruction suivante. -- Correctif scrolling console python lors de l'exécution des scripts. +- get_python_error : correctif permettant d'obtenir le détail de l'erreur +rencontrée (PyString_Check (errdata) -> PyString_Check (pystring)). +- QtPythonConsole::next : correctif visant à gérer une éventuelle exception +rencontrée lors de l'exécution de l'instruction suivante. +- Correctif scrolling console python lors de l'exécution des scripts. -Version 1.9.0 : publiée le 03/11/15. C. PIGNEROL +Version 1.9.0 : publiée le 03/11/15. C. PIGNEROL --------------- TK_Variants v 1.55.0 -Développements QtPythonConsole. +Développements QtPythonConsole. - Correctifs dans QtPythonCalls_processEvents et NECPdb::cmdloop. Le mode debug ne fonctionnait pas en Python 2.7.x. -- Renfort des appels python, appel à PyErr_Clear en cas d'échec afin de ne pas +- Renfort des appels python, appel à PyErr_Clear en cas d'échec afin de ne pas compromettre les prochains appels. - QtPythonConsole::addToHistoric : affiche sur fond orange les instructions en erreur. @@ -612,8 +612,8 @@ erreur. Remarque : - Dans QtPythonConsole, le remplacement des execInstruction ("execfile (...)") -par la méthode execFile reposant PyRun_FileFlags initialement prévu est -actuellement abandonné. Lors de la seconde session en mode debug l'exécution +par la méthode execFile reposant PyRun_FileFlags initialement prévu est +actuellement abandonné. Lors de la seconde session en mode debug l'exécution bloque dans bdb._set_stopinfo, que ce soit avec Python 2.6 ou 2.7 : > /usr/lib64/python2.6/bdb.py(161)_set_stopinfo() -> self.stopframe = stopframe @@ -621,7 +621,7 @@ bloque dans bdb._set_stopinfo, que ce soit avec Python 2.6 ou 2.7 : -> self.returnframe = returnframe -Version 1.8.0 : publiée le 23/10/15. C. PIGNEROL +Version 1.8.0 : publiée le 23/10/15. C. PIGNEROL --------------- - TK_Variants v 1.54.0 (ECM_Variants v 1.18.0 (Sur RH 6 Python 2.6 et 2.7). @@ -629,44 +629,44 @@ Version 1.8.0 : publi Retouches script de lancementi de la console PyConsole. -Déploiement RH6 Python 2.6 et 2.7. +Déploiement RH6 Python 2.6 et 2.7. -Version 1.7.0 : publiée le 23/10/15. C. PIGNEROL +Version 1.7.0 : publiée le 23/10/15. C. PIGNEROL --------------- -- QtPythonConsole : service de complétion. -En échec dans le cas d'un appel binding swig avec une signature unique possible +- QtPythonConsole : service de complétion. +En échec dans le cas d'un appel binding swig avec une signature unique possible car aucun moyen d'avoir cette signature, alors que quand plusieures signatures sont possibles swig les donne dans son message d'erreur. Dommage ... -- QtPythonConsole : correctif première ligne en mode pas à pas (arrêt après la -première instruction y compris si plusieures lignes commentées ou blanches -au début). +- QtPythonConsole : correctif première ligne en mode pas à pas (arrêt après la +première instruction y compris si plusieures lignes commentées ou blanches +au début). -Version 1.6.0 : publiée le 16/10/15. C. PIGNEROL +Version 1.6.0 : publiée le 16/10/15. C. PIGNEROL --------------- -- Classe de services QtPython, qui reçoit getVersion, initialize, finalize et +- Classe de services QtPython, qui reçoit getVersion, initialize, finalize et slashify. - Nouvelle classe de console python (QtPythonConsole) qui repose sur la classe QtTextEditor et utilise la classe QtPythonSyntaxHighlighter. -Cette classe QtPythonConsole peut fonctionner en mode debug (points d'arrêt, -avancement pas à pas, ...). Elle gère également un historique des instructions -jouées utilisable via MAJ + touche haut ou bas, et supporte optionnellement les -encodages ISO-8859-1 (valeur par défaut). +Cette classe QtPythonConsole peut fonctionner en mode debug (points d'arrêt, +avancement pas à pas, ...). Elle gère également un historique des instructions +jouées utilisable via MAJ + touche haut ou bas, et supporte optionnellement les +encodages ISO-8859-1 (valeur par défaut). - Classe QtDecoratedPythonConsole. -- Diverses icônes. +- Diverses icônes. - Application test_console. -Version 1.5.0 : publiée le 07/07/15. C. PIGNEROL +Version 1.5.0 : publiée le 07/07/15. C. PIGNEROL --------------- - TK_Variants v 1.52.0 (Portage Atos_7__x86_64). -Version 1.4.0 : publiée le 06/03/15. C. PIGNEROL +Version 1.4.0 : publiée le 06/03/15. C. PIGNEROL --------------- - TK_Variants v 1.48.0 (TkUtil v 2.36.0, QtUtil v. 2.47.0). @@ -674,54 +674,54 @@ Version 1.4.0 : publi - Passage sous coverity => quelques correctifs. -Version 1.3.0 : publiée le 01/12/14. C. PIGNEROL +Version 1.3.0 : publiée le 01/12/14. C. PIGNEROL --------------- - TK_Variants v 1.44.0 (QtUtil v 2.46.0). -Version 1.2.0 : publiée le 28/11/14. C. PIGNEROL +Version 1.2.0 : publiée le 28/11/14. C. PIGNEROL --------------- - TK_Variants v 1.43.0 (TkUtil v 2.35.0). -Version 1.1.1 : publiée le 17/11/14. C. PIGNEROL +Version 1.1.1 : publiée le 17/11/14. C. PIGNEROL --------------- - QtPythonPanel : try/catch sur les callbacks, affichage via Messagebox. - TK_variants v 1.42.0 -Version 1.1.0 : publiée le 22/09/14. C. PIGNEROL +Version 1.1.0 : publiée le 22/09/14. C. PIGNEROL --------------- -- QConsole : méthode isInError/setInError. -- QtPythonPanel : gestion du caractère "en erreur" des commandes, information -remontée dans les callbacks. -- QtPyConsole::keyPressEvent : comportement par défaut des QTextEdit pour la -touche Home (en début de ligne sous Qt 4.7.4). +- QConsole : méthode isInError/setInError. +- QtPythonPanel : gestion du caractère "en erreur" des commandes, information +remontée dans les callbacks. +- QtPyConsole::keyPressEvent : comportement par défaut des QTextEdit pour la +touche Home (en début de ligne sous Qt 4.7.4). -Version 1.0.3 : publiée le 22/05/13. C. PIGNEROL +Version 1.0.3 : publiée le 22/05/13. C. PIGNEROL --------------- Correctif QtPyConsole::insertFromMimeData -- La dernière ligne n'est pas exécutée => si c'est une instruction partielle -il n'y a pas de tentative de l'exécuter. -=> Pour exécuter une ligne python par copier/coller il faut nécessairement -apporter un caractère de fin de ligne dans le tampon. +- La dernière ligne n'est pas exécutée => si c'est une instruction partielle +il n'y a pas de tentative de l'exécuter. +=> Pour exécuter une ligne python par copier/coller il faut nécessairement +apporter un caractère de fin de ligne dans le tampon. -Version 1.0.2 : publiée le 20/05/13. C. PIGNEROL +Version 1.0.2 : publiée le 20/05/13. C. PIGNEROL --------------- Correctifs QtPyConsole::insertFromMimeData -- Toutes les lignes sont exécutées -- Coupe du texte en conservant les lignes vides (pour tester à l'usage). +- Toutes les lignes sont exécutées +- Coupe du texte en conservant les lignes vides (pour tester à l'usage). -Version 1.0.1 : publiée le 04/04/13. C. PIGNEROL +Version 1.0.1 : publiée le 04/04/13. C. PIGNEROL --------------- - Correctif QtPyConsole::insertFromMimeData @@ -737,7 +737,7 @@ for i in A : print i -Version 1.0.0 : publiée le 04/04/13. C. PIGNEROL +Version 1.0.0 : publiée le 04/04/13. C. PIGNEROL --------------- - TK variants v 1.38.0 @@ -763,7 +763,7 @@ Version 0.6.0 : publiee le 09/09/11. C. PIGNEROL - TK variants v 1.19.0, ECM_Variants v 1.8.0 - TkUtil v 2.25.0, PythonUtil v 2.25.0 - QtUtil v 2.33.0 -- Arrêt Qt 4.4.1 +- Arrêt Qt 4.4.1 Version 0.5.0 : publiee le 16/03/11. C. PIGNEROL @@ -776,8 +776,8 @@ Version 0.4.0 : publiee le 28/01/11. C. PIGNEROL --------------- - TK variants v 1.6.0 -- Suppression des espaces en début et fin de commande avant exécution. -- Affichage de commentaires associés à une commande ajoutée à l'historique. +- Suppression des espaces en début et fin de commande avant exécution. +- Affichage de commentaires associés à une commande ajoutée à l'historique. - Sortie PythonLogOutputStream. - Curseur toujours visible. @@ -786,18 +786,18 @@ Version 0.3.0 : publiee le 13/01/11. C. PIGNEROL --------------- - Blindage du fonctionnement en environnement multithread -=> Changement de thread si nécessaire via les signaux Qt. Création et +=> Changement de thread si nécessaire via les signaux Qt. Création et utilisation des signaux setUsabledCalled et addHistoricCalled. - set/getInterpreterName - TK variants v 1.5.0. -- QtUtil v 2.30.0 (blindage multithreading également). +- QtUtil v 2.30.0 (blindage multithreading également). Version 0.2.0 : publiee le 05/01/11. C. PIGNEROL --------------- - Retouches API QtPythonPanel. -- Utilisation et gestion de l'historique de commandes exécutées à l'aide des +- Utilisation et gestion de l'historique de commandes exécutées à l'aide des touches Haut et Bas. - PythonUtil v 2.22.1. @@ -807,5 +807,5 @@ Version 0.1.0 : publiee le 04/01/11. C. PIGNEROL Creation et deploiement. -Nouveau déploiement le 05/01/11 : enrobage des commandes afin d'afficher le -résultat des expressions exécutées. API inchangée. +Nouveau déploiement le 05/01/11 : enrobage des commandes afin d'afficher le +résultat des expressions exécutées. API inchangée.