-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Produire une fichier Python autonome (si besoin) #59
Comments
Ce n'est pas encore possible, mais ça serait effectivement pas mal comme fonction parce que ça permettrait de lancer les scripts sans avoir tout le paquetage Turing autour. Toutefois, la bibliothèque de fonctions de Turing (tout est dans le dossier maths/lib) a été conçue depuis le départ pour être utilisable "en externe", sans le reste du logiciel (dans le but de pouvoir lancer les scripts en dehors de Turing). À priori donc, un script peut utiliser la bibliothèque tout seul comme un grand, il faudrait juste nettoyer le code des éventuelles dépendances inutiles et ajouter le wrapper au début pour importer les fonctions dans le champ global. En interne, on utilise le module runpy pour lancer les scripts, et on ajoute un bout de code au début du fichier pour importer automatiquement toutes les fonctions de la lib de Turing, puis on remplace quelques fonctions de base (print, input, sleep, etc) par des fonctions qui gèrent l'interface de Turing (ces fonctions de substitution ne sont pas dans la bibliothèque elle-même mais dans le code principal de Turing, elles ont des noms commençant par Je peux vous assigner à cette issue si vous le souhaitez. Dès que vous avez un code fonctionnel, faites une PR et je fusionnerai dès que possible. Une nouvelle release est prévue pour bientôt (c'est vague hein, dans une semaine comme dans un mois), donc en plus on pourra mettre le code en prod directement. |
Je suis partant. Il faudrait juste m'indiquer en plus la partie qui crée le script en interne pour que je fasse une version produisant le script autonome. Ce sea pour demain ou ce soir car je pars pédaler. PS: avez-vous des règles internes de codage ? |
C'est grosso modo ici : https://github.com/TuringApp/Turing/blob/master/src/forms/mainwindow.py#L888 La fonction python_wrapper ajoute code qui importe les fonctions de la lib. Ensuite, on écrit ça dans dans un fichier temporaire qu'on donne à runpy pour l'exécuter. Les fonctions indiquées dans init_globals ne servent que pour l'interface graphique. C'est pas très propre et y'a largement mieux mais c'est ce qui a le mieux marché pour nous jusqu'ici (meilleur compromis sécurité/perfs). Pour les conventions de code, on n'en a pas vraiment écrit parce qu'on avait pas prévu que le projet intéresse d'autres contributeurs mais pour résumer :
Et pour le reste on essaie de coller au mieux à la PEP8. Ps: merci encore pour l'intérêt que vous portez à notre projet, à la base c'était juste un petit projet de spé mais on dirait qu'il va peut-être finir par servir a quelque chose |
Bonjour.
A-t-on la possibilité de rendre le fichier Python utilisable en dehors de Turing ?
Si ce n'est pas le cas, il suffirait de créer un package Python disponible sur pypi qui serait une interface entre les scripts Python à la sauce Turing et des scripts Python "standards" qui apparaitrait via "from turingtools import *" qui dans Turing ne servirait à rien mais qui avec Python utilisé seule ferait le boulot.
Si besoin, je me propose de contribuer car cela devrait être assez rapide à faire à condition d'accepter un truc rudimentaire. Je pense à l'utilisation de matplotlib pour le graphisme.
The text was updated successfully, but these errors were encountered: