08:01 <magopian:#afpy> o/
13:25 <No`:#afpy> salut l'afpy
13:37 <ogrisel:#afpy> matin re-café
15:04 <Personne:#afpy> Bonsoir
15:05 <Personne:#afpy> J'aimerais savoir si l'un d'entre vous pourrait m'aiguiller sur la manière de "placer" des classes dans un projet python.
15:05 <Personne:#afpy> En fait je voudrais savoir si on doit laisser nos classes se balader seules dans le projet (répertoire racine)
15:05 <Personne:#afpy> ou s'il faut faire un dossier particulier pour cela
15:05 <Personne:#afpy> si c'est un dossier, j'ai cru lire que cela se nomme un "package"
15:06 <Personne:#afpy> Cependant je ne vois rien concernant le contenu d'un fichier nommé __init__.py décrivant le contenu du dossier (package)
15:06 <ogrisel:#afpy> souvent tu fais un repertoire nom_du_package/ avec un __init__.py qui importe les classes des sous modules que tu considere l'api publique
15:06 <Personne:#afpy> Donc je suis curieux de savoir comment procéder quand on commence à cumuler les classes en tous genres.
15:07 <Personne:#afpy> ogrisel: ok merci, donc le init contient juste un "from fichier import Classe" ?
15:07 <ogrisel:#afpy> et tu mets un setup.py a la racine du projet (pas du package) qui liste les packages du projet (en general un seul)
15:07 <ogrisel:#afpy> si tout est public tu peux mettre un __init__.py vide
15:08 <Personne:#afpy> Bon, je ne suis pas à un méga projet, mais si tant est que le projet évolue, ça va faire gros, alors pour pas coder 10 000 fois et tout restructurer, je préfère faire de suite.
15:08 <ogrisel:#afpy> faut pas avoir peur de refactorer :)
15:08 <Personne:#afpy> ogrisel: un __init__.py vide suffit aussi oO ?
15:08 <ogrisel:#afpy> prends exemple sur des projets existants sur pypi
15:08 <Personne:#afpy> Ouais, c'est vrai, mais comme je me dis que potentiellement je tripatouillerais des projets plus imposant, autant savoir de suite comment ça se magouille
15:09 <Personne:#afpy> là je teste différents cas, et j'adapte aussi.
15:09 <ogrisel:#afpy> je vais te trouver un exemple simple
15:09 <Personne:#afpy> Ok, là je teste déjà avec une petite classe et un dossier de test
15:10 <Personne:#afpy> Hum, ça me trouve pas le module, j'ai peut-être loupé un truc -__-
15:11 <Personne:#afpy> Bon, j'ai testé un truc simple : un dossier mes_modules, dans lequel je mets une classe.py
15:11 <Personne:#afpy> avec MaClasse
15:11 <ogrisel:#afpy> si tu as une seule classe et une ou deux fonctions: pas besoin de package, juste un module ca suffit: exemple http://pypi.python.org/pypi/virtualkeyring/1.5
15:11 <Personne:#afpy> le __init__.py contient donc from mes_modules.classe import MaClasse
15:11 <ogrisel:#afpy> ouvre le tarball pour voir la structure du projet
15:12 <Personne:#afpy> ok, je regarde de suite
15:13 <ogrisel:#afpy> voici un autre projet tres simple qui a un package (placé dans un sous repertoire src, mais le sous repertoire src c'est pas indispensable, faut juste rester coherent avec le setup.py) http://pypi.python.org/pypi/slate/0.2.2
15:13 <Personne:#afpy> ok, le setup.py c'est quand même tout un truc :-/
15:14 <ogrisel:#afpy> c'est pas compliqué
15:14 <ogrisel:#afpy> la doc de python.org est tres bien
15:14 <Personne:#afpy> oui, une petite doc à lire et roulez jeunesse j'imagine :D
15:14 <ogrisel:#afpy> tu lis l'anglais ?
15:14 <Personne:#afpy> oui je lis surtout l'anglais technique
15:14 <Personne:#afpy> Je comprends assez bien je trouve ;)
15:15 <ogrisel:#afpy> http://docs.python.org/distutils/setupscript.html
15:15 <Personne:#afpy> Je ne suis cependant pas une bête en anglais, mais pour l'informatique c'est largement suffisant.
15:15 <ogrisel:#afpy> ou plutot: http://docs.python.org/distutils/introduction.html#distutils-simple-example
15:17 <ogrisel:#afpy> dans virtualkeyring on utilise setuptools, mais c'est une mauvaise idee car c'est pas dans la lib standard
15:17 <ogrisel:#afpy> utilse uniquement le module distutils comme dans la doc de python.org
15:17 <Personne:#afpy> Ceci est dans le cas d'un module. Mais dans le cas d'un programme/logiciel complet, il est utile de séparer les modules et le logiciel lui même ?
15:18 <Personne:#afpy> (j'imagine que ça dépend des modules en fait)
15:19 <ogrisel:#afpy> faut distinguer le projet (qui contient le setup.py, le README.txt, la license, la documentation les tests, et le code du logiciel lui meme) du package python qui est en general un sous repertoire de ton projet et qui contient les module.py
15:21 <ogrisel:#afpy> tu devrais lire http://www.amazon.fr/Python-Petit-guide-lusage-d%C3%A9veloppeur/dp/2100508830
15:21 <ogrisel:#afpy> ecrit par tarek qui est en ligne sur ce canal irc
15:21 <ogrisel:#afpy> je pense que c'est le bouquin parfait pour repondre en details a toutes tes questions
15:22 <Personne:#afpy> ok merci, je me le mets sur la liste des prochains achats :D
15:22 <Personne:#afpy> Je lisais un PDF sur Python 3.1 jusqu'à maintenant
15:23 <ogrisel:#afpy> en attendant lis le tutorial de distutils sur python.org
15:23 <Personne:#afpy> oui je vais faire ça ;)
15:23 <Personne:#afpy> merci à toi ;)
15:23 <ogrisel:#afpy> de rien
15:23 <ogrisel:#afpy> bon WE
15:24 <Personne:#afpy> merci pareillement, je vais continuer à programmer, le langage doitrentrer dans les doigts et la tête :)
15:52 <solevis:#afpy> bonjour
16:03 <tarek:#afpy> Personne, je suis d'accord avec ogrisel
16:03 <Personne:#afpy> ^_^
16:03 <tarek:#afpy> ;)
16:04 <tarek:#afpy> une fois que tu as mis en place la stucture pour un projet, c'est tout le temps pareil
16:05 <Personne:#afpy> En effet, c'est ce que j'ai cru comprendre. Ceci permet à tout développeur ultérieur de se sentir chez lui rapidement j'imagine.
16:05 <Personne:#afpy> Tiens, là je me demandais quel méthode je devais appliquer pour un fichier de configuration d'un programme par exemple
16:05 <Personne:#afpy> Quelqu'un saurait ? :-/
16:05 <Personne:#afpy> (en gros un fichier dans lequel on garde des préférences d'un utilisateur par exemple)
16:06 <Personne:#afpy> je vois des .cfg, mais je sais pas si cela possède un format spécial ou pas
16:06 <Personne:#afpy> Sous ruby ils avaient un truc nommé Yaml
16:07 <Personne:#afpy> Là, sous python, qu'est ce qui est utilisé ?
16:07 <gawel:#afpy> configparser ou pyaml
16:08 <Personne:#afpy> ok, je vais voir ça, merci. Je pense que l'un des deux est inclus avec les modules de base.
16:08 <gawel:#afpy> voir configobject (pub a moi même)
16:10 <tarek:#afpy> sinon json, c'est aussi dans la lib standard pour python >= 2.6
16:11 <tarek:#afpy> perso j'utilise ConfigParser ou un derive
16:11 <tarek:#afpy> yaml ou json c'est un peu penible: c'est facile a casser
16:13 <Personne:#afpy> ouais, configparser inclus de base, ça semble utile pour deux ou trois préférences simples. À voir.
16:13 <Personne:#afpy> Je vais déjà un peu tester, voir si cela me convient.
16:13 <tarek:#afpy> gawel, ca fait quoi configobject (je fais un truc similaire "simpleconfig")
16:14 <gawel:#afpy> bah regarde la doc
16:17 <tarek:#afpy> pas besoin je t'ai sous la main
16:18 <tarek:#afpy> ah c'est juste ca
16:32 <tarek:#afpy> ogrisel, ping
16:32 <ogrisel:#afpy> pong
16:35 <tarek:#afpy> ogrisel, le bracelet bluetooth qui te reveille en fonction de tes phases, tu en avais acheté un non ?
16:35 <ogrisel:#afpy> c'est pas bluetooth
16:35 <ogrisel:#afpy> c'est une montre
16:36 <tarek:#afpy> ah... j'ai vu un truc avec une appli android sur le tel
16:36 <ogrisel:#afpy> oué ca marche pas mal mais c'est chiant de regler l'heure et les piles sont vides donc en fait maintenant j'utilise mon android
16:36 <tarek:#afpy> ok
16:36 <ogrisel:#afpy> qui a des reveils different pour la semaine et le WE
16:37 <tarek:#afpy> j'ai vu ca dans un catalogue (bracelet) impossible de retrouver le nom
16:37 <ogrisel:#afpy> connais pas
16:38 <tarek:#afpy> ahh...
16:38 <tarek:#afpy> wakemate.com
16:40 <tarek:#afpy> haha tu peux faire des stats sur la qualite du sommeil en fonction de ce que tu as fais le soir (grosse bouffe, picole, sport)
16:52 <ogrisel:#afpy> haha
16:52 <ogrisel:#afpy> pas besoin de stats pour savoir que quand je picole je dors tres mal, je suis crevé le lendemain et je vois que du coca zero
16:53 <tarek:#afpy> haha, moi je dors super bien au contraire. c'est connu
16:54 <tarek:#afpy> c'est une startup Ycombinator
21:28 <No`:#afpy> salut l'afpy
21:28 <solevis:#afpy> Salut No`