Si vous vous comprenez ben tant mieux moi je ne suis que simple parapenteux :ppte:
Bon courage Pirck, l’idée est bonne, j’ai toujours un peu peur que le site internet crash ou ne soit plus maintenu et que les données se perdent un jour…
T’inquietes, j’ai l’intention d’ecrire un manuel d’utilisation a l’intention des non-programmeurs des que j’aurais moi meme compris dans quels cas ca marche et dans quels cas ca marche pas
Pour l’instant c’est juste une version alpha (http://dictionnaire.phpmyvisites.net/definition-Alpha-version--6678.htm) pour justement determiner ces choses la.
Pour python 3 les sources sont par defaut codees en utf-8 (si c’est pas le cas il faut effectivement rajouter # -- coding: codec -- ).
La retro compatibilite entre python 2 et python 3 c’est super chiant a gerer. J’ai ecrit quelques programmes qui fonctionnent avec les deux versions mais ca limite fortement la syntaxe utilisable (faut rien mettre qui ait change entre les deux versions). Donc j’ai choisi de passer a la version 3 en esperant que la 2 creve rapidement et qu’on en parle plus.
C’est complique les histoires de codage, ca m’a pris des plombes pour comprendre comment coder mes donnees que j’envoie a Parawing sans que les accents soient remplaces par du Chinois.
Tu crois qu’il faut que j’encode aussi ce que l’utilisateur tape dans l’interface graphique ? Je me dis que tkinter doit gerer ca de maniere transparente pour le programmeur et fournir directement de l’unicode, mais j’en suis pas sur, il faudra que je fasse des tests sur ca aussi. Et sqlite3, il gere comment le texte que je lui demande d’ecrire ou de lire dans la BdD ?
Euh, mauvaise formulation sans doute. Python3 doit faire l’hypothèse que son source est en utf-8 si rien n’est spécifié. Mais de manière générale, c’est pas mal de rajouter cette ligne, ça aide aussi les éditeurs de texte à pas faire de la merde. Je ne vois aucune raison de ne pas mettre cette info, mais je n’ai sans doute pas imaginer tous les cas de figure !
Possible que tix fasse qqch pour toi, ou pas, pareil pour sqlite… faut vérifier. Lecture rapide du module sqlite3, visiblement, des efforts ont été fait pour travailler avec de l’unicode. Si tix te retourne de l’unicode, alors ça devrait tout bien fonctionner. S’il te retourne autre chose, tu peux avoir des surprises…
Je suis intéressé par l’application et je trouve l’idée très séduisante.
Je suis sous mac et commencé a téléchargée l’application carnet, python, actice tcl
mais a l’execution de gui.py j’ai eu un souci avec les accents que j’ai enlevé du programme
ensuite j’ai ImportError: No module named tkinter.tix
J’ai oublié de faire quoi
-- coding: iso-8859-15 -- ( ou # -- coding: utf-8 -- pour etre en utf-8 comme suggerait marc) dans tous les .py ca t’evitera de faire la chasse aux accents
perso je n’utilise pas d’accents ca evite bien des soucis, mais j’ai commence l’info y’a +30 ans et a l’epoque on n’avait que des claviers qwerty sans accents (que j’utilise toujours, les claviers pas les accents hein faut suivre !), donc pas de probleme… c’etait le bon temps… mais bon je digresse
pour les erreurs suivantes tu dois avoir les memes problemes que j’ai a savoir des modules manquants ou installes pour des versions differentes de python
a ce propos PiRK, si le soft ne doit tourner que pour une version mini de python ce serait peut-etre mieux d’ajouter un check de l’interpreteur afin de stopper proprement le truc en disant “python3.x mini required” plutot que de laisser le script crasher, et eventuellement tester la presence des modules necessaires/d’indiquer lesquels sont manquants, ou d’inclure un configure pour tester les modules presents et les versions et patcher l’ensemble des fichiers a la volee si besoin selon l’environnement (je sais, je sais c’est pas moi qui code )
pour en revenir a toi Steeve, ouvre un terminal (y’a un truc pour ca dans les menus du macos je sais plus ou) tape python -V pour avoir la version, ca devrait te renvoyer un truc du style:
python -V
Python x.x.x
c’est la version du python si c’est pas 3.x.x ca risque de pas le faire et je suis pas sur que ce soit un bonne idee de mixer des versions differentes de python si tu ne sais pas trop ce que tu fais (a supposer que macos accepte de jouer a ca…)
apres faut ajouter les modules qui manquent (et croiser les doigts), y’a un truc pour faire ca sous macos mais je sais plus comment ils ont appele ca, y’a ptet un truc avec du click-bouton plutot que de la commande mais la faut demander a un apple-addict ce qui n’est pas trop ma came
Les programmes qui parlent français mais sans accent, ça fait un peu moche. Après, c’est sûr qu’il existe des méthodes pour ne pas mélanger texte et code, mais dans une première version non multi-langue, c’est mieux de mettre les accents dans les chaînes embarquées dans le code
Je sais que sous windows au moins, il existe des programmes qui vont prendre toutes les dépendances d’un script python et enrober le tout (soft, interpr., déps) dans un .exe indépendant. Très pratique. Sans doute que ça existe aussi pour python 3 et win/mac osx
Malheureusement je n’ai pas de mac a ma disposition pour determiner ce qu’il faut installer pour que ca marche. J’espere que dans le futur tout sera installe par defaut sur tous les OS, mais pour l’instant les vieilles versions de tkinter.tix et python 3 ne fonctionnent pas toujours bien ensemble. En attendant si quelqu’un arrive a lancer le carnet de vol sur un mac, ca m’interesserait de savoir avec quelles versions de tkinter et python.
Je suis pas sur que ca existe deja pour python 3. La derniere fois que j’ai cherche j’avais pas trouve pour python plus recent que 2.5.
Sur les unix un peu libristes sur les bords, tu trouvera toujours python installé (ou presque), mais en version 2 pour l’instant, 3 bientôt. Sur windows/mac, je doute. Et pour Tix, là, je doute encore plus. C’est très sympa, mais Tk, ça date d’un autre age !
D’apres ce que j’ai compris, tkinter est la bibliotheque graphique “officielle” de python, c’est pour ca que j’ai bon espoir que ces problemes de compatibilite soient regles rapidement. Autrement j’aurais choisi d’utiliser un truc plus commun tel que pygtk ou pyqt (rien que pour avoir une meilleure documentation), mais c’est encore plus compliqué d’installer des versions de ces bibliotheques compatible avec python 3 a mon avis.
Peut être… J’ai jamais trop creusé… J’utilise très très rarement windows/mac, et sur les machines que j’utilise, installer tix ou pygtk est strictement identique (et immédiat).
Un avantage de GTK/QT par rapport à Tk, c’est une possible meilleure intégration avec le “look & feel” du bureau grâce aux moteurs de thèmes (et encore…). Tk, ça marche, mais ça fait un peu rustique quand même…
Sinon, un autre avantage de GTK/QT face à Tk, c’est la possibilité de créer ton interface graphique de manière indépendante du code (un peu comme en web, séparation contenu/présentation): l’interface graphique est dans un fichier externe que tu charges au lancement (glade pour gtk, qt intègre ça de base). Je ne sais pas pour Tk si ça existe… Ça allège grandement le code
Je jeterais un coup d’oeil a tout ca quand j’aurais le temps. Mon plus gros soucis c’est que j’arrive pas a installer une version de gtk compatible avec python 3 sur ma machine du boulot (vieille version de Red Hat -> trop de problemes de dependances pour installer une librairie graphique recente, sans compter que j’ai pas trop le droit d’installer des choses). On en discutera de vive voix la semaine prochaine si tu veux.
Je pense finir de rajouter a mon programme tout ce que je voulais initialement puis faire un peu de debugging jusqu’a avoir quelque chose de stable, et apres je me pencherais sur les manieres d’ameliorer les details (interface graphique, presentation du code, peut-etre de l’internationalisation, messages d’erreurs plus faciles a comprendre si l’utilisateur n’a pas les bonnes librairies installees). Ca devrait encore me prendre deux ou trois semaines selon la meteo (si ca vole je code pas ) A ce moment la si quelqu’un a envie de participer au developpement il sera le bienvenu
hop, probleme de hashlib regle ca se lance (enfin) nickel
pour completer par rapport au message precedent, j’ai force la v3 de python et force le codage en utf-8 ca marche mieux que l’iso-8859 en fait (info pour les suivants qui veulent tenter)
Gardez quand meme a l’esprit que le format de la base de donnees pourrait changer d’ici la version officielle et que tous ce que vous saisissez maintenant pourrait donc ne pas etre facilement importable (ca serait pas insurmontable mais il faudrait magouiller avec sqlite3). Ne vous fatiguez pas trop a saisir consciensieusement tous vos vols des maintenant.
c’est note !
cependant tu peux dumper assez facilement ta BdD ou en extraire le contenu pour le transformer donc ce ne serait vraiment pas tres complique a extraire/reformater/importer s’il le faut je pense
sinon j’ai trouve un petit bug, les infos de l’onglet statistiques ne sont pas reinitialisees a chaque fois qu’elles le devraient.
lance le script, regarde les stat c’est a zero
choisi un pilote, regarde les stats, c’est maj , jusque la ca va
cree un nouveau pilote (ou choisi un profil de pilote vide), change pour ce pilote, les stats de l’ancien pilote sont toujours presentes.
seul le nombre de vol est mis a zero, mais le reste des infos du pilote precedent non. (si tu choisis un pilote avec des infos existantes pour tous ces champs elles seront chargees/recalculees par contre)
et y’a 2-3 menus deroulants qui sont selectionnables mais grises, mais c’est un detail
J’ai trouvé une minute pour corriger le problème de mise à jour des stats quand on change de pilote et que les données ne sont pas disponibles pour le nouveau pilote. Merci de l’avoir signalé
Pour les menus déroulants grisés, là je sais pas comment faire. J’y avait passé un peu de temps, mais j’ai pas réussi à trouver comment faire un menu déroulant avec un fond blanc si je ne veux pas que l’utilisateur puisse écrire dans la case (les menus déroulants blancs sont éditables au clavier).
J’ai aussi eu le temps de faire d’autre petites modifs récemment : rajouter des annotations sur les axes des graphiques, rajouter un menu de saisie des classements CFD, rajout du graph de nombre de vols par mois (histogramme), rajout du header pour l’encodage utf-8. L’historique est ici : http://codingteam.net/project/carnet_de_vol/timeline
Prochaines modifs prévues dès que j’aurais le temps : meilleures annotations de l’axe des ordonnées (pas de nombres a virgule dans des graphiques représentant des entiers), message d’erreur plus user friendly quand on essaye de lancer le programme avec python 2, plus de graphiques (moyennes et sommes annuelles de distance, duree et vitesse, classement cfd), troisième onglet du programme avec le classement CFD de l’année en cours
Après ça je pense sortir une première version majeure . J’ai d’autres idées en tête, par exemple permettre de choisir plus finement les paramètres pour filtrer les vols avant d’afficher les stats (filtrage par durée et distance min et max, types de vols, dates…), mais c’est plus compliqué et ça sera pour une version ultérieure.