1

Avec le temps, je me suis rendu compte que faire un projet Python bien propre n'était pas si facile que ça, il faut écrire les tests unitaires, utiliser gettext pour les traductions, avoir un fichier setup.py (équivalent de Makefile) pour l'installation ou la génération de paquets (setup.exe, .deb, .rpm, …), préparer la doc pour la générer facilement, utiliser pkg_resources au lieu d'accéder directement aux fichiers (pour les icônes, par exemple), etc.

Et au final, ce boulot doit être refait à chaque nouveau projet. Comme je suis un grand flemmard, je n'aime pas faire deux fois le même boulot grin

Du coup, je me suis lancé dans StarterPyth (subtil jeu de mot avec starter kit trioui), qui pose quelques questions (nom du projet, version de Python choisie, faut-il être compatible avec Python 3, ...) avant de générer ces fichiers.

Accessoirement, il propose de faire un squelette de package Python tout simple, mais aussi une appli en ligne de commande ou un site web via Django.
Et comme je me suis dit que ça pouvait intéresser du monde, j'ai mis tout ça sur Github ^^

https://github.com/d9pouces/StarterPyth

Après installation, cela rajoute quelques commandes aux fichiers setup.py (pour générer la documentation, lancer les tests unitaires, générer les fichiers de localisation, générer des fichiers de pseudo-localisation, calculer les dépendances, tester la documentation, etc.)

Pour l'installer, le plus simple est de passer par pip

pip install starterpyth
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

2

Cool, merci de partager ça ! Ça va bien m'aider quand je me mettrai au python tripo.

3

!slap pen^2
• flanker slaps pen^2 around a bit with a large trout !


tongue
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

4

C'est une vraie animalerie ici embarrassed

5

Pas le temps de regarder tout de suite mais très intéressant, je te ferais un retour bientôt smile
Peace Unity Love et Having Fun!!!

6

Bien vu... tsss
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

7

Je me suis mis au python récemment. Le langage ca va, je me débrouille. Mais je suis encore perdu dans tout ce qui est modules, python path, packaging, etc... Ton projet va surement m'aider.

J'ai donc testé, et fail smile
hibou@hibpro 13:39:47 ~/dev/python/StarterPyth/git
$ starterpyth-bin
Traceback (most recent call last):
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/starterpyth-bin", line 9, in <module>
load_entry_point('starterpyth==1.0', 'console_scripts', 'starterpyth-bin')()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point
return ep.load()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File "build/bdist.macosx-10.8-x86_64/egg/starterpyth/core.py", line 12, in <module>
File "build/bdist.macosx-10.8-x86_64/egg/starterpyth/translation.py", line 93, in <module>
File "build/bdist.macosx-10.8-x86_64/egg/starterpyth/translation.py", line 66, in translation
File "build/bdist.macosx-10.8-x86_64/egg/starterpyth/translation.py", line 44, in __find
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources.py", line 934, in resource_exists
return get_provider(package_or_requirement).has_resource(resource_name)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources.py", line 247, in get_provider
__import__(moduleOrReq)
ImportError: No module named {{ module_name }}


Pour info, je suis sous MacOS 10.8.4, Python 2.7 installé via MacPorts

8

Comment l'as-tu installé (et quand) ?

J'avais effectivement ajouté un bug qui a été résolu depuis grin Du coup, un git update devrait faire l'affaire.
Je viens de rajouter ça dans ma batterie de tests. C'est con, mais je me suis concentré sur les tests du code généré, pas du code lui-même triso

Sinon, la solution la plus simple pour l'installer est pip (pip install starterpyth --user). Va falloir que je l'ajoute dans la doc ^^
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

9

J'ai suivi la doc tongue : "sudo python setup.py install"

Y'a effectivement du nouveau avec git pull. Et avec pip ca marche mieux top

10

Tiens, un truc qui ressemble, vu sur Planet Fedora:
https://github.com/oddshocks/pythong
Je ne sais pas si c'est mieux ou moins bien que celui de Flanker.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

Il y a largement moins de choses dedans.
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant