[progliste] C'est parti pour E dPy
Et maintenant un peu plus de précisions sur l'algo qui me semble bien pour le copier/coller intelligent : Admettons que 3 lignes entières soient sélectionnées : [Tab][Tab]if a is None: [Tab][Tab][Tab]return [Tab]print'Hello') 1- Action copier: Prendre le texte contenu des 3 lignes entières. Tant que toutes les lignes du texte commencent par une Tab, supprimer une [Tab] en début de chaque ligne. On supprime donc 1 seul [Tab] dans l'exemple en début de chaque ligne, car au delà, la dernière n'aurait plus de [Tab] à retirer. Copier le texte ainsi obtenu dans le presse papier. Dans l'exemple, ça serait : [Tab]if a is None: [Tab][Tab]return print'Hello') 2- Action coller : Récupérer le texte du presse papier. Supprimer les [Tab] en tête de la première ligne puis coller cette ligne à l'endroit du curseur. Puis coller les lignes suivantes en respectant le delta d'indentation du texte récupéré du presse-papier. 3- Traitement d'autres cas : Cas 1: Si la sélection ne démarre pas dès le début de la première ligne, (par exemple début sélection juste avant le if) faire comme si elle démarrait au début malgré tout. En effet, l'algot est basé sur le point d'insertion pour le collage de la 1e ligne et sur les différences d'indentation entre les lignes qui doivent être respectées. Cas 2: Si la sélection démarre au milieu du texte de la première ligne, par exemple juste avant le mot "is", faire le même algo de copie en supprimant le texte du début de la ligne non sélectionné, mais pas les [Tab] ! Puis coller de la même manière que l'algo. Dans cet exemple le presse papier contient donc : [Tab]is None: [Tab][Tab]return print'Hello') Cas 3 : Si l'application des delta d'indentation au collage devait provoquer des indentations négatives, on laisse les lignes concernées sans indentation (à la marge). Évidemment, dans ce cas on perd la cohérence de l'indentation mais de toute manière, vu les conditions de la copie ou du collage, il est évident qu'on ne pouvait pas attendre de cohérence dans l'indentation. Voilà. Quentin et les autres, dîtes-moi ce que vous en pensez. Les 2 idées générales de cet algo sont : * on garde toujours un même delta d'indentation entre les lignes * le texte collé ne commence jamais avec un espace ou une [Tab] après le point d'insertion du collage. Évidemment, il faudrait à terme pouvoir désactiver cette fonctionnalité pour ceux qui traitent plus de texte que de code. Ou mieux encore, pouvoir la configurer en fonction du type de fichier ouvert (fichier code .py, .vbs, etc. vs. fichier .txt, .ini, etc.) Allez j'arrête là. Dîtes-moi aussi si c'est pas clair du tout ! Bonne soirée. Cyrille Le 12/01/2018 à 22:26, Cyrille a écrit : Je renvoie car pas sûr que le message soit passé. Cyrille Message transféré Sujet : Re: [progliste] Re: Re : Re: C'est parti pour EdPy Date : Fri, 12 Jan 2018 18:04:06 +0100 De :CyrillePour : progliste@ml.free.fr Hello Juste pour répondre vite fait : Oui c'est normal que je fasse un Tab de plus après un if en Python. C'était pas une requête de ma part mais une simple description de mes actions. Comme tu dis, c'est la responsabilité du programmeur ou d'un plug-in spécial Python. Pour l'algo du copier/coller intelligent, j'ai une idée en tête mais il faut que j'écrive ça proprement en prenant un peu de temps, donc plus tard... L'important est que tu sembles avoir les mêmes vues que moi sur le sujet, ce qui me rassure. Bonne soirée. Cyrille Le 12/01/2018 à 17:19, QuentinC a écrit : > Hello, > > > 1- Navigation avec Alt+flèches haut ou bas: > > Eviter de s'arrêter sur les lignes vides ou ne contenant que des > espaces ou tab. > > Ce sera corrigé dans la version suivante, je me suis aussi rapidement > rendu compte de ce petit inconvénient. > > > 3- Tant qu'on y est, mettre aussi un .txt avec le mail d'Abdel pour > l'installation. > > Ca ne sera plus nécessaire je pense, j'ai installé cx_Freeze. > C'est un utilitaire comparable à Py2Exe, qui compile donc un projet > python dans un beau .exe avec toutes les DLL nécessaires. > Je vous mettrai même le script de compilation comme ça vous pourrez le > compiler vous-mêms si vous voulez. > > > 4- Copier / coller intelligent(le plus long pour la fin) : > > Pour moi il faudrait que quelle que soit la sélection de départ, le > delta d'indentation entre les lignes collées reste le même, ce qui > n'est pas toujours le cas dans la version actuelle. > > C'est pourtant bien ce que j'ai prévu. > > > Donc si je sélectionne depuis le début de la ligne 3 (donc en > incluant les 2 premières [tab]) ou si je sélectionne à partir de la > 2e [tab] incluse seulement ou si je sélectionne à partir du if (donc > en excluant les 2 [tab] j'aimerais que cela n'ait pas d'impact sur ce > qui est collé. > > Par contre ici, tu fais bien de soulever ce point, c'était une de mes >
[progliste] Re: Conversion Python 2 vers 3
Coucou JF, Apparemment, selon ce que j'ai compris, 2to3.py a trouvé une erreur dans la ligne 77. Bad token est un mauvais jeton, le module utilise ces token pour parser le code à corriger. Mais bon, si tu pouvais m'envoyer ce module mbox.py, je veux dire la version avant correction, je pourrai certainement encore mieux t'aider... Merci. Bien amicalement, Abdel. Le 11/01/2018 à 22:51, Jean-François Colas a écrit : Hello la ML, Bon, puisque WxPython est désormais utilisable avec Python 3, plus trop besoin a priori de garder Python 2.7. Alors, grosse opération conversion de scripts avec le script 2to3. Ca marche apparemment pour 95% des scripts, mais de fait, 2to3 bloque sur certains d'entre eux. Avant que je ne me lance dans une investigation quelque peu fastidieuse du pourquoi, auriez-vous des expériences de situations où 2to3 semble ne pas s'en sortir? Parce que les erreurs qu'il sort, question clarté... Exemple: 2to3.py -w mbox.py RefactoringTool: Skipping optional fixer: buffer RefactoringTool: Skipping optional fixer: idioms RefactoringTool: Skipping optional fixer: set_literal RefactoringTool: Skipping optional fixer: ws_comma RefactoringTool: Can't parse mbox.py: ParseError: bad token: type=56, value=u'\r ', context=('', (77, 14)) RefactoringTool: No files need to be modified. RefactoringTool: There was 1 error: RefactoringTool: Can't parse mbox.py: ParseError: bad token: type=56, value=u'\r ', context=('', (77, 14)) Comment voulez-vous que ça me parle? Merci, J.-F. Progliste : Pour se d�sinscrire de la liste : mailto:progliste-requ...@ml.free.fr?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/progliste@ml.free.fr/ Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� � 2 MO Pour acc�der aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je vous r�pondrez en priv�. Progliste : Pour se d�sinscrire de la liste : mailto:progliste-requ...@ml.free.fr?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/progliste@ml.free.fr/ Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO Pour acc�der aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je vous r�pondrez en priv�.
[progliste] Fwd: Re: Re: Re : Re: C'est parti pour E dPy
Je renvoie car pas sûr que le message soit passé. Cyrille Message transféré Sujet : Re: [progliste] Re: Re : Re: C'est parti pour EdPy Date : Fri, 12 Jan 2018 18:04:06 +0100 De :CyrillePour : progliste@ml.free.fr Hello Juste pour répondre vite fait : Oui c'est normal que je fasse un Tab de plus après un if en Python. C'était pas une requête de ma part mais une simple description de mes actions. Comme tu dis, c'est la responsabilité du programmeur ou d'un plug-in spécial Python. Pour l'algo du copier/coller intelligent, j'ai une idée en tête mais il faut que j'écrive ça proprement en prenant un peu de temps, donc plus tard... L'important est que tu sembles avoir les mêmes vues que moi sur le sujet, ce qui me rassure. Bonne soirée. Cyrille Le 12/01/2018 à 17:19, QuentinC a écrit : Hello, > 1- Navigation avec Alt+flèches haut ou bas: > Eviter de s'arrêter sur les lignes vides ou ne contenant que des espaces ou tab. Ce sera corrigé dans la version suivante, je me suis aussi rapidement rendu compte de ce petit inconvénient. > 3- Tant qu'on y est, mettre aussi un .txt avec le mail d'Abdel pour l'installation. Ca ne sera plus nécessaire je pense, j'ai installé cx_Freeze. C'est un utilitaire comparable à Py2Exe, qui compile donc un projet python dans un beau .exe avec toutes les DLL nécessaires. Je vous mettrai même le script de compilation comme ça vous pourrez le compiler vous-mêms si vous voulez. > 4- Copier / coller intelligent(le plus long pour la fin) : > Pour moi il faudrait que quelle que soit la sélection de départ, le delta d'indentation entre les lignes collées reste le même, ce qui n'est pas toujours le cas dans la version actuelle. C'est pourtant bien ce que j'ai prévu. > Donc si je sélectionne depuis le début de la ligne 3 (donc en incluant les 2 premières [tab]) ou si je sélectionne à partir de la 2e [tab] incluse seulement ou si je sélectionne à partir du if (donc en excluant les 2 [tab] j'aimerais que cela n'ait pas d'impact sur ce qui est collé. Par contre ici, tu fais bien de soulever ce point, c'était une de mes questions en suspens. FAut-il alors automatiquement corriger la sélection de sorte qu'elle commence au début de la ligne en incluant toujours les tabs, dès lors qu'elle s'étend sur plusieurs lignes ? J'ai peur qu'il y ait des inconvénients dans certaines situations si on fait ça. Dans la version actuelle il n'y a pas de correction. Ce qui fait que le résultat sera effectivement différent si les tabs étaient sélectionnés ou non lors de la copie. > Enfin au moment du collage, le if doit être collé juste à l'endroit du curseur, indépendamment du fait que des [tab] aient été sélectionnées ou pas sur la ligne d'en-tête. On reste sur la même question en fait. Ca peut arriver que le if ne soit pas collé immédiatement derrière le curseur s'il est plus indenté que les lignes suivantes. ce n'est effectivement pas très malin, mais je pense qu'en résolvant le point précédent on résoudra aussi ce cas. > Donc dans l'exemple, si le curseur est à la fin du fichier, pour coller et faire un code correct, il faut que je fasse [tab] une fois puis que je colle (Ctrl+V) afin d'otenir un code bien indenté. Ca par contre c'est normal. Je ne suis pas censé savoir, et à ce stade je n'ai pas à le savoir ou essayer de le deviner, que tu passes à la ligne après un if et que tu veux potentiellement ajouter un tab. On pourra par contre envisager quelque chose quand on fera un plugin spécial python, qui pourrait détecter que si on fait enter à la fin d'une instruction if, il ajoute l'indentation automatiquement. J'y réfléchis, mais patience ! Progliste : Pour se d�sinscrire de la liste : mailto:progliste-requ...@ml.free.fr?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/progliste@ml.free.fr/ Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� � 2 MO Pour acc�der aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je vous r�pondrez en priv�.
[progliste] Re: Mise en route éditeur
Bof, comme dirait l'autre, qu'on évolue ou qu'on n'évolue pas, on finit par finir quand même... J.-F. Le 12/01/2018 17:31, QuentinC a écrit : Hello, Si, c'est toi le boulet avec ton XP lol. JE n'étais pas au courant de ce . . . détail. Moi aussi je suis contre l'obsolescence programmée, mais il ne faut pas exagérer. Windows XP est officiellement mort depuis 2014 quand même. Donc bon, pour finir on n'évolue jamais non plus. Progliste : Pour se d�sinscrire de la liste : mailto:progliste-requ...@ml.free.fr?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/progliste@ml.free.fr/ Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� � 2 MO Pour acc�der aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je vous r�pondrez en priv�. Progliste : Pour se d�sinscrire de la liste : mailto:progliste-requ...@ml.free.fr?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/progliste@ml.free.fr/ Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO Pour acc�der aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je vous r�pondrez en priv�.
[progliste] Re: Mise en route éditeur
Hello, Si, c'est toi le boulet avec ton XP lol. JE n'étais pas au courant de ce . . . détail. Moi aussi je suis contre l'obsolescence programmée, mais il ne faut pas exagérer. Windows XP est officiellement mort depuis 2014 quand même. Donc bon, pour finir on n'évolue jamais non plus. Progliste : Pour se d�sinscrire de la liste : mailto:progliste-requ...@ml.free.fr?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/progliste@ml.free.fr/ Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO Pour acc�der aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je vous r�pondrez en priv�.
[progliste] Re: Re : Re: C'est parti pour EdPy
Hello, > 1- Navigation avec Alt+flèches haut ou bas: > Eviter de s'arrêter sur les lignes vides ou ne contenant que des espaces ou tab. Ce sera corrigé dans la version suivante, je me suis aussi rapidement rendu compte de ce petit inconvénient. > 3- Tant qu'on y est, mettre aussi un .txt avec le mail d'Abdel pour l'installation. Ca ne sera plus nécessaire je pense, j'ai installé cx_Freeze. C'est un utilitaire comparable à Py2Exe, qui compile donc un projet python dans un beau .exe avec toutes les DLL nécessaires. Je vous mettrai même le script de compilation comme ça vous pourrez le compiler vous-mêms si vous voulez. > 4- Copier / coller intelligent(le plus long pour la fin) : > Pour moi il faudrait que quelle que soit la sélection de départ, le delta d'indentation entre les lignes collées reste le même, ce qui n'est pas toujours le cas dans la version actuelle. C'est pourtant bien ce que j'ai prévu. > Donc si je sélectionne depuis le début de la ligne 3 (donc en incluant les 2 premières [tab]) ou si je sélectionne à partir de la 2e [tab] incluse seulement ou si je sélectionne à partir du if (donc en excluant les 2 [tab] j'aimerais que cela n'ait pas d'impact sur ce qui est collé. Par contre ici, tu fais bien de soulever ce point, c'était une de mes questions en suspens. FAut-il alors automatiquement corriger la sélection de sorte qu'elle commence au début de la ligne en incluant toujours les tabs, dès lors qu'elle s'étend sur plusieurs lignes ? J'ai peur qu'il y ait des inconvénients dans certaines situations si on fait ça. Dans la version actuelle il n'y a pas de correction. Ce qui fait que le résultat sera effectivement différent si les tabs étaient sélectionnés ou non lors de la copie. > Enfin au moment du collage, le if doit être collé juste à l'endroit du curseur, indépendamment du fait que des [tab] aient été sélectionnées ou pas sur la ligne d'en-tête. On reste sur la même question en fait. Ca peut arriver que le if ne soit pas collé immédiatement derrière le curseur s'il est plus indenté que les lignes suivantes. ce n'est effectivement pas très malin, mais je pense qu'en résolvant le point précédent on résoudra aussi ce cas. > Donc dans l'exemple, si le curseur est à la fin du fichier, pour coller et faire un code correct, il faut que je fasse [tab] une fois puis que je colle (Ctrl+V) afin d'otenir un code bien indenté. Ca par contre c'est normal. Je ne suis pas censé savoir, et à ce stade je n'ai pas à le savoir ou essayer de le deviner, que tu passes à la ligne après un if et que tu veux potentiellement ajouter un tab. On pourra par contre envisager quelque chose quand on fera un plugin spécial python, qui pourrait détecter que si on fait enter à la fin d'une instruction if, il ajoute l'indentation automatiquement. J'y réfléchis, mais patience ! Progliste : Pour se d�sinscrire de la liste : mailto:progliste-requ...@ml.free.fr?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/progliste@ml.free.fr/ Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO Pour acc�der aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je vous r�pondrez en priv�.
[progliste] Re : Re: C'est parti pour EdPy
Bonjour,J'ai pas eu le temps d'intervenir avant ni de tester. Alors maintenant je raccroche les wagons pour le dmarrage de EdPy, Jane, QCE / QCEditor (que j'aimais bien) ou autre. Voici donc mes remarques :1- Navigation avec Alt+flches haut ou bas:Eviter de s'arrter sur les lignes vides ou ne contenant que des espaces ou tab.2- Un fichier d'aide minimaliste (ou de new features) tout de suite pour savoir les fonctions dj implmentes et tester !Ca peut tre un copier coller brouillon de tes mails mais au moins a reste dans le programme. Sinon, en regardant juste le .zip que tu as envoy, qui sait qu'il y a le copier/coller intelligent, la navigation par indentation ou la commande atteindre amliore ? D'ailleurs, j'ai pas test la commande atteindre car j'ai eu la flemme de rouvrir le mail...3- Tant qu'on y est, mettre aussi un .txt avec le mail d'Abdel pour l'installation.4- Copier / coller intelligent(le plus long pour la fin) :Voil ci-aprs ce que j'aimerais; c'est dj ce que j'aurais voulu sur 6pad++ mais je n'ai jamais pris le temps de le formuler.Lorsque plusieurs lignes sont slectionnes, et copies/colles, il faudrait :* Supprimer les ventuels blancs / tab en dbut de slection* considrer indpendamment du point de dbut de slection prcis sur la 1e ligne le delta d'indentation entre la 1e ligne slectionne et les suivantes pour le collage.1 def toto(a, b):2 [tab]if a == 2:3 [tab][tab]if b == 4:4 [tab][tab][tab]print('a vaut 2 et b vaut 4')5 [tab][tab]else:6 [tab][tab][tab]print('a vaut 2 et b vaut pas 4')7 [tab]else:8 [tab][tab]if a == 6:9 [tab][tab]Dans cet exemple, je veux slectionner les lignes 3 6 et les coller la fin.Pour moi il faudrait que quelle que soit la slection de dpart, le delta d'indentation entre les lignes colles reste le mme, ce qui n'est pas toujours le cas dans la version actuelle.Donc si je slectionne depuis le dbut de la ligne 3 (donc en incluant les 2 premires [tab]) ou si je slectionne partir de la 2e [tab] incluse seulement ou si je slectionne partir du if (donc en excluant les 2 [tab] j'aimerais que cela n'ait pas d'impact sur ce qui est coll.Enfin au moment du collage, le if doit tre coll juste l'endroit du curseur, indpendamment du fait que des [tab] aient t slectionnes ou pas sur la ligne d'en-tte.Donc dans l'exemple, si le curseur est la fin du fichier, pour coller et faire un code correct, il faut que je fasse [tab] une fois puis que je colle (Ctrl+V) afin d'otenir un code bien indent. Si je ne fais pas de [tab] avant, le "if b == 4:" coll serait au mme niveau que ""if a == 6:" (ligne au dessus), ce qui est incorrect en Python.Bon j'espre que c'est comprhensible !Voil, je teste, mais je ne passe pas encore EdPy et reste pour le moment sur 6pad++.Le grand intrt de 6pad++ est sa scriptabilit Python qui est pour moi indispensable pour la transition ! J'espre que a viendra vite mme si je comprends que a puisse pas tre trs rapide. En tout cas merci pour le boulot ! Bonne journe.Cyrille - Mail d'origine -De: QuentinC: progli...@ml.free.frEnvoy: Wed, 03 Jan 2018 05:40:56 +0100 (CET)Objet: [progliste] Re: C'est parti pour EdPy Bonjour, JE vous envoie une version mise jour qui est beaucoup plus riche que la prcdente.Comme vous pouvez le voir, j'ai mentionn le nom du projet un minimum de places. Il n'y aura qu'un dossier et 2 fichiers renommer quand on aura trouv un nom. Fonctionalits actuelles:- Edition de fichiers multiples avec le systme d'onglets- Choix l'enregistrement et autodtection l'ouverture de l'encodage, des fins de ligne et du type d'indentation- Fonction rechercher et rechercher/remplacer avec regex- Affichage de la position ou de la slection dans la barre de statut- Ouverture des fichiers spcifis en ligne de commande avec possibilit d'atteindre directement une position souhaite ds l'ouverture avec la syntaxe truc.txt:19 ou truc.txt:19,88- Fonction atteindre qui autorise plusieurs syntaxes:* 10 pour aller la ligne 10* +10 pour descendre de 10 lignes* -10 pour monter de 10 lignes* 10,27 pour aller la ligne 10, colonne 27* 7-15 pour slectionner du dbut de la ligne 7 la fin de la ligne 15* 7,9-17,33 pour slectionner depuis ligne 7 colonne 9 jusqu' ligne 17 colonne 33* JE rflchis ajouter plusieurs autres syntaxes pour rendre cette fonction assez polyvalente C'est maintenant le moment de tester et dnicher les premiers bugs.IL y a aussi une to do list dans l'archive. Si vous avez des ides ajouter, n'hsitez pas ! Merci pour votre soutien, vos ides et vos tests A bientt