Coucou Abdel,

Très très intéressant !

Mais alors vraiment intéressant !

Je l'intègre à mon code dès que j'ai une seconde, et reviendrai vers toi.

Je suis d'ailleurs sur le point d'implémenter également l'exécution d'un fichier par l'un des python choisi.

Et parmi les pythons pris en compte, le premier d'entre eux doit être celui embarqué avec le 6pad++.

A plus !

Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
www.visuweb.net




----- Original Message ----- From: "_Abdel_" <[email protected]>
To: <[email protected]>
Sent: Wednesday, February 10, 2016 11:48 AM
Subject: [progliste] Re: Extension forPython : bugs et améliorations


Salut Yannick,

Début de citation

Mais petit bémol à cette fonctionnalité, à cause du fait qu'il ne peut y avoir que des fonctions figées à l'attribut action des menus, je suis obligé de créer à l'avance un nombre déterminé de fonctions qui exécuteront le choix fait sur les menus suivant leur position.

Plus concrètement, je suis obligé de faire à l'avance des fonctions comme suit:

def choosePythonVersion1():

def choosePythonVersion2():

def choosePythonVersion3():

def choosePythonVersion4():

def choosePythonVersionX():

Fin de citation

Ah tu crois?

Eh bien j'ai une très bonne nouvelle à t'annoncer.

Sache qu'avec Python, tu peux ne créer qu'une seule fonction callback pour tous tes sous-menus, quel que soit leur nombre.

Si tu veux, je te fournis plus bas un petit exemple, où l'on crée plusieurs sous-menus dynamiquement grâce à une boucle et où l'on interagit avec chacun d'entre eux, avec une seule et unique fonction callback.

Concrètement, ce sera beaucoup plus simple pour toi lol !

Je serai intéressé que l'on intègre cette fonctionnalités d'exécution de script Python dans la nouvelle version du forPython si tu veux.

Pour l'étude des décorateurs, je t'invite à lire le super tuto du site OpenClassrooms, ex site du zero, ou celui de Sam & Max:

Tuto d'OpenClassrooms :

https://openclassrooms.com/courses/apprenez-a-programmer-en-python/les-decorateurs

Tuto de Sam & Max, en 2 parties :

http://sametmax.com/comprendre-les-decorateurs-python-pas-a-pas-partie-1/

http://sametmax.com/comprendre-les-decorateur-python-pas-a-pas-partie-2/

Je t'invite aussi à regarder le travail de notre ami Cyrille, qui pourrait être source d'inspiration...

Voici donc mon exemple de création d'un seul callback pour plusieurs sous-menus créés dynamiquement grâce à une boucle :

Début du code

# Création de la fonction make_f en tant que décorateur, ce sera notre seul et unique callback.
def make_f(i):
   # Création de la fonction f, à l'intérieur de la fonction make_f.
   def f():
       # On récupère le nom du sous-menu sur lequel on vient de valider
       myMenuName = "menu%d" % i
       sp.window.alert(myMenuName, "Nom du menu")
       # On décoche tous les sous-menus sauf le sous-menu en cours
       for x in range(myMenu.length):
           if not myMenu[x].name == myMenuName:
               myMenu[x].checked = False
           else:
               myMenu[x].checked = True
   # On retourne la fonction f.
   return f

# Création du menu comme sous menu du menu outils
toolsMenu = sp.window.menus.tools
myMenu = toolsMenu.add(label = "M&on menu", submenu = True)

# Création de la boucle permettant de créer les sous-menu dynamiquement
for i in range(1, 6):
   # on affecte f à l'action du callback
   f =make_f(i)
myMenu.add(label = "menu &%d" % i, index = -1, action=f, name="menu%d" % i)

Fin du code

Bien amicalement,
Abdel.

----- Original Message ----- From: "Yannick Youalé" <[email protected]>
To: <[email protected]>
Sent: Monday, February 08, 2016 9:26 AM
Subject: [progliste] Re: Extension forPython : bugs et améliorations


Salut Abdel,

Début de citation

Autrement, je suis en train d'étudier comment intégrer la possibilité
d'exécuter un script Python.

Fin de citation

Dans cette optique, j'ai travaillé sur une fonctionnalité de listage des différentes versions de python installées sur l'ordinateur courant.

Elles sont énumérées comme sous-menus à un menu intitulé "Versions de python". dans le menu outil.

La version choisie par défaut est cochée, et ce choix est sauvegardé dans le fichier de configuration.

Dans le code, on peut retrouver la version de python sélectionnée par la variable globale curPythonPath qui renvoit le chemin vers le dossier du python choisi.

Et dans tous les cas, l'exécutable du python choisi est:
curPythonPath+\\python.exe

Mais petit bémol à cette fonctionnalité, à cause du fait qu'il ne peut y avoir que des fonctions figées à l'attribut action des menus, je suis obligé de créer à l'avance un nombre déterminé de fonctions qui exécuteront le choix fait sur les menus suivant leur position.

Plus concrètement, je suis obligé de faire à l'avance des fonctions comme suit:

def choosePythonVersion1():

def choosePythonVersion2():

def choosePythonVersion3():

def choosePythonVersion4():

def choosePythonVersionX():

Ce qui n'est pas très commode vous le remarquerez.
Cela m'a obligé à limiter le nombre de versions du python à prendre en compte à 5 pour le moment.

Certes, je pourrais plutôt employer une liste de choix pour choisir la version du python, mais ça semble tellement moins naturel que les menus qui peuvent être cochés ou décochés...

Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
www.visuweb.net






----- Original Message ----- From: "_Abdel_" <[email protected]>
To: <[email protected]>
Sent: Monday, February 08, 2016 8:23 AM
Subject: [progliste] Re: Extension forPython : bugs et améliorations


Resalut les scripteurs !

Voici une dernière mouture du module forPython, qui tient compte du niveau d'indentation, lors de l'utilisation de la touche backSpace lorsqu'on est en
début de ligne.

Pour les mises à jour de l'extension, la priorité sera bien sûr ce que vous
souhaiteriez améliorer ou corriger.

Autrement, je suis en train d'étudier comment intégrer la possibilité
d'exécuter un script Python.

J'explore également les nouveautés de la version alpha pour intégrer le plan
du module en cours d'implémentation ou d'exploration sous la forme d'une
treeView.

Toute aide ou suggestion sera la bienvenue les amis.

Bien amicalement,
Abdel.

----- Original Message ----- From: "_Abdel_" <[email protected]>
To: <[email protected]>
Sent: Sunday, February 07, 2016 11:56 PM
Subject: [progliste] Re: Extension forPython : bugs et améliorations


Merci Quentin,

En fait, pour ma part, c'est toujours dans un dossier "plugins" que
j'inserts mes extensions pour 6pad++.

Mais Yannick nous a dit dans l'un de ses précédents posts, que parfois, il
avait tendance à les introduire dans d'autres répertoires.

Qu'à cela ne tienne, le problème est désormais bel et bien résolu.

Sans plus tarder les amis, je vous communique la nouvelle mouture de
l'extension forPython.

Elle comporte les améliorations suivantes :

1. Désormais, vous disposez d'un nouveau mode de lecture des entêtes de
lignes, il s'agit de la lecture des indentations, ainsi que la lecture des
numéros de lignes et des indentations.

2. Le menu Outils est bien ciblé pour l'ajout du sous-menu forPython,
comme
nous l'avait demandé Cyrille.

3. Désormais, dans la liste des fonctions dont on va souhaiter modifier
les
raccourcis-clavier, la liste recueille désormais les noms de chaque item
en
français, en allant les rechercher dans les labels des menus
correspondant,
comme nous l'a demandé Cyrille.

4. La fonction getCurScriptFolderPath a bien été corrigée et devrait
fonctionner quel que soit le contexte du répertoire où figurera
l'extension
forPython.

Modalité d'installation :

Étant-donné que notre ami Yannick nous a gratifié d'un nouveau fichier
"statements.txt" pour l'insertion des directives d'encodage, l'extension forPython dispose désormais de 2 fichiers et ils ont été insérés dans un
répertoire "forPython".

C'est 2 fichiers sont le fichier "__init__.py" et le fameux fichier
"statements.txt" de Yannick.

Pour l'installation, la ligne a insérer dans le fichier de configuration
"6pad++.ini" devra être la suivante :

extension=plugins/forPython/__init__.py

Testez-la et faites nous part de vos remarques et suggestions...

Bien amicalement,
Abdel.

----- Original Message ----- From: "QuentinC" <[email protected]>
To: <[email protected]>
Sent: Sunday, February 07, 2016 10:16 PM
Subject: [progliste] Re: Extension forPython : bugs e t am éliorations


> Celui-ci pouvant être "plugins", "lib", "extension" ou autre, > Yannick avait créé un algorithme qui, en utilisant des conditions, teste lequel
est utilisé.

C'est censé toujours être plugins pour les plugins python de 6pad++.
Progliste :
Pour se désinscrire de la liste :
mailto:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
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:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
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:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
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:[email protected]?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/       

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é.
        
        

Répondre à