2006-03-31T07:34:34 *** jedie has joined #pocoo 2006-03-31T11:19:36 *** birkenfeld has joined #pocoo 2006-03-31T12:25:29 *** Clif has joined #pocoo 2006-03-31T12:29:05 moin Clif? 2006-03-31T12:29:22 servus 2006-03-31T12:29:36 :) tabellar hatte nur geschrieben das er ab und zu hier ist 2006-03-31T12:29:41 daher habsch ma rein geguggt 2006-03-31T12:32:11 war nur verwundert :) 2006-03-31T12:32:29 hehe 2006-03-31T12:32:48 * Clif is miiiiiidddeeeee 2006-03-31T12:32:53 *gähn* 2006-03-31T12:34:42 ich glaub ich setz auf die ganzen *.beta.python.de seiten ma ne htaccess 2006-03-31T12:36:30 und wie schauts aus pocoo in 2 monatten ;)? 2006-03-31T12:38:05 das werden wir sehen :) 2006-03-31T12:38:08 ich hoffe ganz gut 2006-03-31T12:38:19 ;) 2006-03-31T13:21:07 birkenfeld: wie geht nochmal die URL von den leuten, die fehler in open source software suchen? 2006-03-31T13:21:33 microsoft.com ;)? 2006-03-31T13:22:07 ney 2006-03-31T13:27:30 mitsuhiko: coverity? 2006-03-31T13:27:34 argh. das wars 2006-03-31T13:27:37 mitsuhiko: kannst du dir mal was anschauen? 2006-03-31T13:27:45 birkenfeld: gerne 2006-03-31T13:27:55 war tabellar aigentlich die tage ma hier? 2006-03-31T13:28:20 mach mal svn up und lass die pocoo testsuite laufen 2006-03-31T13:29:11 oki 2006-03-31T13:30:24 birkenfeld: relativ viele fehler :) 2006-03-31T13:30:34 mitsuhiko: nochmal svn up, der commit kam nicht durch ;) 2006-03-31T13:30:52 birkenfeld: jetzt gehts :) 2006-03-31T13:31:01 läuft durch? 2006-03-31T13:31:11 ney 2006-03-31T13:31:19 jetzt hab ich / svn geupdated jetzt ist was komisches 2006-03-31T13:31:30 AttributeError: 'NoneType' object has no attribute '_getframe' 2006-03-31T13:31:40 genau das hab ich auch und frag mich wieso 2006-03-31T13:32:19 birkenfeld: nur komisch, dass es erst nach dem update in "/" war 2006-03-31T13:32:29 die test suite hat kurz funktioniert als ich nur tests svn geupt hab 2006-03-31T13:32:39 aha 2006-03-31T13:32:45 ich hab jetzt auch einen workaround 2006-03-31T13:33:10 wenn man in debug.py statt "__builtin__.__dict__.setdefault('trace', trace)" nur "__builtin__.trace = trace" macht gehts 2006-03-31T13:33:11 ?? 2006-03-31T13:33:43 rofl?? 2006-03-31T13:34:06 was macht eignetlich sys._getframe(1) ? 2006-03-31T13:34:10 einen frame zurück? 2006-03-31T13:34:17 ja, es überspringt einen 2006-03-31T13:34:36 argh. und ich mach immer sys._getframe().f_back :-/ 2006-03-31T13:34:45 *g* 2006-03-31T13:35:32 was mich nur wundert ist, dass sys == None ist 2006-03-31T13:36:01 wenn der frame none gewesen wäre hätt ichs mir noch irgendwie erklären können 2006-03-31T13:37:18 rofl: http://derstandard.at/?url=/?id=2397752 2006-03-31T13:37:27 es liegt am setdefault 2006-03-31T13:38:07 birkenfeld: aber das toucht doch nur das __builtin__ an 2006-03-31T13:38:08 und nicht sys 2006-03-31T13:38:26 __builtin__.__dict__['trace'] = trace geht auch 2006-03-31T13:39:07 mysteriös 2006-03-31T13:39:26 ich verstehs nicht 2006-03-31T13:39:39 ich versuch mal ein minimalbeispiel zu erstellen 2006-03-31T13:48:16 ich _glaube_ ich hab einen bug gefunden... 2006-03-31T13:54:32 hm, das wars nich 2006-03-31T13:54:50 hm 2006-03-31T13:57:13 bbs 2006-03-31T13:57:34 *** Clif is now known as Clif-offline 2006-03-31T13:57:53 birkenfeld: ich kanns irgendwie nicht reproduzieren :-? 2006-03-31T14:17:13 mitsuhiko: mir isses beim essen gekommen 2006-03-31T14:17:47 solange es dir nicht hochgekommen ist, ist alles gut :) 2006-03-31T14:18:05 in __builtin__ steckt immer noch das alte trace, aber bei jedem test wird debug.py neu importiert 2006-03-31T14:18:19 warum genau sys = None ist weiß ich zwar nicht aber daran liegts 2006-03-31T14:19:11 hmm 2006-03-31T14:19:27 ist dachte den debugger registriert er in der pocoo.__init__ 2006-03-31T14:19:31 ja 2006-03-31T14:25:00 so, erledigt 2006-03-31T14:28:16 verstehen tu ichs aber trotzdem noch nicht :) 2006-03-31T14:31:17 mitsuhiko: ich lösche vor jedem testdurchlauf alle module aus sys.modules. dadurch wird debug.py jedesmal neu importiert 2006-03-31T14:31:37 soweit kann ihc noch folgen, aber das mit sys geht mir nicht aus dem kopf 2006-03-31T14:33:08 alle module? dann ist python kaputt :) 2006-03-31T14:33:39 xorAxAx: nicht all 2006-03-31T14:33:40 +e 2006-03-31T14:33:49 hehe 2006-03-31T14:33:50 xorAxAx: nur die die die tests selbst importiert haben 2006-03-31T14:34:11 xorAxAx: http://trac.pocoo.org/browser/pocoo/trunk/tests/run.py 2006-03-31T14:34:25 birkenfeld: ich habs 2006-03-31T14:35:28 wenn man aus sys.modules sys rauslöscht kann man es nicht mehr fehlerfrei importieren 2006-03-31T14:37:50 jup 2006-03-31T14:38:39 mitsuhiko: das tu ich ja nicht 2006-03-31T14:38:57 hm 2006-03-31T14:44:05 *** tux123^school has joined #pocoo 2006-03-31T14:51:09 birkenfeld: soll ich die jinja und colubrid tests auch bei den pocoo tests ablegen? 2006-03-31T14:51:19 wie du willst 2006-03-31T15:16:46 *** Clif-offline is now known as Clif 2006-03-31T15:17:03 back 2006-03-31T15:39:29 hehe. unittest schreiben hat schon vorteile :) 2006-03-31T15:39:37 da ist doch tatsächlich ein fehler in ObjectApplication 2006-03-31T15:42:26 ;) 2006-03-31T16:12:22 *** tux123^school has quit IRC 2006-03-31T16:14:07 mitsuhiko: hast du zeit? 2006-03-31T16:14:19 birkenfeld: jo 2006-03-31T16:14:32 ich prügel mich gerade mit der ObjectApplication und deren weiterleitung :) 2006-03-31T16:15:00 kannst du schnell einen bot in #python-dev schicken, der "#bugnumber" --> "http://python.org/sf/bugnumber" macht? 2006-03-31T16:15:35 birkenfeld: für wie lange? 2006-03-31T16:15:47 bis heut abend 2006-03-31T16:15:54 ok, gib mir 3 minuten 2006-03-31T16:15:59 gern :) 2006-03-31T16:17:17 birkenfeld: name des bots? 2006-03-31T16:17:27 bugbot? ;) 2006-03-31T16:17:41 ney, der gehört schon den mozilla leuten 2006-03-31T16:17:48 pybugbot? 2006-03-31T16:17:58 oki 2006-03-31T16:21:49 pybutbot? 2006-03-31T16:21:55 shit 2006-03-31T16:22:45 *** pybugbot has joined #pocoo 2006-03-31T16:22:49 --> http://trac.pocoo.org/ticket/234 (not existing) 2006-03-31T16:22:53 falscher bot :-/ 2006-03-31T16:23:00 *** pybugbot has left #pocoo 2006-03-31T16:24:03 birkenfeld: gib mir mal einen validen link 2006-03-31T16:24:14 also eine valide ticket nummer oder wie du das nennen willst :) 2006-03-31T16:24:21 891249 2006-03-31T16:24:45 also nur alphanumerisch 2006-03-31T16:24:47 argh 2006-03-31T16:24:49 nur numerisch 2006-03-31T16:25:01 nur numerisch, ja 2006-03-31T16:25:06 oder is das nen rss plugin 2006-03-31T16:25:07 (sorry= 2006-03-31T16:25:25 so. das haben wir gleich 2006-03-31T16:28:40 danke dir 2006-03-31T16:29:22 np 2006-03-31T16:29:30 muss das nur noch etwas beschleunigen 2006-03-31T16:31:44 birkenfeld: gibts einen schnelleren weg den titel aus der seite zu holen als die sourceforge seite zu parsen? 2006-03-31T16:31:52 also für den bug 2006-03-31T16:31:58 leider nicht -.- 2006-03-31T16:32:14 weil dank der "schnellen sourceforge server" hat das jetzt einen 2 sekunden offset 2006-03-31T16:32:35 2 sek dürften doch gehn 2006-03-31T16:37:19 --> http://trac.pocoo.org/ticket/1461855 (not existing) 2006-03-31T16:37:33 aso, hier ist nur noch der andere 2006-03-31T16:37:46 wunderbar 2006-03-31T16:41:28 *** Clif is now known as pylan 2006-03-31T16:42:20 *** pylan is now known as Clif 2006-03-31T17:13:19 birkenfeld: ändert ihr die beschreibungen der bugs häufig? 2006-03-31T17:13:26 mitsuhiko: nö 2006-03-31T17:13:27 *titel 2006-03-31T17:13:36 weil ich lass das jetzt cachen 2006-03-31T17:13:57 wunderbar :=) 2006-03-31T17:57:56 scheinen wohl nicht viele leute dabei sein, die trac wollen... 2006-03-31T18:01:05 sie sind irgendwie kritisch 2006-03-31T18:01:30 jup 2006-03-31T18:01:37 mitsuhiko: kennst du denn roundup? 2006-03-31T18:01:41 das ist auch ganz brauchbar 2006-03-31T18:02:01 naja. mir hat trac besser gefallen 2006-03-31T18:02:06 alleine schon, weil es auch den sourcecode verwaltet 2006-03-31T18:02:16 xorAxAx: jemand hat mal gesagt roundup sei "das Zope der Bugtracker" 2006-03-31T18:02:34 birkenfeld: von der servernseitigen installation auf jeden fall 2006-03-31T18:02:39 roundup fühlt sich imho wie bugzilla an 2006-03-31T18:02:42 wobei es nur das twisted der bugtracker ist 2006-03-31T18:02:50 mitsuhiko: jein 2006-03-31T18:03:03 mitsuhiko: kann bugzilla vollständig über mails gesteuert werden? 2006-03-31T18:03:14 das ist IMHO wichtig 2006-03-31T18:03:20 damit man diskussionen per mail machen kann 2006-03-31T18:03:22 stimmt 2006-03-31T18:03:33 und auch mal mailinglisten mit reinnehmen kann etc. 2006-03-31T18:04:09 wie ich schon gesagt hab. für ein projekt wie python wird es das geringste sein mal mit den trac leuten zu reden und stolperstein auszumerzen 2006-03-31T18:04:15 nebenbei wärs eine tolle werbung 2006-03-31T18:04:29 roundup ist doch auch Python 2006-03-31T18:04:57 birkenfeld: aber diese java lösung nicht 2006-03-31T18:05:12 tja 2006-03-31T18:05:27 es muss halt jemand kommen und sagen "hey, ich setz einen roundup auf" 2006-03-31T18:05:36 oder einen trac 2006-03-31T18:05:41 aber dazu braucht er einen dump 2006-03-31T18:07:04 womit sich die katze in den schwanz beißt 2006-03-31T18:09:18 wenn man genug oft auf das ticket einchlägt, passiert was 2006-03-31T18:09:19 BTDT 2006-03-31T18:09:23 also los, birkenfeld :) 2006-03-31T18:09:37 ts, ts 2006-03-31T18:09:41 befreie die community von der fessel der sf.net issue tracker app :) 2006-03-31T18:09:49 wir sind doch nicht bei der Heilsarmee :) 2006-03-31T18:09:52 birkenfeld: kannst du mir so einen dump besorgen? dann setz ich ein roundup und ein trac am pocoo server auf 2006-03-31T18:09:56 birkenfeld: hehe 2006-03-31T18:10:03 sondern bei der "Procrastination and Stop-Energy Foundation" 2006-03-31T18:10:52 mitsuhiko: wie gesagt, es gibt keinen Dump 2006-03-31T18:11:35 hmmmm 2006-03-31T18:29:27 bbs 2006-03-31T18:29:47 *** Clif is now known as Clif-offline 2006-03-31T18:57:08 argh. ich find den fehler einfach nicht :-/ 2006-03-31T19:07:02 mitsuhiko: welchen fehlerß 2006-03-31T19:07:20 birkenfeld: die object application geht nicht durch den unittest durch, weil sie falsch redirect 2006-03-31T19:07:32 ich schreib gerade die ganze routine neu, die ist sowieso grausam 2006-03-31T19:07:51 *g* 2006-03-31T19:08:52 birkenfeld: solltest du einen unittest schreiben wollen, der auf die anwendung selbst zugreift (also auf eine wirklich laufende), in paste.fixture gibts einen virtuellen wsgi server zum testen :) 2006-03-31T19:08:59 und der ist echt praktisch 2006-03-31T19:09:51 gut zu wissen 2006-03-31T19:12:00 mitsuhiko: cool 2006-03-31T19:12:14 mitsuhiko: ich hab mir überlegt, für baal das ganze eine ebene höher zu machen 2006-03-31T19:12:29 mitsuhiko: zu sagen "füll feld x mit wert y aus und drücke dann submit" 2006-03-31T19:12:30 etc. 2006-03-31T19:12:39 xorAxAx: kannst du mit paste.fixture auch :) 2006-03-31T19:12:50 naja, gibts x andere toolkits 2006-03-31T19:13:00 du kannst sogar links "anklicken" :-) 2006-03-31T19:13:06 jo 2006-03-31T19:13:43 wohoo. python hat 0.000defects/kloc bei coverty 2006-03-31T19:13:46 nicht schlecht :) 2006-03-31T19:14:39 und perl? :) 2006-03-31T19:15:33 0.147 2006-03-31T19:15:47 wie scannen die ceverity leute das eigentlich? 2006-03-31T19:17:39 mitsuhiko: ich hoffe du schreibst in den nächsten tagen keine englischklausur :) 2006-03-31T19:17:58 xorAxAx: ich weiß wie es um mein englisch steht :) 2006-03-31T19:18:16 mitsuhiko: das ist eigentlich ganz gut, nur gehört hinter if kein would :) 2006-03-31T19:18:31 eher ein were 2006-03-31T19:18:40 tjo. und mit dem passiv hab ichs auch nicht so ( birkenfeld anschau ) 2006-03-31T19:18:44 lol 2006-03-31T19:19:16 mitsuhiko: passiv ist ja auch stilistisch unschön 2006-03-31T19:19:29 das weiß sogar word 2006-03-31T19:19:46 ("Use of passive wording. Please reword" oder so) 2006-03-31T19:20:08 kann OOo auch grammatik prüfen? mal ausprobieren ... 2006-03-31T19:20:33 xorAxAx: glaub nicht 2006-03-31T19:20:54 die ganzen oos rechtschreibprüfer sind irgendwie nicht der Bringer 2006-03-31T19:22:32 mitsuhiko: http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm 2006-03-31T19:23:04 nicht schlecht 2006-03-31T19:50:55 mitsuhiko: http://anyterm.org/ 2006-03-31T19:52:03 birkenfeld: ihh, kein python 2006-03-31T19:52:19 ja 2006-03-31T19:55:15 tar: QWeb-0.5-ajaxterm/QWeb-0.5-py2.3.egg: Zeitstempel 2006-03-31 19:38:43 liegt 2633 Sekunden in der Zukunft. 2006-03-31T19:55:18 ähm %-) 2006-03-31T20:00:35 xorAxAx: zeitzonen sind was tolles :) 2006-03-31T20:00:41 *** Clif-offline is now known as Clif 2006-03-31T20:00:57 back 2006-03-31T20:01:09 mitsuhiko: das cygwin tar hat es nicht gestört :) 2006-03-31T20:05:35 mitsuhiko: das geht sogar mit opera! 2006-03-31T20:05:42 mitsuhiko: im gegensatz zu deinem code :) 2006-03-31T20:06:19 da klappt nur der zeilenumbruch nicht 2006-03-31T20:06:38 xorAxAx: mein code emuliert ja auch kein ganzes terminal 2006-03-31T20:06:45 %-) 2006-03-31T20:35:42 mitsuhiko: ping 2006-03-31T20:36:12 jedie: pong 2006-03-31T20:36:49 --> http://trac.pocoo.org/ticket/34068 (not existing) 2006-03-31T20:37:04 request._load_post_data() 2006-03-31T20:37:11 Dort steht 2006-03-31T20:37:12 self._data = self.environ['wsgi.input'].read(max) 2006-03-31T20:37:29 Also wird ein Dateiupload erst von colubrit komplett gelesen? 2006-03-31T20:37:35 jup 2006-03-31T20:37:41 hm. 2006-03-31T20:38:10 alles andere wäre auch sinnentfremdet 2006-03-31T20:38:15 mitsuhiko: Kann man das unterbinden? Das colubrid kein upload behandelt? 2006-03-31T20:38:26 warum sollte man das? 2006-03-31T20:39:12 mitsuhiko: Also ich möchte einen Status über den Upload in SQLite-DB schreiben... 2006-03-31T20:39:34 Es geht um größere Dateien, die einige Minuten dauern... 2006-03-31T20:39:51 Also quasi sowas: 2006-03-31T20:39:52 http://sean.treadway.info/demo/upload/ 2006-03-31T20:40:51 tjo 2006-03-31T20:41:09 das ist momentan nicht möglich, dass colubrid sobald man post daten anfordert alles in den buffer liest 2006-03-31T20:41:11 .oO(Was man nicht immer alles von dir will...) 2006-03-31T20:41:13 ich werd mir da was ausdenken 2006-03-31T20:41:24 zuerst muss ich aber mal das problem mit der object application fixen 2006-03-31T20:41:32 der uniitest geht nicht mal ansatzweise durch :-/ 2006-03-31T20:42:22 jedie: sowas würd ich aber nicht auf der anwendungsseite machen btw 2006-03-31T20:42:26 mitsuhiko: OK, als schnellen work-a-round könnte ich die request.py "Patchen" und _load_post_data() rausschmeißen... 2006-03-31T20:42:37 falscher ansatz 2006-03-31T20:43:20 wie soll der richtige Ansatz aussehen? Das colubrid eine "callback" Funktion aufruft? 2006-03-31T20:43:23 optional 2006-03-31T20:43:32 ney 2006-03-31T20:43:38 du klemmst eine middleware vor 2006-03-31T20:43:55 Hm! Die kann das "Abfangen"? 2006-03-31T20:44:10 wieso nicht? 2006-03-31T20:44:17 eine middleware kann das gleiche wie eine normale anwendung auch 2006-03-31T20:44:37 Wuste nicht das eine middleware so tief in die struktur eingreifen kann... 2006-03-31T20:44:40 du ersetzt einfach wsgi.input durch eine classe, die alle 1024byte eine callback funktion aufruft und das dann zum client schickt 2006-03-31T20:44:53 ich nehme an du willst eine progress bar anzeigen 2006-03-31T20:45:07 Hm! 2006-03-31T20:45:08 http://pythonpaste.org/module-paste.progress.html 2006-03-31T20:45:48 Das ist wohl das, was ich suche, was? 2006-03-31T20:46:16 hm. das kannte ich noch gar nicht 2006-03-31T20:46:19 probier das mal aus 2006-03-31T20:46:22 google ;) 2006-03-31T20:47:24 birkenfeld: rofl. der bot hat schon 6MB sourceforge runtergeladen :) 2006-03-31T20:47:35 *g* 2006-03-31T20:48:51 jedie: das wird nicht funktionieren 2006-03-31T20:48:53 zumindest nicht mit cgi 2006-03-31T20:49:23 Das hab ich befürchtet... 2006-03-31T20:49:30 Aber in dem Fall geht auch fastCGI ;) 2006-03-31T20:49:48 Es sollte aber mit CGI auch funktionieren, halt ohne Status... 2006-03-31T20:50:07 jedie: du könntest es aber auch für CGI lösen 2006-03-31T20:50:24 Ist es so, wie ich vermute? Das Apache das CGI-Skript erst nach dem kompletten upload aufruft? 2006-03-31T20:50:30 nur musst du dir dann halt eine eigene middleware schreiben, die immer nur 1024 byte liest und das dann eine eine sqlite db schiebt 2006-03-31T20:50:49 mitsuhiko: Das hab ich eigentlich schon fertig! 2006-03-31T20:51:03 Nur funkt halt colubrid dazwischen... 2006-03-31T20:51:09 was ja klar ist 2006-03-31T20:51:12 jup 2006-03-31T20:51:28 ich würd den weg über eine eigene middleware nehmen 2006-03-31T20:51:36 die müsste halt wsgi.input durch ein eigenes object ersetzen 2006-03-31T20:51:51 wenn sie sieht, dass CONTENT_LENGTH größer als X ist schaltet sie in den progress mode 2006-03-31T20:52:07 und wrappt read() so, dass es intern immer nur 1024 bytes ließt und es in eine sqlite db schreibt 2006-03-31T20:52:09 (also den status) 2006-03-31T20:52:17 und dann halt intern buffert und letztendlich alles zurückgibt 2006-03-31T20:52:37 und den status des downloads spuckt es bei /status als json string aus 2006-03-31T20:52:58 Könnte man aber nicht _load_post_data() so modifizieren, das es quasi eine nicht blockierendes read macht??? 2006-03-31T20:53:07 nein 2006-03-31T20:53:10 Irgendwie als iterator oder so? 2006-03-31T20:53:16 ney, das mach ich aus performancegründen nicht 2006-03-31T20:53:24 das ist mit abstand die schnellste möglichkeit und auch RFC kompatibel 2006-03-31T20:53:57 OK, dann sollte ich das mit einer middleware probieren... 2006-03-31T20:54:08 .oO(...weiß nur nicht wie...) 2006-03-31T20:54:21 jedie: wart, ich geb dir einen denkanstoß. mom 2006-03-31T20:54:28 geht das http://pythonpaste.org/paste/progress.py.html schon in die richtige Richtung? 2006-03-31T20:56:05 Das mit dem schreiben in der DB und so, hab ich schon: 2006-03-31T20:56:06 http://pylucid.python-hosting.com/changeset/288#file0 2006-03-31T20:57:30 wart, ich mach mal eine kleines middleware 2006-03-31T20:57:56 super 2006-03-31T21:04:26 argh. dauert noch ein wenig 2006-03-31T21:09:03 mitsuhiko: oooooooh 2006-03-31T21:09:08 :-) 2006-03-31T21:11:32 jedie: http://pocoo.pastebin.com/633097 2006-03-31T21:11:38 nicht getestet, sollte aber funktionieren 2006-03-31T21:11:48 wow 2006-03-31T21:11:52 ich schau mal... 2006-03-31T21:12:02 callback ist eine funktion, die immer mit zwei parametern aufgerufen wird. aktuelle position und maximale position 2006-03-31T21:12:03 in bytes 2006-03-31T21:12:25 app = ProgressMiddleware(app, callback, 2048) 2006-03-31T21:14:34 mitsuhiko: Hab ich in der middleware zugriff auf das request Object? 2006-03-31T21:14:40 jedie: jain 2006-03-31T21:14:50 tolle antwort ^^ 2006-03-31T21:14:56 :) 2006-03-31T21:15:07 Also: 2006-03-31T21:15:16 du könntest es dort an das callback object übergeben 2006-03-31T21:15:30 hm 2006-03-31T21:15:55 Also ich hab am request Object mein DB-Wrapper... Mit den Methoden um den Status in die DB zu schreiben... 2006-03-31T21:16:28 probiers einfach aus 2006-03-31T21:16:29 Wenn ich von der middleware da ran komme, brauche ich keine callback-Methode, sondern mache direkt alles in der middleware 2006-03-31T21:16:44 ney, machs auf alle fälle mit callback 2006-03-31T21:16:49 dann können auch andere projekte das verwenden 2006-03-31T21:16:52 Also in der init kann ich einfach ein self.request = environ['colubrid.request'] machen? 2006-03-31T21:16:58 in der init wird nicht gehen 2006-03-31T21:17:09 zum zeitpunkt der init hat die anwendung noch nicht iteriert 2006-03-31T21:17:15 das heißt auch kein request objekt erzeugt 2006-03-31T21:17:30 du müsstest self._env = environ machen und dann in der read methode darauf zugreifen 2006-03-31T21:17:58 so 2006-03-31T21:18:02 * mitsuhiko ist wieder unittest schreiben 2006-03-31T21:21:32 birkenfeld: bei euch gehts wohl noch weiter :) 2006-03-31T21:21:39 mitsuhiko: gottseidank 2006-03-31T21:26:54 mitsuhiko: Irgendwas stimmt da nicht, oder ich verstehe es nicht: http://pocoo.pastebin.com/633097 Zeile 6 und 8 2006-03-31T21:27:13 Muß es nicht self._stream = environ['wsgi.input'] heißen ? 2006-03-31T21:27:28 jedie: klar. sorry 2006-03-31T21:46:34 mitsuhiko: Irgendwie tut's nicht... 2006-03-31T21:46:41 ich vermute eine endlosscheife... 2006-03-31T21:46:55 jedie: musst du selber schauen, ich will den fehler hier noch wegbekommen 2006-03-31T21:47:02 kann es sein, zwischen zeile 6 und 39 2006-03-31T21:56:02 birkenfeld: aaron hat zu viel geld: http://infogami.com/blog/ny1 2006-03-31T21:56:34 mitsuhiko: will ich gar net wissen ;) 2006-03-31T21:56:51 und effbot hat zu viel Zeit -.- 2006-03-31T22:02:58 mitsuhiko: Ich vermute ich weiß woran es liegt... Es wird ja die original wsgi.input-read-Methode überschrieben und die original ist weg. Somit ruft ein read() sich immer selber auf... 2006-03-31T22:03:32 jedie: deswegen sicherst du ja wsgi.input 2006-03-31T22:03:35 ney, dran kanns nicht liegen 2006-03-31T22:34:22 WOHOOOOOOOOO 2006-03-31T22:34:25 es läuft :) 2006-03-31T22:37:06 *** dejot has joined #pocoo 2006-03-31T22:46:56 brb 2006-03-31T22:47:01 *** Clif is now known as Clif-offline 2006-03-31T22:49:31 mitsuhiko: Kann es sein, das environ['colubrid.request'] nicht stimmt? 2006-03-31T22:49:51 jedie: tjo. sehe gerade das das neu in der aktuellen colubrid version ist 2006-03-31T22:50:10 meine aktuelle Version: http://pocoo.pastebin.com/633229 2006-03-31T22:50:27 ich brauch aber in der callback das request Object :( 2006-03-31T22:51:59 jedie: dann isses aber an colubrid gebunden 2006-03-31T22:52:24 upgrade einfach auf die trunk version 2006-03-31T22:52:32 der cgiserver wird sowieso nichtmehr direkt mit colubrid ausgeliefert 2006-03-31T22:53:19 xorAxAx: ping :) 2006-03-31T22:53:44 mitsuhiko: Gut ich teste es mal... 2006-03-31T22:54:46 mitsuhiko: poing, bayern 2006-03-31T22:55:01 xorAxAx: du hast gesagt du würdest für moin die unittest mit so einem http ding machen :) 2006-03-31T22:55:08 gibts da einen link zu? 2006-03-31T22:55:22 mitsuhiko: siehe python.announce 2006-03-31T22:55:48 mitsuhiko: Wo bekomme ich nochmal ein CGIServer her? 2006-03-31T22:56:00 jedie: schau im pep333 nach 2006-03-31T22:56:03 da ist der drin 2006-03-31T22:56:07 ansonsten bringt auch flup einen mit 2006-03-31T22:56:33 jedie: der flup fcgi server ist gleichzeitig ein cgi server 2006-03-31T22:56:46 mitsuhiko: Echt??? 2006-03-31T22:56:56 klar, einfach als cgi starten 2006-03-31T22:57:08 interessant... 2006-03-31T22:57:18 xorAxAx: find ich nicht 2006-03-31T22:57:29 twill 2006-03-31T22:57:34 IIRC 2006-03-31T22:58:21 tjo. da gibts was 2006-03-31T22:58:41 python-announce sollte jeder lesen, der sich nicht nur mit schlangen beschäftigt 2006-03-31T22:59:18 xorAxAx: die ml oder die newsgroup? 2006-03-31T22:59:28 ist beides synkron 2006-03-31T22:59:40 ich kenn nur die newsgroup 2006-03-31T22:59:45 und da wurde twill vor einem jahr announced 2006-03-31T23:00:46 nö 2006-03-31T23:00:52 zu letzt vor ein paar wochen 2006-03-31T23:01:10 außerdem hab ich ne gute distributed hashtable im kopf :) 2006-03-31T23:01:29 naja. also für pocoo isses nicht nötig 2006-03-31T23:01:43 da kann der fixture server das gleiche 2006-03-31T23:01:47 03-23 2006-03-31T23:01:53 xorAxAx: gerade gesehen 2006-03-31T23:06:18 mitsuhiko: Nun sehe ich erstmal wieder nix... nur leere Seite :( 2006-03-31T23:06:41 * jedie liest http://trac.pocoo.org/wiki/RethinkRequest 2006-03-31T23:06:43 jedie: das liegt daran, dass sich viel im colubrid core geändert hat 2006-03-31T23:06:50 jedie: da gibts jetzt auch schon eine update seite. mom 2006-03-31T23:08:00 jedie: http://trac.pocoo.org/browser/colubrid/webpage/changelog/1.0.txt 2006-03-31T23:09:52 Uff... Das ist ja für jeden eine menge arbeit :( 2006-03-31T23:10:49 jup 2006-03-31T23:11:03 "Prefered New Way" sieht für mich erstmal *sehr* umständlich aus :( 2006-03-31T23:11:04 *** Clif-offline is now known as Clif 2006-03-31T23:11:32 jedie: dafür ist es viel schneller und kann leichter dekoriert werden 2006-03-31T23:11:50 hm... 2006-03-31T23:17:06 mitsuhiko: """No module named paste""" ??? 2006-03-31T23:17:16 In from colubrid.debug import DebuggedApplication 2006-03-31T23:17:29 ich hau die dependencies dort aber noch raus 2006-03-31T23:17:59 jedie: paste brauchst du für den internen server 2006-03-31T23:18:04 der rest sollte auch ohne paste luafen 2006-03-31T23:19:43 birkenfeld: willst du am test running von pocoo irgendwie mehr verbocity einbauen? 2006-03-31T23:19:49 die punkte sagen irgendwie so wenig :) 2006-03-31T23:19:53 wieso? 2006-03-31T23:20:00 wenn was schiefgeht sagt er doch genug 2006-03-31T23:20:11 tjo, aber irgendwie nicht wo es schief geht 2006-03-31T23:20:34 hm. ney, doch 2006-03-31T23:21:23 nur, wirds durch meine assertAppCheck verfälscht 2006-03-31T23:21:27 das muss ich später mal ausbessern 2006-03-31T23:22:10 so. ich bin jetzt auch weg 2006-03-31T23:22:12 *** birkenfeld has quit IRC 2006-03-31T23:22:14 gute nacht beinander 2006-03-31T23:23:09 mitsuhiko: paste ist ja nicht gerade klein ;( 2006-03-31T23:23:11 mitsuhiko: cu 2006-03-31T23:23:22 jedie: ist ja nur für developing und nicht für den produktivbetrieb 2006-03-31T23:23:28 bis auf den standalone server braucht colubrid kein paste 2006-03-31T23:24:02 mitsuhiko: Gibt es jetzt gar kein request Objekt??? 2006-03-31T23:24:06 jedie: klar 2006-03-31T23:24:09 aber nicht zum senden 2006-03-31T23:24:41 aber in der init muß man sich das nun selber erzeugen? 2006-03-31T23:24:54 Ich pack z.B. ein cfg Objekt dort an das request Objekt... 2006-03-31T23:25:27 jedie: nein, es gibt per default eines 2006-03-31T23:25:42 jedie: für solche zwecke würde ich ein eigenes request objekt machen 2006-03-31T23:25:51 --> http://trac.pocoo.org/browser/pocoo/trunk/pocoo/application,py 2006-03-31T23:25:58 --> http://trac.pocoo.org/browser/pocoo/trunk/pocoo/application.py 2006-03-31T23:27:16 mitsuhiko: Und was ist in Zeile 154? 2006-03-31T23:27:45 Ah, ich muß es wohl wieder mit super machen, was? 2006-03-31T23:27:46 jedie: wenn du genau hinsiehst merkst du, dass er keinen originalkonstruktor aufruft 2006-03-31T23:27:53 jedie: müssen tust du gar nix 2006-03-31T23:27:59 kannst auch das normale request objekt verwenden 2006-03-31T23:28:00 ;) 2006-03-31T23:28:02 du hast viele möglichkeiten 2006-03-31T23:28:16 Die Welt steht mir offen ;) 2006-03-31T23:28:19 Deutsch spricht, spricht Deutsch / try to avoid german words <-- lol? 2006-03-31T23:28:49 dejot: die deutschen sollen deutsch sprechen, die engländer keine deutschen wörter 2006-03-31T23:28:58 *g* sinn? 2006-03-31T23:29:09 mitsuhiko: Hm. Also wenn ich nix mach, gibt's im init kein self.request... 2006-03-31T23:29:13 also statt request object sagt man Abfrage Objekt oder sowas : 2006-03-31T23:29:18 dejot: war mein ein running gag 2006-03-31T23:29:26 da haben wir einen abend lang nur deutsch gesprochen 2006-03-31T23:29:29 ah 2006-03-31T23:29:30 jedie: doch 2006-03-31T23:29:32 kk 2006-03-31T23:29:54 jedie: http://trac.pocoo.org/browser/colubrid/trunk/colubrid/application.py#L78 2006-03-31T23:30:01 warscheinlich superst du nur die falsche klasse 2006-03-31T23:30:20 OK, mit super geht's nun... 2006-03-31T23:30:23 expose_var ist weg? 2006-03-31T23:30:33 'Request' object has no attribute 'expose_var' 2006-03-31T23:30:44 jedie: das gibts nicht mehr, er exposed automatisch alles 2006-03-31T23:30:51 OK, super! 2006-03-31T23:30:59 es gibt auch kein request.GET mehr btw. das heißt jetzt request.args 2006-03-31T23:31:03 aber das steht noch nicht im changelog 2006-03-31T23:32:15 request.GET -> request.args, request.REQUEST -> request.values, request.POST -> request.form, request.FILES -> request.files, request.COOKIES -> request.cookies 2006-03-31T23:32:16 *** dejot has quit IRC 2006-03-31T23:32:22 Ich hab erstmal alle self.request.write mit sys.stderr.write suchen&ersetzten gemacht ;) Solltest du als Tipp aufnehmen ;) 2006-03-31T23:32:53 tjo. nach colubrid 1.0 wirds so wilde veränderungen nicht mehr geben 2006-03-31T23:33:01 mitsuhiko: OK, notiert... 2006-03-31T23:33:03 ab da steht auch kein beta mehr drin :) 2006-03-31T23:33:22 mitsuhiko: Zum glück hab ich bei PyLucid noch nicht so viel gemacht... 2006-03-31T23:33:25 nur angefangen... 2006-03-31T23:33:51 jedie: pylucid würde ich meiner meinung nach ohne colubrid machen 2006-03-31T23:33:58 Nett: process_request() must return a HttpResponse instance 2006-03-31T23:34:04 dort nutzt du so viel cgi, das ist leichert auf wsgi umgebogen 2006-03-31T23:34:18 +als auf colubrid 2006-03-31T23:34:51 mitsuhiko: Hm... Aber pures WSGI kann ich überhaupt nicht ;) Colubrid kenn ich jetzt ein wenig... 2006-03-31T23:35:04 pures wsgi ist ja fast wie cig 2006-03-31T23:35:07 s/cig/cgi/ 2006-03-31T23:35:12 jedie: ich hab ein beispiel im forum geschrieben 2006-03-31T23:35:13 mitsuhiko: naja 2006-03-31T23:35:20 mitsuhiko: ist wsgi schon so inkompatibel? :) 2006-03-31T23:35:35 xorAxAx: ney, aber mit purem wsgi kannst du genauso die cgi lib von python verwenden 2006-03-31T23:35:49 musst nur alles streams gegen wsgi.input austauschen, wo vorher sys.stdin war 2006-03-31T23:35:55 achso 2006-03-31T23:36:29 mitsuhiko: 'Request' object has no attribute 'headers' 2006-03-31T23:36:31 ? 2006-03-31T23:36:40 jedie: weil headers jetzt zum response objekt gehört 2006-03-31T23:37:01 request -> alles was reinkommt 2006-03-31T23:37:07 response -> alles was zum client marschiert 2006-03-31T23:37:43 Hört sich gut an... 2006-03-31T23:37:55 Aber so geht's wohl nicht: self.response.headers['Content-Type'] = 'text/html' 2006-03-31T23:38:22 wo ist das response Objekt ? 2006-03-31T23:38:51 jedie: resp = HttpResponse('Hello WOrld') 2006-03-31T23:38:59 reps.headers['Content-Type'] = 'text/Plain' 2006-03-31T23:39:01 return resp 2006-03-31T23:39:09 bei servlets bekommt man das übergeben 2006-03-31T23:39:17 hm... 2006-03-31T23:39:22 xorAxAx: bei colubrid erstellst du es selbst :) 2006-03-31T23:39:32 mitsuhiko: selbst ist der mann! 2006-03-31T23:39:37 genau :) 2006-03-31T23:41:44 mitsuhiko: Hast du irgendwo ein einfaches Beispiel für eine ReApp??? 2006-03-31T23:41:58 mom 2006-03-31T23:42:13 mitsuhiko: bzw. die im Wiki "aktualisieren" 2006-03-31T23:42:17 jedie: http://trac.pocoo.org/browser/colubrid/webpage/documentation/applications/regex.txt 2006-03-31T23:42:45 http://wiki.python.de/Colubrid/RegexApplication 2006-03-31T23:42:46 :) 2006-03-31T23:42:55 morgen vielleicht, jetzt bin ich wirklich schlafen 2006-03-31T23:42:58 requiest ist hier: http://trac.pocoo.org/browser/colubrid/webpage/documentation/request.txt 2006-03-31T23:43:04 response hier: http://trac.pocoo.org/browser/colubrid/webpage/documentation/response.txt 2006-03-31T23:43:25 OK... 2006-03-31T23:45:08 'str' object is not callable :( 2006-03-31T23:45:32 mit pypy wäre das nicht passiert :) 2006-03-31T23:45:45 str.__call__=lambda self: sys.stdout.write("Moo!") 2006-03-31T23:52:13 *** jedie has quit IRC