06:21 <alain_afpy> - afpyro: FAILURE [Errno -2] Name or service not known
06:24 <alain_afpy> - afpyro: FIXED
12:21 <alain_afpy> Hey! Il y a des trucs à modérer: http://www.afpy.org/Members/coulix/Developpeur_WEB_Python_Django_Paris
14:02 <No`> hello
14:57 <tarek> benoitc: ping
15:14 <benoitc> tarek: pong
15:14 <benoitc> ptit pong d'un starbuck sur bastille
15:17 <tarek> benoitc: c bon en fait alexis gere. j'avais besoin d'une course a pris
15:17 <tarek> paris
15:17 <benoitc> okaye
16:34 <pierreimbaud> premiere connexion irc afpy pour moi, je crois,
16:34 <pierreimbaud> mais acces xchat refusé; pourquoi?
16:35 <Hobbestigrou> pierreimbaud, il y a pas de raison que xchat te refuse
16:37 <pierreimbaud> c'est donc un pb de conf a la con; je suis pas tres familier du chat...
16:38 <Hobbestigrou> je suppose oui
16:47 <pierreimbaud> gt sur un vieux serveur, la ca marche, il semble
16:50 <pierreimbaud> connecté en xchat, merci, hobbestigrou
16:50 <Hobbestigrou> pierreimbaud, pas de quoi, je n'ai rien fais
16:51 <pierreimbaud> juste dire: ca devrait marcher en xchat.
18:20 <tarek> gawel: hello
18:20 <tarek> y a un truc penible dans @resource dans cornice
18:21 <tarek> il recree la classe a chaque requete
18:21 <tarek> du coup c un peu penible pour garder un eta
18:21 <tarek> etat
18:22 <NelleV> moi, je garde des eta en mémoire, et ils ne sont d'ailleurs pas justes :(
18:23 <tarek> je vois pas trop l'interet en fait, de faire ca en deux phases
18:27 <gawel> tarek: bah c'est une class based view, quoi
18:27 <gawel> il recrér pas la classe, il l'instancie
18:31 <gawel> http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/views.html#defining-a-view-callable-as-a-class
18:32 <gawel> j'ai rien inventé
18:37 <tarek> oui il cree un objet pardon
18:38 <tarek> je comprends pas l'interet
18:38 <tarek> creation d'objet + call
18:38 <tarek> pour une requete
18:39 <gawel> initialiser des trucs commmun à toutes les requetes, avoir des methodes que tu peux utiliser dans toutes les requetes
18:40 <tarek> je comprends l'interet de faire une classe, mais passer la requete au constructeur au lieu des methodes appelees,
18:40 <tarek> on peut pas garder un etat dans cette class
18:40 <gawel> je vois pas l'intéret de garder un état
18:41 <tarek> initialiser des trucs qui peuvent rester en memoire
18:41 <tarek> d'une requete a l'autre
18:41 <gawel> c'est mal
18:41 <tarek> pourquoi ?
18:41 <gawel> pas trop scalable, non ?
18:41 <gawel> sinon t'utilise un vrai cache
18:42 <tarek> au contraire parfois, non ? par exemple un connecteur
18:42 <gawel> le connecteur tu le fou dans la registry
18:43 <tarek> si c'est un connecteur specifique a cette classe c un peu overkill :S
18:43 <gawel> sinon utilise des classmethod, je sais pas
18:44 <gawel> visiblement tu veux faire un truc bien précis qui ne mérite pas de briser la logique de pyramid pour un cas particulier
18:44 <tarek> je veux rien briser je connais pas pyramid
18:45 <gawel> je te le dis
18:47 <tarek> prenons un exemple concret: j'ai une base de donnes avec 4 tables. un mapping pour chaque
18:48 <tarek> qd j'instancie pyramid je cree un engine
18:48 <tarek> admettons que je le mette dans un registry
18:48 <tarek> maintenant pour chaque table j'ai une vue pour faire des get et set
18:48 <gawel> normalement t'as une ScoppedSession, plutot
18:49 <tarek> un engine ou une scoped sessio oui
18:49 <tarek> un truc pour faire des requetes
18:49 <gawel> sauf que c'est pas vraiment pareil :D
18:49 <gawel> les session sont threadsafe. une est instancié à chaque requete
18:50 <tarek> Dans le cas d'un scoped session, j'ai un engine dedans aussi
18:50 <tarek> sinon je peux pas appeler la base
18:50 <gawel> l'engine est global
18:50 <tarek> mais je l'appel a un moment ou a un autre
18:50 <tarek> pour faire une requete
18:50 <gawel> moi jamais
18:50 <tarek> ah ?
18:50 <tarek> je reformule
18:50 <gawel> j'utilise la session
18:51 <tarek> mais la session l'appel a un moment ou a un autre
18:51 <gawel> oui, mais c'est transparent
18:51 <tarek> oui pas de problemes
18:51 <tarek> donc j'ai mon truc pour faire des requetes
18:51 <tarek> scoped session
18:52 <tarek> donc maintenant, pour chaque table, j'ai une vue
18:52 <tarek> pour faire un get, set etc
18:52 <tarek> par exemple avec ton @resource
18:52 <tarek> je fais une vue UsersView pour gerer la table users
18:53 <tarek> pour chaque operation, je vais appeler ma session, avec un objet query
18:53 <tarek> ma question est la suivante: sachant que cet objet query est le meme tout le temps, sauf pour les valeurs bindées
18:53 <tarek> tu le place ou ? dans le registry aussi ?
18:53 <tarek> ou tu le recree a chaque requete
18:54 <tarek> ou meme, des globals ?
18:55 <gawel> je sais pas. y a 100 choix possible. attribute de class, memory cache, registry
18:55 <gawel> n'importe quoi qui soit permanent, quoi
18:55 <tarek> oui
18:55 <tarek> c ca mon use case
18:55 <tarek> en fait je voulais le garder dans la classe view, mais
18:55 <tarek> ca colle pas trop avec le modele apparament
18:56 <gawel> bah fait un attribut de class
18:56 <gawel> tu peux faire genre une property qui set un truc dans la class au lieu de l'instance
18:57 <gawel> pas sur que ce soit super thread safe mais bon
18:57 <tarek> ben j'ai eu des prblemes, apparament un module est lu plusieurs fois qd c scané via cornice
18:57 <gawel> ama faudrait initialiser de genre de truc dans le décorateur, presque
18:58 <gawel> ha ? ça c'est chelou
18:58 <tarek> j'ai fait plus ou moins comme ici http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/sqla.html
18:59 <gawel> @reify ça stocke dans l'instance
18:59 <tarek> mmm
19:30 <tarek> en fait j'ai l'impression que scan reimporte un module deja importe ca m'a fait des effets de bords
19:31 <tarek> car j'avais toute l'appli dans le meme module python
19:34 <gawel> ptete a cause de la closure que j'ai foutue, possible
19:34 <gawel> https://github.com/mozilla-services/cornice/blob/master/cornice/service.py#L178
19:35 <gawel> encore que ça serait surprenant
19:36 <gawel> d'ailleurs c'est pas trop possible, sinon t'aurais des conflits de view
19:39 <tarek> en explosant en plusieurs fichiers ca marche