cwbe coordinatez:
101
63540
2076399
856608
2224565
2224993

ABSOLUT
KYBERIA
permissions
you: r,
system: public
net: yes

neurons

stats|by_visit|by_K
source
tiamat
K|my_K|given_K
last
commanders
polls

total descendants::
total children::1
show[ 2 | 3] flat


code mpd_connection je gde ? ked ju ten except nechiti, tak asi chitas zlu Exception, ked das namiesto except EOFException len except, tak odchitis exception hocijakeho typu. skus toto. v backtraci ti to jaku exception ukaze?

a ukazes mi jako volas __getattr__, ale tento code sa mi moc nepaci, to vizera byt velke hackovanie ;o).




00000101000635400207639900856608022245650222499302226085
juraj
 juraj      11.03.2006 - 21:22:11 , level: 1, UP   NEW
hackovanie to je, lebo povodna libka, ktoru wrapujem je hackovanie.

problem je v tom, ze __getattr__ nie je v call stacku a teda sa tam neda chytit akakolvek exception.

takze sa to da spravit takto:
http://phpfi.com/106655
(to mi poradil vcera chlapik na #python na freenode). kukali sme ten povodny kod, toto je najkrajsi sposob ako sa to da spravit bez prepisovania povodnej libky. ja som nakoniec prepisal povodnu libku, lebo som tam nasiel aj dalsie bugy a wrapovanie teda stratilo akykolvek zmysel pri 300 riadkovej public domain libke.

0000010100063540020763990085660802224565022249930222608502229380
mr gramma
 mr gramma      13.03.2006 - 10:10:19 , level: 2, UP   NEW
ak to chces este riesit, tak by bolo zaujmave ukazat code kde "volas" __getattr__ lebo tato funkcia sa vola pre niaky object x takto x.__getattr__(y) ked chces dostupovat na x.y, ale y neni v x.__dict__, cize objekt x nema attribute y.

000001010006354002076399008566080222456502224993022260850222938002233892
juraj
 juraj      14.03.2006 - 17:50:34 , level: 3, UP   NEW
je tam asi 30 "atributov", ktore su metodami. jedna sa o python klientsku libku pre mpd.

cize volam normalne player.play(), player.stop(), player.list('artist','coil') a podobne.

idea moja bola taka, ze kazda z tych metod moze vratit EOFError, ked sa strati connection k mpd (co sa stane velmi rychlo, je tam nejaky maly timeout). kedze je to bezstavovy protokol, staci mi jednoducho to spojenie otvorit nanovo. chcel som to takto owrappovat, aby som nemusel menit libku a priapdne nove verzie pouzit, ale v tej libke bolo aj par dalsich bugov v internych objektoch, ktore nebolo mozne wrappovanim riesit (ak by som nechcel do mojho wrappera opastovat polku libky). tak som ju nakoniec prekodil.