[Bêta] PythonExtra.
Posté le 29/10/2022 09:49
PythonExtra est un add-in Python alternatif pour (à ce stade) Graph 35+E II, Prizm et Graph 90+E. L'objectif est de fournir plus de fonctionnalités : modules standard,
getkey(), fonctions de dessin plus performantes, etc.
Version Bêta 0.1
Graph 35+E II : PythonExtra.g1a
Prizm /
Graph 90+E : PythonExtra.g3a

Aperçu de PythonExtra sur Graph 90+E. (Cliquez pour agrandir)
Description sommaire des fonctionnalités :
- Compile pour Graph 90+E (fx-CG 10/20/50) et Graph 35+E II (fx-9860G III)
- Peu de RAM sur Graph 35+E II (c'est difficile d'en trouver sur ce modèle)
- Un shell pas trop mal (saisie rapide, scrolling) avec de bonnes performances
- Plein de modules standard
- array, builtins, cmath, collections, io, math, random, struct, sys, time
- Le module spécifique CASIO : casioplot (fidèle à part sur les polices)
- Un nouveau module gint avec les fonctionnalités avancées de gint :
- Pour l'instant, une bonne partie de <gint/display.h> et <gint/keyboard.h>
- Donc getkey() (attente de touche) ainsi que keydown() (test instantané) !
- Et des fonctions de dessin rapides comme dline() ou drect()
Le plan actuel :
- Être sensiblement compatible avec l'appli Python officielle.
- Pousser les fonctionnalités ajoutées pour vraiment relever le niveau de Python !
- Si du temps de développement se débloque : support autres Graph mono (pas de promesses).
Updates et screenshots à venir. Je n'ai pas l'intention d'implémenter un million de fonctionnalités, juste ce qu'il faut pour s'assurer que ça ne finisse pas mal documenté et non maintenu comme CasioPython.
Dépôt Git :
https://gitea.planet-casio.com/Lephenixnoir/PythonExtra
PythonExtra est notamment possible grâce à l'aide précieuse de
Mb88.
Comparaison directe
Dans l'exemple ci-dessous (
réalisé par Mb88), un Flappy Bird déjà bien optimisé (dessin partiel etc, à gauche) est accéléré un bon gros coup en utilisant PythonExtra et le module
gint pour le dessin (à droite).
Contexte historique
Aux
journées APMEP 2022, redgl0w racontait comment le port MicroPython pour Numworks n'était finalement pas super difficile. Moi je parlais de comment un port maison résoudrait le problème de
getkey(), et Critor m'a convaincu d'essayer sur-le-champ.
En fin de compte, j'ai clôné MicroPython Dimanche à midi et à 1 heure du matin j'avais un port fonctionnel avec
getkey() sur ma Graph 90+E (que j'ai d'ailleurs montré à CASIO Lundi, pour la démo). Comme quoi, des fois ça marche tout seul !
(Enfin, le début marche tout seul. Faire une bonne UI et gérer tous les détails ensuite c'est une autre paire de manches !)
Fichier joint
Citer : Posté le 26/12/2022 18:32 | #
Hello again, où en est actuellement le support de la fonction open() ?
Dès qu'on l'appelle, on a une erreur comme quoi on doit fournir comme argument un tuple, et non une chaine , du coup j'ai mis tous mes arguments en un tuple :
Synthwave/Musique électro 80s sur ma chaine Youtube
Jouez à Mario sans arrêt sur votre Casio !
Piano Casio
Micro GIMP
Citer : Posté le 26/12/2022 18:34 | #
Pour l'instant ce n'est pas supposé marcher, il y a des tests sur une branche du dépôt mais il faudra y repasser quelques efforts avant de pouvoir le faire marcher. La lecture des fichiers demande du travail que côté Python mais l'écriture en demandera aussi un peu côté gint.
Citer : Posté le 29/12/2022 17:34 | #
peut-on installer PythonExtra.g3a sur clé casio USB ? Je n'y parviens pas.
merci.
Citer : Posté le 29/12/2022 17:37 | #
Le simulateur sur clé USB ne supporte pas les add-ins, malheureusement. On peut l'installer sur l'émulateur officiel (le fx-CG Manager) par contre. Je me souviens de bugs remontés dans ce cas, mais je ne sais pas si c'est l'add-in qui est responsable ou l'émulateur.
Citer : Posté le 25/01/2023 12:49 | #
@Mb88 A-t-on une façon reproductible de tester le problème de fichiers non fermés ? Je sais que tu l'as observé plusieurs fois, mais je n'ai pas pu le reproduire de mon côté encore.
Citer : Posté le 25/01/2023 18:39 | #
Je suis en train de chercher sur ce problème. Récemment j'ai d'ailleurs découvert un problème de compat casioplot (je mettrai le code bientôt sur le dépot).
Pour le faire t'ouvre un fichier py dans PE plusieurs fois (à chaque fois tu relances PE), et au bout d'un moment quand t'essayes d'enregistrer le fichier dans l'éditeur python intégré, et que tu l'enregistres tu auras un message d'erreur.
Citer : Posté le 25/01/2023 19:46 | #
Ah j'ai vu que t'avais écrit dans la discussion sur github.
Apparemment il faut appeler gc_sweep_all() à la fin de l'exécution.Je crois que j'ai pas tout bien luCiter : Posté le 26/01/2023 21:41 | #
Je suis en train de chercher sur ce problème. Récemment j'ai d'ailleurs découvert un problème de compat casioplot (je mettrai le code bientôt sur le dépot).
Pour le faire t'ouvre un fichier py dans PE plusieurs fois (à chaque fois tu relances PE), et au bout d'un moment quand t'essayes d'enregistrer le fichier dans l'éditeur python intégré, et que tu l'enregistres tu auras un message d'erreur.
J'ai le même problème : data protégée ou un truc dans ce genre
EDIT (comme précisé sur le chat ) :
(charactère non valide suit à l'exécution ? )Synthwave/Musique électro 80s sur ma chaine Youtube
Jouez à Mario sans arrêt sur votre Casio !
Piano Casio
Micro GIMP