Salut les amis,Je pense avoir trouvé une solution au problème de navigation parmi les bloc évoqué hier.
En fait, comme vu avec Yannick, le PB était purement un pb d'assignation de racourci-clavier, rien d'autre.
Pour pouvoir utiliser ces 4 très utiles navigations parmi les blocs, implémentées par notre ami Yannick, je pense qu'il serait intéressant de leur assigner des touche sfaciles d'accès.
Qu'en pensez-vous? Par défaut, je leur ai assigné les touches de F9 à F12.Il faut éviter d'utiliser les racourcis ALT + les flèches directionnelles, ALT + SHIFT + les flèches directionnelles et CTRL + SHIFT + les flèches directionnelles, car ils ne sont apparemment pas tolérés.
Voici les touches assignées par défaut, qui fonctionnent très bien ici : 1. Aller au bloc père a été assigné à F9. 2. Aller au premier bloc enfant a été assigné à F10. 3. Aller au bloc frère suivant a été assigné à F11. 4. Aller au bloc frère précédent a été assigné à F12. Voili voilou, en PJ, la mise à jour du forPython. Le fichier changeLog.txt a été mis à jour en conséquence. Merci à vous... Bien amicalement, Abdel.----- Original Message ----- From: "Jean-François Colas" <[email protected]>
To: <[email protected]> Sent: Tuesday, May 03, 2016 10:41 PM Subject: [progliste] Re: Fw: 6pad+ + forPython- dernièr e version
Hello,Pour Jaws, ce n'est qu'une demi-poisse: rien n'interdit de prévoir un jeu de scripts pour surcharger les scripts associés à certaines touches, afin que la seule chose que fassent ces scripts serait d'envoyer la touche idoine à l'application en cours. Après tout, il a déjà fallu user de ce truc-là pour les Visu de toutes sortes, en tout cas Visu2Script et Visunote aussi. Perso ça ne me gêne pas. Par contre, côté NVDA, je ne sais pas si la solution est du même niveau, si même le problème est du même niveau.J.-F. Le 03/05/2016 16:28, Yannick Youalé a écrit :Salut Abdel, Début de citation J'éprouve aussi des difficultés à aller vers le bloc enfant suivant et le bloc père précédent avec les touches Alt + flèche droite et Alt + flèche Fin de citation Abdel, est-ce que tu lis tous tes mails ?Parce que j'ai abordé ce sujet dans celui que j'ai envoyé à la progliste ce matin.Le problème est celui de raccourcis-clavier déjà employés par jaws ou NVDA.Pour te rassurer que ce ne sont pas les commandes elles-même qui sont en cause, essai de les exécuter à partir des menus pour voir.De mon côté, j'ai tenté de changer les raccourcis de alt+flèches vers alt+shift+flèche et il s'avère toujours qu'il y en a qui sont réservés soit par NVDA, soit par Jaws.Vraiment la poisse 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: Tuesday, May 03, 2016 12:54 PM Subject: [progliste] Re: Fw: 6pad+ + forPython- dernière versionResalut les scripteurs ! Voilà, une petite retouche a été apportée au forPython. Désormais, lorsque vous modifierez un raccourci-clavier avec CTRL+M, la présence de celui-ci sera vérifiée.S'il s'avère qu'il est déjà attribué, un message devrait vous en prévenir.Une fois après avoir validé sur OK, vous serez invités à en saisir un autre.Je vous joins également un module skype.py compressé en zip, provenant des sources de NVDA, sur lequel je m'entraîne à utiliser les nouvelles commandesdu forPython.Lorsque j'ouvre ce module dans 6pad++ avec le forPython activé, si je fais Contrôle Origine, pour me positionner en début de module, puis que je faisF2 pour basculer vers l'élément suivant, j'atterris sur la classe : "class Conversation(NVDAObjects.IAccessible.IAccessible):" Jusque là, tout va bien.Celà se corse si je réalise le raccourci clavier Alt + flèche basse, qui estsensé m'envoyé vers le bloc frère suivant. En principe, le bloc frère suivant est normalement la classe suivante : "class ChatOutputList(NVDAObjects.IAccessible.IAccessible):" Mais il n'en est rien en fait. Cela se produit-il chez vous aussi?J'éprouve aussi des difficultés à aller vers le bloc enfant suivant et lebloc père précédent avec les touches Alt + flèche droite et Alt + flèche gauche. Merci de vos retours... S'il s'avère que vous avez aussi ce bug, nous essaierons, Yannick et moi-même, de le corriger. Merci à vous. Bien amicalement, Abdel. ----- Original Message ----- From: "_Abdel_" <[email protected]> To: <[email protected]> Sent: Monday, May 02, 2016 12:02 PM Subject: [progliste] Re: Fw: 6pad+ + forPython- dernière versionResalut la ML, Comme vu avec Yannick, voici la mise à jour du forPython, intégrant le nouvel item dans le menu outils, permettant d'activer/désactiver l'extension. Comme la méthode proposée par Yannick pour la modification des raccourcis-clavier n'est pas encore au point, j'ai ajouté toutes les nouvelles commandes dans le dictionnaire, afin de pouvoir les modicier avec CTRL+M, comme avant.Autre chose, je crois avoir compris pourquoi la PJ de Yannick n'était paspassée. Ce n'est pas vraiment à cause du .zip, qui passe normalement sans pb,puisqu'on en avait déjà envoyé, mais plutôt à cause des fichiers HTA, qui sont en quelque sorte des fichiers exécutables, qui peuvent être bloquéspar les serveurs. J'ai renommé l'archive en ajoutant le .txt, afin d'éviter tout blocage.Faîtes vos tests et surtout, dites-nous si des fonctions ne fonctionnentpas bien chez vous.Chez moi, la fonction permettant de faire une recherche avancée me redonneun message d'erreur, celui que j'avais posté précédemment.Je n'arrive également pas à utiliser la commande permettant de créer unenouvelle fonction ou nouvelle classe, car le HTA refuse à nouveau de s'exécuter dans 6pad++. Celà le fait-il chez vous aussi? Merci pour vos retours. Bien amicalement, Abdel.----- Original Message ----- From: "Yannick Youalé" <[email protected]>To: <[email protected]> Sent: Sunday, May 01, 2016 11:56 PM Subject: [progliste] Re: Fw: 6pad+ + forPython- dernière v ersionCoucou Abdel, Je viens juste de rentrer. Début de citation En fait, en regardant bien les éléments de la boîte de dialogue derecherche avancée, j'ai trouvé qu'elle comportait le choix de rechercherdans la classe ou fonction courante en plus des autres choix. Fin de citation Oui, elle a été faite spécifiquement pour le python. Et d'ailleurs, je me souviens qu'il y a le champ "direction de la recherche" qui propose les valeurs "toutes, vers le haut, vers le bas" que je n'ai pas encore implémenter. Il va falloir le faire.Concernant cette boîte de dialogue, je dois encore faire la sauvegarde etla restauration des paramètres de la dernière recherche. Début de citation Il ne reste plus qu'à continuer le travail, mais avant cela, je souhaitais d'abord que Yannick vérifie si tout est bon, étant-donné qu'il est le créateur de la fonction loadForPythonTools originale. Fin de citationPour moi c'est bon, tu sembles avoir tout pris en compte mon petit Abdel.Maintenant concernant le module de gestion des raccourcis clavier, le bug dont je parlais ce matin s'est avéré être quelque chose de plus sérieuxque je ne l'avais envisagé. En effet, il semble que dans le 6pad++ lorsqu'on a assigné un raccourci-clavier à un menu, on ne peut plus par la suite assigner une valeur vide comme accélérateur à ce menu. Autrement dit, on ne peut plus réinitialiser la propriété accelerator d'un menu dès qu'elle a pris un raccourci valide.Et cela est plus que embêtant si on désire effacer le raccourci-clavierd'un menu pour l'attribuer à un autre. Un moment j'ai pensé carrément éliminer le menu pour le recréer. Mais pourarriver à cela il faut que je sache la valeur de la propriété action dece menu question de la réassigner. Or menu.action n'est pas autorisé dans le 6pad++. Est-ce que Quentin pourrait nous venir en aide sur ce coup ci ? Yannick Daniel Youalé La programmation est une religion. Aimez-la, ou quittez-la. www.visuweb.net Le 01/05/2016 19:52, _Abdel_ a écrit :Resalut les scripteurs ! En fait, en regardant bien les éléments de la boîte de dialogue derecherche avancée, j'ai trouvé qu'elle comportait le choix de rechercherdans la classe ou fonction courante en plus des autres choix. C'est donc un item propre au forPython, qu'il faut supprimer dans les autres contextes. PS:Lors de la création du menu permettant de faire une recherche avancée,le paramètre name est manquant, je l'ai défini sur "advancedSearch" pour que la suppression soit possible en se basant sur le nom du menu à supprimer.J'ai ajouté aussi 3 variables globales okd, oku et po, comme onKeyDown,onKeyUp, et pageOpened.Leur valeur est initialisée à 0, mais lors de la création des événementscorrespondants, leurs valeurs respectives sont assignées à ces événements.Ainsi, pour les supprimer, la méthode removeEvent disposera de tout cedont elle aura besoin. En l'occurrence, le nom de l'événement et son identificateur. Voici l'implémentation de la fonction unloadForPythonTools : Début de la fonction def unloadForPythonTools(): # déchargement des menus, évènements et raccourcis propres à l'extension forPython global menuForPython, menuView, menuAccessibility, menuModifyAccelerators, menuPythonVersion, menuLineHeadings, menuSelection, menuInsertion, menuDeletion, menuExecution, menuNavigation, menuTags, menuExploration global idTmrLineMove global okd, oku, po # Vérification et suppression du menu forPython. if sp.window.menus["forPython"] != None: sp.window.menus.remove('forPython')# Vérification de l'item de recherche avancée dans le menu édition:menuEdit = sp.window.menus.edit if menuEdit["advancedSearch"] != None: menuEdit.remove("advancedSearch") # vérification et suppression du menu Affichage. if sp.window.menus["view"] != None: sp.window.menus.remove("view") # Vérification et suppression des éléments du menu outils menuTools = sp.window.menus.tools # python versions. if menuTools["pythonVersion"] != None: menuTools.remove("pythonVersion") # modifyAccelerators. if menuTools["modifyAccelerators"] != None: menuTools.remove("modifyAccelerators") # Vérification et suppression du menu accessibilité. if sp.window.menus["accessibility"] != None: sp.window.menus.remove("accessibility") # Suppression des évènements sp.window.curPage.removeEvent("keyDown", okd) sp.window.curPage.removeEvent("keyUp", oku) sp.window.removeEvent("pageOpened", po) # suppression du timer de vérification de changement de ligne sp.window.clearInterval(idTmrLineMove) # end def Fin de la fonction Il ne reste plus qu'à continuer le travail, mais avant cela, je souhaitais d'abord que Yannick vérifie si tout est bon, étant-donné qu'il est le créateur de la fonction loadForPythonTools originale. Bien amicalement, Abdel.----- Original Message ----- From: "_Abdel_" <[email protected]>To: <[email protected]> Sent: Sunday, May 01, 2016 7:17 PM Subject: [progliste] Re: Fw: 6pad+ + forPython- dernière versionBien vu mon cher Watson, Dans les options Internet de mon navigateur Internet-Explorer, dansl'onglet avancé, branche sécurité, la case "Autoriser le contenu actifà s'exécuter dans la zone ordinateur local" était sur off.En la mettant sur On, les fichiers hta sont bien exécutés dans 6pad++.Il faudra préciser cela dans l'aide de l'extension.Je suis actuellement en train de voir comment implémenter la fonctionunloadForPythonTools.Je pense que cette fonctionnalité de recherche et remplacement avancéene devrait pas être déchargée avec les menus du forPython, car elle pourrait être utile dans d'autres contextes. Autre chose, il faudra peut être aussi désactiver les événements. Mais pour ce faire, chacun d'entre eux doit être associé à unidentificateur, car en lisant l'aide de 6pad++, la fonction removeEventrequiert cet identificateur comme second argument... Bien amicalement, Abdel. ----- Original Message ----- From: "Yannick Youalé" <[email protected]> To: <[email protected]> Sent: Sunday, May 01, 2016 5:46 PM Subject: [progliste] Re: Fw: 6pad+ + forPython- dernière v ersionCoucou Abdel,J'ai faits les tests chez moi, les fenêtres HTA se déclenchent bien.Et pas d'erreur signalée pour ce qui est du rechercher et remplacer avancé.En lisant le message d'erreur que tu m'as collé, je déduis qu'il ne seserait déclenché que dans le cas ou l'écriture des valeurs de la fenêtre HTA dans le fichier intermédiaire com.ini ne se serait pas fait comme prévu.S'agit-il d'un problème de sécurité ou de droit d'accès administrateur?N'y aurait-il pas des limitations aux fichiers HTA sur ton ordinateur? Je reviendrai à la charge plus tard. Yannick Daniel Youalé La programmation est une religion. Aimez-la ou quittez-la. www.visuweb.net Le 01/05/2016 11:26, Abdel a écrit :Salut Yannick, Tout à fait d'accord avec la création d'un cahier des charges. Cela devrait permettre de mieux pouvoir organiser les choses.Plus tard, je te suggère que l'on rédige ensemble un tuto complet, auformat html ou autre.Il existe pas mal de langages de balisages légers, comme le Markdownou Txt2tags, qui devraient nous faciliter grandement la tâche de rédaction. J'apprécie beaucoup les applications html que tu as créées en hta, elles permettent de générer des widgets assez rapidement.Pour ceux qui sont intéressés de savoir comment créer une applicationhtml au format hta, c'est très bien décrit dans ce tuto sur OpenClassrooms : https://openclassrooms.com/courses/html-applicationJe trouve aussi pas mal la recherche et remplacement avancée que tuas ajoutée dans le menu édition.Cependant, à l'exécution de cette commande de recherche avancée, j'ail'erreur suivante : Début du message d'erreur Traceback (most recent call last): File "plugins/forPython/__init__.py", line 3229, in searchAndReplaceAdvanced searchType = finditer2list("searchType=([^\\r\\n]*)", s, re.I)[0].group(1) IndexError: list index out of range Fin du message d'erreur Il faudrait peut-être essayer de corriger la fonction searchAndReplaceAdvanced. Autrement, concernant ces widgets si je puis dire, implémentés en hta,on arrive bien à les exécuter directement à partir de l'explorateur,mais à partir de 6pad++, rien à faire. Par exemple, les fonctions permettant d'insérer une fonction ouclasse, lorsqu'elles sont exécutées à partir de 6pad++, ne provoquentcertes aucune erreur, mais n'ouvrent rien du tout. Il faudrait que l'on essaie de corriger ce disfonctionnement.Autre chose, le raccourci-clavier CTRL+SHIFT+E que tu as choisi pourl'insertion d'une nouvelle classe fait conflit avec la fonction permettant d'entrer une commande manuellement, qui utilise le même shortcut, il faudrait donc le modifier. Je serais aussi très intéressé de connaître la procédure que tu as utilisé pour empêcher une relance de 6pad++ après la modification d'un raccourci-clavier de menu. En principe, le rechargement des plugins que tu as ajouté dans le menu affichage devrait provoquer cela, mais il ne donne rien ici.Donc, tu vois, sur la planche, je pense qu'il nous reste encore pasmal de pain lol ! Merci à toi. Bien amicalement, Abdel. -----Message d'origine----- From: Yannick Youalé Sent: Sunday, May 1, 2016 5:06 AM To: [email protected] Subject: [progliste] Re: Fw: 6pad+ + forPython- dernièr e version Coucou, Début de citation On va attendre le retour de Yannick et on devrait pouvoir passer à l'action. Fin de citation Bon bin pour moi c'est OK ! Sinon, le procédé pour cette fonctionnalité est assez simple. S'il y a une fonction loadForPythonTools, il faudrait logiquement créer une fonction unLoadForPythonTools qui va éliminer tous les menus crééspar la fonction précédente, et arrêter le timer de vérification de lavalidité des lignes modifiées. Ensuite on lie ces fonctions au même élément de menu (coché ou décoché) dans outils, et le tour est joué. Cela dit, mon cher Abdel, que penses-tu de la mise sur pieds d'un cahier des charges pour le travail collaboratif que j'ai proposé précédemment ? En effet, outre le recensement des prochaines fonctionnalités à implémenter, on pourrait également y désigner les responsables de leurs implémentations, les délais d'implémentation, et pourquoi pas un numérounique à chaque fonctionnalité pour pouvoir en faire référence sanspour autant la redécrire en entier à chaque fois dans nos messages. Cela évitera également que nous nous cognions les têtes et nous retrouvions en train de faire la même chose chacun de notre côté. Qu'est-ce que tu en dis ? C'est vrai que ma journée risque d'être un tout petit peu occupée entre la fête du travail, la chasse à un mauvais payeur, la messe (si je suisassez en forme pour y aller), la lecture de quelques transcriptionsdela série star trek que je viens de télécharger, et autres audiences àaccorder. Mais si j'ai un petit moment, je peux te préparer une première mouture.Au fait, je travaille toujours sur un moyen alternatif de gérer lesraccourcis-clavier de menus dans le 6pad++. Et cette fois-ci, plus besoins de redémarrer le programme pour que les changements soient pris en compte. J'effectue pour le moment mes tests dans un module à part que j'aitemporairement nommé manageShortcuts, qui crée un menu "raccourcisclavier" dans outils et y ajoute trois sous-menus que sont: * Modifier un raccourci-clavier * restaurer un raccourci-clavier d'origine; * restaurer tous les raccourcis-clavier d'origine. Et parce que ça en allait faire beaucoup pour le fichier ini de 6pad++, j'ai préféré conserver toutes ces configurations dans un fichiermanageShortcuts.ini qui se crée au même emplacement que le fichier del'extension.Avec ce module, plus besoin d'entrer à la main chaque fois un nouveau raccourci de menu à prendre en compte. Il faut juste s'assurer que lecode de l'extension s'exécute après que tous les menus aient été chargés. Et ho oui, tous les menus sont concernés, qu'ils aient un raccourci-clavier assigné ou pas. Je vais quand même faire en sorte d'exclure les menus des fichiers récents. Ma méthode d'identification privilégie la propriété name du menu senséeen principe être unique. Mais en cas de name vide, c'est le label quisert à distinguer les menus. Actuellement, je fais encore face à un bug dans les fonction de réinitialisation des raccourcis-clavier d'origine Dès que je l'ai résolut et que tous les autres tests sont bons, je vous l'envoi. A plus ! Yannick Daniel Youalé La programmation est une religion. Aimez-la, ou quittez-la. www.visuweb.net Le 30/04/2016 13:31, _Abdel_ a écrit :Salut JF, Non non, en principe le statut coché ou décoché est normalement verbalisé.On va attendre le retour de Yannick et on devrait pouvoir passer àl'action. Bien amicalement, Abdel. ----- Original Message ----- From: "Jean-François Colas" <[email protected]> To: <[email protected]> Sent: Saturday, April 30, 2016 2:25 PM Subject: [progliste] Re: Fw: 6pad+ + forPython- dernière versionHello la foule, Perso cette solution me conviendrait, si (et seulement si) on amoyen de montrer dans le menu, l'état actif ou non actif (coché ou non coché) de l'élément. Bon, ça allait peut-être de soi... à moinsque ce soit coton à faire... J.-F. Le 30/04/2016 13:11, _Abdel_ a écrit :Salut cher ami Yannick,La suggestion ci-dessous, suggérée par tes soins, me conviendraittrès bien : Début de citation Une autre solution qui satisferait plus de monde serait dans le menu outils par exemple, de créer un élément de menu forPython, (visible quel que soit le type de fichier), et pour lequel une première validation entraînerait l'apparition des éléments de menu du forPython; et une seconde validation entraînerait le retrait de ces derniers.Ce qui serait pratique par exemple pour faire appel au forPythondans unfichier n'ayant pas encore été enregistré, donc n'ayant pas encored'extension assignée. Fin de citation Qu'en pense-tu? Bien amicalement, Abdel. ----- Original Message ----- From: "_Abdel_" <[email protected]> To: <[email protected]> Sent: Saturday, April 30, 2016 7:43 AM Subject: [progliste] Re: Fw: 6pad++ forPython- dernière versionSalut Yannick,Moi je suis d'accord, faudrait juste réussir à faire fonctionnerce mécanisme correctement. Une autre soluce, comme tu me l'avais suggéré pour la désactivation de certains menus lorsque la version de Python activée n'est pas compatible, serait de garder ces menus visibles, mais de les griser avec la propriété enabled. Je vais te dire pourquoi je te dis ça. Dans la fonction runAPythonCodeOrModule, à un moment donné, j'avais implémenté un bloc d'instructions qui vérifient si le scripteur n'est pas dans un module. Par exemple, il vérifie si le programmeur vient juste d'ouvrir6pad++, mais que le module qu'il est en train d'implémenter n'estpas encore sauvegardé. Dans ce cas de figure, s'il essaie d'exécuter son module, un fichier tmp.py est automatiquement généré est il en est avisé. Si le forPython n'est pas dispo à ce moment là, cette commande pourtant importante ne sera jamais exécutée. Mon avis est donc le suivant :Il serait intéressant, certes, de conditionner la disponibilitédu forPython dans le cas de figure où l'utilisateur utiliserait d'autres extension, mais dans ce cas, il faudra supprimer des fonctionnalités qui étaient précédemment implémentée et qui deviendront de ce fait inutiles, puisque constamment indisponibles. On va essayer d'étudier cette question importante.Autrement, pour ce que je t'avais dis concernant les auteurs etcontributeurs, en l'occurrence le fait de préciser leurs nationalités, cela reste entièrement discutable selon chaque auteur et contributeur.Comme je vois que c'est une mention que tu tiens particulièrement à cœur, je pense qu'on peux laisser cela au libre choix de chaqueauteur et contributeur. Les éventuels adresses mails des auteurs pourraient aussi être intéressante, au cas ou les utilisateurs rencontreraient des problèmes et souhaiteraient les contacter. Bien amicalement, Abdel. ----- Original Message ----- From: "Yannick Youalé" <[email protected]> To: <[email protected]> Sent: Saturday, April 30, 2016 4:07 AM Subject: [progliste] Re: Fw: 6pad++ forPython- derni�re v ersionSalut Abdel, Début de citation Au sujet de la fonction loadForPythonTools().Crois-tu qu'il est indispensable de conditionner son exécutionau fait que l'on soit dans un fichier avec une extension .py? Fin de citationEn fait, en pensant aux personnes qui utilisent le 6pad++ pourdévelopper dans d'autres langages que le python, ou même simplement comme simple éditeur de texte, je crois que la réponseest oui car il y a des fonctionnalités qui ne sont pas forcément souhaitables dans d'autres contextes. Par exemple la dispositiondes menu, les noms de menus, les menus supplémentaires, letraitement des indentations, les traitements automatiques, etc..A mon sens, l'extension forPython doit exister pour les fichierspython ou à défaut des contextes liés au python. Ce qui veut dire qu'on peut aussi bien vouloir développer des extension pour du PHP, du HTML, ou du VBScript qui utilisent parexemple les même raccourcis claviers sans avoir exactement lesmêmes comportements. Ce qui est le cas chez moi, et je crois aussi chez Cyrille.Moi je t'aurais suggérer simplement de corriger la fonction de détection du type de fichier en cours si elle ne fonctionne pasbien. Peutêtre par exemple que les fichiers que tu ouvre onl'extension .PY ou .PYW en majuscule et c'est pour ça qu'ellesont été ignorée. Dans ce cas, il faudrait simplement rajouter ces extensions à la fonction de détection.Une autre solution qui satisferait plus de monde serait dans le menu outils par exemple, de créer un élément de menu forPython, (visible quel que soit le type de fichier), et pour lequel unepremière validation entraînerait l'apparition des éléments de menu du forPython; et une seconde validation entraînerait le retrait de ces derniers.Ce qui serait pratique par exemple pour faire appel au forPython dans un fichier n'ayant pas encore été enregistré, donc n'ayantpas encore d'extension assignée.Une autre variante encore serait de faire un menu à cocher nommé par exemple "ouvrir le forPython avec tout type de fichier" qui, lorsqu'il serait décoché ne ciblerait que les fichiers python.Bien entendu, la valeur de ce choix serait conservé dans le fichier ini de configuration, et restoré à chaque démarrage. Qu'est-ce que tu en penses mon cher Abdel ? Je crois qu'avec un peu d'imagination, on peut arriver à satisfaire tout le monde. Yannick Daniel Youalé La programmation est une religion. Aimez-la, ou quittez-la. www.visuweb.net Le 29/04/2016 21:06, _Abdel_ a écrit :Salut Yannick, Tout d'abord, je tenais à te féliciter pour ce travail de grande haleine. Cela témoigne de ton enthousiasme et de ta super motivation poursortir les DV de ce gros problème d'inaccessibilité des IDES etplus précisément, ceux qui sont spécifiques à Python.Pour la nouvelle mise à jour du forPython que tu viens de nous communiquer, j'ai une toute première petite remarque à faire.Tu me diras ce que tu en penses, lol ! Au sujet de la fonction loadForPythonTools().Crois-tu qu'il est indispensable de conditionner son exécution au fait que l'on soit dans un fichier avec une extension .py?Lors de la première exécution de l'extension, j'ai eu un peu demal à faire apparaître les menus du forPython. Il m'a même été impossible de les faire apparaître, même si j'ouvre un fichier avec une extension .py. Dans les dernières lignes du fichier __init__.py, il seraitpeut-être préférable de n'introduire qu'une seule instruction loadForPythonTools(), qui ne soit pas conditionnée à quoi quece soit.Après tout, l'utilisateur qui a choisi d'installer l'extension forPython souhaiterait qu'elle l'accompagne où qu'il aille lol!Autrement, pour la spécification de la nationalité des auteurs,je ne pense pas que ce soit vraiment indispensable. Voili voilou, ceci est une première impression. Je continue mes tests... Merci à toi. Bien amicalement, Abdel. ----- Original Message ----- From: "Yannick Youalé" <[email protected]> To: <[email protected]> Sent: Friday, April 29, 2016 1:19 AM Subject: [progliste] Re: Fw: 6pad++ forPython- dernière v ersionCoucou J-F, C'est du bon boulot, un boulot d'orfèvre. Je suis parfaitement d'accord au final pour le nom changelog.txt. Cela traduit encore mieux le contenu de ce fichier. Et je crois qu'Abdel, le grand manitou du forPython sera également de notre avis.Pour ce qui est de la reconnaissance des contributions, ce que j'ai oublié de dire est qu'à l'en-tête du fichier, j'ai crééune zone de commentaire dans laquelle j'ai commencé à préciser: * le but de l'extension forPython; * la période de début des développements; * les noms des réalisateurs et contributeurs. Et bien entendu, mon cher J-F, ton nom y est déjà écrit, en toutes lettres. Dans l'histoire, J-F, je te le dis, tu es déjà. MDR !Petit bémol cependant. Pour la modeste ligne qui m'y concerne,j'ai mis mon nom, mon adresse mail, et ma nationalité (qui pour moi est importante. Pour les autres contributeurs cités, je n'avais pas toujours toutes ces informations; bien souvent juste le pseudonyme que je connais d'eux sur la progliste.Donc, si l'un d'entre vous a besoin que ce soit compléter, je lui demanderais de bien vouloir le signaler... à défaut de lefaire lui-même. Voici le contenu de cette en-tête que je vous colle ci-dessous: # Extension forPython pour le 6pad++ # transformant cet éditeur de texte scriptable en véritable IDE de développement pour le langage python # réalisé par: # Abdel # Yannick Youalé ([email protected]) Cameroun # Cyrille # avec les contributions de: # QuentinC # Jean-François Collas # Tous membres de la progliste (une liste de discussion francophone de programmeurs déficients visuels) # Débuté en janvier 2016 Yannick Daniel Youalé La programmation est une religion. Aimez-la, ou quittez-la. www.visuweb.net Le 28/04/2016 23:01, Jean-François Colas a écrit :Hello Yannick et tous,Ouaouh, que de boulot réalisé! Ca permettra de "pardonner lemauvais timing" lol. Alors revoici une version de "changes.txt", qui, dans beaucoup de projets, pourrait aussi s'appeler Changelog mais ça cen'est pas moi qui prendrai l'initiative d'un éventuel nouveauchangement de nom. J'ai donc refait quelques micro-modifs comme décrit hier en vue d'harmoniser la présentation ducontenu, après vous ferez évoluer ça comme vous voudrez. Leseul point sur lequel je n'ai pris aucune initiative quasiment, c'est la mise en majuscule de certains mots ou termes: combinaisons clavier, pip ou PIP, en particulier. Voilà donc en PJ, ça tombe bien, c'est du TXT. PS: c'est quoi pip? Le 28/04/2016 13:19, Yannick Youalé a écrit :Troisième tentative d'envoi.Supposant que c'est l'extension .zip de la pièce jointe quipose problème, j'y ai ajouté l'extension .txt. Croisons-les doigts. ----- Original Message ----- *From:* Yannick Youalé <mailto:[email protected]> *To:* [email protected] <mailto:[email protected]> *Sent:* Thursday, April 28, 2016 9:26 AM *Subject:* Fw: 6pad++ forPython- dernière version Re-envoi ----- Original Message ----- *From:* Yannick Youalé <mailto:[email protected]> *To:* [email protected] <mailto:[email protected]> *Sent:* Monday, April 25, 2016 12:36 PM *Subject:* 6pad++ forPython- dernière versionEnvoi d'un message : forPython.zip Salut les mecs, Ci en pièce jointe, vous avez la dernière version de l'extensionforPython avec mes améliorations étant donné que Abdel m'apassé la main en début de semaine dernière.J'aurais bien aimé continué de travaillé, mais il faut quandmême unelimite pour que mon travail soit contrôlé, et éventuellementdes réorientations faites.D'ailleurs à ce sujet Abdel notamment pour ce qui est de laréorganisation des menus, si certaines choses ne te conviennent pas, je peux très bien les remanier.Pour avoir le recap de tous les changements et amélioration,il fautvoir la dernière date dans le fichier log.txt que je me suispermis de renommer en changes.txt. Abdel, je suis conscient qu'il aurait fallu ajouter les nouveaux raccourcis clavier au dictionnaire global de gestion des raccourcisclavier, mais je ne l'ai pas encore fait parce que je pensete proposer un moyen de les gérer automatiquement par des boucles de recencement des menus. Je te propose quelque chose à ce sujet bientôt.Je suggère par ailleurs de créer un fichier à nommer "cahierdes charges" dans lequel seront recencer les prochaines fonctionnalités à implémenter. Qu'est-ce que tu en dis ? Amicalement, Yannick Daniel YoualéLa programmation est une religion. Aimez-la, ou quittez-la.www.visuweb.net <http://www.visuweb.net>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-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ouen 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 tailleest 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-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ouen 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 tailleest 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-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ouen 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 tailleest 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-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ou enprivé, 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-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ou enprivé, 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 estlimité à 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-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ou enprivé, 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 estlimité à 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 estlimité à 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 estlimité à 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-fm0m7b947vglikp9Efpso94gtPour 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-fm0m7b947vglikp9Efpso94gtPour 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=unsubscribePour 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 MOPour 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-fm0m7b947vglikp9Efpso94gtPour 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=unsubscribePour 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 MOPour 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-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je vous répondrez en privé.
PK R¤H
forPython/PK &U¤HR³ç }! forPython/changes.txtYKs#5¾SÅÊ%À:!ð¾QYRl
E+%e[0/ô0Y~mîÜøº[iìdw)8ìÆK¿îÖ?=9{zr~öô7ßx§úJíÌFyÓwÕ
lkªF»jÝw5=rÕê8tUÛ¯B£é÷êê¼Ò¾ºÝµruþ¨ºQÎé¶Xlÿ¶º^z«6ºZéªQUcÇgì±ÕwÕ[,
ñxývµ
UݯDÞ¥·Íë7ßxóóóÒªg£ëm«[T+3²àã(¿@§®oåÜÉäªQûJ;h|¥aÕÑvQ¹`v[â¬vÆI¿Îì´
§¬×E©×§;]Wß~sýäê£E
ÓÊÕÎ*)Ó¼Õ¤[KF=3üÍU]hGÛ;V×l:íù×xâ=¾
/¦G_éÊØ¸Â><ú9¶¼ÛÞÜÎPoAEttª1~të;_Y½±}FüNÓvÀª£k]û`É¥dÛÿÓë¬Ò`ô~ÑMï
×ä'j«&yÄMppH_o5ÇB°NÓÞÜcõÊS?z$b|
£Äqß¶ª£ÊtÎ 6à$«êº¶6ì;£ñpýXÎ;A:®Y÷¶ºyá·} aeÅÝ+RÂÃ/Ó£¯7;È8³4:æÆF×
0)¦:ج¦pûf1húýöóçWßÒ*ÁöÕk_Gö³£'v@pÕÑm2ôöÕÎÑñäÇsOª%xVeÌgñ{ðjõä
<{ïäì|ø}_CWÇÇaàê6| mLé${µ0Lpü±Èñú§Û*-8HÇC)FI7.Òát´À|6~ºsÕ#üåѪC§PüX
XjñYc-a{ÂMÂõhaQô0D7}Ç;òZ;èÃÑλ>87ôNÿ*
ë!DHNÎ(aÆt¨i*w¬6FpQ³å¦[a»+SRÎ=B}ûO_^)æuÂPìè.lñÚ¾
ÙEfu´iàB;q¨£DZËÈmÉëkäÐï)TÓÄå$g«-ý,5Eð/uoþÝ
ÛØÈë"7Ú_{[[3ø«¾Yi{£ü¶RÕE2÷ͨ³
±´}¢(ÚÐ@ÂHèaÒa¯¶¾§Ôÿ]Í.±át³e%%>*éÆª¼áÀcz!
ß-
º§ÎÙ 8ÀQλ×J»KBmä EÑÞxèÇÁµ¶â7õò®9wc¬a?éß
líÓ÷Kk¯j#bvHE 5Íð XñsÓcìíÊtÊCijS
qH»òÿÄyf>JOKòOso}ÙÀöD°þn¬§XVÀf§p÷ÆþLU8¤£ØÚ¼Ï]Ä´WM<¢d¤hÀM3zÆÊ²PGÑT£øK|6Ǩ:}mð¥VSKÅr4í¢/qÃP<oÈж[Ñ
ýb:ér(Nß
ØbPQsäN=©Pâl"jT 8îT"jFë¿xDÁ+ÃÉp±E ô
î©Øxò\B-Ç0¼$©ÙÎIçûÉQUÇÇUÄDâHYò9ÊüÄÍÑ+¡AÕÛ>{/7r÷í´º0Cº8f×~se`,þ.²ª)ÖÃé¾oq §£$Ö)7PÈÑZV*ï5²z6¡èÌmE/2Îäö
ðÇ´Æ*¤Úú§·%M¥Q>B6få°°h¾ä]í7Vµ[®Ðø1Ä8 ÷rF±Á_óTj#oÿÕ
r ?ä¿j6jÇÆô¶¤W,c,£ÆÃô
#}¹),Z^wÊ¡¦_*ü%Hcl³Ó¦
Ýbö³cñ¶L9uÇ8rÍ8¹G&*¹nôØ3êÇS]Îìi3T$tq¼ÐðNÐÊEH³
RÈçNsOºËéõÇäeó
ª0çé×_Ds´®ù
½º§m*J#·ÖØ$éø3nðöí)xÏB/Éb6ãÙ·NÙÇÊÉ ¶Ò¡2MªM\o£Ô[SÊÐvÇð sSHⲫ±xÍÈÏçÄãÆ$òó>Ý=¤Dtñíp:¼XH¢J`ÿlgáüs8»<(<o¤?iý¹Í#R£3«³fí*5>åÕÕ2çM
îA¬öl÷¶ÄûÔSìÛ»Û
N^9 ôûTéÊ>89»xPfý>`ù.Ër~^¾ÿhÿ2ÍÍwæïøÆRÇiD©ÇÌ0a<.S`çYTî¯òXSÉ¿t£a¥¢ãnâ¤è(0Öçn©È±ûÃJQ«Ù-ÃÛ-@pÔtk4ÑT¥Yÿ¢ªâö4Jɧm«=Ä#P4~æDaõ
§8¡ðx0ÿY øóYw(?¢ÎϦ·Ü>¦d9¹6FIkjNÁ[àÁþ¶w´³pt
(Sñ²÷SóÕ¾Dä 6v08×w\GBçF¯?=£V §»!B{%wMàÇzNÍ#mWÿÊáògr\/nߤþ¹çsR
0oMå¬ogMî¥;µRpe];yÅ×NôÊ«¥Èú˨õÃͶ׹+Ñ.rÅòþÓ² \_ÍÈBm Ë(v&4<£"| ¶NÈK,Ì
ÂUØìèm¤û<Þ<0Ô,ñμ.Kÿ4>8!Ù©.òÌQFÆG:ìûxá&"
9©MÆï3ý¾tÀ¹$_
QáW>72É
>üá~z¤)ØèçF´°TIcJ¥'ßO7ͤǡ8}2`>Þ£ÿ§ûG°¼Q`HÙBýUòUcìdî¶ùnbf¨©dø¦ª¼
)n¢%<
Ò¨P¯qK]ÿºC/Ü>52Ú
BýÒ#l<ÚÎb3Rä>yó§¶½ùÆ3A³:é_
-"m÷2Ê
N(î9ÞÞÄÆ³¼4ÈN
'
Kõþ~vÛC«=ýù
Yà±·ÕÅs¦k+ÎzáUK¥ÊÇ¡¼Ü:ÞuÐéZåD0é4ô^«ºèÜ¢'ì4̶-7sù\J¸®6ìMÉÀÓ³ÈÒXÜòEN(SäÔßÑmS¼/vôõtÎVÇ|«"êH`Ô\äÇñ{ÑùíJCc^g>2Ì¥ì)ÂÕîH;ûïPö[ÓË26B>î°Ôz¨î§q%^6¦56[LµdÖRè¾$"÷~YTüý«z²lú_ü©Æ?iôÚ/øSä/î¶&,þ¶êéòR÷^?ððªpÛúR¥·Yt97ûc=
ßÛ¯!¯ÍLgÛ¦7#5Rä»ôæJÇäy©ÄùÍHÏn¯/R"Fʯ¶IÆB_nÖ\ qîÈy¦FÇò¬MÜaÿ+p)î¬ÙÌòEX=Æí#µEº6¥¢Á*
ü@w|ÃùÞBuàÿB¶ÿA²uµåUÍêNÏÆ¯î¤S¡Ãbã>jðÆþý«3´< Ì© ç×Y³ÖG8FÛwÁ+ñãË®ãÏÎ
°x%G7Í
Ææ7v³ñGê¨hÎWQ¹Ùç&{ïLD¤ÃKq]
4ä¦-É×ÊÖò+;tø®¦¿¯ ç:®`|×S ίñpð8¬ÃNÿPK
G¢H forPython/com.iniPK Z7H!ï»mÅ forPython/frmCreateClass.hta¥XmoÓ0þ
Òþ´£ãUBhÔ[hyÜÔíl§lüZ>R~ÏÙI5+ÐÔ6>ï¹{|>_¶ûdtt¸·uõÊî^÷áÃÓÝQtØÛ;СY¦SI6Q$XqcÄîW
]¬ï>è>{vØ?èúÇÖØi<LÂ,ÊÞj°ÊÔ
{Ô»0wÐ}FòNã\£ÞëÑQoð"u_÷úo{û/F£¥ÚQPº/û»û½|<ìö*¶O_õ£îðé~÷y!{3¬`½j|ZnE§¡ó¨Á!bD&Ô2µ,âjñè/÷N@
þ&2fæ©8à¾YÙ8·|¨ÃO«
f
ã,b®5² IÙT¨VÌjOáͶ£~Àcq"Ïzj BXXK%À}çÀUMürJéyfR0i Ãl
§Â`±÷Úý\cþ®±báÖUS¢8Næ<ÐåCúN¾ç"(6ÉZq©)$
Ól¶P½ 6³âÌ
,[Gà¹2$ÊðT"í¤øX¡ãÅDcìØõÃù6ϰ/´N4ÓÂ7¦`p#Jߨëù)Z´_DAGNsÛÌ
µuõÈÌö3¼L2ssñ%ãHθMàYb§p½sÌOb:¡Í
k!v°Íæãã§Ç*:¿>÷ΰ*v<n³
§µÈôºÍ«/Ìm-âLZÚE¿r½¤§í^jwhßçô:º\@uùOþ\Âã#:,ö9XlsÅÊJOk«Z¼w(G%Èo9$fØW5¸i¦
.tÛHíð³´ª UþKé'·ÀrÕµ¨¥FÔÅ9×éi%c?óë5MÛ|â(ê$Õra`®ÐVK`ʹ5AÅ{L6
%¤y F>QÈ«Õt;Ñ©ó`Í
þS)1ϸ=Ö( ¹ËÒÇбã\H#iNgñ} Ï´ Ò¢Î
`è5³q©I·Z¥ýOT$õKK¹ÿ½FRwþ¸
/QžjiÅ# ïsH³ ©}u×vbÄÒùz
,ÈáJeÐ$Íl¹¿jWZfyîkÁ'äÝÙLX̨y"á hUêZ¦
ºáPg}=6X?5Iç æ8B5lC_Ô¬MÃscEìç[Sï`mû±°¥cù¼5\¥}
Õ5#À
-PbxN÷ñ ܳ¦M£nm]Åó°4£{êõJØB¸ô¿4Ѧúm)$6l¾ZîkÓÐß\çå6ÛzA7Ü}h³âF,yý=£ÿJy¥£HPr@³$c)7t÷NÁ0å_~öhèyÅÌÔ´=*ÅA8ÕàFÚãB½MPø¤ÛbåDÁ¿Ö`2b¦ÁgÒú¬âÈèJ0a
%j«îb-÷k^J%üf¬ºU\¬(+x©
.¤eÎ8ÅRÅ·"5ªîb4´QyÛsû>ÆGoj{?ûµIqú5k?vwB¾¡^Ô¡Õçøð2)D ®\
QE¹ñîã{ý^}¸äñRù´zg"̬pîË©jø¶lÝÌi4XqRU¹qË-KU6¾¨Lnooo)ðë²Utlt
«úUîEIY)jämëj}±z ÝÏ'×½3íÐK{Ú?~øÆ½ìR-fÊ5S®,8ehÑci½ ì¿ âcQ ï,1L
VÚ½»;Nq+¤Jq(ìy
꣯\ÎääÂpÇCuñTVû°`ïa9XOçP/¬'ÜN¾âB¸à²
~äîÍ`ow§°°êUºk¦pmå®´oW9[e|µyÿ^ÈÊ>o1ÿ¡\/Ý[îÉ 5''HT/äè²óûÎà
y
ôâ(Âe¥¨ÅÅéͨ6u³Jè¢ö¥±°pi³º6Aë)Ìå
H{%FéMÙsV¢·#z++;Ûß8Tð>ãÿpË·©ùT4Áë=*V;wÁßúÒ<{1b#nãÌZ:|/Q1tÉBuè
áçZÚÀBúÈe˹´°CR<ºÚèJ" ý¿
ýÃß/PK "IH%ti3 [ forPython/frmCreateFunction.htaµX[¯1~ö$ç?4û
à510D%r1÷[ÊÒÅj·Å¶Gâ³?ÀvË.o1æ¥ÎÌ7·Î§yo:´Î5ïõ:·ÛVçÓþtÐkT¶bB0([®d³áä:7;
úÝδ?þíVå¶³I{¹BJG£Î°·uÖí<@z«òØGÓÞÓé°7zS§ýaÿyïôÑtºaöGûÄQçqÿnçtÐË÷Þ
×-éÜ?é¦ÉýÓÎÃ@{6)a=ár®>N,µ¬UJ§TTx>&Ö|i rÑkEO'I6Ëu¼Qr èüø¨B
Cù:¥Z0#$L~³ÍóÔ@½\O2hÊ`g¦ZsÚ{rN ± 9Î7+*øìÀúJ= sDæcËåJÂ1Y¬åZ¯ dÓ²3Ë@l
h°JäÇo9ÓKËtºs¯cÎSbnCZ$üvu¬ò-ègZ+M43à
q,Uê½ÞÐñýÌup#<äÊ}Ë@dh§êDUf@ß}&j&øZö¡"bééî(pÌ+,IXl3àµw\NÈj6¾?âÓ
Õ¬wºP¨§5ËôÅCZS*?d 8"JvÆ-Â
2Êã#¦!çI[ìVøÅZ$yí§%ûÓN?-ÿ%ñ[Å
×õ?DÕþeÁ§?#0
£áp!aéâFg¦ºõø-ß³y¤é³bÈj~µPñzÁùpÝEs¢Æç©æéð(`¸F WÝ-@4«ñ%5J9´¦×.ÌjßKT¨:ü%H
´a)¸:~(¦¶%Di ¾j6SWaY»x¹V觸Dª-èþû<Rñ«´VB§ú¨¹ew8XCp¯ËG×Áë±Pùâ2»]7Æ.|Ï,^
)3Áô®x¯O²¼Ì5£sDöÎ:%à:aNäJqaqܱLø7YòQ.¨·l<{7³M|Jå¢OƲÔE5'·@¶~Ù°üÜVÎR/ì)ÀM,
¤hù¥?æYSÇ]Gã#Xw15RÙ·¯
Äý! ³èó"Ѽ¢ùdȪÁ/Mgå 9=M
ÃWÜKÎfá5WÄõ×ø¿ i%ï2x;· h¢2hq0
cÁåMy`w&>®xMÝ£¢SvnªÝÍ
ìuº¼5Rø3hÂ1ºàÖW}SI :àw&¡
ÔÚ¾{õP½±gÕKæ±kVèÛ¤HYËÐh«DPÔc,Xü}¥±uéîÛ¢ÁDå³Ìð)M3yŸØËýjæ{dÙÙÒ7©Eý®P3*òzR$ë?[ä!ÀsAÁ Rar2DÚ¦D3^¼~©_ÊW¢Ü_ìw@G®Þ3Ëù<ñGõ´É¥¼(c°Weß°:·á}ñääð6/Wåµ0Bà
+ÛUä¢YAªä
íø¨}±{¡ÝÏ®ûÒÀ
nu:¾ýÌMØMl¾DºùÈõánLÄ)·PÃtÆöìVàd´7¿Ýl6gD¸\°nzÀé8ò
<áóò®áf:¬
Ìò5jßö0ëïbwþ)YÈ*Ïo)BüVáÅp5ŵKQ»ÙvÍ[¶·lÜÌJQåHÀÈ5ï,(Ø|±C>å}ÂJq¦&Qͧïs,µùÜ~ÚaUæmxX·\2'1rk'Snb©³-dBSê±åuNm{UÁå}Ä-|(Ún,¤îWßÍ¥2hAÛÂ:$ðú%°?zðhJüx;ˬÅ
xì#ÛÕk¦ñRtßïÝ?ÐÐÁ)fGG1ðl44
KwQÝýD¢ÿïR÷ÿ~ PK aHIb/ß ¿ forPython/frmReplace.hta¥Yé1þ
ïÍÚ
èrJÑ¢*¶»ûR:MK
MJ)ÇÓòòØÉÌd^VÛ¶ã|qº·ÇÝsgÏÜ~ÔïÝïx:s{<÷»OYüiü%ÌÍKAcx¡+*ãõí#¯
ÀHïVïÉãÁ½ÞxpzB÷;û*NLÚ+
Rôýì^ï wß·ÓqÿåxØ?y
{/ÃÁëþÝgãq®6ÔOzÏ{wûéû¨Ü¿W°=ztúbp2îßí=ÍÆ^
X/¸ª¯#K-ë4¤Ò*"!Hk¾´DP9Oèu¢çwGn(ÊTFÉ$µñAÉcE§çÎ6MHüê9ÃÉ2cò·ÕìÜY%
ÓZiH¯É¾Ùsgù\!rØL¢
¾X*
nqÐ2CTÓÅ/«áÖ3i¡ÉÍ©®Ff<þÈaÁ¸´L/ÖSN9bYMb-fä<ÀÒé.XsÎì@r|lÁ°;k'ü0KÁmÓ\L[çÎÎXõ*LT"§MÐm¡ë 7²_¼uDB«§ÌUO'jnØ4-6Ø[\i4Û+*>ÍAP²Y3xá
à2aX[{¥»ßwâæZÛ1sÝxQØ0ãïËJ
«NÍbPÍL¹¹Ý%Q:M/GΩ¸fç>¯v;uÖ>Æ:г\ÿßÝËMêãk%«Û°Aù?R³Hl°%pÝ[ÐkaÆÙ´CîËys¯ó[k
ñBéé©»«· ·» À!_¶:2Oxk½æ[N7)ï$Û嫿!uÀ"@tX04¶T£éHÐ
Ìp:Í£Ö>8ôDkeúx7² ùÌê2Z"ÐKTPÄd¾k½F~D4ÓÖ±
2¥ÒiW#ò1·!Ï¿®n{ÝFæÀÂ9ê{?bu§iÍü®úF¢ç*1p¬Ø¢&Ï©U\û[ºlùøÆ%h°Ù
J6YС~«FHó§±F.¬&ýo± OXѾÖ,ÑêF#rèR²oÜXÁPjLCÎ×
<ò£¨F:ÇFHÊݬ^ Ê%[A¾/=FÖ9í\C¢ÍL3nôÁAP9Öð*òm ?uþIªDQR&LQbj
¹ã!èÄ4÷Óf« ıÊ0{5üKâj¡·)pñ&8G69(6S¢Éñ«kÛ±Pù`ªÜCcÇg6h°,T
2LãÈÂÌ'@æ1û^µÖÖfô5pÁÝ"Æ yXpàE¦÷
dPû¬«E¨º\LÒ+·Ù
· k¹ueàñl*4®´J((p³Ë¢üñ<Êð3V68
,b-(ú$gù(æ&´ÀN×¥|÷W¹RÜeIA.d¬È,GØHog}ógFuîyËN'
¿/p9o#âè»±láeQËÍÉw`nû!³Á±TnM'Ui.ì1À, ,ÐóJ?
x ݳ¦o=!Î
ç{X
¹©ìG¯`³ÁÜÿ0iÊZÏæ,/òÂoü®_$ÎËä®èkØÌãêv
yÝQÿ60)äYÅ-¢¨.IÖÌ)0{3=bG ö`äó
i{TqÁa@eêmLº->ÿ¾Ý#p§Ä4è[_UôlrBó&Ëû0ð£¬j«îb7k^sÉübTÝÊÎcÒ $¤,ËK
è¤T"0jÆ)ÏEò2)m»x½¶Oa
.UÚ^]½¿
K3oj«¿ø[yìÛÒ̼ýP¨ éú¡Á.ô
ÏÒð๴`
©0é0äÈO¢oÞ¿Õoå»Q1ò£VÿËâ® ^ÔáÓæízù®\T¹tÅßsU6|
]¼xðò?yW»õàWX²0ÔH)íÜÙböFuK»¯u|rÝ×CGøý{º{zÿûÆã6Ti¿¹C+}Mú[?:ôÈOtÂpR·âqµ¥¼uûÈiwaËĺ®ÌÏhÕáÓòP:Ñä¨À¨û4ÃN87ë0Ãk
oÙ-¾#®6EdÃÔw
f!^éuÕÒm(¬P¾år¢{ûÈëjW£nÿÄÆëy"ø/ͼîqyXdyuGð¥Ôv+n
î<;£zv2ºCïZÐûHûQc3uáSþÕâ4yxß´`yËE;4»W;o7Ë´ÙÎTàÊoü&\ Ù=̬
_,¹Þ>áFÔµ*Ádà¹`þ&ÐqZóWê¯Lg7Êu-=tÅÙ.
׿ÊÀQi)ËÂn
*]ÉíÎm¼ìv°xá@KUËÂîF¸½N¼$ÖÂ.ËV)
,E&¿'xü¹JäÍx¶ÇTÏßSJ6Â&µ|<B)<ºS'ôÿÑ? PK ìH¯[âo
forPython/pe_tmp.py]ÌA
0е
Þ¡Kñ Â?˧hØjCQoo+ºÐ]2Ì<G«U3
(ܸ
ú!4¸<Q³Yïþd;gGà²Ê£b¨§Úý0qrª´½ÖeÖêíóÁ·
ÉÎo3~õÀ© ðNPK cHòí6 E forPython/sampleCompletion.txtMn0
×Aâ#eV¢mM
Ô
ÛP7ƶì±RnÛmnÑ1Ò?UÊfÞÀ{Çk(îàV(Ó±-gkÜ+Xï´!A«¬Ke {x@"ôÞ\.}â|µ&ÏOõTü0ú
>ò©O?³d2£¶Í³j×öþ~M$£êõ¤;æQñ¨ô!ÏÐeªiZS¾å7wT·ÖeÄW7òK·3ÊnA
)÷Ûñ©vuJ£2sþ5³iæQÓüÊ_þØÍ ûàG>iF0/þ¸ä²8Êád½È¦îáxJÆ7e?R}PK »bHäòãã º forPython/sampleModules.txt5M
Â0
×rnZ(ºéªàI¤HlÒ&MÉõÈÞ©àj>ó~¸
D_ج¬+ò^~°g[£\ëæäc®³cð!}ØUÒé=juò;fbÀ°VöQ%xùýKç§áfÒVÚî0~ëÃÕ$¹íÖ
7à
%Kº{Íy4¥h%/äÕPK h=HÎÌÙ"Q forPython/statements.txtmÉK
нà&Ú(ÖmÊ~1JjÐí#h¸}¯ì|·|ÔÆ¤ø¥àíQ×ò3q½J^Ñ}ѨN5«
/wÞKñ PK U¤H¶½ë´y ±5 forPython/__init__.pyì][wG~6çð5 Ýhµ±ä"8²M
¾ËIHÂg´;+µ;³%Hþ ¿ÃxáY¯ªú:·ù
Cìîêºuuuuu÷Í`Nâäd{YL7~òÝï|÷;7{EäqÓ4Û»,Nñk.³`?Zõu*Uda£À<L`ÁÕ«I\D(6"
gñ¢Q/Jó«WY,OîÞ£R«WçÑ,],¢y ºY'Q°à¦©ìêU8ó«WÁ"̶éÍãI4£¿
$¿Máúó0é,§[·67qBÏ£q:»á<ÊÒ%CܽÌâÙ,¢áy4F³98Y|¼,@zü¸¡ß,ZìÒï_Ea²qt_ý5ó`7ÍÂ><Ky0æÇYDA°ÈÒ .ô
ÞÐO¦9ÎÇË\¸Hãté×ÈÂù,Ì5Óx£í<8óe4ËÔÒÝ«W@ðê1ôEÇQÎäÌiVD
¥t²e£ï~'æ/A_@Aù¼|ó¼8;f¶Òe®ÔÇÑq8>3o²ÈüLs[çt]اå1¨G¹-§r8ð{Ø^ÆÉ$}9â7BÍÝxL$aEZ9r´w],&ùµóÇï~çF¿wg¹(ko»÷ûà°8ú`
ùä¿?<|yx8y~4úàíѽ¡ªpË5&Ñ´ZÞ6p'ÔÕê÷?Ùæ¶¾FýAÀ÷=@øFzH`©9²\©[ PA(þêjzÔ÷öÜO½#ùEÅá1;¥Ç¡H²PíÖw¿3^f^5á÷ITì¦É4>é÷Êz ®.*V 6=
ôl¿)aÜö4ÍèõW¯hÎÊ&¿.ï¦/¡üü|DPAôÿ'(&
÷µ%0zþ"^ªwƤXñq<KõîÚô¾@Â"ÍrõÁÃT½{'ÑgQHfPÛG½qa<Hò(sïâ»óxï"/çÇáy|:/
Ë.fi¦?>¦ÎoyÃ%
KkzÑc&Ïæ!ù(=W"yWê1w{àÿtìFã3§Ö³l. 't_Äþ@µ.Öïê³m°ê®À%JðMÒZtqõJèµöÐpL5Æq¾NÁ&jbHK ÄUаA1>ÃÙì
ç§0h8öÇoÐ1ËEôá$Ò?â4rƨH[.*ÀÚÕ;*+¿÷¿å»QúÝgO®ïöàþ³õû·©wßfyíéÉÉ
RDÕÖÜvÛW·éû?é_z
æüvweèa0W\¢Úv}9F£cA¡§½fvÉ2¶´ol\ªJá)óÃtSßl¢l£#[*>õ奬øüg=^6£ZîPÈiö^C³
"(hm°õ»Ìzm½ö'ô2jW¿Å£K©
.w{5í¯î
R®CO¨¬à×Í(°®6_-³²i*ä7{¥`¦ñÞ¬AïݯÜpógÓäý-ÊEÇp±%lC+Hc"ZÓ¤¥©I¥ì·zꨤ6üïmäÔ´e)ªÍ;\þI¶Òpë«-w¹¤ÌCôYz/TÕ_L;ÕOð¼¸biÁklÎ÷õj£åÜøÊ"u§Ë$ÁÀÉ)N351òPÉÉèwQèIöT1j(Èu-éªÝÇ=APùnpcN=
ð×NÑ%¼@®8ñßÛ©ó½·á8D1Ì;»±JÿIh/PUâ{=í -sâð"^\áHMóÑ",NGÑæ:y_?¾HãÄ<Lâ,Á¾_;=
4ä=üDû &J¬X.&ÈöâE
ö³ ùcü½^á<î
¸bÚý,ß¡9\µÝ¶Òɵ»Jµ¹Ix\ö.·P³|PÙúñß <Fó°ö{úCoXÛ(_`^Õïö[GCªöëÒ
¥]ijhñe\J«{Y!»¥0S}ÒÑ·.ÂC+ÐwX!1© hÒKÔ
ò¨X.T\êúj'Eô3Á«Í£[GàçÁfI{ѵOÈUÙÕTyÕ¹¨Ç(±Ìj&ZõÄFÓ¥õ>3-ßÃðÓ^mOãÓúFìwi¥mfóVÕKø4K1Q̪¸_¹Ï¶
Íz?¡¹[¶´²´¦EEñ´æÖÓëjÎGn«ñ«mæÇ>MádRZ}±p«|`óVòe^<H&µ^¢÷ÛhÿnÒzM=åÞg|Ø»_¹ÙæÏ¶ÕYaZõBP^³ç)û
¤Ç5
-àÆ[Kºòí^ªÂ§?çuÄVq³]JUÆ¿OÚW2z!À_E¡¾cѱ`,'Ô{Jó¯)æJÝ|f5ÿ1h+à·ü+´Ye\mÇùÈ´|Òö«r:ÇÂA4ÙÂl|Zm«TÛ[Q¢Úæg=
ñx ¼E&