Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezidefinice standalone funkci v modulu
Mozna pomuze tento priklad: def dekoruj_funkci(f): #funkce, ktera vytvari FUNKCI def dekorovana(): #vytvorime novou funkci obalujici funkci f print pred volanim f() print po volani return dekorovana def index(): print index index=dekoruj_funkci(index) #prekryjeme puvodni funkci index (do promenne index vlozime novy obsah (funkci) navraceny funkci dekoruj_funkci) index() #volani prekryte fynkce Jan Matejka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Reports
Za zvážení stojí cesta přes HTML a tisk pomocí wxPython, který má k tomuto účelu prostředky. Jan Matějka -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of mtip Sent: Friday, June 29, 2007 1:54 PM To: python@py.cz Subject: [python] Reports Zdravim, nema nekdo zkusenosti s tvorbou datovych tiskovych sestav v pythonu ? A treba jestli existuje neco jako Report Designer pro python ? Nebo jak rychle vytvorit tabulkovou tiskovou setavu na zaklade databazovych dat ? A nebo jak nejlepe resit tisk z pythonu ? Diky za podnety. -- Mirek N. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] rozšírenie Pythonu v C++
Je docela možné, že na cílovém počítači chybí nejaká c++ runtitime knihovna z msvc8. Zkus se pomocí prohlížeče závislostí podívat jaké knihovny tvůj modul importuje. Od verze 8 je nutno msvcrt knihovny distribuovat pomocí balíčku od MS (jde stáhnout z webu) nebo ručně do aplikačního adresáře, ale je třeba se zabývat manifestem. viz: http://msdn2.microsoft.com/en-us/library/ms235285(VS.80).aspx Jan Matějka -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Friday, April 13, 2007 11:05 AM To: [EMAIL PROTECTED] Subject: [python] rozšírenie Pythonu v C++ Dobrý deň. Začal som programovať program v pythone, no po čase som zistil, že jedna operácia je príliš časovo náročná. Preto som ju prepísal do C++ a vytvoril modul, ktorý sa dá volať z Pythonu. Postupoval som podľa tohto tutorialu: http://www.python.org/doc/1.5.2p2/ext/win-cookbook.html Modul som skompiloval v MS Visual Studiu 2005. Všetko fungovalo ako malo, podarilo sa mi program podstatne zrýchliť...Dnes som však narazil na malý problém. Mnou vytvorený modul sa dá použiť len na mojom počítači, inak nikde nejde. Chybový výpis: Traceback (most recent call last): File gui.py, line 218, in openfile_2 File gui.py, line 351, in OnDiff File moduly\py_diff.pyc, line 12, in module File moduly\py_diff.pyc, line 10, in __load ImportError: DLL load failed: This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. Je nutné kompilovať moduly pre každý počítač zvlášť_? (To je pre mňa neprijateľné - nemôžem ľudí nútiť, aby si inštalovali Visual Studio) Alebo sa mi podarilo niečo pokaziť_? Máte s týmto niekto skúsenosti_? Poprípade aspoň odkaz na nejaký funkčný návod/tutorial. ___ Python mailing list [EMAIL PROTECTED] http://www.py.cz/mailman/listinfo/python ___ Python mailing list [EMAIL PROTECTED] http://www.py.cz/mailman/listinfo/python
Re: [python] V jakém jazyce je napsán modul re
Svou rychlostí (při jednoduché substituci) několikanásobně zaostává například za Perlem, což by tomu odpovídalo. Kdysi jsem porovnával rychlost pythonového hledání v řetezci pomocí string.find a kompilovaného regulárního výrazu a výsledek byl zhruba stejný. Tipnul bych si, že ve tvých testech jsi v pythonu nepoužíval kompilovaný regulární výraz (kompiloval se při každém volání). Tím, že v Perlu jsou regulární výrazy součástí jazyka, tak má interpretr možnost je zkompilovat před spuštěním programu. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] problem pri importu knihovny (dll)
Shání se po _fs.pyd . To je přejmenovaná dll. Pokud je _fs.pyd kdispozici a přesto je problém, může být způsoben nepřítomností nějaké dll, na které _fs.pyd závisí. Jan Matějka _ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Monday, February 26, 2007 12:54 PM To: Python Subject: [python] problem pri importu knihovny (dll) dobry den, mel bych jeden dotaz. v pythonu sem naprosty amater. pokousim se rozchodit viewvc (webova nadstavba nad subversion systemem svn) pod windows. python bindings jsem nakopiroval do lib/site-sitepackages, do cesty pythonpath jsem pridal cestu k viewvc knihovnam. a ted pokud se pokousim viewvc rozjed (prohlidnout v prohlizeci) vyhodi to nasledujici chybu: An Exception Has Occurred Python Traceback Traceback (most recent call last): File c:\web\subversion\viewvc\lib\viewvc.py, line 3629, in main request.run_viewvc() File c:\web\subversion\viewvc\lib\viewvc.py, line 253, in run_viewvc import vclib.svn File c:\web\subversion\viewvc\lib\vclib\svn\__init__.py, line 25, in module from svn import fs, repos, core, delta File c:\Web\Python\lib\site-packages\svn\fs.py, line 19, in module from libsvn.fs import * File c:\Web\Python\Lib\site-packages\libsvn\fs.py, line 5, in module import _fs ImportError: No module named _fs v adresari: c:\Web\Python\Lib\site-packages\libsvn\ (soucast python bindings z svn ktery jsem prekopirovaval) zadny _fs.py neni, pouze _fs.dll , a ted nevim jestli mi nekde neco chybi, neco v cem je chyba. nemuze nekdo poradit? omlouvam se za trosku zmateny popis. -=( Alien21 )=- ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] problem pri importu knihovny (dll)
Stáhněte si prohlížeč závislostí ( http://www.dependencywalker.com/ ) a zkuste jestli jsou všechny knihovny, které _fs.dll vyžaduje k dispozici (dostupné na cestě). Jan Matějka _ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Monday, February 26, 2007 2:46 PM To: Konference PyCZ Subject: Re: [python] problem pri importu knihovny (dll) dany adresar (libsvn) obsahuje: __init__.py __init__.pyc _client.dll _core.dll _delta.dll _fs.dll _ra.dll _repos.dll _wc.dll client.py core.py delta.py fs.py fs.pyc libsvn_swig_py-1.dll ra.py repos.py wc.py chyba nastane v tom fs.py na radku: import _fs -=( Alien21 )=- _ From: Jan Matejka [mailto:[EMAIL PROTECTED] To: 'Konference PyCZ' [mailto:[EMAIL PROTECTED] Sent: Mon, 26 Feb 2007 14:05:52 +0100 Subject: Re: [python] problem pri importu knihovny (dll) Shání se po _fs.pyd . To je přejmenovaná dll. Pokud je _fs.pyd kdispozici a přesto je problém, může být způsoben nepřítomností nějaké dll, na které _fs.pyd závisí. Jan Matějka _ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Monday, February 26, 2007 12:54 PM To: Python Subject: [python] problem pri importu knihovny (dll) dobry den, mel bych jeden dotaz. v pythonu sem naprosty amater. pokousim se rozchodit viewvc (webova nadstavba nad subversion systemem svn) pod windows. python bindings jsem nakopiroval do lib/site-sitepackages, do cesty pythonpath jsem pridal cestu k viewvc knihovnam. a ted pokud se pokousim viewvc rozjed (prohlidnout v prohlizeci) vyhodi to nasledujici chybu: An Exception Has Occurred Python Traceback Traceback (most recent call last): File c:\web\subversion\viewvc\lib\viewvc.py, line 3629, in main request.run_viewvc() File c:\web\subversion\viewvc\lib\viewvc.py, line 253, in run_viewvc import vclib.svn File c:\web\subversion\viewvc\lib\vclib\svn\__init__.py, line 25, in module from svn import fs, repos, core, delta File c:\Web\Python\lib\site-packages\svn\fs.py, line 19, in module from libsvn.fs import * File c:\Web\Python\Lib\site-packages\libsvn\fs.py, line 5, in module import _fs ImportError: No module named _fs v adresari: c:\Web\Python\Lib\site-packages\libsvn\ (soucast python bindings z svn ktery jsem prekopirovaval) zadny _fs.py neni, pouze _fs.dll , a ted nevim jestli mi nekde neco chybi, neco v cem je chyba. nemuze nekdo poradit? omlouvam se za trosku zmateny popis. -=( Alien21 )=- ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Wx Unicode
Ano, problém byl v distribuci. Neměl jsem Unicode ale Ansi. Proč distribujou verzi, která nepodporuje Unicode?? Protože některé OS nepodorují Unicode. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] debugování vláken v Eclipse / PyDev
V nějaké starší verzi jsem pydev ve vláknech úspěšně používal. Taky mi to fungovalo ve Wings. Matně si vzpomínám, že tam byla nějaká podmínka, že se musely používat pro vlákna nějaké pokročilejší třídy (standardní), s těmi nejjednodužšími že to nefungovalo. Ono se musí každé vlákno za běhu k debuggeru nějak zaregistrovat. Jan Matějka -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Vaclav Vais Sent: Wednesday, February 14, 2007 10:36 AM To: python@py.cz Subject: Re: [python]debugování vláken v Eclipse / PyDev Ahoj, to jsem jediný kdo pouziva vlakna, nebo jediny, kdo pouziva Eclipse? Máte třeba někdo zkušenosti s jiným editorem? Díky Vašek Vaclav Vais napsal: Zdravím, mám aplikaci s několika vlákny, když dám breakpoint do zdroje, který se pouští ve vláknu tak se debuger nezastaví. V hlavním vlákně je vše v pohodě. Poradíte mi někdo, jak mám ladit ve vláknech? Díky moc za pomoc ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Modifikace seznamu bez kopirovnani (byl o SQLite - forma selectovaných dat)
Co je na tom divného? Pokud navíc budete vytvářet tuple pomocí enumerate, který je úplně zbytečný pro procházení polem, tak Vás to bude stát paměť i čas. Navíc musíte procházet tuple namísto toho abyste jednoduše přičítal jedničku k indexu, tedy další časová penalizace. Je to záležitost implementace iterovaného objektu. Pokud je realizován jako zřetězený seznam, tak nalezení prvku pomocí indexu (bez nějakých heuristických optimalizací) je časově mnohem náročnější než vrácení následujícího prvku. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Modifikace seznamu bez kopirovnani (byl o SQLite - forma selectovaných dat)
Drobná chybička, která ale může ovlivňovat výsledek. Iterátor vracený funkcí enumerate() vrací dvojice (index, hodnota) a ne (hodnota, index). děkuji for v,i in enumerate(l1): l1[i]=v+1 6.5163242 Je jasné, že použití enumerate bude pomalejší, než použití xrange(), protože se musí konstruovat navíc ta dvojice a navíc se pak musí rozdělávat na i, v. ano to vím Pokud by však platila teze, že čtení prvku seznamu pomocí indexu je pro velké seznamy pomalé, tak by varianta s enumerate mohla být rychlejší. Důvodem je to, že získává další hodnotu načtením následujícího prvku v seznamu (rychlá operace) namísto pomalého přístupu přes index. Test však ukázal, že uvedená tese neplatí, takže pythovský list() asi není obyčejný obousměrně svázaný seznam. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
[python] vnitřní implementace python listu
A není ani důvod aby byl. Každý trochu zkušený programátor by určitě list neimplementoval vnitřně jako obousměrně vázaný seznam, protože tím získá prakticky jenom nevýhody. OK, asi jsem ovlivněn C++ terminologií z STL. Tam je list struktura, která umožňuje rychlé vkládání a přidávání prvků a jako doplněk má možnost adresace indexem. Jako pole mi přijde spíš tuple. O vnitřní implementaci list napovídá to, že Python má tuple a list, tedy dva objekty dělající de facto to samé (pomiňte teď konstantnost tuple) a tipnul bych si tedy že spíše jde o to, že list alokuje paměť pro indexy dopředu, a že se jedná o obyčejné pole s empiricky vyladěnými algoritmy pro minimální počet alokací a trochu plýtvající pamětí, zatímco tuple bude vnitřně to samé co list, akorát alokuje paměť na indexy přesně. Aby vkládání do prostředka seznamu nebylo pomalé (nemusely se přesouvat velké bloky dat) asi bych to řešil jako seznam nebo strom polí. V případě potřeby vkládání doprostřed pole se pole rozpadne na dvě části. Naopak při velké fragmentaci se spustí defragmentační proces, který malá sousedící pole sloučí. Jinak už jen úvaha, že přístup přes index je pomalejší, než cokoli jiného byla řeč o enumeraci (přístup k následujícímu prvku) je úchylná, protože si fakt neumím představit, že by někdo implementoval pole (tj. něco s neměnnou lineární řadou celočíselných indexů) tak, aby přístup přes indexy nebyl superrychlý. python list není pole neb umožňuje rychlé vkládání a přidávání a nemá tedy neměnnou řadu indexů Zvlášť když přístup k poli přes index je suverénně nejčastěji vyžadovaná operace v programu a tím pádem je logické, že je implmentována s ohledem na maximální rychlost. V mých progremech se indexu vyhýbám mj. proto, že se mi nelíbí. V C a C++ raději pro iterace seznamů používám iterátory nebo ukazatelovou aritmetiku přijde mi to čitelnější i když se často fakticky jedná o totéž. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] vnitřní implementace python listu
Ono jde o to, že si můžete vybrat - některé operace pomalejší a některé rychlejší. Souvislý seznam má extrémně rychlé append, přístup přes indexy, čtení a zápis prvku. Zase pomalejší vkládání doprostřed seznamu. Ano, souhlasím, do určité velikosti seznamu je souvislý blok nejlepší reprezentace. Zkusil jsem testík vložení 10 záznamů na konec a na začátek seznamu. Rozdíl je v tomto případě o 2 řády, zjevně je ukládání na začátek seznamu (pole) pro tuto velikost daleko za limitem efektivity. for i in xrange(n): l.append(i) 0.0310001373291 for i in xrange(n): l.insert(0,n) 5.01599979401 Naštěstí python poskytuje prostředky pro vytvoření vlastních kontejnerů, takže v připadě potřeby si člověk může udělat svůj specifický i když přiloženou baterii tohoto druhu bych docela čekal. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Kompilace
Ahoj, tvoje verze pythonu je kompilovaná pomocí MS c kompilátoru (a C knihoven) verze 7.1. Ten zjevně nemáš na počítači dostupný. Dříve se dal zdarma tento kompiláor od MS stáhnout jako MICROSOFT VISUAL C++ TOOLKIT 2003 teď jej však nahradilo Visual Studio express 2005 (to však obsahuje jiné runtime knihovny). A verze 2003 se bohužel od MS již stáhnout nedá. Snad někde z archivu nebo p2p. Nevím, čím je kopilován python 2.5, docela bych věřil, že pomocí VC 2005 (verze 8). Napiš jak jsi dopadl. Jan Matějka _ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jakub Vojacek Sent: Thursday, December 28, 2006 1:57 PM To: python@py.cz Subject: [python] Kompilace Ahoj Snžím se naučit psát rozšiřujicí moduly pro python v C. Ale mám problém s kompilací. Normálně si tohle uložím jako setup.py from distutils.core import setup, Extension module1 = Extension('demo', sources = ['spam.c']) setup (name = 'PackageName', version = '1.0', description = 'This is a demo package', ext_modules = [module1]) a pak v příkazový řádce: python setup.py build ale to mi vrátí chybu: error: Python was built with version 7.1 of Visual Studio, and extensions need to be built with the same version of the compiler, but it isn't installed. co s tím ¨mám dělat? děkuji ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
for line in file('data.txt'): print line Mhm, to vyzera naozaj super, na moje pocudovanie tam netreba ani otvarat/zatvarat file. Len neviem ako to funguje. Nie je to nahodou to iste ako f = open(data.txt) for line in f.readlines(): print line f.close() je to spíš jako for line in f.xreadlines(): Kde xreadlines() vrací iterátor, který čte soubor postupně na rozdíl od readlines který přečte soubor najednou do seznamu řádků. Přidám se ale k nadávání na odstraňování starých prvků jazyka. Xreadlines je od verze 2.3 označeno za zastaralé. for line in file(data.txt).xreadlines(): ... se mi líbí víc než preferované for line in file('data.txt') ... protože explicit is better than implicit. Xreadlines() totiž vyjadřuje že se čte po řádcích a nikoliv po bytech,unicode znacích nebo co já vím jakých jednotkách v souboru. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] file.next() (bylo Buducnost Pythonu: lambda, map, filter)
Petr Prikryl A k té explicitnosti -- místo xreadlines() bych sice mohl psát __iter__(), ale... The Zen of Python, by Tim Peters Beautiful is better than ugly. Simple is better than complex. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Díky za reakci, dle mého nedišputovatelného gusta uvedené věty s vyjímkou Simple is better than complex Although practicality beats purity svědčí spíš pro styl xreadlines hlavně proto že tam je ten slovní základ lines. Avšak souhlasím s názorem, že soubory se čtou většinou po řádcích takže je to takto praktické ale mám z toho pocit vyjímky která se mi nelíbí. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] file.next() (bylo Buducnost Pythonu: lambda, map, filter)
Ono obecnější řešení je udělat parsovací generátory, které by šly použít s čímkoliv file-like jako vstupním prametrem, a nestrkat parsování to objektu file. Tedy: místo for line in file(data.txt).lines(): ... by bylo: for line in lines(file(data.txt)): ... místo #cteni po UTF znacich for char in file(data.txt).chars(): by bylo: for char in chars(file(data.txt)): atd. Výpočetní náročnost by zústala stejná. Generátory mi přijdou jako skvělý nástroj, škoda že se GvR brání zobecnění do více úrovní zanoření jenž nabízí stackless python. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Dobře, tohle mě zajímá: Jakou alternativu nabízí Python k foldl (které si přejmenoval na reduce)? U map je to jasné, přeci jen list comprehension ani generator expression nejsou o moc horší, navíc generator expression má lazy sémantiku, což je Good Thing(TN). Ale u toho reduce() trošku tápu. Taky jsem tápal, ale GvR mi to objasnil na zmíněné stránce: http://www.artima.com/weblogs/viewpost.jsp?thread=98196 So now reduce(). This is actually the one I've always hated most, because, apart from a few examples involving + or *, almost every time I see a reduce() call with a non-trivial function argument, I need to grab pen and paper to diagram what's actually being fed into that function before I understand what the reduce() is supposed to do. Zrušením reduce() GvR chrání americké lesy. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] class a subclass
prasečina: class A: pass a=A() class B: def kuku(self): print kuku a.__class__=B a.kuku() kuku Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dynamicke volani trid
Pokud se jedná o to vytvořit třídu na základě textu, tak se dá využít funkce local: class a: def fa(self): print 1 #nalezeni tridy trida=locals()[a] #vytvoreni instance nalezene tridy ai=trida() ai.fa() Jan Matějka -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tom Sent: Tuesday, November 07, 2006 3:39 PM To: python@py.cz Subject: [python] Dynamicke volani trid Zdravim, nevite nahodou nekdo jestli Python umi zavolat metodu tridy s tim, ze jmeno te tridy je kdesi v promenne? neco jako: class Trida1(): def self.akce: nejaka akce... ... class Trida2(): def self.akce: jina akce... a = Trida1 a.akce /* by se pak interpretovalo jako Trida1.akce.*/ a = Trida2 a.akce /* by se pak interpretovalo jako Trida1.akce. */ Diky moc. Tom ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Statické metody v Pythonu
s použitím dekorátoru class S(object): @staticmethod def staticM(pp): print pp*2 S.staticM(nazdar ) více: http://www.ddj.com/184406073 Jan Matějka -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of superman Sent: Tuesday, November 07, 2006 7:59 PM To: Konference PyCZ Subject: [python] Statické metody v Pythonu Nevíte, jak udělat statickou metody v Pythonu, myslím metodu, které není vázána k instanci, tedy self, ale jen ke třídě. Zkoušel jsem: class trida: def static(i): print i trida.static(3) A dostal jsem chybové hlášení, že se Pythonu nelíbí, že předávám číslo a ne instanci. Určitě to nějak jde, ale po pokusu někde se to dočíst to vzdávám. Nevíte jak na to? ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] rozsirovani pythonu
Používal jsem Boost.Python ve verzi 1. Verze 2 je ve snadnosti použití o dost dál. http://www.boost.org/libs/python/doc/index.html Jan Matějka -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Martin Hassman Sent: Monday, October 16, 2006 2:32 PM To: Konference PyCZ Subject: [python] rozsirovani pythonu Ahoj, potrebuji z vykonostnich duvodu prepsat par pythonovskych funkci do cecka. Delal jste to uz nekdo? Kdysi pred lety jsem si trochu hral s nativnim rozsirovanim (includy a lib dodavane s pythonem). Slysel jsem, ze mezitim vznikli nastroje (frameworky), ktere tu praci trochu ulehci. Nevite o tom neco? Po cem byste dnes sahli vy? Jedna se mi jen nekolik rychlych operaci s velkymi poli, pynumeric nestacil. Diky met - martin hassman http://www.met.cz/ ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] kterak vhodne resit architekturu IMAP klienta
IMHO oddelovat UI od mailboxu frontou nemá smysl protože UI potrebuje pro zobrazovaní okamzitou odpoved relevantnich dat nebo odpoved data nejsou k dispozici. Potrebuju chovani ok, mas tu data, data budou za chvili nebo chyba. Ano. Naopak parser bych nechal bezet ve zvlastnim threadu. Jake by to melo vyhody? Tak jak jsem se na to dival je mailbox z pohhledu UI modul ktery je schopen okamzite synchronne odpovidat na pozadavky UI. Pokud by UI melo komunikovat s mailboxem pres frontu, tak by UI muselo, aby mohlo fungovat, přebírat funkci cache, kterou chceme mit v mailboxu. Uvazoval jsem ze zmeny ke kterym v mailboxu dojde by byly oznamovany ve stejnem threadu jako bezi UI formou synchronnich zprav, ktere by UI zachycovalo, tzn. fronta by nebyla nutna. Z pohledu parseru by mailbox slouzil jako databaze pro ukladani vysledku nactenych dat, ukladat by je tam mohl přes frontu. Podobně pozadavky na komunikaci s imap serverem by si parser odebiral z fronty ktera by byla plnena mailboxem. Snazil bych se o to, aby daval data v takove podobe, aby sly rychle zaradit do datovych struktur mailboxu, aby aktualizacemi mailboxu nebylo blokovano UI. Mno, mne se libi to, ze Parser fakt jenom parsuje. Kvuli celkem komplikovane architekture IMAPu se dost brutalni logice v Mailboxu nevyhnu. Pro seriozni diskusi by to asi chtelo rozdelit na vetsi mnozstvi funkcnich bloku, s tim ze nektere bloku budou moci byt v řešení sloučeny. Jan Matejka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] kterak vhodne resit architekturu IMAP klienta
Dobrého dne, jsa asi ovlivněn modelem dokument-view bych to videl spis tak, ze mailbox bude s UI komunikovat primo prostrednicvim metod mailboxu volanych z UI a callbacku kterym bude mailbox oznamovat UI, ze ze se v mailboxu něco zmenilo. IMHO oddelovat UI od mailboxu frontou nemá smysl protože UI potrebuje pro zobrazovaní okamzitou odpoved relevantnich dat nebo odpoved data nejsou k dispozici. Naopak parser bych nechal bezet ve zvlastnim threadu. Snazil bych se o to, aby daval data v takove podobe, aby sly rychle zaradit do datovych struktur mailboxu, aby aktualizacemi mailboxu nebylo blokovano UI. zdravic Jan Matejka Ted resim problem, jak maji tyhle tri slupky spolu komunikovat. Jako uplne prvni vec me napadlo to, ze kazda z nich pobezi ve vlastnim threadu a vsechno si budou rikat pres Queue.Queue (vzdy dvojice mezi jednotlivymi slupkami). Po zapnuti mozku mi ale doslo, ze se Parser a Mailbox daji krasne sloucit - proste v ramci jednoho cyklu thread zkontroluje, jestli po nem neco nechce UI nebo jestli neco neprislo od IAMP serveru. Zbyva teda vyresit, co s komunikaci mezi Mailboxem a UI. Premyslim o dvojici front, pro kazdy smer jednu. Ve smeru UI - Mailbox proudi prikazy typu smaz zpravu XYZ, ukaz mi razeni do threadu ci dej mi hlavicky zpravy cislo 12, opacne data jako treti megabajt sedme prilohy zpravy cislo 13 je \x00... ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Zobrazeni miniframe
Zrejme je problem v tom, ze v dobe vykonavani popenu je zablokovan thread ktery je treba aby obslouzil zpravy vykreslujici ten text. Mozna pomuze pred popen zavolat dlg.redrawwindow nebo neco takoveho. Druhou, lepsi moznosti je pustit ten popen v extra threadu. Jan Matejka -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Martin Jedlička Sent: Tuesday, August 29, 2006 8:05 AM To: Konference PyCZ Subject: [python] Zobrazeni miniframe Zdravim, mam takovy problem. Mam aplikaci ve wxPythonu. Po kliknuti na tlacitko provedu nejaky prikaz cmd pomoci popen. Rad bych, aby po dobu, nez se prikaz provede zobrazil nejaky frame (miniframe), ktery by jen napsal neco jako Prosim cekejte Po skonceni prikazu cmd by se miniframe zase zavrel. Toto jsem realizoval pomoci miniframe. Pri volani prikazu to pak vypada takto: dlg = WaitWindow.WaitWindow(self) dlg.Show(True) os.popen(Cmd) dlg.Destroy() Miniframe WaitWindow pouze obsahuje text Prosim cekejte Problem je ale v tom, ze po dobu provadeni prikazu se sice miniframe zobrazi, ale nezobrazi se v nem ten text. Misto textu je pouze prazdne misto. Stejny problem je, kdyz tam dam misto textu tlacitko ci cokoliv jineho. Nevite jak toto vyresit? Diky za kazdou radu. Martin ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] najdi, nahrad, uloz v ascii subore
Ahoj, Pro prepisovani na miste muze byt prakticke pouziti pametove mapovanych souboru. V pythonu jsem to ale zatím nepouzil. Osobne bych ale volil cestu pomocneho souboru, ma to hlavne vyhodu v tom ze v pripade preruseni zpracovani zustava vstupni soubor neporusen. H. -Original Message- presne tak. Prepisovat to primo na miste je samozrejme mozne, ale v pripade, ze se za puvodni slovo pridavaji dalsi znaky (nebo se nekde znaky uberou), znamena to, ze se cela cast souboru za tim slovem musi o urcity pocet znaku posunout. Coz je prakticky vzdycky zbytecne slozite a v pripade vicecetnych editaci v ramci souboru i dost pomale. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] hibernacia
Nemam s tim temer zadnou zkusenost ale mozna je resenim http://www.stackless.com/ nabizi serializaci. Jan Matejka Existuje nejaka moznost spakovat pustenu pythonacku funkciu, zo vsetkymi lokalnymi premennymi aj instruction pointerom (alebo co ma python), ulozit to vsetko do stringu, ukoncit okamzite beh tej fcie a niekedy v buducnosti ju obnovit? (aj v inej instancii pythonu) ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] hibernacia
Trochu jsem to asi pomatlal nepresnou odpovedi protože tazatel se ptal na serializaci stavu threadu tedy hibernaci. Takze upresnuju http://www.stackless.com/wiki/Pickling je serializace taskletu, coz je asi to co je potreba, pokud je ovsem pouziti stackless pythonu prijatelne. Jan Matejka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
RE: [python] Unicode řetězce
uni_text=text.decode(iso-8859-2).encode(utf-8) Vám nechodí? Mam dojem, ze tazatel ma problem se zapisem unicodoveho retezce do souboru. Zapisuje ho tam myslim primo, a to selze pri konverzi unicodoveho znaku na ascii. Jak to udelat jinym zpusobem nez unicode prevest napriklad na utf-8 nevim. Jan Matejka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python